Merge remote-tracking branch 'cu2qu-origin/fonttools-merge' into cu2qu
This commit is contained in:
commit
0b697b60fc
23
fonttools-merge/Lib/fontTools/cu2qu/__init__.py
Normal file
23
fonttools-merge/Lib/fontTools/cu2qu/__init__.py
Normal file
@ -0,0 +1,23 @@
|
||||
# Copyright 2015 Google Inc. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
|
||||
from __future__ import print_function, division, absolute_import
|
||||
|
||||
try:
|
||||
from ._version import version as __version__
|
||||
except ImportError:
|
||||
__version__ = "0.0.0+unknown"
|
||||
|
||||
from .cu2qu import *
|
364
fonttools-merge/Lib/fontTools/cu2qu/cu2qu.py
Normal file
364
fonttools-merge/Lib/fontTools/cu2qu/cu2qu.py
Normal file
@ -0,0 +1,364 @@
|
||||
#cython: language_level=3
|
||||
#distutils: define_macros=CYTHON_TRACE_NOGIL=1
|
||||
|
||||
# Copyright 2015 Google Inc. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
|
||||
from __future__ import print_function, division, absolute_import
|
||||
|
||||
try:
|
||||
import cython
|
||||
except ImportError:
|
||||
# if not installed, use the embedded (no-op) copy of Cython.Shadow
|
||||
from . import cython
|
||||
|
||||
import math
|
||||
|
||||
from .errors import Error as Cu2QuError, ApproxNotFoundError
|
||||
|
||||
__all__ = ['curve_to_quadratic', 'curves_to_quadratic']
|
||||
|
||||
MAX_N = 100
|
||||
|
||||
NAN = float("NaN")
|
||||
|
||||
|
||||
if cython.compiled:
|
||||
# Yep, I'm compiled.
|
||||
COMPILED = True
|
||||
else:
|
||||
# Just a lowly interpreted script.
|
||||
COMPILED = False
|
||||
|
||||
|
||||
@cython.cfunc
|
||||
@cython.inline
|
||||
@cython.returns(cython.double)
|
||||
@cython.locals(v1=cython.complex, v2=cython.complex)
|
||||
def dot(v1, v2):
|
||||
"""Return the dot product of two vectors."""
|
||||
return (v1 * v2.conjugate()).real
|
||||
|
||||
|
||||
@cython.cfunc
|
||||
@cython.inline
|
||||
@cython.locals(a=cython.complex, b=cython.complex, c=cython.complex, d=cython.complex)
|
||||
@cython.locals(_1=cython.complex, _2=cython.complex, _3=cython.complex, _4=cython.complex)
|
||||
def calc_cubic_points(a, b, c, d):
|
||||
_1 = d
|
||||
_2 = (c / 3.0) + d
|
||||
_3 = (b + c) / 3.0 + _2
|
||||
_4 = a + d + c + b
|
||||
return _1, _2, _3, _4
|
||||
|
||||
|
||||
@cython.cfunc
|
||||
@cython.inline
|
||||
@cython.locals(p0=cython.complex, p1=cython.complex, p2=cython.complex, p3=cython.complex)
|
||||
@cython.locals(a=cython.complex, b=cython.complex, c=cython.complex, d=cython.complex)
|
||||
def calc_cubic_parameters(p0, p1, p2, p3):
|
||||
c = (p1 - p0) * 3.0
|
||||
b = (p2 - p1) * 3.0 - c
|
||||
d = p0
|
||||
a = p3 - d - c - b
|
||||
return a, b, c, d
|
||||
|
||||
|
||||
@cython.cfunc
|
||||
@cython.locals(p0=cython.complex, p1=cython.complex, p2=cython.complex, p3=cython.complex)
|
||||
def split_cubic_into_n_iter(p0, p1, p2, p3, n):
|
||||
# Hand-coded special-cases
|
||||
if n == 2:
|
||||
return iter(split_cubic_into_two(p0, p1, p2, p3))
|
||||
if n == 3:
|
||||
return iter(split_cubic_into_three(p0, p1, p2, p3))
|
||||
if n == 4:
|
||||
a, b = split_cubic_into_two(p0, p1, p2, p3)
|
||||
return iter(split_cubic_into_two(*a) + split_cubic_into_two(*b))
|
||||
if n == 6:
|
||||
a, b = split_cubic_into_two(p0, p1, p2, p3)
|
||||
return iter(split_cubic_into_three(*a) + split_cubic_into_three(*b))
|
||||
|
||||
return _split_cubic_into_n_gen(p0,p1,p2,p3,n)
|
||||
|
||||
|
||||
@cython.locals(p0=cython.complex, p1=cython.complex, p2=cython.complex, p3=cython.complex, n=cython.int)
|
||||
@cython.locals(a=cython.complex, b=cython.complex, c=cython.complex, d=cython.complex)
|
||||
@cython.locals(dt=cython.double, delta_2=cython.double, delta_3=cython.double, i=cython.int)
|
||||
@cython.locals(a1=cython.complex, b1=cython.complex, c1=cython.complex, d1=cython.complex)
|
||||
def _split_cubic_into_n_gen(p0, p1, p2, p3, n):
|
||||
a, b, c, d = calc_cubic_parameters(p0, p1, p2, p3)
|
||||
dt = 1 / n
|
||||
delta_2 = dt * dt
|
||||
delta_3 = dt * delta_2
|
||||
for i in range(n):
|
||||
t1 = i * dt
|
||||
t1_2 = t1 * t1
|
||||
# calc new a, b, c and d
|
||||
a1 = a * delta_3
|
||||
b1 = (3*a*t1 + b) * delta_2
|
||||
c1 = (2*b*t1 + c + 3*a*t1_2) * dt
|
||||
d1 = a*t1*t1_2 + b*t1_2 + c*t1 + d
|
||||
yield calc_cubic_points(a1, b1, c1, d1)
|
||||
|
||||
|
||||
@cython.locals(p0=cython.complex, p1=cython.complex, p2=cython.complex, p3=cython.complex)
|
||||
@cython.locals(mid=cython.complex, deriv3=cython.complex)
|
||||
def split_cubic_into_two(p0, p1, p2, p3):
|
||||
mid = (p0 + 3 * (p1 + p2) + p3) * .125
|
||||
deriv3 = (p3 + p2 - p1 - p0) * .125
|
||||
return ((p0, (p0 + p1) * .5, mid - deriv3, mid),
|
||||
(mid, mid + deriv3, (p2 + p3) * .5, p3))
|
||||
|
||||
|
||||
@cython.locals(p0=cython.complex, p1=cython.complex, p2=cython.complex, p3=cython.complex, _27=cython.double)
|
||||
@cython.locals(mid1=cython.complex, deriv1=cython.complex, mid2=cython.complex, deriv2=cython.complex)
|
||||
def split_cubic_into_three(p0, p1, p2, p3, _27=1/27):
|
||||
# we define 1/27 as a keyword argument so that it will be evaluated only
|
||||
# once but still in the scope of this function
|
||||
mid1 = (8*p0 + 12*p1 + 6*p2 + p3) * _27
|
||||
deriv1 = (p3 + 3*p2 - 4*p0) * _27
|
||||
mid2 = (p0 + 6*p1 + 12*p2 + 8*p3) * _27
|
||||
deriv2 = (4*p3 - 3*p1 - p0) * _27
|
||||
return ((p0, (2*p0 + p1) / 3.0, mid1 - deriv1, mid1),
|
||||
(mid1, mid1 + deriv1, mid2 - deriv2, mid2),
|
||||
(mid2, mid2 + deriv2, (p2 + 2*p3) / 3.0, p3))
|
||||
|
||||
|
||||
@cython.returns(cython.complex)
|
||||
@cython.locals(t=cython.double, p0=cython.complex, p1=cython.complex, p2=cython.complex, p3=cython.complex)
|
||||
@cython.locals(_p1=cython.complex, _p2=cython.complex)
|
||||
def cubic_approx_control(t, p0, p1, p2, p3):
|
||||
"""Approximate a cubic bezier curve with a quadratic one.
|
||||
Returns the candidate control point."""
|
||||
_p1 = p0 + (p1 - p0) * 1.5
|
||||
_p2 = p3 + (p2 - p3) * 1.5
|
||||
return _p1 + (_p2 - _p1) * t
|
||||
|
||||
|
||||
@cython.returns(cython.complex)
|
||||
@cython.locals(a=cython.complex, b=cython.complex, c=cython.complex, d=cython.complex)
|
||||
@cython.locals(ab=cython.complex, cd=cython.complex, p=cython.complex, h=cython.double)
|
||||
def calc_intersect(a, b, c, d):
|
||||
"""Calculate the intersection of ab and cd, given a, b, c, d."""
|
||||
|
||||
ab = b - a
|
||||
cd = d - c
|
||||
p = ab * 1j
|
||||
try:
|
||||
h = dot(p, a - c) / dot(p, cd)
|
||||
except ZeroDivisionError:
|
||||
return complex(NAN, NAN)
|
||||
return c + cd * h
|
||||
|
||||
|
||||
@cython.cfunc
|
||||
@cython.returns(cython.int)
|
||||
@cython.locals(tolerance=cython.double, p0=cython.complex, p1=cython.complex, p2=cython.complex, p3=cython.complex)
|
||||
@cython.locals(mid=cython.complex, deriv3=cython.complex)
|
||||
def cubic_farthest_fit_inside(p0, p1, p2, p3, tolerance):
|
||||
"""Returns True if the cubic Bezier p entirely lies within a distance
|
||||
tolerance of origin, False otherwise. Assumes that p0 and p3 do fit
|
||||
within tolerance of origin, and just checks the inside of the curve."""
|
||||
|
||||
# First check p2 then p1, as p2 has higher error early on.
|
||||
if abs(p2) <= tolerance and abs(p1) <= tolerance:
|
||||
return True
|
||||
|
||||
# Split.
|
||||
mid = (p0 + 3 * (p1 + p2) + p3) * .125
|
||||
if abs(mid) > tolerance:
|
||||
return False
|
||||
deriv3 = (p3 + p2 - p1 - p0) * .125
|
||||
return (cubic_farthest_fit_inside(p0, (p0+p1)*.5, mid-deriv3, mid, tolerance) and
|
||||
cubic_farthest_fit_inside(mid, mid+deriv3, (p2+p3)*.5, p3, tolerance))
|
||||
|
||||
|
||||
@cython.cfunc
|
||||
@cython.locals(tolerance=cython.double, _2_3=cython.double)
|
||||
@cython.locals(q1=cython.complex, c0=cython.complex, c1=cython.complex, c2=cython.complex, c3=cython.complex)
|
||||
def cubic_approx_quadratic(cubic, tolerance, _2_3=2/3):
|
||||
"""Return the uniq quadratic approximating cubic that maintains
|
||||
endpoint tangents if that is within tolerance, None otherwise."""
|
||||
# we define 2/3 as a keyword argument so that it will be evaluated only
|
||||
# once but still in the scope of this function
|
||||
|
||||
q1 = calc_intersect(*cubic)
|
||||
if math.isnan(q1.imag):
|
||||
return None
|
||||
c0 = cubic[0]
|
||||
c3 = cubic[3]
|
||||
c1 = c0 + (q1 - c0) * _2_3
|
||||
c2 = c3 + (q1 - c3) * _2_3
|
||||
if not cubic_farthest_fit_inside(0,
|
||||
c1 - cubic[1],
|
||||
c2 - cubic[2],
|
||||
0, tolerance):
|
||||
return None
|
||||
return c0, q1, c3
|
||||
|
||||
|
||||
@cython.cfunc
|
||||
@cython.locals(n=cython.int, tolerance=cython.double, _2_3=cython.double)
|
||||
@cython.locals(i=cython.int)
|
||||
@cython.locals(c0=cython.complex, c1=cython.complex, c2=cython.complex, c3=cython.complex)
|
||||
@cython.locals(q0=cython.complex, q1=cython.complex, next_q1=cython.complex, q2=cython.complex, d1=cython.complex)
|
||||
def cubic_approx_spline(cubic, n, tolerance, _2_3=2/3):
|
||||
"""Approximate a cubic bezier curve with a spline of n quadratics.
|
||||
|
||||
Returns None if no quadratic approximation is found which lies entirely
|
||||
within a distance `tolerance` from the original curve.
|
||||
"""
|
||||
# we define 2/3 as a keyword argument so that it will be evaluated only
|
||||
# once but still in the scope of this function
|
||||
|
||||
if n == 1:
|
||||
return cubic_approx_quadratic(cubic, tolerance)
|
||||
|
||||
cubics = split_cubic_into_n_iter(cubic[0], cubic[1], cubic[2], cubic[3], n)
|
||||
|
||||
# calculate the spline of quadratics and check errors at the same time.
|
||||
next_cubic = next(cubics)
|
||||
next_q1 = cubic_approx_control(0, *next_cubic)
|
||||
q2 = cubic[0]
|
||||
d1 = 0j
|
||||
spline = [cubic[0], next_q1]
|
||||
for i in range(1, n+1):
|
||||
|
||||
# Current cubic to convert
|
||||
c0, c1, c2, c3 = next_cubic
|
||||
|
||||
# Current quadratic approximation of current cubic
|
||||
q0 = q2
|
||||
q1 = next_q1
|
||||
if i < n:
|
||||
next_cubic = next(cubics)
|
||||
next_q1 = cubic_approx_control(i / (n-1), *next_cubic)
|
||||
spline.append(next_q1)
|
||||
q2 = (q1 + next_q1) * .5
|
||||
else:
|
||||
q2 = c3
|
||||
|
||||
# End-point deltas
|
||||
d0 = d1
|
||||
d1 = q2 - c3
|
||||
|
||||
if (abs(d1) > tolerance or
|
||||
not cubic_farthest_fit_inside(d0,
|
||||
q0 + (q1 - q0) * _2_3 - c1,
|
||||
q2 + (q1 - q2) * _2_3 - c2,
|
||||
d1,
|
||||
tolerance)):
|
||||
return None
|
||||
spline.append(cubic[3])
|
||||
|
||||
return spline
|
||||
|
||||
|
||||
@cython.locals(max_err=cython.double)
|
||||
@cython.locals(n=cython.int)
|
||||
def curve_to_quadratic(curve, max_err):
|
||||
"""Return a quadratic spline approximating this cubic bezier.
|
||||
Raise 'ApproxNotFoundError' if no suitable approximation can be found
|
||||
with the given parameters.
|
||||
"""
|
||||
|
||||
curve = [complex(*p) for p in curve]
|
||||
|
||||
for n in range(1, MAX_N + 1):
|
||||
spline = cubic_approx_spline(curve, n, max_err)
|
||||
if spline is not None:
|
||||
# done. go home
|
||||
return [(s.real, s.imag) for s in spline]
|
||||
|
||||
raise ApproxNotFoundError(curve)
|
||||
|
||||
|
||||
|
||||
@cython.locals(l=cython.int, last_i=cython.int, i=cython.int)
|
||||
def curves_to_quadratic(curves, max_errors):
|
||||
"""Return quadratic splines approximating these cubic beziers.
|
||||
Raise 'ApproxNotFoundError' if no suitable approximation can be found
|
||||
for all curves with the given parameters.
|
||||
"""
|
||||
|
||||
curves = [[complex(*p) for p in curve] for curve in curves]
|
||||
assert len(max_errors) == len(curves)
|
||||
|
||||
l = len(curves)
|
||||
splines = [None] * l
|
||||
last_i = i = 0
|
||||
n = 1
|
||||
while True:
|
||||
spline = cubic_approx_spline(curves[i], n, max_errors[i])
|
||||
if spline is None:
|
||||
if n == MAX_N:
|
||||
break
|
||||
n += 1
|
||||
last_i = i
|
||||
continue
|
||||
splines[i] = spline
|
||||
i = (i + 1) % l
|
||||
if i == last_i:
|
||||
# done. go home
|
||||
return [[(s.real, s.imag) for s in spline] for spline in splines]
|
||||
|
||||
raise ApproxNotFoundError(curves)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
import random
|
||||
import timeit
|
||||
|
||||
MAX_ERR = 5
|
||||
|
||||
def generate_curve():
|
||||
return [
|
||||
tuple(float(random.randint(0, 2048)) for coord in range(2))
|
||||
for point in range(4)]
|
||||
|
||||
def setup_curve_to_quadratic():
|
||||
return generate_curve(), MAX_ERR
|
||||
|
||||
def setup_curves_to_quadratic():
|
||||
num_curves = 3
|
||||
return (
|
||||
[generate_curve() for curve in range(num_curves)],
|
||||
[MAX_ERR] * num_curves)
|
||||
|
||||
def run_benchmark(
|
||||
benchmark_module, module, function, setup_suffix='', repeat=5, number=1000):
|
||||
setup_func = 'setup_' + function
|
||||
if setup_suffix:
|
||||
print('%s with %s:' % (function, setup_suffix), end='')
|
||||
setup_func += '_' + setup_suffix
|
||||
else:
|
||||
print('%s:' % function, end='')
|
||||
|
||||
def wrapper(function, setup_func):
|
||||
function = globals()[function]
|
||||
setup_func = globals()[setup_func]
|
||||
def wrapped():
|
||||
return function(*setup_func())
|
||||
return wrapped
|
||||
results = timeit.repeat(wrapper(function, setup_func), repeat=repeat, number=number)
|
||||
print('\t%5.1fus' % (min(results) * 1000000. / number))
|
||||
|
||||
def main():
|
||||
run_benchmark('cu2qu.benchmark', 'cu2qu', 'curve_to_quadratic')
|
||||
run_benchmark('cu2qu.benchmark', 'cu2qu', 'curves_to_quadratic')
|
||||
|
||||
random.seed(1)
|
||||
main()
|
477
fonttools-merge/Lib/fontTools/cu2qu/cython.py
Normal file
477
fonttools-merge/Lib/fontTools/cu2qu/cython.py
Normal file
@ -0,0 +1,477 @@
|
||||
""" This module is copied verbatim from the "Cython.Shadow" module:
|
||||
https://github.com/cython/cython/blob/master/Cython/Shadow.py
|
||||
|
||||
Cython is licensed under the Apache 2.0 Software License.
|
||||
"""
|
||||
# cython.* namespace for pure mode.
|
||||
from __future__ import absolute_import
|
||||
|
||||
__version__ = "0.29.14"
|
||||
|
||||
try:
|
||||
from __builtin__ import basestring
|
||||
except ImportError:
|
||||
basestring = str
|
||||
|
||||
|
||||
# BEGIN shameless copy from Cython/minivect/minitypes.py
|
||||
|
||||
class _ArrayType(object):
|
||||
|
||||
is_array = True
|
||||
subtypes = ['dtype']
|
||||
|
||||
def __init__(self, dtype, ndim, is_c_contig=False, is_f_contig=False,
|
||||
inner_contig=False, broadcasting=None):
|
||||
self.dtype = dtype
|
||||
self.ndim = ndim
|
||||
self.is_c_contig = is_c_contig
|
||||
self.is_f_contig = is_f_contig
|
||||
self.inner_contig = inner_contig or is_c_contig or is_f_contig
|
||||
self.broadcasting = broadcasting
|
||||
|
||||
def __repr__(self):
|
||||
axes = [":"] * self.ndim
|
||||
if self.is_c_contig:
|
||||
axes[-1] = "::1"
|
||||
elif self.is_f_contig:
|
||||
axes[0] = "::1"
|
||||
|
||||
return "%s[%s]" % (self.dtype, ", ".join(axes))
|
||||
|
||||
|
||||
def index_type(base_type, item):
|
||||
"""
|
||||
Support array type creation by slicing, e.g. double[:, :] specifies
|
||||
a 2D strided array of doubles. The syntax is the same as for
|
||||
Cython memoryviews.
|
||||
"""
|
||||
class InvalidTypeSpecification(Exception):
|
||||
pass
|
||||
|
||||
def verify_slice(s):
|
||||
if s.start or s.stop or s.step not in (None, 1):
|
||||
raise InvalidTypeSpecification(
|
||||
"Only a step of 1 may be provided to indicate C or "
|
||||
"Fortran contiguity")
|
||||
|
||||
if isinstance(item, tuple):
|
||||
step_idx = None
|
||||
for idx, s in enumerate(item):
|
||||
verify_slice(s)
|
||||
if s.step and (step_idx or idx not in (0, len(item) - 1)):
|
||||
raise InvalidTypeSpecification(
|
||||
"Step may only be provided once, and only in the "
|
||||
"first or last dimension.")
|
||||
|
||||
if s.step == 1:
|
||||
step_idx = idx
|
||||
|
||||
return _ArrayType(base_type, len(item),
|
||||
is_c_contig=step_idx == len(item) - 1,
|
||||
is_f_contig=step_idx == 0)
|
||||
elif isinstance(item, slice):
|
||||
verify_slice(item)
|
||||
return _ArrayType(base_type, 1, is_c_contig=bool(item.step))
|
||||
else:
|
||||
# int[8] etc.
|
||||
assert int(item) == item # array size must be a plain integer
|
||||
array(base_type, item)
|
||||
|
||||
# END shameless copy
|
||||
|
||||
|
||||
compiled = False
|
||||
|
||||
_Unspecified = object()
|
||||
|
||||
# Function decorators
|
||||
|
||||
def _empty_decorator(x):
|
||||
return x
|
||||
|
||||
def locals(**arg_types):
|
||||
return _empty_decorator
|
||||
|
||||
def test_assert_path_exists(*paths):
|
||||
return _empty_decorator
|
||||
|
||||
def test_fail_if_path_exists(*paths):
|
||||
return _empty_decorator
|
||||
|
||||
class _EmptyDecoratorAndManager(object):
|
||||
def __call__(self, x):
|
||||
return x
|
||||
def __enter__(self):
|
||||
pass
|
||||
def __exit__(self, exc_type, exc_value, traceback):
|
||||
pass
|
||||
|
||||
class _Optimization(object):
|
||||
pass
|
||||
|
||||
cclass = ccall = cfunc = _EmptyDecoratorAndManager()
|
||||
|
||||
returns = wraparound = boundscheck = initializedcheck = nonecheck = \
|
||||
embedsignature = cdivision = cdivision_warnings = \
|
||||
always_allows_keywords = profile = linetrace = infer_types = \
|
||||
unraisable_tracebacks = freelist = \
|
||||
lambda _: _EmptyDecoratorAndManager()
|
||||
|
||||
exceptval = lambda _=None, check=True: _EmptyDecoratorAndManager()
|
||||
|
||||
overflowcheck = lambda _: _EmptyDecoratorAndManager()
|
||||
optimization = _Optimization()
|
||||
|
||||
overflowcheck.fold = optimization.use_switch = \
|
||||
optimization.unpack_method_calls = lambda arg: _EmptyDecoratorAndManager()
|
||||
|
||||
final = internal = type_version_tag = no_gc_clear = no_gc = _empty_decorator
|
||||
|
||||
|
||||
_cython_inline = None
|
||||
def inline(f, *args, **kwds):
|
||||
if isinstance(f, basestring):
|
||||
global _cython_inline
|
||||
if _cython_inline is None:
|
||||
from Cython.Build.Inline import cython_inline as _cython_inline
|
||||
return _cython_inline(f, *args, **kwds)
|
||||
else:
|
||||
assert len(args) == len(kwds) == 0
|
||||
return f
|
||||
|
||||
|
||||
def compile(f):
|
||||
from Cython.Build.Inline import RuntimeCompiledFunction
|
||||
return RuntimeCompiledFunction(f)
|
||||
|
||||
|
||||
# Special functions
|
||||
|
||||
def cdiv(a, b):
|
||||
q = a / b
|
||||
if q < 0:
|
||||
q += 1
|
||||
return q
|
||||
|
||||
def cmod(a, b):
|
||||
r = a % b
|
||||
if (a*b) < 0:
|
||||
r -= b
|
||||
return r
|
||||
|
||||
|
||||
# Emulated language constructs
|
||||
|
||||
def cast(type, *args, **kwargs):
|
||||
kwargs.pop('typecheck', None)
|
||||
assert not kwargs
|
||||
if hasattr(type, '__call__'):
|
||||
return type(*args)
|
||||
else:
|
||||
return args[0]
|
||||
|
||||
def sizeof(arg):
|
||||
return 1
|
||||
|
||||
def typeof(arg):
|
||||
return arg.__class__.__name__
|
||||
# return type(arg)
|
||||
|
||||
def address(arg):
|
||||
return pointer(type(arg))([arg])
|
||||
|
||||
def declare(type=None, value=_Unspecified, **kwds):
|
||||
if type not in (None, object) and hasattr(type, '__call__'):
|
||||
if value is not _Unspecified:
|
||||
return type(value)
|
||||
else:
|
||||
return type()
|
||||
else:
|
||||
return value
|
||||
|
||||
class _nogil(object):
|
||||
"""Support for 'with nogil' statement and @nogil decorator.
|
||||
"""
|
||||
def __call__(self, x):
|
||||
if callable(x):
|
||||
# Used as function decorator => return the function unchanged.
|
||||
return x
|
||||
# Used as conditional context manager or to create an "@nogil(True/False)" decorator => keep going.
|
||||
return self
|
||||
|
||||
def __enter__(self):
|
||||
pass
|
||||
def __exit__(self, exc_class, exc, tb):
|
||||
return exc_class is None
|
||||
|
||||
nogil = _nogil()
|
||||
gil = _nogil()
|
||||
del _nogil
|
||||
|
||||
|
||||
# Emulated types
|
||||
|
||||
class CythonMetaType(type):
|
||||
|
||||
def __getitem__(type, ix):
|
||||
return array(type, ix)
|
||||
|
||||
CythonTypeObject = CythonMetaType('CythonTypeObject', (object,), {})
|
||||
|
||||
class CythonType(CythonTypeObject):
|
||||
|
||||
def _pointer(self, n=1):
|
||||
for i in range(n):
|
||||
self = pointer(self)
|
||||
return self
|
||||
|
||||
class PointerType(CythonType):
|
||||
|
||||
def __init__(self, value=None):
|
||||
if isinstance(value, (ArrayType, PointerType)):
|
||||
self._items = [cast(self._basetype, a) for a in value._items]
|
||||
elif isinstance(value, list):
|
||||
self._items = [cast(self._basetype, a) for a in value]
|
||||
elif value is None or value == 0:
|
||||
self._items = []
|
||||
else:
|
||||
raise ValueError
|
||||
|
||||
def __getitem__(self, ix):
|
||||
if ix < 0:
|
||||
raise IndexError("negative indexing not allowed in C")
|
||||
return self._items[ix]
|
||||
|
||||
def __setitem__(self, ix, value):
|
||||
if ix < 0:
|
||||
raise IndexError("negative indexing not allowed in C")
|
||||
self._items[ix] = cast(self._basetype, value)
|
||||
|
||||
def __eq__(self, value):
|
||||
if value is None and not self._items:
|
||||
return True
|
||||
elif type(self) != type(value):
|
||||
return False
|
||||
else:
|
||||
return not self._items and not value._items
|
||||
|
||||
def __repr__(self):
|
||||
return "%s *" % (self._basetype,)
|
||||
|
||||
class ArrayType(PointerType):
|
||||
|
||||
def __init__(self):
|
||||
self._items = [None] * self._n
|
||||
|
||||
|
||||
class StructType(CythonType):
|
||||
|
||||
def __init__(self, cast_from=_Unspecified, **data):
|
||||
if cast_from is not _Unspecified:
|
||||
# do cast
|
||||
if len(data) > 0:
|
||||
raise ValueError('Cannot accept keyword arguments when casting.')
|
||||
if type(cast_from) is not type(self):
|
||||
raise ValueError('Cannot cast from %s'%cast_from)
|
||||
for key, value in cast_from.__dict__.items():
|
||||
setattr(self, key, value)
|
||||
else:
|
||||
for key, value in data.items():
|
||||
setattr(self, key, value)
|
||||
|
||||
def __setattr__(self, key, value):
|
||||
if key in self._members:
|
||||
self.__dict__[key] = cast(self._members[key], value)
|
||||
else:
|
||||
raise AttributeError("Struct has no member '%s'" % key)
|
||||
|
||||
|
||||
class UnionType(CythonType):
|
||||
|
||||
def __init__(self, cast_from=_Unspecified, **data):
|
||||
if cast_from is not _Unspecified:
|
||||
# do type cast
|
||||
if len(data) > 0:
|
||||
raise ValueError('Cannot accept keyword arguments when casting.')
|
||||
if isinstance(cast_from, dict):
|
||||
datadict = cast_from
|
||||
elif type(cast_from) is type(self):
|
||||
datadict = cast_from.__dict__
|
||||
else:
|
||||
raise ValueError('Cannot cast from %s'%cast_from)
|
||||
else:
|
||||
datadict = data
|
||||
if len(datadict) > 1:
|
||||
raise AttributeError("Union can only store one field at a time.")
|
||||
for key, value in datadict.items():
|
||||
setattr(self, key, value)
|
||||
|
||||
def __setattr__(self, key, value):
|
||||
if key in '__dict__':
|
||||
CythonType.__setattr__(self, key, value)
|
||||
elif key in self._members:
|
||||
self.__dict__ = {key: cast(self._members[key], value)}
|
||||
else:
|
||||
raise AttributeError("Union has no member '%s'" % key)
|
||||
|
||||
def pointer(basetype):
|
||||
class PointerInstance(PointerType):
|
||||
_basetype = basetype
|
||||
return PointerInstance
|
||||
|
||||
def array(basetype, n):
|
||||
class ArrayInstance(ArrayType):
|
||||
_basetype = basetype
|
||||
_n = n
|
||||
return ArrayInstance
|
||||
|
||||
def struct(**members):
|
||||
class StructInstance(StructType):
|
||||
_members = members
|
||||
for key in members:
|
||||
setattr(StructInstance, key, None)
|
||||
return StructInstance
|
||||
|
||||
def union(**members):
|
||||
class UnionInstance(UnionType):
|
||||
_members = members
|
||||
for key in members:
|
||||
setattr(UnionInstance, key, None)
|
||||
return UnionInstance
|
||||
|
||||
class typedef(CythonType):
|
||||
|
||||
def __init__(self, type, name=None):
|
||||
self._basetype = type
|
||||
self.name = name
|
||||
|
||||
def __call__(self, *arg):
|
||||
value = cast(self._basetype, *arg)
|
||||
return value
|
||||
|
||||
def __repr__(self):
|
||||
return self.name or str(self._basetype)
|
||||
|
||||
__getitem__ = index_type
|
||||
|
||||
class _FusedType(CythonType):
|
||||
pass
|
||||
|
||||
|
||||
def fused_type(*args):
|
||||
if not args:
|
||||
raise TypeError("Expected at least one type as argument")
|
||||
|
||||
# Find the numeric type with biggest rank if all types are numeric
|
||||
rank = -1
|
||||
for type in args:
|
||||
if type not in (py_int, py_long, py_float, py_complex):
|
||||
break
|
||||
|
||||
if type_ordering.index(type) > rank:
|
||||
result_type = type
|
||||
else:
|
||||
return result_type
|
||||
|
||||
# Not a simple numeric type, return a fused type instance. The result
|
||||
# isn't really meant to be used, as we can't keep track of the context in
|
||||
# pure-mode. Casting won't do anything in this case.
|
||||
return _FusedType()
|
||||
|
||||
|
||||
def _specialized_from_args(signatures, args, kwargs):
|
||||
"Perhaps this should be implemented in a TreeFragment in Cython code"
|
||||
raise Exception("yet to be implemented")
|
||||
|
||||
|
||||
py_int = typedef(int, "int")
|
||||
try:
|
||||
py_long = typedef(long, "long")
|
||||
except NameError: # Py3
|
||||
py_long = typedef(int, "long")
|
||||
py_float = typedef(float, "float")
|
||||
py_complex = typedef(complex, "double complex")
|
||||
|
||||
|
||||
# Predefined types
|
||||
|
||||
int_types = ['char', 'short', 'Py_UNICODE', 'int', 'Py_UCS4', 'long', 'longlong', 'Py_ssize_t', 'size_t']
|
||||
float_types = ['longdouble', 'double', 'float']
|
||||
complex_types = ['longdoublecomplex', 'doublecomplex', 'floatcomplex', 'complex']
|
||||
other_types = ['bint', 'void', 'Py_tss_t']
|
||||
|
||||
to_repr = {
|
||||
'longlong': 'long long',
|
||||
'longdouble': 'long double',
|
||||
'longdoublecomplex': 'long double complex',
|
||||
'doublecomplex': 'double complex',
|
||||
'floatcomplex': 'float complex',
|
||||
}.get
|
||||
|
||||
gs = globals()
|
||||
|
||||
# note: cannot simply name the unicode type here as 2to3 gets in the way and replaces it by str
|
||||
try:
|
||||
import __builtin__ as builtins
|
||||
except ImportError: # Py3
|
||||
import builtins
|
||||
|
||||
gs['unicode'] = typedef(getattr(builtins, 'unicode', str), 'unicode')
|
||||
del builtins
|
||||
|
||||
for name in int_types:
|
||||
reprname = to_repr(name, name)
|
||||
gs[name] = typedef(py_int, reprname)
|
||||
if name not in ('Py_UNICODE', 'Py_UCS4') and not name.endswith('size_t'):
|
||||
gs['u'+name] = typedef(py_int, "unsigned " + reprname)
|
||||
gs['s'+name] = typedef(py_int, "signed " + reprname)
|
||||
|
||||
for name in float_types:
|
||||
gs[name] = typedef(py_float, to_repr(name, name))
|
||||
|
||||
for name in complex_types:
|
||||
gs[name] = typedef(py_complex, to_repr(name, name))
|
||||
|
||||
bint = typedef(bool, "bint")
|
||||
void = typedef(None, "void")
|
||||
Py_tss_t = typedef(None, "Py_tss_t")
|
||||
|
||||
for t in int_types + float_types + complex_types + other_types:
|
||||
for i in range(1, 4):
|
||||
gs["%s_%s" % ('p'*i, t)] = gs[t]._pointer(i)
|
||||
|
||||
NULL = gs['p_void'](0)
|
||||
|
||||
# looks like 'gs' has some users out there by now...
|
||||
#del gs
|
||||
|
||||
integral = floating = numeric = _FusedType()
|
||||
|
||||
type_ordering = [py_int, py_long, py_float, py_complex]
|
||||
|
||||
class CythonDotParallel(object):
|
||||
"""
|
||||
The cython.parallel module.
|
||||
"""
|
||||
|
||||
__all__ = ['parallel', 'prange', 'threadid']
|
||||
|
||||
def parallel(self, num_threads=None):
|
||||
return nogil
|
||||
|
||||
def prange(self, start=0, stop=None, step=1, nogil=False, schedule=None, chunksize=None, num_threads=None):
|
||||
if stop is None:
|
||||
stop = start
|
||||
start = 0
|
||||
return range(start, stop, step)
|
||||
|
||||
def threadid(self):
|
||||
return 0
|
||||
|
||||
# def threadsavailable(self):
|
||||
# return 1
|
||||
|
||||
import sys
|
||||
sys.modules['cython.parallel'] = CythonDotParallel()
|
||||
del sys
|
65
fonttools-merge/Lib/fontTools/cu2qu/errors.py
Normal file
65
fonttools-merge/Lib/fontTools/cu2qu/errors.py
Normal file
@ -0,0 +1,65 @@
|
||||
from __future__ import print_function, absolute_import, division
|
||||
|
||||
|
||||
class Error(Exception):
|
||||
"""Base Cu2Qu exception class for all other errors."""
|
||||
|
||||
|
||||
class ApproxNotFoundError(Error):
|
||||
def __init__(self, curve):
|
||||
message = "no approximation found: %s" % curve
|
||||
super(Error, self).__init__(message)
|
||||
self.curve = curve
|
||||
|
||||
|
||||
class UnequalZipLengthsError(Error):
|
||||
pass
|
||||
|
||||
|
||||
class IncompatibleGlyphsError(Error):
|
||||
def __init__(self, glyphs):
|
||||
assert len(glyphs) > 1
|
||||
self.glyphs = glyphs
|
||||
names = set(repr(g.name) for g in glyphs)
|
||||
if len(names) > 1:
|
||||
self.combined_name = "{%s}" % ", ".join(sorted(names))
|
||||
else:
|
||||
self.combined_name = names.pop()
|
||||
|
||||
def __repr__(self):
|
||||
return "<%s %s>" % (type(self).__name__, self.combined_name)
|
||||
|
||||
|
||||
class IncompatibleSegmentNumberError(IncompatibleGlyphsError):
|
||||
def __str__(self):
|
||||
return "Glyphs named %s have different number of segments" % (
|
||||
self.combined_name
|
||||
)
|
||||
|
||||
|
||||
class IncompatibleSegmentTypesError(IncompatibleGlyphsError):
|
||||
def __init__(self, glyphs, segments):
|
||||
IncompatibleGlyphsError.__init__(self, glyphs)
|
||||
self.segments = segments
|
||||
|
||||
def __str__(self):
|
||||
lines = []
|
||||
ndigits = len(str(max(self.segments)))
|
||||
for i, tags in sorted(self.segments.items()):
|
||||
lines.append(
|
||||
"%s: (%s)" % (str(i).rjust(ndigits), ", ".join(repr(t) for t in tags))
|
||||
)
|
||||
return "Glyphs named %s have incompatible segment types:\n %s" % (
|
||||
self.combined_name,
|
||||
"\n ".join(lines),
|
||||
)
|
||||
|
||||
|
||||
class IncompatibleFontsError(Error):
|
||||
def __init__(self, glyph_errors):
|
||||
self.glyph_errors = glyph_errors
|
||||
|
||||
def __str__(self):
|
||||
return "fonts contains incompatible glyphs: %s" % (
|
||||
", ".join(repr(g) for g in sorted(self.glyph_errors.keys()))
|
||||
)
|
240
fonttools-merge/Lib/fontTools/cu2qu/pens.py
Normal file
240
fonttools-merge/Lib/fontTools/cu2qu/pens.py
Normal file
@ -0,0 +1,240 @@
|
||||
from __future__ import print_function, division, absolute_import
|
||||
from cu2qu import curve_to_quadratic
|
||||
from fontTools.pens.basePen import AbstractPen, decomposeSuperBezierSegment
|
||||
from fontTools.pens.reverseContourPen import ReverseContourPen
|
||||
from fontTools.pens.pointPen import BasePointToSegmentPen
|
||||
from fontTools.pens.pointPen import ReverseContourPointPen
|
||||
|
||||
|
||||
class Cu2QuPen(AbstractPen):
|
||||
""" A filter pen to convert cubic bezier curves to quadratic b-splines
|
||||
using the FontTools SegmentPen protocol.
|
||||
|
||||
other_pen: another SegmentPen used to draw the transformed outline.
|
||||
max_err: maximum approximation error in font units.
|
||||
reverse_direction: flip the contours' direction but keep starting point.
|
||||
stats: a dictionary counting the point numbers of quadratic segments.
|
||||
ignore_single_points: don't emit contours containing only a single point
|
||||
|
||||
NOTE: The "ignore_single_points" argument is deprecated since v1.3.0,
|
||||
which dropped Robofab subpport. It's no longer needed to special-case
|
||||
UFO2-style anchors (aka "named points") when using ufoLib >= 2.0,
|
||||
as these are no longer drawn onto pens as single-point contours,
|
||||
but are handled separately as anchors.
|
||||
"""
|
||||
|
||||
def __init__(self, other_pen, max_err, reverse_direction=False,
|
||||
stats=None, ignore_single_points=False):
|
||||
if reverse_direction:
|
||||
self.pen = ReverseContourPen(other_pen)
|
||||
else:
|
||||
self.pen = other_pen
|
||||
self.max_err = max_err
|
||||
self.stats = stats
|
||||
if ignore_single_points:
|
||||
import warnings
|
||||
warnings.warn("ignore_single_points is deprecated and "
|
||||
"will be removed in future versions",
|
||||
UserWarning, stacklevel=2)
|
||||
self.ignore_single_points = ignore_single_points
|
||||
self.start_pt = None
|
||||
self.current_pt = None
|
||||
|
||||
def _check_contour_is_open(self):
|
||||
if self.current_pt is None:
|
||||
raise AssertionError("moveTo is required")
|
||||
|
||||
def _check_contour_is_closed(self):
|
||||
if self.current_pt is not None:
|
||||
raise AssertionError("closePath or endPath is required")
|
||||
|
||||
def _add_moveTo(self):
|
||||
if self.start_pt is not None:
|
||||
self.pen.moveTo(self.start_pt)
|
||||
self.start_pt = None
|
||||
|
||||
def moveTo(self, pt):
|
||||
self._check_contour_is_closed()
|
||||
self.start_pt = self.current_pt = pt
|
||||
if not self.ignore_single_points:
|
||||
self._add_moveTo()
|
||||
|
||||
def lineTo(self, pt):
|
||||
self._check_contour_is_open()
|
||||
self._add_moveTo()
|
||||
self.pen.lineTo(pt)
|
||||
self.current_pt = pt
|
||||
|
||||
def qCurveTo(self, *points):
|
||||
self._check_contour_is_open()
|
||||
n = len(points)
|
||||
if n == 1:
|
||||
self.lineTo(points[0])
|
||||
elif n > 1:
|
||||
self._add_moveTo()
|
||||
self.pen.qCurveTo(*points)
|
||||
self.current_pt = points[-1]
|
||||
else:
|
||||
raise AssertionError("illegal qcurve segment point count: %d" % n)
|
||||
|
||||
def _curve_to_quadratic(self, pt1, pt2, pt3):
|
||||
curve = (self.current_pt, pt1, pt2, pt3)
|
||||
quadratic = curve_to_quadratic(curve, self.max_err)
|
||||
if self.stats is not None:
|
||||
n = str(len(quadratic) - 2)
|
||||
self.stats[n] = self.stats.get(n, 0) + 1
|
||||
self.qCurveTo(*quadratic[1:])
|
||||
|
||||
def curveTo(self, *points):
|
||||
self._check_contour_is_open()
|
||||
n = len(points)
|
||||
if n == 3:
|
||||
# this is the most common case, so we special-case it
|
||||
self._curve_to_quadratic(*points)
|
||||
elif n > 3:
|
||||
for segment in decomposeSuperBezierSegment(points):
|
||||
self._curve_to_quadratic(*segment)
|
||||
elif n == 2:
|
||||
self.qCurveTo(*points)
|
||||
elif n == 1:
|
||||
self.lineTo(points[0])
|
||||
else:
|
||||
raise AssertionError("illegal curve segment point count: %d" % n)
|
||||
|
||||
def closePath(self):
|
||||
self._check_contour_is_open()
|
||||
if self.start_pt is None:
|
||||
# if 'start_pt' is _not_ None, we are ignoring single-point paths
|
||||
self.pen.closePath()
|
||||
self.current_pt = self.start_pt = None
|
||||
|
||||
def endPath(self):
|
||||
self._check_contour_is_open()
|
||||
if self.start_pt is None:
|
||||
self.pen.endPath()
|
||||
self.current_pt = self.start_pt = None
|
||||
|
||||
def addComponent(self, glyphName, transformation):
|
||||
self._check_contour_is_closed()
|
||||
self.pen.addComponent(glyphName, transformation)
|
||||
|
||||
|
||||
class Cu2QuPointPen(BasePointToSegmentPen):
|
||||
""" A filter pen to convert cubic bezier curves to quadratic b-splines
|
||||
using the RoboFab PointPen protocol.
|
||||
|
||||
other_point_pen: another PointPen used to draw the transformed outline.
|
||||
max_err: maximum approximation error in font units.
|
||||
reverse_direction: reverse the winding direction of all contours.
|
||||
stats: a dictionary counting the point numbers of quadratic segments.
|
||||
"""
|
||||
|
||||
def __init__(self, other_point_pen, max_err, reverse_direction=False,
|
||||
stats=None):
|
||||
BasePointToSegmentPen.__init__(self)
|
||||
if reverse_direction:
|
||||
self.pen = ReverseContourPointPen(other_point_pen)
|
||||
else:
|
||||
self.pen = other_point_pen
|
||||
self.max_err = max_err
|
||||
self.stats = stats
|
||||
|
||||
def _flushContour(self, segments):
|
||||
assert len(segments) >= 1
|
||||
closed = segments[0][0] != "move"
|
||||
new_segments = []
|
||||
prev_points = segments[-1][1]
|
||||
prev_on_curve = prev_points[-1][0]
|
||||
for segment_type, points in segments:
|
||||
if segment_type == 'curve':
|
||||
for sub_points in self._split_super_bezier_segments(points):
|
||||
on_curve, smooth, name, kwargs = sub_points[-1]
|
||||
bcp1, bcp2 = sub_points[0][0], sub_points[1][0]
|
||||
cubic = [prev_on_curve, bcp1, bcp2, on_curve]
|
||||
quad = curve_to_quadratic(cubic, self.max_err)
|
||||
if self.stats is not None:
|
||||
n = str(len(quad) - 2)
|
||||
self.stats[n] = self.stats.get(n, 0) + 1
|
||||
new_points = [(pt, False, None, {}) for pt in quad[1:-1]]
|
||||
new_points.append((on_curve, smooth, name, kwargs))
|
||||
new_segments.append(["qcurve", new_points])
|
||||
prev_on_curve = sub_points[-1][0]
|
||||
else:
|
||||
new_segments.append([segment_type, points])
|
||||
prev_on_curve = points[-1][0]
|
||||
if closed:
|
||||
# the BasePointToSegmentPen.endPath method that calls _flushContour
|
||||
# rotates the point list of closed contours so that they end with
|
||||
# the first on-curve point. We restore the original starting point.
|
||||
new_segments = new_segments[-1:] + new_segments[:-1]
|
||||
self._drawPoints(new_segments)
|
||||
|
||||
def _split_super_bezier_segments(self, points):
|
||||
sub_segments = []
|
||||
# n is the number of control points
|
||||
n = len(points) - 1
|
||||
if n == 2:
|
||||
# a simple bezier curve segment
|
||||
sub_segments.append(points)
|
||||
elif n > 2:
|
||||
# a "super" bezier; decompose it
|
||||
on_curve, smooth, name, kwargs = points[-1]
|
||||
num_sub_segments = n - 1
|
||||
for i, sub_points in enumerate(decomposeSuperBezierSegment([
|
||||
pt for pt, _, _, _ in points])):
|
||||
new_segment = []
|
||||
for point in sub_points[:-1]:
|
||||
new_segment.append((point, False, None, {}))
|
||||
if i == (num_sub_segments - 1):
|
||||
# the last on-curve keeps its original attributes
|
||||
new_segment.append((on_curve, smooth, name, kwargs))
|
||||
else:
|
||||
# on-curves of sub-segments are always "smooth"
|
||||
new_segment.append((sub_points[-1], True, None, {}))
|
||||
sub_segments.append(new_segment)
|
||||
else:
|
||||
raise AssertionError(
|
||||
"expected 2 control points, found: %d" % n)
|
||||
return sub_segments
|
||||
|
||||
def _drawPoints(self, segments):
|
||||
pen = self.pen
|
||||
pen.beginPath()
|
||||
last_offcurves = []
|
||||
for i, (segment_type, points) in enumerate(segments):
|
||||
if segment_type in ("move", "line"):
|
||||
assert len(points) == 1, (
|
||||
"illegal line segment point count: %d" % len(points))
|
||||
pt, smooth, name, kwargs = points[0]
|
||||
pen.addPoint(pt, segment_type, smooth, name, **kwargs)
|
||||
elif segment_type == "qcurve":
|
||||
assert len(points) >= 2, (
|
||||
"illegal qcurve segment point count: %d" % len(points))
|
||||
offcurves = points[:-1]
|
||||
if offcurves:
|
||||
if i == 0:
|
||||
# any off-curve points preceding the first on-curve
|
||||
# will be appended at the end of the contour
|
||||
last_offcurves = offcurves
|
||||
else:
|
||||
for (pt, smooth, name, kwargs) in offcurves:
|
||||
pen.addPoint(pt, None, smooth, name, **kwargs)
|
||||
pt, smooth, name, kwargs = points[-1]
|
||||
if pt is None:
|
||||
# special quadratic contour with no on-curve points:
|
||||
# we need to skip the "None" point. See also the Pen
|
||||
# protocol's qCurveTo() method and fontTools.pens.basePen
|
||||
pass
|
||||
else:
|
||||
pen.addPoint(pt, segment_type, smooth, name, **kwargs)
|
||||
else:
|
||||
# 'curve' segments must have been converted to 'qcurve' by now
|
||||
raise AssertionError(
|
||||
"unexpected segment type: %r" % segment_type)
|
||||
for (pt, smooth, name, kwargs) in last_offcurves:
|
||||
pen.addPoint(pt, None, smooth, name, **kwargs)
|
||||
pen.endPath()
|
||||
|
||||
def addComponent(self, baseGlyphName, transformation):
|
||||
assert self.currentPath is None
|
||||
self.pen.addComponent(baseGlyphName, transformation)
|
13
fonttools-merge/Tests/cu2qu/__init__.py
Normal file
13
fonttools-merge/Tests/cu2qu/__init__.py
Normal file
@ -0,0 +1,13 @@
|
||||
import os
|
||||
from fontTools.ufoLib.glifLib import GlyphSet
|
||||
import pkg_resources
|
||||
|
||||
DATADIR = os.path.join(os.path.dirname(__file__), 'data')
|
||||
CUBIC_GLYPHS = GlyphSet(os.path.join(DATADIR, 'cubic'))
|
||||
QUAD_GLYPHS = GlyphSet(os.path.join(DATADIR, 'quadratic'))
|
||||
|
||||
import unittest
|
||||
# Python 3 renamed 'assertRaisesRegexp' to 'assertRaisesRegex', and fires
|
||||
# deprecation warnings if a program uses the old name.
|
||||
if not hasattr(unittest.TestCase, 'assertRaisesRegex'):
|
||||
unittest.TestCase.assertRaisesRegex = unittest.TestCase.assertRaisesRegexp
|
180
fonttools-merge/Tests/cu2qu/cu2qu_test.py
Normal file
180
fonttools-merge/Tests/cu2qu/cu2qu_test.py
Normal file
@ -0,0 +1,180 @@
|
||||
# Copyright 2016 Google Inc. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
|
||||
from __future__ import print_function, division, absolute_import
|
||||
|
||||
import collections
|
||||
import math
|
||||
import unittest
|
||||
import os
|
||||
import json
|
||||
|
||||
from cu2qu import curve_to_quadratic, curves_to_quadratic
|
||||
from . import DATADIR
|
||||
|
||||
|
||||
MAX_ERR = 5
|
||||
|
||||
|
||||
class CurveToQuadraticTest(unittest.TestCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
"""Do the curve conversion ahead of time, and run tests on results."""
|
||||
with open(os.path.join(DATADIR, "curves.json"), "r") as fp:
|
||||
curves = json.load(fp)
|
||||
|
||||
cls.single_splines = [
|
||||
curve_to_quadratic(c, MAX_ERR) for c in curves]
|
||||
cls.single_errors = [
|
||||
cls.curve_spline_dist(c, s)
|
||||
for c, s in zip(curves, cls.single_splines)]
|
||||
|
||||
curve_groups = [curves[i:i + 3] for i in range(0, 300, 3)]
|
||||
cls.compat_splines = [
|
||||
curves_to_quadratic(c, [MAX_ERR] * 3) for c in curve_groups]
|
||||
cls.compat_errors = [
|
||||
[cls.curve_spline_dist(c, s) for c, s in zip(curve_group, splines)]
|
||||
for curve_group, splines in zip(curve_groups, cls.compat_splines)]
|
||||
|
||||
cls.results = []
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
"""Print stats from conversion, as determined during tests."""
|
||||
|
||||
for tag, results in cls.results:
|
||||
print('\n%s\n%s' % (
|
||||
tag, '\n'.join(
|
||||
'%s: %s (%d)' % (k, '#' * (v // 10 + 1), v)
|
||||
for k, v in sorted(results.items()))))
|
||||
|
||||
def test_results_unchanged(self):
|
||||
"""Tests that the results of conversion haven't changed since the time
|
||||
of this test's writing. Useful as a quick check whenever one modifies
|
||||
the conversion algorithm.
|
||||
"""
|
||||
|
||||
expected = {
|
||||
2: 6,
|
||||
3: 26,
|
||||
4: 82,
|
||||
5: 232,
|
||||
6: 360,
|
||||
7: 266,
|
||||
8: 28}
|
||||
|
||||
results = collections.defaultdict(int)
|
||||
for spline in self.single_splines:
|
||||
n = len(spline) - 2
|
||||
results[n] += 1
|
||||
self.assertEqual(results, expected)
|
||||
self.results.append(('single spline lengths', results))
|
||||
|
||||
def test_results_unchanged_multiple(self):
|
||||
"""Test that conversion results are unchanged for multiple curves."""
|
||||
|
||||
expected = {
|
||||
5: 11,
|
||||
6: 35,
|
||||
7: 49,
|
||||
8: 5}
|
||||
|
||||
results = collections.defaultdict(int)
|
||||
for splines in self.compat_splines:
|
||||
n = len(splines[0]) - 2
|
||||
for spline in splines[1:]:
|
||||
self.assertEqual(len(spline) - 2, n,
|
||||
'Got incompatible conversion results')
|
||||
results[n] += 1
|
||||
self.assertEqual(results, expected)
|
||||
self.results.append(('compatible spline lengths', results))
|
||||
|
||||
def test_does_not_exceed_tolerance(self):
|
||||
"""Test that conversion results do not exceed given error tolerance."""
|
||||
|
||||
results = collections.defaultdict(int)
|
||||
for error in self.single_errors:
|
||||
results[round(error, 1)] += 1
|
||||
self.assertLessEqual(error, MAX_ERR)
|
||||
self.results.append(('single errors', results))
|
||||
|
||||
def test_does_not_exceed_tolerance_multiple(self):
|
||||
"""Test that error tolerance isn't exceeded for multiple curves."""
|
||||
|
||||
results = collections.defaultdict(int)
|
||||
for errors in self.compat_errors:
|
||||
for error in errors:
|
||||
results[round(error, 1)] += 1
|
||||
self.assertLessEqual(error, MAX_ERR)
|
||||
self.results.append(('compatible errors', results))
|
||||
|
||||
@classmethod
|
||||
def curve_spline_dist(cls, bezier, spline, total_steps=20):
|
||||
"""Max distance between a bezier and quadratic spline at sampled points."""
|
||||
|
||||
error = 0
|
||||
n = len(spline) - 2
|
||||
steps = total_steps // n
|
||||
for i in range(0, n - 1):
|
||||
p1 = spline[0] if i == 0 else p3
|
||||
p2 = spline[i + 1]
|
||||
if i < n - 1:
|
||||
p3 = cls.lerp(spline[i + 1], spline[i + 2], 0.5)
|
||||
else:
|
||||
p3 = spline[n + 2]
|
||||
segment = p1, p2, p3
|
||||
for j in range(steps):
|
||||
error = max(error, cls.dist(
|
||||
cls.cubic_bezier_at(bezier, (j / steps + i) / n),
|
||||
cls.quadratic_bezier_at(segment, j / steps)))
|
||||
return error
|
||||
|
||||
@classmethod
|
||||
def lerp(cls, p1, p2, t):
|
||||
(x1, y1), (x2, y2) = p1, p2
|
||||
return x1 + (x2 - x1) * t, y1 + (y2 - y1) * t
|
||||
|
||||
@classmethod
|
||||
def dist(cls, p1, p2):
|
||||
(x1, y1), (x2, y2) = p1, p2
|
||||
return math.hypot(x1 - x2, y1 - y2)
|
||||
|
||||
@classmethod
|
||||
def quadratic_bezier_at(cls, b, t):
|
||||
(x1, y1), (x2, y2), (x3, y3) = b
|
||||
_t = 1 - t
|
||||
t2 = t * t
|
||||
_t2 = _t * _t
|
||||
_2_t_t = 2 * t * _t
|
||||
return (_t2 * x1 + _2_t_t * x2 + t2 * x3,
|
||||
_t2 * y1 + _2_t_t * y2 + t2 * y3)
|
||||
|
||||
@classmethod
|
||||
def cubic_bezier_at(cls, b, t):
|
||||
(x1, y1), (x2, y2), (x3, y3), (x4, y4) = b
|
||||
_t = 1 - t
|
||||
t2 = t * t
|
||||
_t2 = _t * _t
|
||||
t3 = t * t2
|
||||
_t3 = _t * _t2
|
||||
_3_t2_t = 3 * t2 * _t
|
||||
_3_t_t2 = 3 * t * _t2
|
||||
return (_t3 * x1 + _3_t_t2 * x2 + _3_t2_t * x3 + t3 * x4,
|
||||
_t3 * y1 + _3_t_t2 * y2 + _3_t2_t * y3 + t3 * y4)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
@ -0,0 +1,205 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>ascender</key>
|
||||
<integer>2146</integer>
|
||||
<key>capHeight</key>
|
||||
<integer>1456</integer>
|
||||
<key>copyright</key>
|
||||
<string>Copyright 2011 Google Inc. All Rights Reserved.</string>
|
||||
<key>descender</key>
|
||||
<integer>-555</integer>
|
||||
<key>familyName</key>
|
||||
<string>RobotoSubset</string>
|
||||
<key>italicAngle</key>
|
||||
<integer>0</integer>
|
||||
<key>openTypeHeadCreated</key>
|
||||
<string>2008/09/12 12:29:34</string>
|
||||
<key>openTypeHeadFlags</key>
|
||||
<array>
|
||||
<integer>0</integer>
|
||||
<integer>1</integer>
|
||||
<integer>3</integer>
|
||||
<integer>4</integer>
|
||||
</array>
|
||||
<key>openTypeHeadLowestRecPPEM</key>
|
||||
<integer>9</integer>
|
||||
<key>openTypeHheaAscender</key>
|
||||
<integer>1900</integer>
|
||||
<key>openTypeHheaDescender</key>
|
||||
<integer>-500</integer>
|
||||
<key>openTypeHheaLineGap</key>
|
||||
<integer>0</integer>
|
||||
<key>openTypeNameDescription</key>
|
||||
<string></string>
|
||||
<key>openTypeNameDesigner</key>
|
||||
<string></string>
|
||||
<key>openTypeNameDesignerURL</key>
|
||||
<string></string>
|
||||
<key>openTypeNameLicense</key>
|
||||
<string></string>
|
||||
<key>openTypeNameLicenseURL</key>
|
||||
<string></string>
|
||||
<key>openTypeNameManufacturer</key>
|
||||
<string></string>
|
||||
<key>openTypeNameManufacturerURL</key>
|
||||
<string></string>
|
||||
<key>openTypeNameSampleText</key>
|
||||
<string></string>
|
||||
<key>openTypeOS2CodePageRanges</key>
|
||||
<array>
|
||||
<integer>0</integer>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
<integer>3</integer>
|
||||
<integer>4</integer>
|
||||
<integer>7</integer>
|
||||
<integer>8</integer>
|
||||
<integer>29</integer>
|
||||
</array>
|
||||
<key>openTypeOS2FamilyClass</key>
|
||||
<array>
|
||||
<integer>0</integer>
|
||||
<integer>0</integer>
|
||||
</array>
|
||||
<key>openTypeOS2Panose</key>
|
||||
<array>
|
||||
<integer>0</integer>
|
||||
<integer>0</integer>
|
||||
<integer>0</integer>
|
||||
<integer>0</integer>
|
||||
<integer>0</integer>
|
||||
<integer>0</integer>
|
||||
<integer>0</integer>
|
||||
<integer>0</integer>
|
||||
<integer>0</integer>
|
||||
<integer>0</integer>
|
||||
</array>
|
||||
<key>openTypeOS2Selection</key>
|
||||
<array>
|
||||
</array>
|
||||
<key>openTypeOS2StrikeoutPosition</key>
|
||||
<integer>512</integer>
|
||||
<key>openTypeOS2StrikeoutSize</key>
|
||||
<integer>102</integer>
|
||||
<key>openTypeOS2SubscriptXOffset</key>
|
||||
<integer>0</integer>
|
||||
<key>openTypeOS2SubscriptXSize</key>
|
||||
<integer>1434</integer>
|
||||
<key>openTypeOS2SubscriptYOffset</key>
|
||||
<integer>287</integer>
|
||||
<key>openTypeOS2SubscriptYSize</key>
|
||||
<integer>1331</integer>
|
||||
<key>openTypeOS2SuperscriptXOffset</key>
|
||||
<integer>0</integer>
|
||||
<key>openTypeOS2SuperscriptXSize</key>
|
||||
<integer>1434</integer>
|
||||
<key>openTypeOS2SuperscriptYOffset</key>
|
||||
<integer>977</integer>
|
||||
<key>openTypeOS2SuperscriptYSize</key>
|
||||
<integer>1331</integer>
|
||||
<key>openTypeOS2Type</key>
|
||||
<array>
|
||||
</array>
|
||||
<key>openTypeOS2TypoAscender</key>
|
||||
<integer>2146</integer>
|
||||
<key>openTypeOS2TypoDescender</key>
|
||||
<integer>-555</integer>
|
||||
<key>openTypeOS2TypoLineGap</key>
|
||||
<integer>0</integer>
|
||||
<key>openTypeOS2UnicodeRanges</key>
|
||||
<array>
|
||||
<integer>0</integer>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
<integer>3</integer>
|
||||
<integer>4</integer>
|
||||
<integer>5</integer>
|
||||
<integer>6</integer>
|
||||
<integer>7</integer>
|
||||
<integer>9</integer>
|
||||
<integer>11</integer>
|
||||
<integer>29</integer>
|
||||
<integer>30</integer>
|
||||
<integer>31</integer>
|
||||
<integer>32</integer>
|
||||
<integer>33</integer>
|
||||
<integer>34</integer>
|
||||
<integer>35</integer>
|
||||
<integer>36</integer>
|
||||
<integer>37</integer>
|
||||
<integer>38</integer>
|
||||
<integer>40</integer>
|
||||
<integer>45</integer>
|
||||
<integer>60</integer>
|
||||
<integer>62</integer>
|
||||
<integer>64</integer>
|
||||
<integer>69</integer>
|
||||
</array>
|
||||
<key>openTypeOS2VendorID</key>
|
||||
<string>GOOG</string>
|
||||
<key>openTypeOS2WeightClass</key>
|
||||
<integer>700</integer>
|
||||
<key>openTypeOS2WidthClass</key>
|
||||
<integer>5</integer>
|
||||
<key>openTypeOS2WinAscent</key>
|
||||
<integer>2146</integer>
|
||||
<key>openTypeOS2WinDescent</key>
|
||||
<integer>555</integer>
|
||||
<key>postscriptBlueFuzz</key>
|
||||
<integer>1</integer>
|
||||
<key>postscriptBlueScale</key>
|
||||
<real>0.039625</real>
|
||||
<key>postscriptBlueShift</key>
|
||||
<integer>7</integer>
|
||||
<key>postscriptBlueValues</key>
|
||||
<array>
|
||||
<integer>-20</integer>
|
||||
<integer>0</integer>
|
||||
<integer>1082</integer>
|
||||
<integer>1102</integer>
|
||||
<integer>1456</integer>
|
||||
<integer>1476</integer>
|
||||
</array>
|
||||
<key>postscriptDefaultCharacter</key>
|
||||
<string>space</string>
|
||||
<key>postscriptForceBold</key>
|
||||
<false/>
|
||||
<key>postscriptIsFixedPitch</key>
|
||||
<false/>
|
||||
<key>postscriptOtherBlues</key>
|
||||
<array>
|
||||
<integer>-436</integer>
|
||||
<integer>-416</integer>
|
||||
</array>
|
||||
<key>postscriptStemSnapH</key>
|
||||
<array>
|
||||
<integer>250</integer>
|
||||
</array>
|
||||
<key>postscriptStemSnapV</key>
|
||||
<array>
|
||||
<integer>316</integer>
|
||||
</array>
|
||||
<key>postscriptUnderlinePosition</key>
|
||||
<integer>-150</integer>
|
||||
<key>postscriptUnderlineThickness</key>
|
||||
<integer>100</integer>
|
||||
<key>postscriptUniqueID</key>
|
||||
<integer>-1</integer>
|
||||
<key>styleName</key>
|
||||
<string>Bold</string>
|
||||
<key>trademark</key>
|
||||
<string></string>
|
||||
<key>unitsPerEm</key>
|
||||
<integer>2048</integer>
|
||||
<key>versionMajor</key>
|
||||
<integer>1</integer>
|
||||
<key>versionMinor</key>
|
||||
<integer>0</integer>
|
||||
<key>xHeight</key>
|
||||
<integer>1082</integer>
|
||||
<key>year</key>
|
||||
<integer>2017</integer>
|
||||
</dict>
|
||||
</plist>
|
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="A" format="2">
|
||||
<unicode hex="0041"/>
|
||||
<advance width="1390"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="727" y="1150" type="line"/>
|
||||
<point x="764" y="1456" type="line"/>
|
||||
<point x="537" y="1456" type="line"/>
|
||||
<point x="0" y="0" type="line"/>
|
||||
<point x="358" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1032" y="0" type="line"/>
|
||||
<point x="1391" y="0" type="line"/>
|
||||
<point x="851" y="1456" type="line"/>
|
||||
<point x="621" y="1456" type="line"/>
|
||||
<point x="662" y="1150" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1018" y="543" type="line"/>
|
||||
<point x="262" y="543" type="line"/>
|
||||
<point x="262" y="272" type="line"/>
|
||||
<point x="1018" y="272" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="B" format="2">
|
||||
<unicode hex="0042"/>
|
||||
<advance width="1317"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="703" y="619" type="line"/>
|
||||
<point x="797" y="710" type="line"/>
|
||||
<point x="1092" y="713"/>
|
||||
<point x="1199" y="875"/>
|
||||
<point x="1199" y="1054" type="curve"/>
|
||||
<point x="1199" y="1326"/>
|
||||
<point x="988" y="1456"/>
|
||||
<point x="636" y="1456" type="curve"/>
|
||||
<point x="117" y="1456" type="line"/>
|
||||
<point x="117" y="0" type="line"/>
|
||||
<point x="452" y="0" type="line"/>
|
||||
<point x="452" y="1185" type="line"/>
|
||||
<point x="636" y="1185" type="line"/>
|
||||
<point x="795" y="1185"/>
|
||||
<point x="864" y="1135"/>
|
||||
<point x="864" y="1012" type="curve"/>
|
||||
<point x="864" y="904"/>
|
||||
<point x="797" y="849"/>
|
||||
<point x="635" y="849" type="curve"/>
|
||||
<point x="328" y="849" type="line"/>
|
||||
<point x="330" y="619" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="690" y="0" type="line"/>
|
||||
<point x="1042" y="0"/>
|
||||
<point x="1230" y="145"/>
|
||||
<point x="1230" y="431" type="curve" smooth="yes"/>
|
||||
<point x="1230" y="598"/>
|
||||
<point x="1129" y="769"/>
|
||||
<point x="846" y="757" type="curve"/>
|
||||
<point x="768" y="849" type="line"/>
|
||||
<point x="412" y="849" type="line"/>
|
||||
<point x="410" y="619" type="line"/>
|
||||
<point x="703" y="619" type="line" smooth="yes"/>
|
||||
<point x="842" y="619"/>
|
||||
<point x="896" y="548"/>
|
||||
<point x="896" y="436" type="curve" smooth="yes"/>
|
||||
<point x="896" y="344"/>
|
||||
<point x="836" y="270"/>
|
||||
<point x="690" y="270" type="curve" smooth="yes"/>
|
||||
<point x="365" y="270" type="line"/>
|
||||
<point x="245" y="0" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="C" format="2">
|
||||
<unicode hex="0043"/>
|
||||
<advance width="1343"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="950" y="493" type="line"/>
|
||||
<point x="942" y="329"/>
|
||||
<point x="856" y="255"/>
|
||||
<point x="687" y="255" type="curve" smooth="yes"/>
|
||||
<point x="489" y="255"/>
|
||||
<point x="415" y="379"/>
|
||||
<point x="415" y="688" type="curve" smooth="yes"/>
|
||||
<point x="415" y="769" type="line" smooth="yes"/>
|
||||
<point x="415" y="1079"/>
|
||||
<point x="503" y="1202"/>
|
||||
<point x="685" y="1202" type="curve" smooth="yes"/>
|
||||
<point x="875" y="1202"/>
|
||||
<point x="944" y="1117"/>
|
||||
<point x="952" y="953" type="curve"/>
|
||||
<point x="1286" y="953" type="line"/>
|
||||
<point x="1259" y="1255"/>
|
||||
<point x="1060" y="1477"/>
|
||||
<point x="685" y="1477" type="curve" smooth="yes"/>
|
||||
<point x="316" y="1477"/>
|
||||
<point x="75" y="1205"/>
|
||||
<point x="75" y="767" type="curve"/>
|
||||
<point x="75" y="688" type="line"/>
|
||||
<point x="75" y="250"/>
|
||||
<point x="303" y="-20"/>
|
||||
<point x="687" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="1046" y="-20"/>
|
||||
<point x="1268" y="188"/>
|
||||
<point x="1284" y="493" type="curve"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="D" format="2">
|
||||
<unicode hex="0044"/>
|
||||
<advance width="1327"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="581" y="0" type="line"/>
|
||||
<point x="973" y="0"/>
|
||||
<point x="1251" y="285"/>
|
||||
<point x="1251" y="697" type="curve"/>
|
||||
<point x="1251" y="758" type="line"/>
|
||||
<point x="1251" y="1170"/>
|
||||
<point x="973" y="1456"/>
|
||||
<point x="579" y="1456" type="curve"/>
|
||||
<point x="255" y="1456" type="line"/>
|
||||
<point x="255" y="1185" type="line"/>
|
||||
<point x="579" y="1185" type="line"/>
|
||||
<point x="794" y="1185"/>
|
||||
<point x="910" y="1039"/>
|
||||
<point x="910" y="760" type="curve"/>
|
||||
<point x="910" y="697" type="line" smooth="yes"/>
|
||||
<point x="910" y="416"/>
|
||||
<point x="793" y="270"/>
|
||||
<point x="581" y="270" type="curve"/>
|
||||
<point x="263" y="270" type="line"/>
|
||||
<point x="261" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="452" y="1456" type="line"/>
|
||||
<point x="117" y="1456" type="line"/>
|
||||
<point x="117" y="0" type="line"/>
|
||||
<point x="452" y="0" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="E" format="2">
|
||||
<unicode hex="0045"/>
|
||||
<advance width="1148"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="1111" y="270" type="line"/>
|
||||
<point x="337" y="270" type="line"/>
|
||||
<point x="337" y="0" type="line"/>
|
||||
<point x="1111" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="452" y="1456" type="line"/>
|
||||
<point x="117" y="1456" type="line"/>
|
||||
<point x="117" y="0" type="line"/>
|
||||
<point x="452" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1011" y="878" type="line"/>
|
||||
<point x="337" y="878" type="line"/>
|
||||
<point x="337" y="617" type="line"/>
|
||||
<point x="1011" y="617" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1112" y="1456" type="line"/>
|
||||
<point x="337" y="1456" type="line"/>
|
||||
<point x="337" y="1185" type="line"/>
|
||||
<point x="1112" y="1185" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="F" format="2">
|
||||
<unicode hex="0046"/>
|
||||
<advance width="1121"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="452" y="1456" type="line"/>
|
||||
<point x="117" y="1456" type="line"/>
|
||||
<point x="117" y="0" type="line"/>
|
||||
<point x="452" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1021" y="850" type="line"/>
|
||||
<point x="359" y="850" type="line"/>
|
||||
<point x="359" y="580" type="line"/>
|
||||
<point x="1021" y="580" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1083" y="1456" type="line"/>
|
||||
<point x="359" y="1456" type="line"/>
|
||||
<point x="359" y="1185" type="line"/>
|
||||
<point x="1083" y="1185" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="G" format="2">
|
||||
<unicode hex="0047"/>
|
||||
<advance width="1396"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="1296" y="778" type="line"/>
|
||||
<point x="708" y="778" type="line"/>
|
||||
<point x="708" y="537" type="line"/>
|
||||
<point x="961" y="537" type="line"/>
|
||||
<point x="961" y="311" type="line"/>
|
||||
<point x="931" y="284"/>
|
||||
<point x="868" y="250"/>
|
||||
<point x="746" y="250" type="curve" smooth="yes"/>
|
||||
<point x="529" y="250"/>
|
||||
<point x="426" y="396"/>
|
||||
<point x="426" y="687" type="curve" smooth="yes"/>
|
||||
<point x="426" y="770" type="line" smooth="yes"/>
|
||||
<point x="426" y="1063"/>
|
||||
<point x="535" y="1207"/>
|
||||
<point x="715" y="1207" type="curve" smooth="yes"/>
|
||||
<point x="883" y="1207"/>
|
||||
<point x="951" y="1125"/>
|
||||
<point x="972" y="981" type="curve"/>
|
||||
<point x="1295" y="981" type="line"/>
|
||||
<point x="1265" y="1272"/>
|
||||
<point x="1098" y="1477"/>
|
||||
<point x="704" y="1477" type="curve" smooth="yes"/>
|
||||
<point x="340" y="1477"/>
|
||||
<point x="86" y="1221"/>
|
||||
<point x="86" y="768" type="curve" smooth="yes"/>
|
||||
<point x="86" y="687" type="line" smooth="yes"/>
|
||||
<point x="86" y="234"/>
|
||||
<point x="340" y="-20"/>
|
||||
<point x="724" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="1040" y="-20"/>
|
||||
<point x="1223" y="98"/>
|
||||
<point x="1296" y="180" type="curve"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="H" format="2">
|
||||
<unicode hex="0048"/>
|
||||
<advance width="1442"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="1094" y="878" type="line"/>
|
||||
<point x="345" y="878" type="line"/>
|
||||
<point x="345" y="608" type="line"/>
|
||||
<point x="1094" y="608" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="452" y="1456" type="line"/>
|
||||
<point x="117" y="1456" type="line"/>
|
||||
<point x="117" y="0" type="line"/>
|
||||
<point x="452" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1324" y="1456" type="line"/>
|
||||
<point x="990" y="1456" type="line"/>
|
||||
<point x="990" y="0" type="line"/>
|
||||
<point x="1324" y="0" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="I" format="2">
|
||||
<unicode hex="0049"/>
|
||||
<advance width="612"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="473" y="1456" type="line"/>
|
||||
<point x="139" y="1456" type="line"/>
|
||||
<point x="139" y="0" type="line"/>
|
||||
<point x="473" y="0" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="J" format="2">
|
||||
<unicode hex="004A"/>
|
||||
<advance width="1149"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="699" y="457" type="line"/>
|
||||
<point x="699" y="327"/>
|
||||
<point x="638" y="250"/>
|
||||
<point x="536" y="250" type="curve" smooth="yes"/>
|
||||
<point x="433" y="250"/>
|
||||
<point x="374" y="292"/>
|
||||
<point x="374" y="440" type="curve"/>
|
||||
<point x="38" y="440" type="line"/>
|
||||
<point x="38" y="124"/>
|
||||
<point x="246" y="-20"/>
|
||||
<point x="536" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="816" y="-20"/>
|
||||
<point x="1033" y="165"/>
|
||||
<point x="1033" y="457" type="curve"/>
|
||||
<point x="1033" y="1456" type="line"/>
|
||||
<point x="699" y="1456" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="K" format="2">
|
||||
<unicode hex="004B"/>
|
||||
<advance width="1307"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="452" y="1456" type="line"/>
|
||||
<point x="117" y="1456" type="line"/>
|
||||
<point x="117" y="0" type="line"/>
|
||||
<point x="452" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1322" y="1456" type="line"/>
|
||||
<point x="909" y="1456" type="line"/>
|
||||
<point x="577" y="999" type="line"/>
|
||||
<point x="361" y="679" type="line"/>
|
||||
<point x="422" y="357" type="line"/>
|
||||
<point x="754" y="718" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="930" y="0" type="line"/>
|
||||
<point x="1327" y="0" type="line"/>
|
||||
<point x="794" y="857" type="line"/>
|
||||
<point x="538" y="656" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="L" format="2">
|
||||
<unicode hex="004C"/>
|
||||
<advance width="1110"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="1071" y="270" type="line"/>
|
||||
<point x="337" y="270" type="line"/>
|
||||
<point x="337" y="0" type="line"/>
|
||||
<point x="1071" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="452" y="1456" type="line"/>
|
||||
<point x="117" y="1456" type="line"/>
|
||||
<point x="117" y="0" type="line"/>
|
||||
<point x="452" y="0" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="M" format="2">
|
||||
<unicode hex="004D"/>
|
||||
<advance width="1795"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="279" y="1456" type="line"/>
|
||||
<point x="784" y="0" type="line"/>
|
||||
<point x="1008" y="0" type="line"/>
|
||||
<point x="1513" y="1456" type="line"/>
|
||||
<point x="1236" y="1456" type="line"/>
|
||||
<point x="896" y="443" type="line"/>
|
||||
<point x="556" y="1456" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="117" y="1456" type="line"/>
|
||||
<point x="117" y="0" type="line"/>
|
||||
<point x="452" y="0" type="line"/>
|
||||
<point x="452" y="340" type="line"/>
|
||||
<point x="400" y="1456" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1392" y="1456" type="line"/>
|
||||
<point x="1340" y="340" type="line"/>
|
||||
<point x="1340" y="0" type="line"/>
|
||||
<point x="1676" y="0" type="line"/>
|
||||
<point x="1676" y="1456" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="N" format="2">
|
||||
<unicode hex="004E"/>
|
||||
<advance width="1441"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="1323" y="1456" type="line"/>
|
||||
<point x="989" y="1456" type="line"/>
|
||||
<point x="989" y="550" type="line"/>
|
||||
<point x="452" y="1456" type="line"/>
|
||||
<point x="117" y="1456" type="line"/>
|
||||
<point x="117" y="0" type="line"/>
|
||||
<point x="452" y="0" type="line"/>
|
||||
<point x="452" y="906" type="line"/>
|
||||
<point x="989" y="0" type="line"/>
|
||||
<point x="1323" y="0" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="O" format="2">
|
||||
<unicode hex="004F"/>
|
||||
<advance width="1414"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="1338" y="757" type="line"/>
|
||||
<point x="1338" y="1202"/>
|
||||
<point x="1076" y="1476"/>
|
||||
<point x="706" y="1476" type="curve" smooth="yes"/>
|
||||
<point x="334" y="1476"/>
|
||||
<point x="75" y="1202"/>
|
||||
<point x="75" y="757" type="curve"/>
|
||||
<point x="75" y="698" type="line"/>
|
||||
<point x="75" y="253"/>
|
||||
<point x="336" y="-20"/>
|
||||
<point x="708" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="1078" y="-20"/>
|
||||
<point x="1338" y="253"/>
|
||||
<point x="1338" y="698" type="curve"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="998" y="698" type="line"/>
|
||||
<point x="998" y="413"/>
|
||||
<point x="894" y="254"/>
|
||||
<point x="708" y="254" type="curve" smooth="yes"/>
|
||||
<point x="517" y="254"/>
|
||||
<point x="415" y="413"/>
|
||||
<point x="415" y="698" type="curve" smooth="yes"/>
|
||||
<point x="415" y="759" type="line" smooth="yes"/>
|
||||
<point x="415" y="1047"/>
|
||||
<point x="515" y="1201"/>
|
||||
<point x="706" y="1201" type="curve" smooth="yes"/>
|
||||
<point x="892" y="1201"/>
|
||||
<point x="998" y="1047"/>
|
||||
<point x="998" y="759" type="curve"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="P" format="2">
|
||||
<unicode hex="0050"/>
|
||||
<advance width="1330"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="694" y="494" type="line"/>
|
||||
<point x="1042" y="494"/>
|
||||
<point x="1253" y="680"/>
|
||||
<point x="1253" y="962" type="curve"/>
|
||||
<point x="1253" y="1247"/>
|
||||
<point x="1042" y="1456"/>
|
||||
<point x="694" y="1456" type="curve"/>
|
||||
<point x="117" y="1456" type="line"/>
|
||||
<point x="117" y="0" type="line"/>
|
||||
<point x="452" y="0" type="line"/>
|
||||
<point x="452" y="1185" type="line"/>
|
||||
<point x="694" y="1185" type="line"/>
|
||||
<point x="849" y="1185"/>
|
||||
<point x="914" y="1079"/>
|
||||
<point x="914" y="960" type="curve"/>
|
||||
<point x="914" y="847"/>
|
||||
<point x="849" y="765"/>
|
||||
<point x="694" y="765" type="curve"/>
|
||||
<point x="330" y="765" type="line"/>
|
||||
<point x="330" y="494" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="Q" format="2">
|
||||
<unicode hex="0051"/>
|
||||
<advance width="1414"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="922" y="240" type="line"/>
|
||||
<point x="720" y="56" type="line"/>
|
||||
<point x="1116" y="-266" type="line"/>
|
||||
<point x="1325" y="-82" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1339" y="757" type="line"/>
|
||||
<point x="1339" y="1202"/>
|
||||
<point x="1077" y="1476"/>
|
||||
<point x="707" y="1476" type="curve" smooth="yes"/>
|
||||
<point x="335" y="1476"/>
|
||||
<point x="76" y="1202"/>
|
||||
<point x="76" y="757" type="curve"/>
|
||||
<point x="76" y="698" type="line"/>
|
||||
<point x="76" y="253"/>
|
||||
<point x="337" y="-20"/>
|
||||
<point x="709" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="1079" y="-20"/>
|
||||
<point x="1339" y="253"/>
|
||||
<point x="1339" y="698" type="curve"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="999" y="698" type="line"/>
|
||||
<point x="999" y="413"/>
|
||||
<point x="895" y="254"/>
|
||||
<point x="709" y="254" type="curve" smooth="yes"/>
|
||||
<point x="518" y="254"/>
|
||||
<point x="416" y="413"/>
|
||||
<point x="416" y="698" type="curve" smooth="yes"/>
|
||||
<point x="416" y="759" type="line" smooth="yes"/>
|
||||
<point x="416" y="1047"/>
|
||||
<point x="516" y="1201"/>
|
||||
<point x="707" y="1201" type="curve" smooth="yes"/>
|
||||
<point x="893" y="1201"/>
|
||||
<point x="999" y="1047"/>
|
||||
<point x="999" y="759" type="curve"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="R" format="2">
|
||||
<unicode hex="0052"/>
|
||||
<advance width="1327"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point name="hr00" x="117" y="1456" type="line"/>
|
||||
<point x="117" y="0" type="line"/>
|
||||
<point x="452" y="0" type="line"/>
|
||||
<point x="452" y="1185" type="line"/>
|
||||
<point x="680" y="1185" type="line" smooth="yes"/>
|
||||
<point x="820" y="1185"/>
|
||||
<point x="892" y="1109"/>
|
||||
<point x="892" y="984" type="curve" smooth="yes"/>
|
||||
<point x="892" y="860"/>
|
||||
<point x="821" y="785"/>
|
||||
<point x="680" y="785" type="curve" smooth="yes"/>
|
||||
<point x="328" y="785" type="line"/>
|
||||
<point x="330" y="514" type="line"/>
|
||||
<point x="806" y="514" type="line"/>
|
||||
<point x="915" y="579" type="line"/>
|
||||
<point x="1102" y="649"/>
|
||||
<point x="1227" y="766"/>
|
||||
<point x="1227" y="1016" type="curve" smooth="yes"/>
|
||||
<point x="1227" y="1303"/>
|
||||
<point x="1016" y="1456"/>
|
||||
<point x="680" y="1456" type="curve" smooth="yes"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="919" y="0" type="line"/>
|
||||
<point x="1278" y="0" type="line"/>
|
||||
<point x="1278" y="15" type="line"/>
|
||||
<point x="949" y="646" type="line"/>
|
||||
<point x="594" y="644" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="S" format="2">
|
||||
<unicode hex="0053"/>
|
||||
<advance width="1275"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point name="hr00" x="869" y="387" type="curve" smooth="yes"/>
|
||||
<point x="869" y="309"/>
|
||||
<point x="809" y="244"/>
|
||||
<point x="669" y="244" type="curve" smooth="yes"/>
|
||||
<point x="502" y="244"/>
|
||||
<point x="402" y="301"/>
|
||||
<point x="402" y="472" type="curve"/>
|
||||
<point x="66" y="472" type="line"/>
|
||||
<point x="66" y="127"/>
|
||||
<point x="373" y="-20"/>
|
||||
<point x="669" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="993" y="-20"/>
|
||||
<point x="1204" y="127"/>
|
||||
<point x="1204" y="389" type="curve"/>
|
||||
<point x="1204" y="634"/>
|
||||
<point x="1030" y="772"/>
|
||||
<point x="718" y="870" type="curve"/>
|
||||
<point x="545" y="924"/>
|
||||
<point x="444" y="977"/>
|
||||
<point x="444" y="1064" type="curve"/>
|
||||
<point x="444" y="1144"/>
|
||||
<point x="515" y="1211"/>
|
||||
<point x="656" y="1211" type="curve" smooth="yes"/>
|
||||
<point x="800" y="1211"/>
|
||||
<point x="870" y="1134"/>
|
||||
<point x="870" y="1024" type="curve"/>
|
||||
<point x="1204" y="1024" type="line"/>
|
||||
<point x="1204" y="1299"/>
|
||||
<point x="983" y="1476"/>
|
||||
<point x="663" y="1476" type="curve" smooth="yes"/>
|
||||
<point x="343" y="1476"/>
|
||||
<point x="110" y="1317"/>
|
||||
<point x="110" y="1067" type="curve"/>
|
||||
<point x="110" y="805"/>
|
||||
<point x="344" y="685"/>
|
||||
<point x="603" y="600" type="curve"/>
|
||||
<point x="827" y="527"/>
|
||||
<point x="869" y="478"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="T" format="2">
|
||||
<unicode hex="0054"/>
|
||||
<advance width="1284"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="805" y="1456" type="line"/>
|
||||
<point x="470" y="1456" type="line"/>
|
||||
<point x="470" y="0" type="line"/>
|
||||
<point x="805" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1245" y="1456" type="line"/>
|
||||
<point x="38" y="1456" type="line"/>
|
||||
<point x="38" y="1185" type="line"/>
|
||||
<point x="1245" y="1185" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="U" format="2">
|
||||
<unicode hex="0055"/>
|
||||
<advance width="1357"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="911" y="1456" type="line"/>
|
||||
<point x="911" y="505" type="line" smooth="yes"/>
|
||||
<point x="911" y="325"/>
|
||||
<point x="829" y="250"/>
|
||||
<point x="679" y="250" type="curve" smooth="yes"/>
|
||||
<point x="530" y="250"/>
|
||||
<point x="445" y="325"/>
|
||||
<point x="445" y="505" type="curve" smooth="yes"/>
|
||||
<point x="445" y="1456" type="line"/>
|
||||
<point x="109" y="1456" type="line"/>
|
||||
<point x="109" y="505" type="line"/>
|
||||
<point x="109" y="164"/>
|
||||
<point x="342" y="-20"/>
|
||||
<point x="679" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="1017" y="-20"/>
|
||||
<point x="1246" y="164"/>
|
||||
<point x="1246" y="505" type="curve"/>
|
||||
<point x="1246" y="1456" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="V" format="2">
|
||||
<unicode hex="0056"/>
|
||||
<advance width="1349"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="659" y="343" type="line"/>
|
||||
<point x="610" y="0" type="line"/>
|
||||
<point x="854" y="0" type="line"/>
|
||||
<point x="1350" y="1456" type="line"/>
|
||||
<point x="976" y="1456" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="372" y="1456" type="line"/>
|
||||
<point x="0" y="1456" type="line"/>
|
||||
<point x="493" y="0" type="line"/>
|
||||
<point x="739" y="0" type="line"/>
|
||||
<point x="688" y="343" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="W" format="2">
|
||||
<unicode hex="0057"/>
|
||||
<advance width="1784"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="459" y="132" type="line"/>
|
||||
<point x="498" y="0" type="line"/>
|
||||
<point x="684" y="0" type="line"/>
|
||||
<point x="993" y="1343" type="line"/>
|
||||
<point x="918" y="1456" type="line"/>
|
||||
<point x="748" y="1456" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="359" y="1456" type="line"/>
|
||||
<point x="26" y="1456" type="line"/>
|
||||
<point x="340" y="0" type="line"/>
|
||||
<point x="552" y="0" type="line"/>
|
||||
<point x="601" y="122" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1183" y="129" type="line"/>
|
||||
<point x="1230" y="0" type="line"/>
|
||||
<point x="1442" y="0" type="line"/>
|
||||
<point x="1755" y="1456" type="line"/>
|
||||
<point x="1423" y="1456" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1032" y="1456" type="line"/>
|
||||
<point x="863" y="1456" type="line"/>
|
||||
<point x="785" y="1345" type="line"/>
|
||||
<point x="1098" y="0" type="line"/>
|
||||
<point x="1284" y="0" type="line"/>
|
||||
<point x="1326" y="124" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="X" format="2">
|
||||
<unicode hex="0058"/>
|
||||
<advance width="1306"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="404" y="1456" type="line"/>
|
||||
<point x="21" y="1456" type="line"/>
|
||||
<point x="433" y="734" type="line"/>
|
||||
<point x="10" y="0" type="line"/>
|
||||
<point x="397" y="0" type="line"/>
|
||||
<point x="653" y="493" type="line"/>
|
||||
<point x="909" y="0" type="line"/>
|
||||
<point x="1296" y="0" type="line"/>
|
||||
<point x="873" y="734" type="line"/>
|
||||
<point x="1285" y="1456" type="line"/>
|
||||
<point x="902" y="1456" type="line"/>
|
||||
<point x="653" y="972" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="Y" format="2">
|
||||
<unicode hex="0059"/>
|
||||
<advance width="1280"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="361" y="1456" type="line"/>
|
||||
<point x="-2" y="1456" type="line"/>
|
||||
<point x="470" y="523" type="line"/>
|
||||
<point x="470" y="0" type="line"/>
|
||||
<point x="810" y="0" type="line"/>
|
||||
<point x="810" y="523" type="line"/>
|
||||
<point x="1282" y="1456" type="line"/>
|
||||
<point x="919" y="1456" type="line"/>
|
||||
<point x="640" y="824" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="Z" format="2">
|
||||
<unicode hex="005A"/>
|
||||
<advance width="1247"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="1195" y="270" type="line"/>
|
||||
<point x="149" y="270" type="line"/>
|
||||
<point x="149" y="0" type="line"/>
|
||||
<point x="1195" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1185" y="1276" type="line"/>
|
||||
<point x="1185" y="1456" type="line"/>
|
||||
<point x="954" y="1456" type="line"/>
|
||||
<point x="69" y="185" type="line"/>
|
||||
<point x="69" y="0" type="line"/>
|
||||
<point x="309" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1075" y="1456" type="line"/>
|
||||
<point x="66" y="1456" type="line"/>
|
||||
<point x="66" y="1185" type="line"/>
|
||||
<point x="1075" y="1185" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="a" format="2">
|
||||
<unicode hex="0061"/>
|
||||
<advance width="1091"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point name="hr00" x="670" y="272" type="line"/>
|
||||
<point x="670" y="169"/>
|
||||
<point x="684" y="66"/>
|
||||
<point x="715" y="0" type="curve"/>
|
||||
<point x="1038" y="0" type="line"/>
|
||||
<point x="1038" y="17" type="line"/>
|
||||
<point x="1009" y="71"/>
|
||||
<point x="993" y="132"/>
|
||||
<point x="993" y="273" type="curve" smooth="yes"/>
|
||||
<point x="993" y="716" type="line"/>
|
||||
<point x="993" y="973"/>
|
||||
<point x="803" y="1102"/>
|
||||
<point x="548" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="262" y="1102"/>
|
||||
<point x="78" y="950"/>
|
||||
<point x="78" y="749" type="curve"/>
|
||||
<point x="400" y="749" type="line"/>
|
||||
<point x="400" y="828"/>
|
||||
<point x="448" y="867"/>
|
||||
<point x="531" y="867" type="curve" smooth="yes"/>
|
||||
<point x="629" y="867"/>
|
||||
<point x="670" y="809"/>
|
||||
<point x="670" y="718" type="curve"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="710" y="661" type="line"/>
|
||||
<point x="558" y="661" type="line"/>
|
||||
<point x="216" y="661"/>
|
||||
<point x="53" y="528"/>
|
||||
<point x="53" y="305" type="curve" smooth="yes"/>
|
||||
<point x="53" y="113"/>
|
||||
<point x="218" y="-20"/>
|
||||
<point x="420" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="627" y="-20"/>
|
||||
<point x="709" y="108"/>
|
||||
<point x="758" y="214" type="curve"/>
|
||||
<point x="683" y="352" type="line"/>
|
||||
<point x="683" y="297"/>
|
||||
<point x="612" y="220"/>
|
||||
<point x="495" y="220" type="curve" smooth="yes"/>
|
||||
<point x="424" y="220"/>
|
||||
<point x="375" y="262"/>
|
||||
<point x="375" y="323" type="curve" smooth="yes"/>
|
||||
<point x="375" y="405"/>
|
||||
<point x="425" y="481"/>
|
||||
<point x="560" y="481" type="curve"/>
|
||||
<point x="712" y="481" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="b" format="2">
|
||||
<unicode hex="0062"/>
|
||||
<advance width="1153"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="102" y="1536" type="line"/>
|
||||
<point x="102" y="0" type="line"/>
|
||||
<point x="391" y="0" type="line"/>
|
||||
<point x="424" y="266" type="line"/>
|
||||
<point x="424" y="1536" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1095" y="553" type="line"/>
|
||||
<point x="1095" y="870"/>
|
||||
<point x="961" y="1102"/>
|
||||
<point x="673" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="412" y="1102"/>
|
||||
<point x="306" y="856"/>
|
||||
<point x="264" y="554" type="curve"/>
|
||||
<point x="264" y="529" type="line"/>
|
||||
<point x="306" y="225"/>
|
||||
<point x="412" y="-20"/>
|
||||
<point x="675" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="961" y="-20"/>
|
||||
<point x="1095" y="205"/>
|
||||
<point x="1095" y="532" type="curve" smooth="yes"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="773" y="532" type="line"/>
|
||||
<point x="773" y="358"/>
|
||||
<point x="745" y="239"/>
|
||||
<point x="594" y="239" type="curve" smooth="yes"/>
|
||||
<point x="445" y="239"/>
|
||||
<point x="394" y="335"/>
|
||||
<point x="394" y="502" type="curve" smooth="yes"/>
|
||||
<point x="394" y="581" type="line" smooth="yes"/>
|
||||
<point x="394" y="744"/>
|
||||
<point x="445" y="842"/>
|
||||
<point x="592" y="842" type="curve" smooth="yes"/>
|
||||
<point x="741" y="842"/>
|
||||
<point x="773" y="710"/>
|
||||
<point x="773" y="553" type="curve" smooth="yes"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="c" format="2">
|
||||
<unicode hex="0063"/>
|
||||
<advance width="1066"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="555" y="240" type="curve" smooth="yes"/>
|
||||
<point x="404" y="240"/>
|
||||
<point x="379" y="369"/>
|
||||
<point x="379" y="529" type="curve" smooth="yes"/>
|
||||
<point x="379" y="552" type="line" smooth="yes"/>
|
||||
<point x="379" y="708"/>
|
||||
<point x="405" y="842"/>
|
||||
<point x="553" y="842" type="curve"/>
|
||||
<point x="661" y="842"/>
|
||||
<point x="714" y="765"/>
|
||||
<point x="714" y="668" type="curve"/>
|
||||
<point x="1016" y="668" type="line"/>
|
||||
<point x="1016" y="943"/>
|
||||
<point x="829" y="1102"/>
|
||||
<point x="560" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="225" y="1102"/>
|
||||
<point x="57" y="865"/>
|
||||
<point x="57" y="552" type="curve" smooth="yes"/>
|
||||
<point x="57" y="529" type="line" smooth="yes"/>
|
||||
<point x="57" y="216"/>
|
||||
<point x="225" y="-20"/>
|
||||
<point x="562" y="-20" type="curve"/>
|
||||
<point x="819" y="-20"/>
|
||||
<point x="1016" y="142"/>
|
||||
<point x="1016" y="386" type="curve"/>
|
||||
<point x="714" y="386" type="line"/>
|
||||
<point x="714" y="294"/>
|
||||
<point x="653" y="240"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,112 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>A</key>
|
||||
<string>A_.glif</string>
|
||||
<key>B</key>
|
||||
<string>B_.glif</string>
|
||||
<key>C</key>
|
||||
<string>C_.glif</string>
|
||||
<key>D</key>
|
||||
<string>D_.glif</string>
|
||||
<key>E</key>
|
||||
<string>E_.glif</string>
|
||||
<key>F</key>
|
||||
<string>F_.glif</string>
|
||||
<key>G</key>
|
||||
<string>G_.glif</string>
|
||||
<key>H</key>
|
||||
<string>H_.glif</string>
|
||||
<key>I</key>
|
||||
<string>I_.glif</string>
|
||||
<key>J</key>
|
||||
<string>J_.glif</string>
|
||||
<key>K</key>
|
||||
<string>K_.glif</string>
|
||||
<key>L</key>
|
||||
<string>L_.glif</string>
|
||||
<key>M</key>
|
||||
<string>M_.glif</string>
|
||||
<key>N</key>
|
||||
<string>N_.glif</string>
|
||||
<key>O</key>
|
||||
<string>O_.glif</string>
|
||||
<key>P</key>
|
||||
<string>P_.glif</string>
|
||||
<key>Q</key>
|
||||
<string>Q_.glif</string>
|
||||
<key>R</key>
|
||||
<string>R_.glif</string>
|
||||
<key>S</key>
|
||||
<string>S_.glif</string>
|
||||
<key>T</key>
|
||||
<string>T_.glif</string>
|
||||
<key>U</key>
|
||||
<string>U_.glif</string>
|
||||
<key>V</key>
|
||||
<string>V_.glif</string>
|
||||
<key>W</key>
|
||||
<string>W_.glif</string>
|
||||
<key>X</key>
|
||||
<string>X_.glif</string>
|
||||
<key>Y</key>
|
||||
<string>Y_.glif</string>
|
||||
<key>Z</key>
|
||||
<string>Z_.glif</string>
|
||||
<key>a</key>
|
||||
<string>a.glif</string>
|
||||
<key>b</key>
|
||||
<string>b.glif</string>
|
||||
<key>c</key>
|
||||
<string>c.glif</string>
|
||||
<key>d</key>
|
||||
<string>d.glif</string>
|
||||
<key>e</key>
|
||||
<string>e.glif</string>
|
||||
<key>f</key>
|
||||
<string>f.glif</string>
|
||||
<key>g</key>
|
||||
<string>g.glif</string>
|
||||
<key>h</key>
|
||||
<string>h.glif</string>
|
||||
<key>i</key>
|
||||
<string>i.glif</string>
|
||||
<key>j</key>
|
||||
<string>j.glif</string>
|
||||
<key>k</key>
|
||||
<string>k.glif</string>
|
||||
<key>l</key>
|
||||
<string>l.glif</string>
|
||||
<key>m</key>
|
||||
<string>m.glif</string>
|
||||
<key>n</key>
|
||||
<string>n.glif</string>
|
||||
<key>o</key>
|
||||
<string>o.glif</string>
|
||||
<key>p</key>
|
||||
<string>p.glif</string>
|
||||
<key>q</key>
|
||||
<string>q.glif</string>
|
||||
<key>r</key>
|
||||
<string>r.glif</string>
|
||||
<key>s</key>
|
||||
<string>s.glif</string>
|
||||
<key>space</key>
|
||||
<string>space.glif</string>
|
||||
<key>t</key>
|
||||
<string>t.glif</string>
|
||||
<key>u</key>
|
||||
<string>u.glif</string>
|
||||
<key>v</key>
|
||||
<string>v.glif</string>
|
||||
<key>w</key>
|
||||
<string>w.glif</string>
|
||||
<key>x</key>
|
||||
<string>x.glif</string>
|
||||
<key>y</key>
|
||||
<string>y.glif</string>
|
||||
<key>z</key>
|
||||
<string>z.glif</string>
|
||||
</dict>
|
||||
</plist>
|
@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="d" format="2">
|
||||
<unicode hex="0064"/>
|
||||
<advance width="1153"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="728" y="248" type="line"/>
|
||||
<point x="761" y="0" type="line"/>
|
||||
<point x="1051" y="0" type="line"/>
|
||||
<point x="1051" y="1536" type="line"/>
|
||||
<point x="728" y="1536" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="57" y="528" type="line"/>
|
||||
<point x="57" y="213"/>
|
||||
<point x="205" y="-20"/>
|
||||
<point x="477" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="728" y="-20"/>
|
||||
<point x="848" y="227"/>
|
||||
<point x="889" y="520" type="curve"/>
|
||||
<point x="889" y="545" type="line"/>
|
||||
<point x="848" y="858"/>
|
||||
<point x="728" y="1102"/>
|
||||
<point x="479" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="205" y="1102"/>
|
||||
<point x="57" y="878"/>
|
||||
<point x="57" y="549" type="curve" smooth="yes"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="379" y="549" type="line"/>
|
||||
<point x="379" y="717"/>
|
||||
<point x="427" y="842"/>
|
||||
<point x="561" y="842" type="curve" smooth="yes"/>
|
||||
<point x="695" y="842"/>
|
||||
<point x="759" y="748"/>
|
||||
<point x="759" y="572" type="curve" smooth="yes"/>
|
||||
<point x="759" y="493" type="line" smooth="yes"/>
|
||||
<point x="759" y="339"/>
|
||||
<point x="694" y="240"/>
|
||||
<point x="559" y="240" type="curve" smooth="yes"/>
|
||||
<point x="423" y="240"/>
|
||||
<point x="379" y="366"/>
|
||||
<point x="379" y="528" type="curve" smooth="yes"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="e" format="2">
|
||||
<unicode hex="0065"/>
|
||||
<advance width="1113"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="616" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="825" y="-20"/>
|
||||
<point x="973" y="75"/>
|
||||
<point x="1041" y="170" type="curve"/>
|
||||
<point x="891" y="352" type="line"/>
|
||||
<point x="827" y="272"/>
|
||||
<point x="733" y="240"/>
|
||||
<point x="637" y="240" type="curve" smooth="yes"/>
|
||||
<point x="481" y="240"/>
|
||||
<point x="387" y="345"/>
|
||||
<point x="387" y="505" type="curve" smooth="yes"/>
|
||||
<point x="387" y="543" type="line" smooth="yes"/>
|
||||
<point x="387" y="704"/>
|
||||
<point x="430" y="842"/>
|
||||
<point x="579" y="842" type="curve" smooth="yes"/>
|
||||
<point x="694" y="842"/>
|
||||
<point x="753" y="779"/>
|
||||
<point x="753" y="672" type="curve" smooth="yes"/>
|
||||
<point x="753" y="646" type="line"/>
|
||||
<point name="hr01" x="192" y="646" type="line"/>
|
||||
<point x="192" y="435" type="line"/>
|
||||
<point x="1068" y="435" type="line"/>
|
||||
<point x="1068" y="572" type="line" smooth="yes"/>
|
||||
<point x="1068" y="897"/>
|
||||
<point x="890" y="1102"/>
|
||||
<point x="581" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="246" y="1102"/>
|
||||
<point x="65" y="859"/>
|
||||
<point name="hr02" x="65" y="543" type="curve" smooth="yes"/>
|
||||
<point x="65" y="505" type="line" smooth="yes"/>
|
||||
<point x="65" y="221"/>
|
||||
<point x="268" y="-20"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="f" format="2">
|
||||
<unicode hex="0066"/>
|
||||
<advance width="740"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point name="hr00" x="499" y="0" type="line"/>
|
||||
<point x="499" y="1170" type="line"/>
|
||||
<point x="499" y="1252"/>
|
||||
<point x="555" y="1297"/>
|
||||
<point x="655" y="1297" type="curve" smooth="yes"/>
|
||||
<point x="691" y="1297"/>
|
||||
<point x="716" y="1294"/>
|
||||
<point x="740" y="1288" type="curve"/>
|
||||
<point x="740" y="1536" type="line"/>
|
||||
<point x="692" y="1548"/>
|
||||
<point x="641" y="1557"/>
|
||||
<point x="585" y="1557" type="curve" smooth="yes"/>
|
||||
<point x="334" y="1557"/>
|
||||
<point x="176" y="1421"/>
|
||||
<point x="176" y="1170" type="curve"/>
|
||||
<point x="176" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="711" y="1082" type="line"/>
|
||||
<point x="18" y="1082" type="line"/>
|
||||
<point x="18" y="848" type="line"/>
|
||||
<point x="711" y="848" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="g" format="2">
|
||||
<unicode hex="0067"/>
|
||||
<advance width="1176"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="782" y="1082" type="line"/>
|
||||
<point x="751" y="826" type="line"/>
|
||||
<point x="751" y="44" type="line" smooth="yes"/>
|
||||
<point x="751" y="-96"/>
|
||||
<point x="669" y="-177"/>
|
||||
<point x="521" y="-177" type="curve" smooth="yes"/>
|
||||
<point x="411" y="-177"/>
|
||||
<point x="326" y="-128"/>
|
||||
<point x="268" y="-66" type="curve"/>
|
||||
<point x="131" y="-264" type="line"/>
|
||||
<point x="221" y="-370"/>
|
||||
<point x="392" y="-426"/>
|
||||
<point x="533" y="-426" type="curve" smooth="yes"/>
|
||||
<point x="856" y="-426"/>
|
||||
<point x="1074" y="-258"/>
|
||||
<point x="1074" y="42" type="curve" smooth="yes"/>
|
||||
<point x="1074" y="1082" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="60" y="528" type="line"/>
|
||||
<point x="60" y="213"/>
|
||||
<point x="228" y="-20"/>
|
||||
<point x="500" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="763" y="-20"/>
|
||||
<point x="869" y="227"/>
|
||||
<point x="912" y="520" type="curve"/>
|
||||
<point x="912" y="545" type="line"/>
|
||||
<point x="869" y="858"/>
|
||||
<point x="795" y="1102"/>
|
||||
<point x="502" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="228" y="1102"/>
|
||||
<point x="60" y="878"/>
|
||||
<point x="60" y="549" type="curve" smooth="yes"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="382" y="549" type="line"/>
|
||||
<point x="382" y="717"/>
|
||||
<point x="450" y="842"/>
|
||||
<point x="584" y="842" type="curve" smooth="yes"/>
|
||||
<point x="731" y="842"/>
|
||||
<point x="792" y="748"/>
|
||||
<point x="792" y="572" type="curve" smooth="yes"/>
|
||||
<point x="792" y="493" type="line" smooth="yes"/>
|
||||
<point x="792" y="339"/>
|
||||
<point x="731" y="240"/>
|
||||
<point x="582" y="240" type="curve" smooth="yes"/>
|
||||
<point x="446" y="240"/>
|
||||
<point x="382" y="366"/>
|
||||
<point x="382" y="528" type="curve" smooth="yes"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="h" format="2">
|
||||
<unicode hex="0068"/>
|
||||
<advance width="1153"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="415" y="1536" type="line"/>
|
||||
<point x="93" y="1536" type="line"/>
|
||||
<point x="93" y="0" type="line"/>
|
||||
<point x="415" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="374" y="578" type="line"/>
|
||||
<point x="374" y="729"/>
|
||||
<point x="413" y="842"/>
|
||||
<point x="573" y="842" type="curve" smooth="yes"/>
|
||||
<point x="674" y="842"/>
|
||||
<point x="733" y="806"/>
|
||||
<point x="733" y="674" type="curve" smooth="yes"/>
|
||||
<point x="733" y="0" type="line"/>
|
||||
<point x="1056" y="0" type="line"/>
|
||||
<point x="1056" y="672" type="line" smooth="yes"/>
|
||||
<point x="1056" y="986"/>
|
||||
<point x="909" y="1102"/>
|
||||
<point x="695" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="454" y="1102"/>
|
||||
<point x="295" y="880"/>
|
||||
<point x="295" y="576" type="curve"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="i" format="2">
|
||||
<unicode hex="0069"/>
|
||||
<advance width="557"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="440" y="1082" type="line"/>
|
||||
<point x="117" y="1082" type="line"/>
|
||||
<point x="117" y="0" type="line"/>
|
||||
<point x="440" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="98" y="1361" type="curve" smooth="yes"/>
|
||||
<point x="98" y="1265"/>
|
||||
<point x="170" y="1197"/>
|
||||
<point x="277" y="1197" type="curve" smooth="yes"/>
|
||||
<point x="384" y="1197"/>
|
||||
<point x="456" y="1265"/>
|
||||
<point x="456" y="1361" type="curve" smooth="yes"/>
|
||||
<point x="456" y="1457"/>
|
||||
<point x="384" y="1525"/>
|
||||
<point x="277" y="1525" type="curve" smooth="yes"/>
|
||||
<point x="170" y="1525"/>
|
||||
<point x="98" y="1457"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="j" format="2">
|
||||
<unicode hex="006A"/>
|
||||
<advance width="547"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="122" y="1082" type="line"/>
|
||||
<point x="122" y="-35" type="line"/>
|
||||
<point x="122" y="-129"/>
|
||||
<point x="73" y="-174"/>
|
||||
<point x="-16" y="-174" type="curve" smooth="yes"/>
|
||||
<point x="-49" y="-174"/>
|
||||
<point x="-77" y="-170"/>
|
||||
<point x="-110" y="-165" type="curve"/>
|
||||
<point x="-110" y="-420" type="line"/>
|
||||
<point x="-55" y="-433"/>
|
||||
<point x="-10" y="-437"/>
|
||||
<point x="45" y="-437" type="curve" smooth="yes"/>
|
||||
<point x="294" y="-437"/>
|
||||
<point x="445" y="-295"/>
|
||||
<point x="445" y="-35" type="curve"/>
|
||||
<point x="445" y="1082" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="98" y="1361" type="curve" smooth="yes"/>
|
||||
<point x="98" y="1265"/>
|
||||
<point x="170" y="1197"/>
|
||||
<point x="277" y="1197" type="curve" smooth="yes"/>
|
||||
<point x="384" y="1197"/>
|
||||
<point x="456" y="1265"/>
|
||||
<point x="456" y="1361" type="curve" smooth="yes"/>
|
||||
<point x="456" y="1457"/>
|
||||
<point x="384" y="1525"/>
|
||||
<point x="277" y="1525" type="curve" smooth="yes"/>
|
||||
<point x="170" y="1525"/>
|
||||
<point x="98" y="1457"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="k" format="2">
|
||||
<unicode hex="006B"/>
|
||||
<advance width="1112"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="424" y="1537" type="line"/>
|
||||
<point x="102" y="1537" type="line"/>
|
||||
<point x="102" y="0" type="line"/>
|
||||
<point x="424" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1112" y="1082" type="line"/>
|
||||
<point x="726" y="1082" type="line"/>
|
||||
<point x="465" y="766" type="line"/>
|
||||
<point x="261" y="499" type="line"/>
|
||||
<point x="394" y="285" type="line"/>
|
||||
<point x="643" y="531" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="771" y="0" type="line"/>
|
||||
<point x="1140" y="0" type="line"/>
|
||||
<point x="706" y="670" type="line"/>
|
||||
<point x="473" y="493" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="l" format="2">
|
||||
<unicode hex="006C"/>
|
||||
<advance width="557"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="440" y="1536" type="line"/>
|
||||
<point x="117" y="1536" type="line"/>
|
||||
<point x="117" y="0" type="line"/>
|
||||
<point x="440" y="0" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="m" format="2">
|
||||
<unicode hex="006D"/>
|
||||
<advance width="1767"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="424" y="853" type="line"/>
|
||||
<point x="404" y="1082" type="line"/>
|
||||
<point x="102" y="1082" type="line"/>
|
||||
<point x="102" y="0" type="line"/>
|
||||
<point x="424" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="383" y="578" type="line"/>
|
||||
<point x="383" y="729"/>
|
||||
<point x="452" y="842"/>
|
||||
<point x="581" y="842" type="curve" smooth="yes"/>
|
||||
<point x="670" y="842"/>
|
||||
<point x="722" y="816"/>
|
||||
<point x="722" y="679" type="curve"/>
|
||||
<point x="722" y="0" type="line"/>
|
||||
<point x="1044" y="0" type="line"/>
|
||||
<point x="1044" y="722" type="line"/>
|
||||
<point x="1044" y="992"/>
|
||||
<point x="914" y="1102"/>
|
||||
<point x="724" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="450" y="1102"/>
|
||||
<point x="304" y="880"/>
|
||||
<point x="304" y="576" type="curve"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1010" y="578" type="line"/>
|
||||
<point x="1010" y="729"/>
|
||||
<point x="1072" y="842"/>
|
||||
<point x="1202" y="842" type="curve" smooth="yes"/>
|
||||
<point x="1289" y="842"/>
|
||||
<point x="1342" y="815"/>
|
||||
<point x="1342" y="681" type="curve" smooth="yes"/>
|
||||
<point x="1342" y="0" type="line"/>
|
||||
<point x="1665" y="0" type="line"/>
|
||||
<point x="1665" y="681" type="line" smooth="yes"/>
|
||||
<point x="1665" y="995"/>
|
||||
<point x="1526" y="1102"/>
|
||||
<point x="1324" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="1050" y="1102"/>
|
||||
<point x="911" y="880"/>
|
||||
<point x="911" y="576" type="curve"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="n" format="2">
|
||||
<unicode hex="006E"/>
|
||||
<advance width="1153"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="416" y="851" type="line"/>
|
||||
<point x="396" y="1082" type="line"/>
|
||||
<point x="94" y="1082" type="line"/>
|
||||
<point x="94" y="0" type="line"/>
|
||||
<point x="416" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="375" y="578" type="line"/>
|
||||
<point x="375" y="729"/>
|
||||
<point x="431" y="842"/>
|
||||
<point x="574" y="842" type="curve" smooth="yes"/>
|
||||
<point x="675" y="842"/>
|
||||
<point x="733" y="812"/>
|
||||
<point x="733" y="682" type="curve"/>
|
||||
<point x="733" y="0" type="line"/>
|
||||
<point x="1056" y="0" type="line"/>
|
||||
<point x="1056" y="681" type="line"/>
|
||||
<point x="1056" y="995"/>
|
||||
<point x="918" y="1102"/>
|
||||
<point x="716" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="464" y="1102"/>
|
||||
<point x="296" y="907"/>
|
||||
<point x="296" y="576" type="curve"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="o" format="2">
|
||||
<unicode hex="006F"/>
|
||||
<advance width="1153"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="57" y="530" type="line"/>
|
||||
<point x="57" y="214"/>
|
||||
<point x="241" y="-20"/>
|
||||
<point x="577" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="912" y="-20"/>
|
||||
<point x="1095" y="214"/>
|
||||
<point x="1095" y="530" type="curve"/>
|
||||
<point x="1095" y="551" type="line"/>
|
||||
<point x="1095" y="867"/>
|
||||
<point x="912" y="1102"/>
|
||||
<point x="575" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="241" y="1102"/>
|
||||
<point x="57" y="867"/>
|
||||
<point x="57" y="551" type="curve"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="379" y="551" type="line"/>
|
||||
<point x="379" y="709"/>
|
||||
<point x="427" y="842"/>
|
||||
<point x="575" y="842" type="curve" smooth="yes"/>
|
||||
<point x="726" y="842"/>
|
||||
<point x="773" y="709"/>
|
||||
<point x="773" y="551" type="curve"/>
|
||||
<point x="773" y="530" type="line"/>
|
||||
<point x="773" y="367"/>
|
||||
<point x="725" y="240"/>
|
||||
<point x="577" y="240" type="curve" smooth="yes"/>
|
||||
<point x="426" y="240"/>
|
||||
<point x="379" y="367"/>
|
||||
<point x="379" y="530" type="curve"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="p" format="2">
|
||||
<unicode hex="0070"/>
|
||||
<advance width="1153"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="424" y="874" type="line"/>
|
||||
<point x="402" y="1082" type="line"/>
|
||||
<point x="102" y="1082" type="line"/>
|
||||
<point x="102" y="-416" type="line"/>
|
||||
<point x="424" y="-416" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1095" y="554" type="line"/>
|
||||
<point x="1095" y="883"/>
|
||||
<point x="948" y="1102"/>
|
||||
<point x="673" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="412" y="1102"/>
|
||||
<point x="306" y="863"/>
|
||||
<point x="264" y="550" type="curve"/>
|
||||
<point x="264" y="523" type="line"/>
|
||||
<point x="306" y="231"/>
|
||||
<point x="412" y="-20"/>
|
||||
<point x="675" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="948" y="-20"/>
|
||||
<point x="1095" y="218"/>
|
||||
<point x="1095" y="533" type="curve" smooth="yes"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="773" y="533" type="line"/>
|
||||
<point x="773" y="371"/>
|
||||
<point x="729" y="240"/>
|
||||
<point x="594" y="240" type="curve" smooth="yes"/>
|
||||
<point x="445" y="240"/>
|
||||
<point x="394" y="343"/>
|
||||
<point x="394" y="495" type="curve" smooth="yes"/>
|
||||
<point x="394" y="577" type="line" smooth="yes"/>
|
||||
<point x="394" y="753"/>
|
||||
<point x="445" y="842"/>
|
||||
<point x="592" y="842" type="curve" smooth="yes"/>
|
||||
<point x="725" y="842"/>
|
||||
<point x="773" y="722"/>
|
||||
<point x="773" y="554" type="curve" smooth="yes"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="q" format="2">
|
||||
<unicode hex="0071"/>
|
||||
<advance width="1153"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="728" y="-416" type="line"/>
|
||||
<point x="1051" y="-416" type="line"/>
|
||||
<point x="1051" y="1082" type="line"/>
|
||||
<point x="771" y="1082" type="line"/>
|
||||
<point x="728" y="855" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="57" y="531" type="line"/>
|
||||
<point x="57" y="216"/>
|
||||
<point x="205" y="-20"/>
|
||||
<point x="477" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="740" y="-20"/>
|
||||
<point x="846" y="230"/>
|
||||
<point x="889" y="523" type="curve"/>
|
||||
<point x="889" y="548" type="line"/>
|
||||
<point x="846" y="861"/>
|
||||
<point x="740" y="1102"/>
|
||||
<point x="479" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="205" y="1102"/>
|
||||
<point x="57" y="881"/>
|
||||
<point x="57" y="552" type="curve" smooth="yes"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="379" y="552" type="line"/>
|
||||
<point x="379" y="720"/>
|
||||
<point x="427" y="842"/>
|
||||
<point x="561" y="842" type="curve" smooth="yes"/>
|
||||
<point x="708" y="842"/>
|
||||
<point x="759" y="751"/>
|
||||
<point x="759" y="575" type="curve" smooth="yes"/>
|
||||
<point x="759" y="496" type="line" smooth="yes"/>
|
||||
<point x="759" y="342"/>
|
||||
<point x="708" y="240"/>
|
||||
<point x="559" y="240" type="curve" smooth="yes"/>
|
||||
<point x="423" y="240"/>
|
||||
<point x="379" y="369"/>
|
||||
<point x="379" y="531" type="curve" smooth="yes"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="r" format="2">
|
||||
<unicode hex="0072"/>
|
||||
<advance width="767"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="424" y="814" type="line"/>
|
||||
<point x="404" y="1082" type="line"/>
|
||||
<point x="102" y="1082" type="line"/>
|
||||
<point x="102" y="0" type="line"/>
|
||||
<point x="424" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="745" y="1090" type="line"/>
|
||||
<point x="721" y="1098"/>
|
||||
<point x="685" y="1102"/>
|
||||
<point x="653" y="1102" type="curve"/>
|
||||
<point x="459" y="1102"/>
|
||||
<point x="343" y="902"/>
|
||||
<point x="343" y="612" type="curve"/>
|
||||
<point x="403" y="572" type="line"/>
|
||||
<point x="403" y="714"/>
|
||||
<point x="472" y="785"/>
|
||||
<point x="631" y="785" type="curve"/>
|
||||
<point x="661" y="785"/>
|
||||
<point x="712" y="780"/>
|
||||
<point x="740" y="777" type="curve"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="s" format="2">
|
||||
<unicode hex="0073"/>
|
||||
<advance width="1051"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="673" y="304" type="curve" smooth="yes"/>
|
||||
<point x="673" y="244"/>
|
||||
<point x="622" y="203"/>
|
||||
<point x="525" y="203" type="curve" smooth="yes"/>
|
||||
<point x="424" y="203"/>
|
||||
<point x="348" y="247"/>
|
||||
<point x="344" y="347" type="curve"/>
|
||||
<point x="42" y="347" type="line"/>
|
||||
<point x="42" y="173"/>
|
||||
<point x="208" y="-20"/>
|
||||
<point x="517" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="803" y="-20"/>
|
||||
<point x="984" y="123"/>
|
||||
<point x="984" y="314" type="curve"/>
|
||||
<point x="984" y="543"/>
|
||||
<point x="792" y="619"/>
|
||||
<point x="569" y="659" type="curve" smooth="yes"/>
|
||||
<point x="435" y="683"/>
|
||||
<point x="382" y="719"/>
|
||||
<point x="382" y="777" type="curve"/>
|
||||
<point x="382" y="839"/>
|
||||
<point x="438" y="880"/>
|
||||
<point x="516" y="880" type="curve" smooth="yes"/>
|
||||
<point x="620" y="880"/>
|
||||
<point x="662" y="832"/>
|
||||
<point x="662" y="750" type="curve"/>
|
||||
<point x="984" y="750" type="line"/>
|
||||
<point x="984" y="958"/>
|
||||
<point x="805" y="1102"/>
|
||||
<point x="517" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="238" y="1102"/>
|
||||
<point x="76" y="943"/>
|
||||
<point x="76" y="760" type="curve"/>
|
||||
<point x="76" y="570"/>
|
||||
<point x="243" y="472"/>
|
||||
<point x="458" y="426" type="curve" smooth="yes"/>
|
||||
<point x="629" y="389"/>
|
||||
<point x="673" y="359"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,38 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="space" format="1">
|
||||
<advance width="510"/>
|
||||
<unicode hex="0020"/>
|
||||
<outline>
|
||||
</outline>
|
||||
<lib>
|
||||
<dict>
|
||||
<key>com.typemytype.robofont.guides</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>angle</key>
|
||||
<real>0</real>
|
||||
<key>isGlobal</key>
|
||||
<false/>
|
||||
<key>magnetic</key>
|
||||
<integer>5</integer>
|
||||
<key>x</key>
|
||||
<real>0</real>
|
||||
<key>y</key>
|
||||
<real>901</real>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>angle</key>
|
||||
<real>0</real>
|
||||
<key>isGlobal</key>
|
||||
<false/>
|
||||
<key>magnetic</key>
|
||||
<integer>5</integer>
|
||||
<key>x</key>
|
||||
<real>0</real>
|
||||
<key>y</key>
|
||||
<real>555</real>
|
||||
</dict>
|
||||
</array>
|
||||
</dict>
|
||||
</lib>
|
||||
</glyph>
|
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="t" format="2">
|
||||
<unicode hex="0074"/>
|
||||
<advance width="700"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="658" y="1082" type="line"/>
|
||||
<point x="12" y="1082" type="line"/>
|
||||
<point x="12" y="848" type="line"/>
|
||||
<point x="658" y="848" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="156" y="1351" type="line"/>
|
||||
<point x="156" y="311" type="line"/>
|
||||
<point x="156" y="76"/>
|
||||
<point x="279" y="-20"/>
|
||||
<point x="487" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="558" y="-20"/>
|
||||
<point x="617" y="-10"/>
|
||||
<point x="672" y="9" type="curve"/>
|
||||
<point x="672" y="250" type="line"/>
|
||||
<point x="650" y="246"/>
|
||||
<point x="625" y="244"/>
|
||||
<point x="588" y="244" type="curve" smooth="yes"/>
|
||||
<point x="508" y="244"/>
|
||||
<point x="478" y="267"/>
|
||||
<point x="478" y="353" type="curve"/>
|
||||
<point x="478" y="1351" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="u" format="2">
|
||||
<unicode hex="0075"/>
|
||||
<advance width="1153"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="734" y="263" type="line"/>
|
||||
<point x="755" y="0" type="line"/>
|
||||
<point x="1057" y="0" type="line"/>
|
||||
<point x="1057" y="1082" type="line"/>
|
||||
<point x="734" y="1082" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="767" y="483" type="line"/>
|
||||
<point x="767" y="344"/>
|
||||
<point x="718" y="240"/>
|
||||
<point x="557" y="240" type="curve" smooth="yes"/>
|
||||
<point x="469" y="240"/>
|
||||
<point x="416" y="285"/>
|
||||
<point x="416" y="380" type="curve"/>
|
||||
<point x="416" y="1082" type="line"/>
|
||||
<point x="94" y="1082" type="line"/>
|
||||
<point x="94" y="382" type="line"/>
|
||||
<point x="94" y="96"/>
|
||||
<point x="241" y="-20"/>
|
||||
<point x="455" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="716" y="-20"/>
|
||||
<point x="854" y="194"/>
|
||||
<point x="854" y="485" type="curve"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="v" format="2">
|
||||
<unicode hex="0076"/>
|
||||
<advance width="1051"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="483" y="231" type="line"/>
|
||||
<point x="483" y="0" type="line"/>
|
||||
<point x="685" y="0" type="line"/>
|
||||
<point x="1042" y="1082" type="line"/>
|
||||
<point x="704" y="1082" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="345" y="1082" type="line"/>
|
||||
<point x="6" y="1082" type="line"/>
|
||||
<point x="363" y="0" type="line"/>
|
||||
<point x="565" y="0" type="line"/>
|
||||
<point x="565" y="231" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="w" format="2">
|
||||
<unicode hex="0077"/>
|
||||
<advance width="1493"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="422" y="322" type="line"/>
|
||||
<point x="392" y="0" type="line"/>
|
||||
<point x="557" y="0" type="line"/>
|
||||
<point x="764" y="701" type="line"/>
|
||||
<point x="833" y="1082" type="line"/>
|
||||
<point x="631" y="1082" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="333" y="1082" type="line"/>
|
||||
<point x="24" y="1082" type="line"/>
|
||||
<point x="286" y="0" type="line"/>
|
||||
<point x="483" y="0" type="line"/>
|
||||
<point x="470" y="328" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1019" y="344" type="line"/>
|
||||
<point x="1007" y="0" type="line"/>
|
||||
<point x="1204" y="0" type="line"/>
|
||||
<point x="1465" y="1082" type="line"/>
|
||||
<point x="1156" y="1082" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="858" y="1082" type="line"/>
|
||||
<point x="661" y="1082" type="line"/>
|
||||
<point x="727" y="699" type="line"/>
|
||||
<point x="932" y="0" type="line"/>
|
||||
<point x="1098" y="0" type="line"/>
|
||||
<point x="1068" y="324" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="x" format="2">
|
||||
<unicode hex="0078"/>
|
||||
<advance width="1051"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="370" y="1082" type="line"/>
|
||||
<point x="30" y="1082" type="line"/>
|
||||
<point x="321" y="555" type="line"/>
|
||||
<point x="15" y="0" type="line"/>
|
||||
<point x="355" y="0" type="line"/>
|
||||
<point x="530" y="320" type="line"/>
|
||||
<point x="707" y="0" type="line"/>
|
||||
<point x="1046" y="0" type="line"/>
|
||||
<point x="740" y="555" type="line"/>
|
||||
<point x="1032" y="1082" type="line"/>
|
||||
<point x="695" y="1082" type="line"/>
|
||||
<point x="530" y="784" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="y" format="2">
|
||||
<unicode hex="0079"/>
|
||||
<advance width="1051"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="428" y="127" type="line"/>
|
||||
<point x="347" y="-82" type="line"/>
|
||||
<point x="324" y="-143"/>
|
||||
<point x="285" y="-176"/>
|
||||
<point x="175" y="-176" type="curve" smooth="yes"/>
|
||||
<point x="160" y="-176"/>
|
||||
<point x="147" y="-176"/>
|
||||
<point x="131" y="-176" type="curve"/>
|
||||
<point x="131" y="-417" type="line"/>
|
||||
<point x="187" y="-432"/>
|
||||
<point x="205" y="-437"/>
|
||||
<point x="267" y="-437" type="curve" smooth="yes"/>
|
||||
<point x="508" y="-437"/>
|
||||
<point x="583" y="-270"/>
|
||||
<point x="621" y="-161" type="curve" smooth="yes"/>
|
||||
<point x="1055" y="1082" type="line"/>
|
||||
<point x="710" y="1082" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="343" y="1082" type="line"/>
|
||||
<point x="-2" y="1082" type="line"/>
|
||||
<point x="384" y="-32" type="line"/>
|
||||
<point x="600" y="-32" type="line"/>
|
||||
<point x="562" y="325" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="z" format="2">
|
||||
<unicode hex="007A"/>
|
||||
<advance width="1051"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="981" y="260" type="line"/>
|
||||
<point x="149" y="260" type="line"/>
|
||||
<point x="149" y="0" type="line"/>
|
||||
<point x="981" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="969" y="900" type="line"/>
|
||||
<point x="969" y="1082" type="line"/>
|
||||
<point x="749" y="1082" type="line"/>
|
||||
<point x="69" y="188" type="line"/>
|
||||
<point x="69" y="0" type="line"/>
|
||||
<point x="288" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="861" y="1082" type="line"/>
|
||||
<point x="88" y="1082" type="line"/>
|
||||
<point x="88" y="822" type="line"/>
|
||||
<point x="861" y="822" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<array>
|
||||
<array>
|
||||
<string>public.default</string>
|
||||
<string>glyphs</string>
|
||||
</array>
|
||||
</array>
|
||||
</plist>
|
@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>public.glyphOrder</key>
|
||||
<array>
|
||||
<string>space</string>
|
||||
<string>A</string>
|
||||
<string>B</string>
|
||||
<string>C</string>
|
||||
<string>D</string>
|
||||
<string>E</string>
|
||||
<string>F</string>
|
||||
<string>G</string>
|
||||
<string>H</string>
|
||||
<string>I</string>
|
||||
<string>J</string>
|
||||
<string>K</string>
|
||||
<string>L</string>
|
||||
<string>M</string>
|
||||
<string>N</string>
|
||||
<string>O</string>
|
||||
<string>P</string>
|
||||
<string>Q</string>
|
||||
<string>R</string>
|
||||
<string>S</string>
|
||||
<string>T</string>
|
||||
<string>U</string>
|
||||
<string>V</string>
|
||||
<string>W</string>
|
||||
<string>X</string>
|
||||
<string>Y</string>
|
||||
<string>Z</string>
|
||||
<string>a</string>
|
||||
<string>b</string>
|
||||
<string>c</string>
|
||||
<string>d</string>
|
||||
<string>e</string>
|
||||
<string>f</string>
|
||||
<string>g</string>
|
||||
<string>h</string>
|
||||
<string>i</string>
|
||||
<string>j</string>
|
||||
<string>k</string>
|
||||
<string>l</string>
|
||||
<string>m</string>
|
||||
<string>n</string>
|
||||
<string>o</string>
|
||||
<string>p</string>
|
||||
<string>q</string>
|
||||
<string>r</string>
|
||||
<string>s</string>
|
||||
<string>t</string>
|
||||
<string>u</string>
|
||||
<string>v</string>
|
||||
<string>w</string>
|
||||
<string>x</string>
|
||||
<string>y</string>
|
||||
<string>z</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>creator</key>
|
||||
<string>org.robofab.ufoLib</string>
|
||||
<key>formatVersion</key>
|
||||
<integer>3</integer>
|
||||
</dict>
|
||||
</plist>
|
@ -0,0 +1,214 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>ascender</key>
|
||||
<integer>2146</integer>
|
||||
<key>capHeight</key>
|
||||
<integer>1456</integer>
|
||||
<key>copyright</key>
|
||||
<string>Copyright 2011 Google Inc. All Rights Reserved.</string>
|
||||
<key>descender</key>
|
||||
<integer>-555</integer>
|
||||
<key>familyName</key>
|
||||
<string>RobotoSubset</string>
|
||||
<key>guidelines</key>
|
||||
<array>
|
||||
</array>
|
||||
<key>italicAngle</key>
|
||||
<integer>0</integer>
|
||||
<key>openTypeHeadCreated</key>
|
||||
<string>2008/09/12 12:29:34</string>
|
||||
<key>openTypeHeadFlags</key>
|
||||
<array>
|
||||
<integer>0</integer>
|
||||
<integer>1</integer>
|
||||
<integer>3</integer>
|
||||
<integer>4</integer>
|
||||
</array>
|
||||
<key>openTypeHeadLowestRecPPEM</key>
|
||||
<integer>9</integer>
|
||||
<key>openTypeHheaAscender</key>
|
||||
<integer>1900</integer>
|
||||
<key>openTypeHheaDescender</key>
|
||||
<integer>-500</integer>
|
||||
<key>openTypeHheaLineGap</key>
|
||||
<integer>0</integer>
|
||||
<key>openTypeNameDescription</key>
|
||||
<string></string>
|
||||
<key>openTypeNameDesigner</key>
|
||||
<string></string>
|
||||
<key>openTypeNameDesignerURL</key>
|
||||
<string></string>
|
||||
<key>openTypeNameLicense</key>
|
||||
<string></string>
|
||||
<key>openTypeNameLicenseURL</key>
|
||||
<string></string>
|
||||
<key>openTypeNameManufacturer</key>
|
||||
<string></string>
|
||||
<key>openTypeNameManufacturerURL</key>
|
||||
<string></string>
|
||||
<key>openTypeNameSampleText</key>
|
||||
<string></string>
|
||||
<key>openTypeOS2CodePageRanges</key>
|
||||
<array>
|
||||
<integer>0</integer>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
<integer>3</integer>
|
||||
<integer>4</integer>
|
||||
<integer>7</integer>
|
||||
<integer>8</integer>
|
||||
<integer>29</integer>
|
||||
</array>
|
||||
<key>openTypeOS2FamilyClass</key>
|
||||
<array>
|
||||
<integer>0</integer>
|
||||
<integer>0</integer>
|
||||
</array>
|
||||
<key>openTypeOS2Panose</key>
|
||||
<array>
|
||||
<integer>2</integer>
|
||||
<integer>0</integer>
|
||||
<integer>0</integer>
|
||||
<integer>0</integer>
|
||||
<integer>0</integer>
|
||||
<integer>0</integer>
|
||||
<integer>0</integer>
|
||||
<integer>0</integer>
|
||||
<integer>0</integer>
|
||||
<integer>0</integer>
|
||||
</array>
|
||||
<key>openTypeOS2Selection</key>
|
||||
<array>
|
||||
</array>
|
||||
<key>openTypeOS2StrikeoutPosition</key>
|
||||
<integer>512</integer>
|
||||
<key>openTypeOS2StrikeoutSize</key>
|
||||
<integer>102</integer>
|
||||
<key>openTypeOS2SubscriptXOffset</key>
|
||||
<integer>0</integer>
|
||||
<key>openTypeOS2SubscriptXSize</key>
|
||||
<integer>1434</integer>
|
||||
<key>openTypeOS2SubscriptYOffset</key>
|
||||
<integer>287</integer>
|
||||
<key>openTypeOS2SubscriptYSize</key>
|
||||
<integer>1331</integer>
|
||||
<key>openTypeOS2SuperscriptXOffset</key>
|
||||
<integer>0</integer>
|
||||
<key>openTypeOS2SuperscriptXSize</key>
|
||||
<integer>1434</integer>
|
||||
<key>openTypeOS2SuperscriptYOffset</key>
|
||||
<integer>977</integer>
|
||||
<key>openTypeOS2SuperscriptYSize</key>
|
||||
<integer>1331</integer>
|
||||
<key>openTypeOS2Type</key>
|
||||
<array>
|
||||
</array>
|
||||
<key>openTypeOS2TypoAscender</key>
|
||||
<integer>2146</integer>
|
||||
<key>openTypeOS2TypoDescender</key>
|
||||
<integer>-555</integer>
|
||||
<key>openTypeOS2TypoLineGap</key>
|
||||
<integer>0</integer>
|
||||
<key>openTypeOS2UnicodeRanges</key>
|
||||
<array>
|
||||
<integer>0</integer>
|
||||
<integer>1</integer>
|
||||
<integer>2</integer>
|
||||
<integer>3</integer>
|
||||
<integer>4</integer>
|
||||
<integer>5</integer>
|
||||
<integer>6</integer>
|
||||
<integer>7</integer>
|
||||
<integer>9</integer>
|
||||
<integer>11</integer>
|
||||
<integer>29</integer>
|
||||
<integer>30</integer>
|
||||
<integer>31</integer>
|
||||
<integer>32</integer>
|
||||
<integer>33</integer>
|
||||
<integer>34</integer>
|
||||
<integer>35</integer>
|
||||
<integer>36</integer>
|
||||
<integer>37</integer>
|
||||
<integer>38</integer>
|
||||
<integer>40</integer>
|
||||
<integer>45</integer>
|
||||
<integer>60</integer>
|
||||
<integer>62</integer>
|
||||
<integer>64</integer>
|
||||
<integer>69</integer>
|
||||
</array>
|
||||
<key>openTypeOS2VendorID</key>
|
||||
<string>GOOG</string>
|
||||
<key>openTypeOS2WeightClass</key>
|
||||
<integer>400</integer>
|
||||
<key>openTypeOS2WidthClass</key>
|
||||
<integer>5</integer>
|
||||
<key>openTypeOS2WinAscent</key>
|
||||
<integer>2146</integer>
|
||||
<key>openTypeOS2WinDescent</key>
|
||||
<integer>555</integer>
|
||||
<key>postscriptBlueFuzz</key>
|
||||
<integer>1</integer>
|
||||
<key>postscriptBlueScale</key>
|
||||
<real>0.039625</real>
|
||||
<key>postscriptBlueShift</key>
|
||||
<integer>7</integer>
|
||||
<key>postscriptBlueValues</key>
|
||||
<array>
|
||||
<integer>-20</integer>
|
||||
<integer>0</integer>
|
||||
<integer>1082</integer>
|
||||
<integer>1102</integer>
|
||||
<integer>1456</integer>
|
||||
<integer>1476</integer>
|
||||
</array>
|
||||
<key>postscriptDefaultCharacter</key>
|
||||
<string>space</string>
|
||||
<key>postscriptFamilyBlues</key>
|
||||
<array>
|
||||
</array>
|
||||
<key>postscriptFamilyOtherBlues</key>
|
||||
<array>
|
||||
</array>
|
||||
<key>postscriptForceBold</key>
|
||||
<false/>
|
||||
<key>postscriptIsFixedPitch</key>
|
||||
<false/>
|
||||
<key>postscriptOtherBlues</key>
|
||||
<array>
|
||||
<integer>-436</integer>
|
||||
<integer>-416</integer>
|
||||
</array>
|
||||
<key>postscriptStemSnapH</key>
|
||||
<array>
|
||||
<integer>154</integer>
|
||||
</array>
|
||||
<key>postscriptStemSnapV</key>
|
||||
<array>
|
||||
<integer>196</integer>
|
||||
</array>
|
||||
<key>postscriptUnderlinePosition</key>
|
||||
<integer>-150</integer>
|
||||
<key>postscriptUnderlineThickness</key>
|
||||
<integer>100</integer>
|
||||
<key>postscriptUniqueID</key>
|
||||
<integer>-1</integer>
|
||||
<key>styleName</key>
|
||||
<string>Regular</string>
|
||||
<key>trademark</key>
|
||||
<string></string>
|
||||
<key>unitsPerEm</key>
|
||||
<integer>2048</integer>
|
||||
<key>versionMajor</key>
|
||||
<integer>1</integer>
|
||||
<key>versionMinor</key>
|
||||
<integer>0</integer>
|
||||
<key>xHeight</key>
|
||||
<integer>1082</integer>
|
||||
<key>year</key>
|
||||
<integer>2017</integer>
|
||||
</dict>
|
||||
</plist>
|
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="A" format="2">
|
||||
<unicode hex="0041"/>
|
||||
<advance width="1349"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="718" y="1320" type="line"/>
|
||||
<point x="720" y="1456" type="line"/>
|
||||
<point x="585" y="1456" type="line"/>
|
||||
<point x="28" y="0" type="line"/>
|
||||
<point x="241" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1110" y="0" type="line"/>
|
||||
<point x="1323" y="0" type="line"/>
|
||||
<point x="765" y="1456" type="line"/>
|
||||
<point x="630" y="1456" type="line"/>
|
||||
<point x="632" y="1320" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1099" y="543" type="line"/>
|
||||
<point x="271" y="543" type="line"/>
|
||||
<point x="271" y="376" type="line"/>
|
||||
<point x="1099" y="376" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,51 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="B" format="2">
|
||||
<unicode hex="0042"/>
|
||||
<advance width="1280"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="688" y="678" type="line"/>
|
||||
<point x="755" y="726" type="line"/>
|
||||
<point x="976" y="752"/>
|
||||
<point x="1128" y="887"/>
|
||||
<point x="1128" y="1067" type="curve"/>
|
||||
<point x="1128" y="1339"/>
|
||||
<point x="951" y="1456"/>
|
||||
<point x="653" y="1456" type="curve"/>
|
||||
<point x="166" y="1456" type="line"/>
|
||||
<point x="166" y="0" type="line"/>
|
||||
<point x="374" y="0" type="line"/>
|
||||
<point x="374" y="1289" type="line"/>
|
||||
<point x="653" y="1289" type="line"/>
|
||||
<point x="834" y="1289"/>
|
||||
<point x="920" y="1224"/>
|
||||
<point x="920" y="1068" type="curve"/>
|
||||
<point x="920" y="927"/>
|
||||
<point x="812" y="841"/>
|
||||
<point x="657" y="841" type="curve"/>
|
||||
<point x="327" y="841" type="line"/>
|
||||
<point x="329" y="678" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="679" y="0" type="line"/>
|
||||
<point x="973" y="0"/>
|
||||
<point x="1164" y="148"/>
|
||||
<point x="1164" y="422" type="curve" smooth="yes"/>
|
||||
<point x="1164" y="610"/>
|
||||
<point x="1048" y="764"/>
|
||||
<point x="835" y="782" type="curve"/>
|
||||
<point x="790" y="841" type="line"/>
|
||||
<point x="411" y="841" type="line"/>
|
||||
<point x="409" y="678" type="line"/>
|
||||
<point x="688" y="678" type="line" smooth="yes"/>
|
||||
<point x="877" y="678"/>
|
||||
<point x="956" y="581"/>
|
||||
<point x="956" y="420" type="curve" smooth="yes"/>
|
||||
<point x="956" y="265"/>
|
||||
<point x="855" y="166"/>
|
||||
<point x="679" y="166" type="curve" smooth="yes"/>
|
||||
<point x="364" y="166" type="line"/>
|
||||
<point x="244" y="0" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="C" format="2">
|
||||
<unicode hex="0043"/>
|
||||
<advance width="1334"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="1038" y="464" type="line"/>
|
||||
<point x="1005" y="266"/>
|
||||
<point x="933" y="146"/>
|
||||
<point x="690" y="146" type="curve" smooth="yes"/>
|
||||
<point x="434" y="146"/>
|
||||
<point x="325" y="378"/>
|
||||
<point x="325" y="658" type="curve" smooth="yes"/>
|
||||
<point x="325" y="799" type="line" smooth="yes"/>
|
||||
<point x="325" y="1104"/>
|
||||
<point x="454" y="1309"/>
|
||||
<point x="709" y="1309" type="curve" smooth="yes"/>
|
||||
<point x="928" y="1309"/>
|
||||
<point x="1009" y="1184"/>
|
||||
<point x="1038" y="987" type="curve"/>
|
||||
<point x="1246" y="987" type="line"/>
|
||||
<point x="1216" y="1272"/>
|
||||
<point x="1043" y="1476"/>
|
||||
<point x="709" y="1476" type="curve" smooth="yes"/>
|
||||
<point x="344" y="1476"/>
|
||||
<point x="117" y="1207"/>
|
||||
<point x="117" y="797" type="curve"/>
|
||||
<point x="117" y="658" type="line"/>
|
||||
<point x="117" y="248"/>
|
||||
<point x="345" y="-20"/>
|
||||
<point x="690" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="1046" y="-20"/>
|
||||
<point x="1215" y="192"/>
|
||||
<point x="1246" y="464" type="curve"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="D" format="2">
|
||||
<unicode hex="0044"/>
|
||||
<advance width="1344"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="559" y="0" type="line"/>
|
||||
<point x="969" y="0"/>
|
||||
<point x="1225" y="263"/>
|
||||
<point x="1225" y="688" type="curve"/>
|
||||
<point x="1225" y="767" type="line"/>
|
||||
<point x="1225" y="1192"/>
|
||||
<point x="965" y="1456"/>
|
||||
<point x="578" y="1456" type="curve"/>
|
||||
<point x="254" y="1456" type="line"/>
|
||||
<point x="254" y="1289" type="line"/>
|
||||
<point x="578" y="1289" type="line"/>
|
||||
<point x="863" y="1289"/>
|
||||
<point x="1019" y="1102"/>
|
||||
<point x="1019" y="769" type="curve"/>
|
||||
<point x="1019" y="688" type="line" smooth="yes"/>
|
||||
<point x="1019" y="371"/>
|
||||
<point x="869" y="166"/>
|
||||
<point x="559" y="166" type="curve"/>
|
||||
<point x="262" y="166" type="line"/>
|
||||
<point x="260" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="374" y="1456" type="line"/>
|
||||
<point x="166" y="1456" type="line"/>
|
||||
<point x="166" y="0" type="line"/>
|
||||
<point x="374" y="0" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="E" format="2">
|
||||
<unicode hex="0045"/>
|
||||
<advance width="1164"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="1095" y="166" type="line"/>
|
||||
<point x="335" y="166" type="line"/>
|
||||
<point x="335" y="0" type="line"/>
|
||||
<point x="1095" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="374" y="1456" type="line"/>
|
||||
<point x="166" y="1456" type="line"/>
|
||||
<point x="166" y="0" type="line"/>
|
||||
<point x="374" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="993" y="835" type="line"/>
|
||||
<point x="335" y="835" type="line"/>
|
||||
<point x="335" y="669" type="line"/>
|
||||
<point x="993" y="669" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1084" y="1456" type="line"/>
|
||||
<point x="335" y="1456" type="line"/>
|
||||
<point x="335" y="1289" type="line"/>
|
||||
<point x="1084" y="1289" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="F" format="2">
|
||||
<unicode hex="0046"/>
|
||||
<advance width="1128"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="374" y="1456" type="line"/>
|
||||
<point x="166" y="1456" type="line"/>
|
||||
<point x="166" y="0" type="line"/>
|
||||
<point x="374" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="969" y="803" type="line"/>
|
||||
<point x="332" y="803" type="line"/>
|
||||
<point x="332" y="637" type="line"/>
|
||||
<point x="969" y="637" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1068" y="1456" type="line"/>
|
||||
<point x="332" y="1456" type="line"/>
|
||||
<point x="332" y="1289" type="line"/>
|
||||
<point x="1068" y="1289" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="G" format="2">
|
||||
<unicode hex="0047"/>
|
||||
<advance width="1394"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="1247" y="731" type="line"/>
|
||||
<point x="715" y="731" type="line"/>
|
||||
<point x="715" y="566" type="line"/>
|
||||
<point x="1040" y="566" type="line"/>
|
||||
<point x="1040" y="248" type="line"/>
|
||||
<point x="1002" y="206"/>
|
||||
<point x="934" y="146"/>
|
||||
<point x="731" y="146" type="curve" smooth="yes"/>
|
||||
<point x="489" y="146"/>
|
||||
<point x="326" y="341"/>
|
||||
<point x="326" y="676" type="curve" smooth="yes"/>
|
||||
<point x="326" y="781" type="line" smooth="yes"/>
|
||||
<point x="326" y="1108"/>
|
||||
<point x="440" y="1309"/>
|
||||
<point x="708" y="1309" type="curve" smooth="yes"/>
|
||||
<point x="922" y="1309"/>
|
||||
<point x="1012" y="1181"/>
|
||||
<point x="1039" y="1027" type="curve"/>
|
||||
<point x="1247" y="1027" type="line"/>
|
||||
<point x="1209" y="1287"/>
|
||||
<point x="1042" y="1476"/>
|
||||
<point x="707" y="1476" type="curve" smooth="yes"/>
|
||||
<point x="325" y="1476"/>
|
||||
<point x="117" y="1219"/>
|
||||
<point x="117" y="779" type="curve" smooth="yes"/>
|
||||
<point x="117" y="676" type="line" smooth="yes"/>
|
||||
<point x="117" y="236"/>
|
||||
<point x="373" y="-20"/>
|
||||
<point x="730" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="1061" y="-20"/>
|
||||
<point x="1191" y="114"/>
|
||||
<point x="1247" y="195" type="curve"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="H" format="2">
|
||||
<unicode hex="0048"/>
|
||||
<advance width="1463"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="1110" y="835" type="line"/>
|
||||
<point x="344" y="835" type="line"/>
|
||||
<point x="344" y="669" type="line"/>
|
||||
<point x="1110" y="669" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="374" y="1456" type="line"/>
|
||||
<point x="166" y="1456" type="line"/>
|
||||
<point x="166" y="0" type="line"/>
|
||||
<point x="374" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1294" y="1456" type="line"/>
|
||||
<point x="1086" y="1456" type="line"/>
|
||||
<point x="1086" y="0" type="line"/>
|
||||
<point x="1294" y="0" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="I" format="2">
|
||||
<unicode hex="0049"/>
|
||||
<advance width="560"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="385" y="1456" type="line"/>
|
||||
<point x="177" y="1456" type="line"/>
|
||||
<point x="177" y="0" type="line"/>
|
||||
<point x="385" y="0" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="J" format="2">
|
||||
<unicode hex="004A"/>
|
||||
<advance width="1131"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="769" y="424" type="line"/>
|
||||
<point x="769" y="242"/>
|
||||
<point x="660" y="146"/>
|
||||
<point x="513" y="146" type="curve" smooth="yes"/>
|
||||
<point x="366" y="146"/>
|
||||
<point x="257" y="224"/>
|
||||
<point x="257" y="403" type="curve"/>
|
||||
<point x="49" y="403" type="line"/>
|
||||
<point x="49" y="116"/>
|
||||
<point x="244" y="-20"/>
|
||||
<point x="513" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="784" y="-20"/>
|
||||
<point x="977" y="136"/>
|
||||
<point x="977" y="424" type="curve"/>
|
||||
<point x="977" y="1456" type="line"/>
|
||||
<point x="769" y="1456" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="K" format="2">
|
||||
<unicode hex="004B"/>
|
||||
<advance width="1283"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="374" y="1456" type="line"/>
|
||||
<point x="166" y="1456" type="line"/>
|
||||
<point x="166" y="0" type="line"/>
|
||||
<point x="374" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1248" y="1456" type="line"/>
|
||||
<point x="999" y="1456" type="line"/>
|
||||
<point x="523" y="918" type="line"/>
|
||||
<point x="267" y="632" type="line"/>
|
||||
<point x="303" y="415" type="line"/>
|
||||
<point x="648" y="775" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1044" y="0" type="line"/>
|
||||
<point x="1292" y="0" type="line"/>
|
||||
<point x="645" y="866" type="line"/>
|
||||
<point x="521" y="703" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="L" format="2">
|
||||
<unicode hex="004C"/>
|
||||
<advance width="1108"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="1058" y="166" type="line"/>
|
||||
<point x="335" y="166" type="line"/>
|
||||
<point x="335" y="0" type="line"/>
|
||||
<point x="1058" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="374" y="1456" type="line"/>
|
||||
<point x="166" y="1456" type="line"/>
|
||||
<point x="166" y="0" type="line"/>
|
||||
<point x="374" y="0" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="M" format="2">
|
||||
<unicode hex="004D"/>
|
||||
<advance width="1792"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="231" y="1456" type="line"/>
|
||||
<point x="816" y="0" type="line"/>
|
||||
<point x="974" y="0" type="line"/>
|
||||
<point x="1560" y="1456" type="line"/>
|
||||
<point x="1358" y="1456" type="line"/>
|
||||
<point x="896" y="285" type="line"/>
|
||||
<point x="433" y="1456" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="166" y="1456" type="line"/>
|
||||
<point x="166" y="0" type="line"/>
|
||||
<point x="373" y="0" type="line"/>
|
||||
<point x="373" y="556" type="line"/>
|
||||
<point x="343" y="1456" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1448" y="1456" type="line"/>
|
||||
<point x="1418" y="556" type="line"/>
|
||||
<point x="1418" y="0" type="line"/>
|
||||
<point x="1625" y="0" type="line"/>
|
||||
<point x="1625" y="1456" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="N" format="2">
|
||||
<unicode hex="004E"/>
|
||||
<advance width="1462"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="1293" y="1456" type="line"/>
|
||||
<point x="1087" y="1456" type="line"/>
|
||||
<point x="1087" y="350" type="line"/>
|
||||
<point x="374" y="1456" type="line"/>
|
||||
<point x="166" y="1456" type="line"/>
|
||||
<point x="166" y="0" type="line"/>
|
||||
<point x="374" y="0" type="line"/>
|
||||
<point x="374" y="1102" type="line"/>
|
||||
<point x="1084" y="0" type="line"/>
|
||||
<point x="1293" y="0" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,39 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="O" format="2">
|
||||
<unicode hex="004F"/>
|
||||
<advance width="1414"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="1296" y="768" type="line"/>
|
||||
<point x="1296" y="1209"/>
|
||||
<point x="1063" y="1476"/>
|
||||
<point x="706" y="1476" type="curve" smooth="yes"/>
|
||||
<point x="360" y="1476"/>
|
||||
<point x="117" y="1209"/>
|
||||
<point x="117" y="768" type="curve"/>
|
||||
<point x="117" y="687" type="line"/>
|
||||
<point x="117" y="246"/>
|
||||
<point x="362" y="-20"/>
|
||||
<point x="708" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="1065" y="-20"/>
|
||||
<point x="1296" y="246"/>
|
||||
<point x="1296" y="687" type="curve"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1090" y="687" type="line"/>
|
||||
<point x="1090" y="338"/>
|
||||
<point x="952" y="153"/>
|
||||
<point x="708" y="153" type="curve" smooth="yes"/>
|
||||
<point x="478" y="153"/>
|
||||
<point x="323" y="338"/>
|
||||
<point x="323" y="687" type="curve" smooth="yes"/>
|
||||
<point x="323" y="770" type="line" smooth="yes"/>
|
||||
<point x="323" y="1117"/>
|
||||
<point x="476" y="1302"/>
|
||||
<point x="706" y="1302" type="curve" smooth="yes"/>
|
||||
<point x="948" y="1302"/>
|
||||
<point x="1090" y="1117"/>
|
||||
<point x="1090" y="770" type="curve"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="P" format="2">
|
||||
<unicode hex="0050"/>
|
||||
<advance width="1299"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="712" y="567" type="line"/>
|
||||
<point x="1044" y="567"/>
|
||||
<point x="1227" y="727"/>
|
||||
<point x="1227" y="1010" type="curve"/>
|
||||
<point x="1227" y="1269"/>
|
||||
<point x="1044" y="1456"/>
|
||||
<point x="712" y="1456" type="curve"/>
|
||||
<point x="166" y="1456" type="line"/>
|
||||
<point x="166" y="0" type="line"/>
|
||||
<point x="374" y="0" type="line"/>
|
||||
<point x="374" y="1289" type="line"/>
|
||||
<point x="712" y="1289" type="line"/>
|
||||
<point x="930" y="1289"/>
|
||||
<point x="1019" y="1153"/>
|
||||
<point x="1019" y="1008" type="curve"/>
|
||||
<point x="1019" y="846"/>
|
||||
<point x="930" y="733"/>
|
||||
<point x="712" y="733" type="curve"/>
|
||||
<point x="329" y="733" type="line"/>
|
||||
<point x="329" y="567" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,45 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="Q" format="2">
|
||||
<unicode hex="0051"/>
|
||||
<advance width="1414"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="918" y="176" type="line"/>
|
||||
<point x="785" y="45" type="line"/>
|
||||
<point x="1156" y="-245" type="line"/>
|
||||
<point x="1297" y="-117" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1287" y="768" type="line"/>
|
||||
<point x="1287" y="1209"/>
|
||||
<point x="1054" y="1476"/>
|
||||
<point x="696" y="1476" type="curve" smooth="yes"/>
|
||||
<point x="350" y="1476"/>
|
||||
<point x="107" y="1209"/>
|
||||
<point x="107" y="768" type="curve"/>
|
||||
<point x="107" y="687" type="line"/>
|
||||
<point x="107" y="246"/>
|
||||
<point x="352" y="-20"/>
|
||||
<point x="698" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="1056" y="-20"/>
|
||||
<point x="1287" y="246"/>
|
||||
<point x="1287" y="687" type="curve"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1080" y="687" type="line"/>
|
||||
<point x="1080" y="338"/>
|
||||
<point x="942" y="153"/>
|
||||
<point x="698" y="153" type="curve" smooth="yes"/>
|
||||
<point x="469" y="153"/>
|
||||
<point x="314" y="338"/>
|
||||
<point x="314" y="687" type="curve" smooth="yes"/>
|
||||
<point x="314" y="770" type="line" smooth="yes"/>
|
||||
<point x="314" y="1117"/>
|
||||
<point x="467" y="1302"/>
|
||||
<point x="696" y="1302" type="curve" smooth="yes"/>
|
||||
<point x="939" y="1302"/>
|
||||
<point x="1080" y="1117"/>
|
||||
<point x="1080" y="770" type="curve"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="R" format="2">
|
||||
<unicode hex="0052"/>
|
||||
<advance width="1253"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="166" y="1456" type="line"/>
|
||||
<point x="166" y="0" type="line"/>
|
||||
<point x="374" y="0" type="line"/>
|
||||
<point x="374" y="1289" type="line"/>
|
||||
<point x="650" y="1289" type="line" smooth="yes"/>
|
||||
<point x="868" y="1289"/>
|
||||
<point x="956" y="1180"/>
|
||||
<point x="956" y="1017" type="curve" smooth="yes"/>
|
||||
<point x="956" y="869"/>
|
||||
<point x="854" y="753"/>
|
||||
<point x="651" y="753" type="curve" smooth="yes"/>
|
||||
<point x="327" y="753" type="line"/>
|
||||
<point x="329" y="587" type="line"/>
|
||||
<point x="770" y="587" type="line"/>
|
||||
<point x="827" y="609" type="line"/>
|
||||
<point x="1039" y="666"/>
|
||||
<point x="1164" y="818"/>
|
||||
<point x="1164" y="1017" type="curve" smooth="yes"/>
|
||||
<point x="1164" y="1303"/>
|
||||
<point x="983" y="1456"/>
|
||||
<point x="650" y="1456" type="curve" smooth="yes"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1006" y="0" type="line"/>
|
||||
<point x="1229" y="0" type="line"/>
|
||||
<point x="1229" y="12" type="line"/>
|
||||
<point x="874" y="662" type="line"/>
|
||||
<point x="657" y="662" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,47 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="S" format="2">
|
||||
<unicode hex="0053"/>
|
||||
<advance width="1216"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="931" y="370" type="curve" smooth="yes"/>
|
||||
<point x="931" y="232"/>
|
||||
<point x="826" y="146"/>
|
||||
<point x="631" y="146" type="curve" smooth="yes"/>
|
||||
<point x="446" y="146"/>
|
||||
<point x="287" y="232"/>
|
||||
<point x="287" y="423" type="curve"/>
|
||||
<point x="79" y="423" type="line"/>
|
||||
<point x="79" y="136"/>
|
||||
<point x="360" y="-20"/>
|
||||
<point x="631" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="942" y="-20"/>
|
||||
<point x="1140" y="135"/>
|
||||
<point x="1140" y="372" type="curve"/>
|
||||
<point x="1140" y="596"/>
|
||||
<point x="998" y="727"/>
|
||||
<point x="663" y="822" type="curve"/>
|
||||
<point x="435" y="886"/>
|
||||
<point x="334" y="959"/>
|
||||
<point x="334" y="1079" type="curve"/>
|
||||
<point x="334" y="1212"/>
|
||||
<point x="423" y="1309"/>
|
||||
<point x="621" y="1309" type="curve" smooth="yes"/>
|
||||
<point x="834" y="1309"/>
|
||||
<point x="930" y="1194"/>
|
||||
<point x="930" y="1035" type="curve"/>
|
||||
<point x="1138" y="1035" type="line"/>
|
||||
<point x="1138" y="1260"/>
|
||||
<point x="955" y="1476"/>
|
||||
<point x="621" y="1476" type="curve" smooth="yes"/>
|
||||
<point x="320" y="1476"/>
|
||||
<point x="125" y="1303"/>
|
||||
<point x="125" y="1076" type="curve"/>
|
||||
<point x="125" y="851"/>
|
||||
<point x="309" y="728"/>
|
||||
<point x="596" y="644" type="curve"/>
|
||||
<point x="865" y="565"/>
|
||||
<point x="931" y="502"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="T" format="2">
|
||||
<unicode hex="0054"/>
|
||||
<advance width="1222"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="715" y="1456" type="line"/>
|
||||
<point x="509" y="1456" type="line"/>
|
||||
<point x="509" y="0" type="line"/>
|
||||
<point x="715" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1176" y="1456" type="line"/>
|
||||
<point x="49" y="1456" type="line"/>
|
||||
<point x="49" y="1289" type="line"/>
|
||||
<point x="1176" y="1289" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="U" format="2">
|
||||
<unicode hex="0055"/>
|
||||
<advance width="1324"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="988" y="1456" type="line"/>
|
||||
<point x="988" y="471" type="line" smooth="yes"/>
|
||||
<point x="988" y="248"/>
|
||||
<point x="860" y="146"/>
|
||||
<point x="664" y="146" type="curve" smooth="yes"/>
|
||||
<point x="470" y="146"/>
|
||||
<point x="341" y="248"/>
|
||||
<point x="341" y="471" type="curve" smooth="yes"/>
|
||||
<point x="341" y="1456" type="line"/>
|
||||
<point x="135" y="1456" type="line"/>
|
||||
<point x="135" y="471" type="line"/>
|
||||
<point x="135" y="143"/>
|
||||
<point x="366" y="-20"/>
|
||||
<point x="664" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="946" y="-20"/>
|
||||
<point x="1196" y="143"/>
|
||||
<point x="1196" y="471" type="curve"/>
|
||||
<point x="1196" y="1456" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="V" format="2">
|
||||
<unicode hex="0056"/>
|
||||
<advance width="1313"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="639" y="228" type="line"/>
|
||||
<point x="588" y="0" type="line"/>
|
||||
<point x="748" y="0" type="line"/>
|
||||
<point x="1287" y="1456" type="line"/>
|
||||
<point x="1061" y="1456" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="254" y="1456" type="line"/>
|
||||
<point x="28" y="1456" type="line"/>
|
||||
<point x="566" y="0" type="line"/>
|
||||
<point x="726" y="0" type="line"/>
|
||||
<point x="672" y="228" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="W" format="2">
|
||||
<unicode hex="0057"/>
|
||||
<advance width="1813"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="552" y="450" type="line"/>
|
||||
<point x="448" y="0" type="line"/>
|
||||
<point x="597" y="0" type="line"/>
|
||||
<point x="902" y="1048" type="line"/>
|
||||
<point x="984" y="1456" type="line"/>
|
||||
<point x="834" y="1456" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="268" y="1456" type="line"/>
|
||||
<point x="61" y="1456" type="line"/>
|
||||
<point x="409" y="0" type="line"/>
|
||||
<point x="556" y="0" type="line"/>
|
||||
<point x="490" y="471" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1346" y="472" type="line"/>
|
||||
<point x="1276" y="0" type="line"/>
|
||||
<point x="1423" y="0" type="line"/>
|
||||
<point x="1771" y="1456" type="line"/>
|
||||
<point x="1563" y="1456" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1007" y="1456" type="line"/>
|
||||
<point x="860" y="1456" type="line"/>
|
||||
<point x="942" y="1048" type="line"/>
|
||||
<point x="1235" y="0" type="line"/>
|
||||
<point x="1384" y="0" type="line"/>
|
||||
<point x="1281" y="450" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="X" format="2">
|
||||
<unicode hex="0058"/>
|
||||
<advance width="1291"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="311" y="1456" type="line"/>
|
||||
<point x="68" y="1456" type="line"/>
|
||||
<point x="524" y="734" type="line"/>
|
||||
<point x="58" y="0" type="line"/>
|
||||
<point x="303" y="0" type="line"/>
|
||||
<point x="648" y="557" type="line"/>
|
||||
<point x="992" y="0" type="line"/>
|
||||
<point x="1237" y="0" type="line"/>
|
||||
<point x="772" y="734" type="line"/>
|
||||
<point x="1227" y="1456" type="line"/>
|
||||
<point x="984" y="1456" type="line"/>
|
||||
<point x="648" y="908" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="Y" format="2">
|
||||
<unicode hex="0059"/>
|
||||
<advance width="1231"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="250" y="1456" type="line"/>
|
||||
<point x="13" y="1456" type="line"/>
|
||||
<point x="510" y="543" type="line"/>
|
||||
<point x="510" y="0" type="line"/>
|
||||
<point x="718" y="0" type="line"/>
|
||||
<point x="718" y="543" type="line"/>
|
||||
<point x="1215" y="1456" type="line"/>
|
||||
<point x="979" y="1456" type="line"/>
|
||||
<point x="614" y="736" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="Z" format="2">
|
||||
<unicode hex="005A"/>
|
||||
<advance width="1227"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="1148" y="166" type="line"/>
|
||||
<point x="165" y="166" type="line"/>
|
||||
<point x="165" y="0" type="line"/>
|
||||
<point x="1148" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1116" y="1307" type="line"/>
|
||||
<point x="1116" y="1456" type="line"/>
|
||||
<point x="987" y="1456" type="line"/>
|
||||
<point x="86" y="153" type="line"/>
|
||||
<point x="86" y="0" type="line"/>
|
||||
<point x="214" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1028" y="1456" type="line"/>
|
||||
<point x="96" y="1456" type="line"/>
|
||||
<point x="96" y="1289" type="line"/>
|
||||
<point x="1028" y="1289" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="a" format="2">
|
||||
<unicode hex="0061"/>
|
||||
<advance width="1118"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="771" y="183" type="line"/>
|
||||
<point x="771" y="123"/>
|
||||
<point x="782" y="41"/>
|
||||
<point x="802" y="0" type="curve"/>
|
||||
<point x="1010" y="0" type="line"/>
|
||||
<point x="1010" y="17" type="line"/>
|
||||
<point x="984" y="76"/>
|
||||
<point x="971" y="166"/>
|
||||
<point x="971" y="238" type="curve" smooth="yes"/>
|
||||
<point x="971" y="738" type="line"/>
|
||||
<point x="971" y="981"/>
|
||||
<point x="803" y="1102"/>
|
||||
<point x="566" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="301" y="1102"/>
|
||||
<point x="133" y="935"/>
|
||||
<point x="133" y="782" type="curve"/>
|
||||
<point x="333" y="782" type="line"/>
|
||||
<point x="333" y="867"/>
|
||||
<point x="421" y="945"/>
|
||||
<point x="554" y="945" type="curve" smooth="yes"/>
|
||||
<point x="697" y="945"/>
|
||||
<point x="771" y="864"/>
|
||||
<point x="771" y="740" type="curve"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="804" y="661" type="line"/>
|
||||
<point x="596" y="661" type="line"/>
|
||||
<point x="301" y="661"/>
|
||||
<point x="111" y="539"/>
|
||||
<point x="111" y="303" type="curve" smooth="yes"/>
|
||||
<point x="111" y="123"/>
|
||||
<point x="257" y="-20"/>
|
||||
<point x="480" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="711" y="-20"/>
|
||||
<point x="857" y="170"/>
|
||||
<point x="874" y="277" type="curve"/>
|
||||
<point x="789" y="370" type="line"/>
|
||||
<point x="789" y="279"/>
|
||||
<point x="673" y="151"/>
|
||||
<point x="510" y="151" type="curve" smooth="yes"/>
|
||||
<point x="377" y="151"/>
|
||||
<point x="311" y="230"/>
|
||||
<point x="311" y="331" type="curve" smooth="yes"/>
|
||||
<point x="311" y="462"/>
|
||||
<point x="425" y="524"/>
|
||||
<point x="629" y="524" type="curve"/>
|
||||
<point x="806" y="524" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="b" format="2">
|
||||
<unicode hex="0062"/>
|
||||
<advance width="1153"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="137" y="1536" type="line"/>
|
||||
<point x="137" y="0" type="line"/>
|
||||
<point x="320" y="0" type="line"/>
|
||||
<point x="337" y="210" type="line"/>
|
||||
<point x="337" y="1536" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="1063" y="550" type="line"/>
|
||||
<point x="1063" y="879"/>
|
||||
<point x="912" y="1102"/>
|
||||
<point x="639" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="362" y="1102"/>
|
||||
<point x="230" y="901"/>
|
||||
<point x="200" y="572" type="curve"/>
|
||||
<point x="200" y="510" type="line"/>
|
||||
<point x="230" y="181"/>
|
||||
<point x="362" y="-20"/>
|
||||
<point x="641" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="910" y="-20"/>
|
||||
<point x="1063" y="214"/>
|
||||
<point x="1063" y="529" type="curve" smooth="yes"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="863" y="529" type="line"/>
|
||||
<point x="863" y="320"/>
|
||||
<point x="785" y="146"/>
|
||||
<point x="590" y="146" type="curve" smooth="yes"/>
|
||||
<point x="411" y="146"/>
|
||||
<point x="327" y="287"/>
|
||||
<point x="296" y="426" type="curve"/>
|
||||
<point x="296" y="655" type="line"/>
|
||||
<point x="326" y="803"/>
|
||||
<point x="411" y="937"/>
|
||||
<point x="588" y="937" type="curve" smooth="yes"/>
|
||||
<point x="794" y="937"/>
|
||||
<point x="863" y="759"/>
|
||||
<point x="863" y="550" type="curve" smooth="yes"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="c" format="2">
|
||||
<unicode hex="0063"/>
|
||||
<advance width="1076"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="578" y="140" type="curve" smooth="yes"/>
|
||||
<point x="352" y="140"/>
|
||||
<point x="292" y="337"/>
|
||||
<point x="292" y="520" type="curve" smooth="yes"/>
|
||||
<point x="292" y="562" type="line" smooth="yes"/>
|
||||
<point x="292" y="743"/>
|
||||
<point x="354" y="942"/>
|
||||
<point x="578" y="942" type="curve"/>
|
||||
<point x="723" y="942"/>
|
||||
<point x="813" y="835"/>
|
||||
<point x="823" y="709" type="curve"/>
|
||||
<point x="1012" y="709" type="line"/>
|
||||
<point x="1002" y="929"/>
|
||||
<point x="836" y="1102"/>
|
||||
<point x="578" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="248" y="1102"/>
|
||||
<point x="92" y="850"/>
|
||||
<point x="92" y="562" type="curve" smooth="yes"/>
|
||||
<point x="92" y="520" type="line" smooth="yes"/>
|
||||
<point x="92" y="232"/>
|
||||
<point x="247" y="-20"/>
|
||||
<point x="578" y="-20" type="curve"/>
|
||||
<point x="809" y="-20"/>
|
||||
<point x="1002" y="153"/>
|
||||
<point x="1012" y="343" type="curve"/>
|
||||
<point x="823" y="343" type="line"/>
|
||||
<point x="813" y="229"/>
|
||||
<point x="706" y="140"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,112 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>A</key>
|
||||
<string>A_.glif</string>
|
||||
<key>B</key>
|
||||
<string>B_.glif</string>
|
||||
<key>C</key>
|
||||
<string>C_.glif</string>
|
||||
<key>D</key>
|
||||
<string>D_.glif</string>
|
||||
<key>E</key>
|
||||
<string>E_.glif</string>
|
||||
<key>F</key>
|
||||
<string>F_.glif</string>
|
||||
<key>G</key>
|
||||
<string>G_.glif</string>
|
||||
<key>H</key>
|
||||
<string>H_.glif</string>
|
||||
<key>I</key>
|
||||
<string>I_.glif</string>
|
||||
<key>J</key>
|
||||
<string>J_.glif</string>
|
||||
<key>K</key>
|
||||
<string>K_.glif</string>
|
||||
<key>L</key>
|
||||
<string>L_.glif</string>
|
||||
<key>M</key>
|
||||
<string>M_.glif</string>
|
||||
<key>N</key>
|
||||
<string>N_.glif</string>
|
||||
<key>O</key>
|
||||
<string>O_.glif</string>
|
||||
<key>P</key>
|
||||
<string>P_.glif</string>
|
||||
<key>Q</key>
|
||||
<string>Q_.glif</string>
|
||||
<key>R</key>
|
||||
<string>R_.glif</string>
|
||||
<key>S</key>
|
||||
<string>S_.glif</string>
|
||||
<key>T</key>
|
||||
<string>T_.glif</string>
|
||||
<key>U</key>
|
||||
<string>U_.glif</string>
|
||||
<key>V</key>
|
||||
<string>V_.glif</string>
|
||||
<key>W</key>
|
||||
<string>W_.glif</string>
|
||||
<key>X</key>
|
||||
<string>X_.glif</string>
|
||||
<key>Y</key>
|
||||
<string>Y_.glif</string>
|
||||
<key>Z</key>
|
||||
<string>Z_.glif</string>
|
||||
<key>a</key>
|
||||
<string>a.glif</string>
|
||||
<key>b</key>
|
||||
<string>b.glif</string>
|
||||
<key>c</key>
|
||||
<string>c.glif</string>
|
||||
<key>d</key>
|
||||
<string>d.glif</string>
|
||||
<key>e</key>
|
||||
<string>e.glif</string>
|
||||
<key>f</key>
|
||||
<string>f.glif</string>
|
||||
<key>g</key>
|
||||
<string>g.glif</string>
|
||||
<key>h</key>
|
||||
<string>h.glif</string>
|
||||
<key>i</key>
|
||||
<string>i.glif</string>
|
||||
<key>j</key>
|
||||
<string>j.glif</string>
|
||||
<key>k</key>
|
||||
<string>k.glif</string>
|
||||
<key>l</key>
|
||||
<string>l.glif</string>
|
||||
<key>m</key>
|
||||
<string>m.glif</string>
|
||||
<key>n</key>
|
||||
<string>n.glif</string>
|
||||
<key>o</key>
|
||||
<string>o.glif</string>
|
||||
<key>p</key>
|
||||
<string>p.glif</string>
|
||||
<key>q</key>
|
||||
<string>q.glif</string>
|
||||
<key>r</key>
|
||||
<string>r.glif</string>
|
||||
<key>s</key>
|
||||
<string>s.glif</string>
|
||||
<key>space</key>
|
||||
<string>space.glif</string>
|
||||
<key>t</key>
|
||||
<string>t.glif</string>
|
||||
<key>u</key>
|
||||
<string>u.glif</string>
|
||||
<key>v</key>
|
||||
<string>v.glif</string>
|
||||
<key>w</key>
|
||||
<string>w.glif</string>
|
||||
<key>x</key>
|
||||
<string>x.glif</string>
|
||||
<key>y</key>
|
||||
<string>y.glif</string>
|
||||
<key>z</key>
|
||||
<string>z.glif</string>
|
||||
</dict>
|
||||
</plist>
|
@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="d" format="2">
|
||||
<unicode hex="0064"/>
|
||||
<advance width="1159"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="815" y="210" type="line"/>
|
||||
<point x="832" y="0" type="line"/>
|
||||
<point x="1015" y="0" type="line"/>
|
||||
<point x="1015" y="1536" type="line"/>
|
||||
<point x="815" y="1536" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="92" y="529" type="line"/>
|
||||
<point x="92" y="214"/>
|
||||
<point x="266" y="-20"/>
|
||||
<point x="520" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="798" y="-20"/>
|
||||
<point x="931" y="181"/>
|
||||
<point x="960" y="510" type="curve"/>
|
||||
<point x="960" y="572" type="line"/>
|
||||
<point x="931" y="901"/>
|
||||
<point x="798" y="1102"/>
|
||||
<point x="522" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="264" y="1102"/>
|
||||
<point x="92" y="879"/>
|
||||
<point x="92" y="550" type="curve" smooth="yes"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="292" y="550" type="line"/>
|
||||
<point x="292" y="759"/>
|
||||
<point x="375" y="937"/>
|
||||
<point x="573" y="937" type="curve" smooth="yes"/>
|
||||
<point x="750" y="937"/>
|
||||
<point x="834" y="803"/>
|
||||
<point x="865" y="655" type="curve"/>
|
||||
<point x="865" y="426" type="line"/>
|
||||
<point x="824" y="277"/>
|
||||
<point x="750" y="146"/>
|
||||
<point x="571" y="146" type="curve" smooth="yes"/>
|
||||
<point x="375" y="146"/>
|
||||
<point x="292" y="320"/>
|
||||
<point x="292" y="529" type="curve" smooth="yes"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,41 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="e" format="2">
|
||||
<unicode hex="0065"/>
|
||||
<advance width="1092"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="593" y="-20" type="curve"/>
|
||||
<point x="812" y="-20"/>
|
||||
<point x="936" y="85"/>
|
||||
<point x="1006" y="192" type="curve"/>
|
||||
<point x="885" y="286" type="line"/>
|
||||
<point x="820" y="200"/>
|
||||
<point x="735" y="140"/>
|
||||
<point x="604" y="140" type="curve" smooth="yes"/>
|
||||
<point x="406" y="140"/>
|
||||
<point x="294" y="302"/>
|
||||
<point x="294" y="502" type="curve" smooth="yes"/>
|
||||
<point x="294" y="544" type="line" smooth="yes"/>
|
||||
<point x="294" y="803"/>
|
||||
<point x="407" y="942"/>
|
||||
<point x="569" y="942" type="curve"/>
|
||||
<point x="755" y="942"/>
|
||||
<point x="808" y="792"/>
|
||||
<point x="818" y="655" type="curve"/>
|
||||
<point x="818" y="641" type="line"/>
|
||||
<point x="212" y="641" type="line"/>
|
||||
<point x="212" y="481" type="line"/>
|
||||
<point x="1018" y="481" type="line"/>
|
||||
<point x="1018" y="566" type="line" smooth="yes"/>
|
||||
<point x="1018" y="871"/>
|
||||
<point x="887" y="1102"/>
|
||||
<point x="569" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="326" y="1102"/>
|
||||
<point x="94" y="900"/>
|
||||
<point x="94" y="544" type="curve" smooth="yes"/>
|
||||
<point x="94" y="502" type="line" smooth="yes"/>
|
||||
<point x="94" y="198"/>
|
||||
<point x="287" y="-20"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="f" format="2">
|
||||
<unicode hex="0066"/>
|
||||
<advance width="719"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="429" y="0" type="line"/>
|
||||
<point x="429" y="1193" type="line"/>
|
||||
<point x="429" y="1320"/>
|
||||
<point x="496" y="1390"/>
|
||||
<point x="612" y="1390" type="curve" smooth="yes"/>
|
||||
<point x="645" y="1390"/>
|
||||
<point x="683" y="1387"/>
|
||||
<point x="710" y="1382" type="curve"/>
|
||||
<point x="720" y="1541" type="line"/>
|
||||
<point x="679" y="1551"/>
|
||||
<point x="635" y="1557"/>
|
||||
<point x="593" y="1557" type="curve" smooth="yes"/>
|
||||
<point x="367" y="1557"/>
|
||||
<point x="229" y="1428"/>
|
||||
<point x="229" y="1193" type="curve"/>
|
||||
<point x="229" y="0" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="653" y="1082" type="line"/>
|
||||
<point x="60" y="1082" type="line"/>
|
||||
<point x="60" y="932" type="line"/>
|
||||
<point x="653" y="932" type="line"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<glyph name="g" format="2">
|
||||
<unicode hex="0067"/>
|
||||
<advance width="1153"/>
|
||||
<outline>
|
||||
<contour>
|
||||
<point x="836" y="1082" type="line"/>
|
||||
<point x="817" y="844" type="line"/>
|
||||
<point x="817" y="14" type="line" smooth="yes"/>
|
||||
<point x="817" y="-170"/>
|
||||
<point x="706" y="-266"/>
|
||||
<point x="538" y="-266" type="curve" smooth="yes"/>
|
||||
<point x="444" y="-266"/>
|
||||
<point x="341" y="-232"/>
|
||||
<point x="250" y="-121" type="curve"/>
|
||||
<point x="147" y="-238" type="line"/>
|
||||
<point x="246" y="-382"/>
|
||||
<point x="446" y="-426"/>
|
||||
<point x="553" y="-426" type="curve" smooth="yes"/>
|
||||
<point x="825" y="-426"/>
|
||||
<point x="1017" y="-264"/>
|
||||
<point x="1017" y="24" type="curve" smooth="yes"/>
|
||||
<point x="1017" y="1082" type="line"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="94" y="529" type="line"/>
|
||||
<point x="94" y="214"/>
|
||||
<point x="261" y="-20"/>
|
||||
<point x="521" y="-20" type="curve" smooth="yes"/>
|
||||
<point x="799" y="-20"/>
|
||||
<point x="932" y="181"/>
|
||||
<point x="962" y="510" type="curve"/>
|
||||
<point x="962" y="572" type="line"/>
|
||||
<point x="932" y="901"/>
|
||||
<point x="799" y="1102"/>
|
||||
<point x="523" y="1102" type="curve" smooth="yes"/>
|
||||
<point x="259" y="1102"/>
|
||||
<point x="94" y="879"/>
|
||||
<point x="94" y="550" type="curve" smooth="yes"/>
|
||||
</contour>
|
||||
<contour>
|
||||
<point x="294" y="550" type="line"/>
|
||||
<point x="294" y="759"/>
|
||||
<point x="376" y="937"/>
|
||||
<point x="574" y="937" type="curve" smooth="yes"/>
|
||||
<point x="751" y="937"/>
|
||||
<point x="835" y="803"/>
|
||||
<point x="866" y="655" type="curve"/>
|
||||
<point x="866" y="426" type="line"/>
|
||||
<point x="825" y="277"/>
|
||||
<point x="751" y="146"/>
|
||||
<point x="572" y="146" type="curve" smooth="yes"/>
|
||||
<point x="376" y="146"/>
|
||||
<point x="294" y="320"/>
|
||||
<point x="294" y="529" type="curve" smooth="yes"/>
|
||||
</contour>
|
||||
</outline>
|
||||
</glyph>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user