From f0ef666b428062cb043d622033beefbdcd404f58 Mon Sep 17 00:00:00 2001 From: Matthew Butterick Date: Fri, 7 Jul 2017 11:39:04 -0700 Subject: [PATCH] shaping is right but mutation is wrong --- pitfall/fontkit/layout-engine.rkt | 4 +- pitfall/fontkit/ot-layout-engine.rkt | 11 +- pitfall/fontkit/ot-processor.rkt | 34 +- pitfall/pdfkit/node_modules/fontkit/index.js | 2 + pitfall/pitfall/test/out-racket.txt | 206 ++++ pitfall/pitfall/test/out.txt | 1056 +----------------- pitfall/pitfall/test/test16.pdf | Bin 5890 -> 0 bytes pitfall/pitfall/test/test16rkt.pdf | Bin 6086 -> 0 bytes 8 files changed, 235 insertions(+), 1078 deletions(-) create mode 100644 pitfall/pitfall/test/out-racket.txt diff --git a/pitfall/fontkit/layout-engine.rkt b/pitfall/fontkit/layout-engine.rkt index 853359fd..463dd92f 100644 --- a/pitfall/fontkit/layout-engine.rkt +++ b/pitfall/fontkit/layout-engine.rkt @@ -53,8 +53,8 @@ https://github.com/mbutterick/fontkit/blob/master/src/layout/LayoutEngine.js ;; Substitute and position the glyphs (set! glyphs (send this substitute glyphs features script language)) - (report/file 'end-sub) - #;(error 'stop) + (report*/file 'end-sub glyphs) + (error 'stop) (report/file 'ready-position) (define positions (send this position glyphs features script language)) (report/file 'fired-position) diff --git a/pitfall/fontkit/ot-layout-engine.rkt b/pitfall/fontkit/ot-layout-engine.rkt index 1542680c..6e6077db 100644 --- a/pitfall/fontkit/ot-layout-engine.rkt +++ b/pitfall/fontkit/ot-layout-engine.rkt @@ -37,11 +37,12 @@ https://github.com/mbutterick/fontkit/blob/master/src/opentype/OTLayoutEngine.js (define/public (substitute glyphs . _) (cond [(· this GSUBProcessor) - (send (· this plan) process (· this GSUBProcessor) (· this glyphInfos)) - - ;; Map glyph infos back to normal Glyph objects - (for/list ([glyphInfo (in-list (· this glyphInfos))]) - (send (· this font) getGlyph (· glyphInfo id) (· glyphInfo codePoints)))] + #;(report/file (· this glyphInfos)) + (send (· this plan) process (· this GSUBProcessor) (· this glyphInfos)) + #;(report/file (· this glyphInfos)) + ;; Map glyph infos back to normal Glyph objects + (for/list ([glyphInfo (in-list (· this glyphInfos))]) + (send (· this font) getGlyph (· glyphInfo id) (· glyphInfo codePoints)))] [else glyphs])) (define/public (position glyphs positions . _) diff --git a/pitfall/fontkit/ot-processor.rkt b/pitfall/fontkit/ot-processor.rkt index c306a7c3..8e672e8c 100644 --- a/pitfall/fontkit/ot-processor.rkt +++ b/pitfall/fontkit/ot-processor.rkt @@ -91,15 +91,17 @@ https://github.com/mbutterick/fontkit/blob/master/src/opentype/OTProcessor.js #;(report/file 'ot-proc:applyFeatures-part1) (define lookups (send this lookupsForFeatures userFeatures)) #;(report/file 'ot-proc:applyFeatures-part2) - (report (length lookups)) - (send this applyLookups lookups glyphs advances)) + (report/file (length glyphs)) + (send this applyLookups lookups glyphs advances) + (report*/file (length glyphs) (length (· this glyphs))) + (· this glyphs)) (define/public (applyLookups lookups glyphs positions) (set-field! glyphs this glyphs) (set-field! positions this positions) #;(report/file 'ot-proc:applyLookups) - (report (for/list ([g glyphs]) (· g id))) + (report (for/list ([g (· this glyphs)]) (· g id)) 'glyph-ids) (set-field! glyphIterator this (+GlyphIterator glyphs)) (for* ([lookup-entry (in-list lookups)]) @@ -109,18 +111,18 @@ https://github.com/mbutterick/fontkit/blob/master/src/opentype/OTProcessor.js (send (· this glyphIterator) reset (· lookup flags)) (while (< (or (· this glyphIterator index) 0) (length (· this glyphs))) - (report 'start-while++++++++++++++++++) + (report/file 'start-while++++++++++++++++++) (report (length (· this glyphs)) 'glyphs-length-top) (report (for/list ([g (· this glyphs)]) (· g id)) 'gids-top) (report (· this glyphIterator index) giterator-idx-top) - (report* feature (· this glyphIterator cur id) (· this glyphIterator cur features)) + (report* feature (dict-keys (· this glyphIterator cur features))) (report (dict-has-key? (· this glyphIterator cur features) feature)) (cond [(not (dict-has-key? (· this glyphIterator cur features) feature)) (send (· this glyphIterator) next)] [else - (report/file 'start-lookup-branch=================) - (report* (for/list ([g (· this glyphs)]) (· g id)) (for/list ([g (· this glyphIterator glyphs)]) (· g id)) (for/list ([g glyphs]) (· g id)) (· this glyphIterator index) (· this glyphIterator cur id) (· this glyphIterator peekIndex)) + (report 'start-lookup-branch=================) + (report* (for/list ([g glyphs]) (· g id)) (for/list ([g (· this glyphs)]) (· g id)) (for/list ([g (· this glyphIterator glyphs)]) (· g id)) (· this glyphIterator index) (· this glyphIterator cur id) (· this glyphIterator peekIndex)) (for/or ([table (in-list (· lookup subTables))]) (send this applyLookup (· lookup lookupType) table)) (report 'incrementing-iterator-at-bottom) @@ -146,7 +148,7 @@ https://github.com/mbutterick/fontkit/blob/master/src/opentype/OTProcessor.js (define pos (· this glyphIterator index)) (define glyph (send (· this glyphIterator) increment sequenceIndex)) (define idx 0) - (report*/file (and (pair? sequence) (list-ref sequence idx)) glyph (and glyph (· glyph id))) + #;(report*/file (and (pair? sequence) (list-ref sequence idx)) glyph (and glyph (· glyph id))) (while (and (< idx (length sequence)) glyph (fn (list-ref sequence idx) (· glyph id))) (report* 'in-match-loop idx (· glyph id)) @@ -164,7 +166,7 @@ https://github.com/mbutterick/fontkit/blob/master/src/opentype/OTProcessor.js (send this match sequenceIndex sequence (λ (component glyph) (= component glyph)) empty)) (define/public (coverageSequenceMatches sequenceIndex sequence) - (report 'in-coverageSequenceMatches) + #;(report 'in-coverageSequenceMatches) (send this match sequenceIndex sequence (λ (coverage glyph) (>= (send this coverageIndex coverage glyph) 0)))) (define/public (getClassID glyph classDef) @@ -207,10 +209,10 @@ https://github.com/mbutterick/fontkit/blob/master/src/opentype/OTProcessor.js [else #f])) (define/public (applyChainingContext table) - (report/file 'otproc:applyChainingContext) + #;(report/file 'otproc:applyChainingContext) (case (· table version) [(1) - (report 'case-1) + #;(report 'case-1) (define index (send this coverageIndex (· table coverage))) (cond [(= index -1) #f] @@ -221,7 +223,7 @@ https://github.com/mbutterick/fontkit/blob/master/src/opentype/OTProcessor.js (send this sequenceMatches (add1 (length (· rule input))) (· rule lookahead)))) (send this applyLookupList (· rule lookupRecords)))])] [(2) - (report 'case-2) + #;(report 'case-2) (cond [(= -1 (send this coverageIndex (· table coverage))) #f] [else (define index (send this getClassID (· this glyphIterator cur id) (· table inputClassDef))) @@ -234,11 +236,11 @@ https://github.com/mbutterick/fontkit/blob/master/src/opentype/OTProcessor.js (send this classSequenceMatches (add1 (length (· rule input))) (· rule lookahead) (· table lookaheadClassDef)))) (send this applyLookupList (· rule lookupRecords)))])])] [(3) - (report 'case-3) + #;(report 'case-3) (and - (report (send this coverageSequenceMatches (- (· table backtrackGlyphCount)) (· table backtrackCoverage)) 'a) - (report (send this coverageSequenceMatches 0 (· table inputCoverage)) 'b) - (report (send this coverageSequenceMatches (· table inputGlyphCount) (· table lookaheadCoverage)) 'c) + (send this coverageSequenceMatches (- (· table backtrackGlyphCount)) (· table backtrackCoverage)) + (send this coverageSequenceMatches 0 (· table inputCoverage)) + (send this coverageSequenceMatches (· table inputGlyphCount) (· table lookaheadCoverage)) (send this applyLookupList (· table lookupRecords)))] [else #f])) diff --git a/pitfall/pdfkit/node_modules/fontkit/index.js b/pitfall/pdfkit/node_modules/fontkit/index.js index d8b73962..2def1a49 100644 --- a/pitfall/pdfkit/node_modules/fontkit/index.js +++ b/pitfall/pdfkit/node_modules/fontkit/index.js @@ -9199,6 +9199,8 @@ var LayoutEngine = function () { // Substitute and position the glyphs glyphs = this.substitute(glyphs, features, script, language); + console.log("DONE WITH SUBS"); + throw new Error("fark"); var positions = this.position(glyphs, features, script, language); // Let the layout engine clean up any state it might have diff --git a/pitfall/pitfall/test/out-racket.txt b/pitfall/pitfall/test/out-racket.txt new file mode 100644 index 00000000..4afcbc97 --- /dev/null +++ b/pitfall/pitfall/test/out-racket.txt @@ -0,0 +1,206 @@ +'glyph-ids = '(450 480) +'resetting-iterator = 'resetting-iterator +'start-while++++++++++++++++++ = 'start-while++++++++++++++++++ on line 113 in "/Users/MB/git/pitfall/fontkit/ot-processor.rkt" +'glyphs-length-top = 2 +'gids-top = '(450 480) +giterator-idx-top = 0 +feature = 'numr +(dict-keys (· this glyphIterator cur features)) = '(clig mark liga curs rclt ccmp locl ltrm kern calt rlig ltra mkmk rvrn) +(dict-has-key? (· this glyphIterator cur features) feature) = #f +'start-while++++++++++++++++++ = 'start-while++++++++++++++++++ on line 113 in "/Users/MB/git/pitfall/fontkit/ot-processor.rkt" +'glyphs-length-top = 2 +'gids-top = '(450 480) +giterator-idx-top = 1 +feature = 'numr +(dict-keys (· this glyphIterator cur features)) = '(clig mark liga curs rclt ccmp locl ltrm kern calt rlig ltra mkmk rvrn) +(dict-has-key? (· this glyphIterator cur features) feature) = #f +'resetting-iterator = 'resetting-iterator +'start-while++++++++++++++++++ = 'start-while++++++++++++++++++ on line 113 in "/Users/MB/git/pitfall/fontkit/ot-processor.rkt" +'glyphs-length-top = 2 +'gids-top = '(450 480) +giterator-idx-top = 0 +feature = 'dnom +(dict-keys (· this glyphIterator cur features)) = '(clig mark liga curs rclt ccmp locl ltrm kern calt rlig ltra mkmk rvrn) +(dict-has-key? (· this glyphIterator cur features) feature) = #f +'start-while++++++++++++++++++ = 'start-while++++++++++++++++++ on line 113 in "/Users/MB/git/pitfall/fontkit/ot-processor.rkt" +'glyphs-length-top = 2 +'gids-top = '(450 480) +giterator-idx-top = 1 +feature = 'dnom +(dict-keys (· this glyphIterator cur features)) = '(clig mark liga curs rclt ccmp locl ltrm kern calt rlig ltra mkmk rvrn) +(dict-has-key? (· this glyphIterator cur features) feature) = #f +'resetting-iterator = 'resetting-iterator +'start-while++++++++++++++++++ = 'start-while++++++++++++++++++ on line 113 in "/Users/MB/git/pitfall/fontkit/ot-processor.rkt" +'glyphs-length-top = 2 +'gids-top = '(450 480) +giterator-idx-top = 0 +feature = 'frac +(dict-keys (· this glyphIterator cur features)) = '(clig mark liga curs rclt ccmp locl ltrm kern calt rlig ltra mkmk rvrn) +(dict-has-key? (· this glyphIterator cur features) feature) = #f +'start-while++++++++++++++++++ = 'start-while++++++++++++++++++ on line 113 in "/Users/MB/git/pitfall/fontkit/ot-processor.rkt" +'glyphs-length-top = 2 +'gids-top = '(450 480) +giterator-idx-top = 1 +feature = 'frac +(dict-keys (· this glyphIterator cur features)) = '(clig mark liga curs rclt ccmp locl ltrm kern calt rlig ltra mkmk rvrn) +(dict-has-key? (· this glyphIterator cur features) feature) = #f +'resetting-iterator = 'resetting-iterator +'start-while++++++++++++++++++ = 'start-while++++++++++++++++++ on line 113 in "/Users/MB/git/pitfall/fontkit/ot-processor.rkt" +'glyphs-length-top = 2 +'gids-top = '(450 480) +giterator-idx-top = 0 +feature = 'frac +(dict-keys (· this glyphIterator cur features)) = '(clig mark liga curs rclt ccmp locl ltrm kern calt rlig ltra mkmk rvrn) +(dict-has-key? (· this glyphIterator cur features) feature) = #f +'start-while++++++++++++++++++ = 'start-while++++++++++++++++++ on line 113 in "/Users/MB/git/pitfall/fontkit/ot-processor.rkt" +'glyphs-length-top = 2 +'gids-top = '(450 480) +giterator-idx-top = 1 +feature = 'frac +(dict-keys (· this glyphIterator cur features)) = '(clig mark liga curs rclt ccmp locl ltrm kern calt rlig ltra mkmk rvrn) +(dict-has-key? (· this glyphIterator cur features) feature) = #f +'resetting-iterator = 'resetting-iterator +'start-while++++++++++++++++++ = 'start-while++++++++++++++++++ on line 113 in "/Users/MB/git/pitfall/fontkit/ot-processor.rkt" +'glyphs-length-top = 2 +'gids-top = '(450 480) +giterator-idx-top = 0 +feature = 'frac +(dict-keys (· this glyphIterator cur features)) = '(clig mark liga curs rclt ccmp locl ltrm kern calt rlig ltra mkmk rvrn) +(dict-has-key? (· this glyphIterator cur features) feature) = #f +'start-while++++++++++++++++++ = 'start-while++++++++++++++++++ on line 113 in "/Users/MB/git/pitfall/fontkit/ot-processor.rkt" +'glyphs-length-top = 2 +'gids-top = '(450 480) +giterator-idx-top = 1 +feature = 'frac +(dict-keys (· this glyphIterator cur features)) = '(clig mark liga curs rclt ccmp locl ltrm kern calt rlig ltra mkmk rvrn) +(dict-has-key? (· this glyphIterator cur features) feature) = #f +'resetting-iterator = 'resetting-iterator +'start-while++++++++++++++++++ = 'start-while++++++++++++++++++ on line 113 in "/Users/MB/git/pitfall/fontkit/ot-processor.rkt" +'glyphs-length-top = 2 +'gids-top = '(450 480) +giterator-idx-top = 0 +feature = 'liga +(dict-keys (· this glyphIterator cur features)) = '(clig mark liga curs rclt ccmp locl ltrm kern calt rlig ltra mkmk rvrn) +(dict-has-key? (· this glyphIterator cur features) feature) = #t +'start-lookup-branch================= = 'start-lookup-branch================= +(for/list ((g glyphs)) (· g id)) = '(450 480) +(for/list ((g (· this glyphs))) (· g id)) = '(450 480) +(for/list ((g (· this glyphIterator glyphs))) (· g id)) = '(450 480) +(· this glyphIterator index) = 0 +(· this glyphIterator cur id) = 450 +(· this glyphIterator peekIndex) = 1 +'GSUBProcessor:applyLookup = 4 +'--------------------------- = '--------------------------- +'ligature-substitution = 'ligature-substitution +lookupType = 4 +(· table coverage glyphs) = '(450) +'forker = 0 +'starting-index = 0 +(send (· table ligatureSets) get (report index 'starting-index)) = '(((compCount . 2) (components 480) (glyph . 731)) ((compCount . 2) (components 514) (glyph . 732))) +(· ligature components) = '(480) +'in-match-loop = 'in-match-loop +idx = 0 +(· glyph id) = 480 +matched = '(1) +index = 1 +characters = '(102 105) +(· ligatureGlyph id) = 731 +(for/list ((g (· this glyphs))) (· g id)) = '(450 480) +(· this glyphIterator index) = 0 +(for/list ((g (· this glyphs))) (· g id)) = '(731) +(· this glyphIterator index) = 0 +'incrementing-iterator-at-bottom = 'incrementing-iterator-at-bottom +(· this glyphIterator cur) = #f +(· this glyphIterator index) = 1 +'resetting-iterator = 'resetting-iterator +'start-while++++++++++++++++++ = 'start-while++++++++++++++++++ on line 113 in "/Users/MB/git/pitfall/fontkit/ot-processor.rkt" +'glyphs-length-top = 1 +'gids-top = '(731) +giterator-idx-top = 0 +feature = 'calt +(dict-keys (· this glyphIterator cur features)) = '(clig mark rlig curs rvrn rclt ccmp locl ltrm kern calt liga ltra mkmk) +(dict-has-key? (· this glyphIterator cur features) feature) = #t +'start-lookup-branch================= = 'start-lookup-branch================= +(for/list ((g glyphs)) (· g id)) = '(450 480) +(for/list ((g (· this glyphs))) (· g id)) = '(731) +(for/list ((g (· this glyphIterator glyphs))) (· g id)) = '(731) +(· this glyphIterator index) = 0 +(· this glyphIterator cur id) = 731 +(· this glyphIterator peekIndex) = 1 +'GSUBProcessor:applyLookup = 4 +'--------------------------- = '--------------------------- +'ligature-substitution = 'ligature-substitution +lookupType = 4 +(· table coverage glyphs) = '(373 393 450 532 538 598 609 616 625 640 718 2127) +'forker = -1 +'incrementing-iterator-at-bottom = 'incrementing-iterator-at-bottom +(· this glyphIterator cur) = #f +(· this glyphIterator index) = 1 +'resetting-iterator = 'resetting-iterator +'start-while++++++++++++++++++ = 'start-while++++++++++++++++++ on line 113 in "/Users/MB/git/pitfall/fontkit/ot-processor.rkt" +'glyphs-length-top = 1 +'gids-top = '(731) +giterator-idx-top = 0 +feature = 'calt +(dict-keys (· this glyphIterator cur features)) = '(clig mark rlig curs rvrn rclt ccmp locl ltrm kern calt liga ltra mkmk) +(dict-has-key? (· this glyphIterator cur features) feature) = #t +'start-lookup-branch================= = 'start-lookup-branch================= +(for/list ((g glyphs)) (· g id)) = '(450 480) +(for/list ((g (· this glyphs))) (· g id)) = '(731) +(for/list ((g (· this glyphIterator glyphs))) (· g id)) = '(731) +(· this glyphIterator index) = 0 +(· this glyphIterator cur id) = 731 +(· this glyphIterator peekIndex) = 1 +'GSUBProcessor:applyLookup = 6 +'GSUBProcessor:applyLookup = 6 +'GSUBProcessor:applyLookup = 6 +'GSUBProcessor:applyLookup = 6 +'incrementing-iterator-at-bottom = 'incrementing-iterator-at-bottom +(· this glyphIterator cur) = #f +(· this glyphIterator index) = 1 +'resetting-iterator = 'resetting-iterator +'start-while++++++++++++++++++ = 'start-while++++++++++++++++++ on line 113 in "/Users/MB/git/pitfall/fontkit/ot-processor.rkt" +'glyphs-length-top = 1 +'gids-top = '(731) +giterator-idx-top = 0 +feature = 'calt +(dict-keys (· this glyphIterator cur features)) = '(clig mark rlig curs rvrn rclt ccmp locl ltrm kern calt liga ltra mkmk) +(dict-has-key? (· this glyphIterator cur features) feature) = #t +'start-lookup-branch================= = 'start-lookup-branch================= +(for/list ((g glyphs)) (· g id)) = '(450 480) +(for/list ((g (· this glyphs))) (· g id)) = '(731) +(for/list ((g (· this glyphIterator glyphs))) (· g id)) = '(731) +(· this glyphIterator index) = 0 +(· this glyphIterator cur id) = 731 +(· this glyphIterator peekIndex) = 1 +'GSUBProcessor:applyLookup = 6 +'GSUBProcessor:applyLookup = 6 +'GSUBProcessor:applyLookup = 6 +'GSUBProcessor:applyLookup = 6 +'incrementing-iterator-at-bottom = 'incrementing-iterator-at-bottom +(· this glyphIterator cur) = #f +(· this glyphIterator index) = 1 +'resetting-iterator = 'resetting-iterator +'start-while++++++++++++++++++ = 'start-while++++++++++++++++++ on line 113 in "/Users/MB/git/pitfall/fontkit/ot-processor.rkt" +'glyphs-length-top = 1 +'gids-top = '(731) +giterator-idx-top = 0 +feature = 'calt +(dict-keys (· this glyphIterator cur features)) = '(clig mark rlig curs rvrn rclt ccmp locl ltrm kern calt liga ltra mkmk) +(dict-has-key? (· this glyphIterator cur features) feature) = #t +'start-lookup-branch================= = 'start-lookup-branch================= +(for/list ((g glyphs)) (· g id)) = '(450 480) +(for/list ((g (· this glyphs))) (· g id)) = '(731) +(for/list ((g (· this glyphIterator glyphs))) (· g id)) = '(731) +(· this glyphIterator index) = 0 +(· this glyphIterator cur id) = 731 +(· this glyphIterator peekIndex) = 1 +'GSUBProcessor:applyLookup = 6 +'GSUBProcessor:applyLookup = 6 +'incrementing-iterator-at-bottom = 'incrementing-iterator-at-bottom +(· this glyphIterator cur) = #f +(· this glyphIterator index) = 1 +'end-sub = 'end-sub on line 56 in "/Users/MB/git/pitfall/fontkit/layout-engine.rkt" +glyphs = (list (object:TTFGlyph ...) (object:TTFGlyph ...)) on line 56 in "/Users/MB/git/pitfall/fontkit/layout-engine.rkt" +. error: stop +> \ No newline at end of file diff --git a/pitfall/pitfall/test/out.txt b/pitfall/pitfall/test/out.txt index be403513..cb412312 100644 --- a/pitfall/pitfall/test/out.txt +++ b/pitfall/pitfall/test/out.txt @@ -200,1058 +200,4 @@ this.glyphIterator.peekIndex() = 1 incrementing iterator at bottom this.glyphIterator.cur = bottom = null this.glyphIterator.index = bottom = 1 -glyph ids =731 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = kern -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = kern -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = kern -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = kern -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mark -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mark -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mark -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mkmk -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mkmk -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mkmk -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mkmk -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mkmk -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -glyph ids =450,480 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 0 -feature = numr -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 1 -feature = numr -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 0 -feature = dnom -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 1 -feature = dnom -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 0 -feature = frac -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 1 -feature = frac -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 0 -feature = frac -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 1 -feature = frac -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 0 -feature = frac -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 1 -feature = frac -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 0 -feature = liga -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =450,480 -this.glyph ids =450,480 -glyphIterator.glyph ids =450,480 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 450 -this.glyphIterator.peekIndex() = 1 -'GSUBProcessor:applyLookup 4 ----------------------------- -start ligature-substitution -lookupType = 4 -table.coverage.glyphs = 450 -forker = 0 -table.ligatureSets.get(_index3) = [object Object],[object Object] -starting index = 0 -ligature.components = 480 -in match loop -idx = 0 -glyph.id = 480 -matched = 1 -index = 1 -characters = 102,105 -ligatureGlyph.id = 731 -glyph ids before =450,480 -this.glyphIterator.index = 0 -glyph ids after =731 -this.glyphIterator.index = 0 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = calt -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -'GSUBProcessor:applyLookup 4 ----------------------------- -start ligature-substitution -lookupType = 4 -table.coverage.glyphs = 373,393,450,532,538,598,609,616,625,640,718,2127 -forker = -1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = calt -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -'GSUBProcessor:applyLookup 6 -'GSUBProcessor:applyLookup 6 -'GSUBProcessor:applyLookup 6 -'GSUBProcessor:applyLookup 6 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = calt -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -'GSUBProcessor:applyLookup 6 -'GSUBProcessor:applyLookup 6 -'GSUBProcessor:applyLookup 6 -'GSUBProcessor:applyLookup 6 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = calt -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -'GSUBProcessor:applyLookup 6 -'GSUBProcessor:applyLookup 6 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -glyph ids =731 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = kern -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = kern -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = kern -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = kern -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mark -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mark -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mark -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mkmk -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mkmk -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mkmk -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mkmk -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mkmk -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -glyph ids =450,480 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 0 -feature = numr -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 1 -feature = numr -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 0 -feature = dnom -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 1 -feature = dnom -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 0 -feature = frac -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 1 -feature = frac -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 0 -feature = frac -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 1 -feature = frac -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 0 -feature = frac -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 1 -feature = frac -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = false -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 2 -glyph ids at top =450,480 -this.glyphIterator.index at top = 0 -feature = liga -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =450,480 -this.glyph ids =450,480 -glyphIterator.glyph ids =450,480 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 450 -this.glyphIterator.peekIndex() = 1 -'GSUBProcessor:applyLookup 4 ----------------------------- -start ligature-substitution -lookupType = 4 -table.coverage.glyphs = 450 -forker = 0 -table.ligatureSets.get(_index3) = [object Object],[object Object] -starting index = 0 -ligature.components = 480 -in match loop -idx = 0 -glyph.id = 480 -matched = 1 -index = 1 -characters = 102,105 -ligatureGlyph.id = 731 -glyph ids before =450,480 -this.glyphIterator.index = 0 -glyph ids after =731 -this.glyphIterator.index = 0 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = calt -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -'GSUBProcessor:applyLookup 4 ----------------------------- -start ligature-substitution -lookupType = 4 -table.coverage.glyphs = 373,393,450,532,538,598,609,616,625,640,718,2127 -forker = -1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = calt -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -'GSUBProcessor:applyLookup 6 -'GSUBProcessor:applyLookup 6 -'GSUBProcessor:applyLookup 6 -'GSUBProcessor:applyLookup 6 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = calt -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -'GSUBProcessor:applyLookup 6 -'GSUBProcessor:applyLookup 6 -'GSUBProcessor:applyLookup 6 -'GSUBProcessor:applyLookup 6 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = calt -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -'GSUBProcessor:applyLookup 6 -'GSUBProcessor:applyLookup 6 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -glyph ids =731 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = kern -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = kern -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = kern -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = kern -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mark -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mark -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mark -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mkmk -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mkmk -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mkmk -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mkmk -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 -resetting iterator -start while +++++++++++++++++++++++++++++ -glyphs.length at top = 1 -glyph ids at top =731 -this.glyphIterator.index at top = 0 -feature = mkmk -this.glyphIterator.cur.features = rvrn,ltra,ltrm,ccmp,locl,rlig,mark,mkmk,calt,clig,liga,rclt,curs,kern -(feature in this.glyphIterator.cur.features) = true -start lookup branch ================================== -glyph ids =731 -this.glyph ids =731 -glyphIterator.glyph ids =731 -this.glyphIterator.index = 0 -this.glyphIterator.cur.id = 731 -this.glyphIterator.peekIndex() = 1 -incrementing iterator at bottom -this.glyphIterator.cur = bottom = null -this.glyphIterator.index = bottom = 1 +DONE WITH SUBS diff --git a/pitfall/pitfall/test/test16.pdf b/pitfall/pitfall/test/test16.pdf index 77bab5d29c9da8f835fab32cb5b5d0352bf7ca67..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 GIT binary patch literal 0 HcmV?d00001 literal 5890 zcmbVQOKcm*8J=B|61B1{IeNG;<7DWS6j|Kmo0McT3eATUS#d&3bWBQ7!xg!bnMkBU zQK{WrdMOYHXfHjqC|aNh3IynBs3b*F6hSTpdT4s^wdlQvq$rA{1)AFK_b*Ak-2kD) zoqzuMX8!lT#EfK8GkU-qQbr!(qeQr$S65$GVll;+y|-m@U&dHB6+CNZrOpFbUQm2D z%u?A%RPXX-KN!(KkWWknR}^2eTB!rJ%|lJxg1KGYsTIv_9<~_M(~4Os(fKrQ%gNNL z#YMBumwnKM`?BWUI`_?OLT;ipCR^hiWXwPYC-r86Jla0>;9!#6KKMnmvR=Q#r-BOB zx9c_2*i^^@Ki6r1&b+v(ym<;Qk!>*pJmB~9$ke1a!n2!}P-0})l;xP;?+;9K{|e7u zSJGMKrb5QG#I($uIHV2CEbSD{8Xtq1^X2+w_zNo4t0y?+Y9(dVO+J>o67&Zq{P+um z!xQ1?(q*!wb@tSuvzwtJ*QCttVy(P|Q=6`O$=E~?Z_h5}X6HOJ<(jc*RJQd*wfY9u zH;i?JrU^_~@zf!O>!FCB2SQOi{8J(Le6DV6l#ACY>l-HbE52*nMM{RLP(<;OJeugi zC}v4x>jksCey7f(laq=s*P29vQN_1dH#c9Q?WE>RdBY6yNtm#3$fN+prX9Tlo3M9h zwQgl&axO*NX)UPu62`V^<-=nP1bXq_HssD#)~Z(0EST$MgyT%~i@s^>+TRl`ExMt77;n6s;(ztWvpHZ_O-Tansm>qmNt0x$lH+;2l_Z zE4g@C0q2-$ykxH7xEsb+GgBGrlwaY)!S&0mg)Pd7I$jYlPv#O29RRqin;H? zt?CvXV14Ovv^1%Av;%Z%su2^}`b{~OuE0vlAK$*yUTBv^$v~zfUAOtNmD&rarEK+9 zrA&_Dfo3;7sOaDcm68T3uewhCcO6~y_=dwt*0jOGA)eJ8q;5d*&6i6MPF)?c4(Zb9^vhqp)*JhZ*=&EK_4@;vx2$m}Bs~~<_^u;kPh;N6Wa82;+j|fH&6wkZ z2SZ=y92x5zYpL}h+yeWJ#h0Z&uzt2|?H*=f_C2iq46^Mfb{#(9IGtlTmSjme)RZkh z_vkB2heP}(hgMo^OKgdySV|U*$!8gRq|*-h_m94mFFg9PIRoMV^M!mCdk;`wJO=mq z(bH@lhj8;Bu|F>48j|$mypTS2GAAo;HCRXDx1~&MoH^JyP2y*6JCn{pr|LLwcQ{)t zqvJ-$700;kqHM9c6Q2yRbL`9yx>yH1&AI^VOMJrO`+pYC#!`)8>7AQ75q~Gwu$5Ac zQJVeE`2!}|Ytb;{Zn~g>bz6@Ll;C z`vqo0s76?T^~9C&(LSfcE;GB|Be~DH9p~KVvn-wEWD&SEXM+{E0MC4(Y*OMd^) z9*SJ))Vq6ny0bR-W%qEmtw-q}c=+K!Z{OfxU+(}CrU%*g7x{B`o|WQ?B(Y8z5Bd7M zxR}YspGMMjE<2^p&gFTBWV1>64oQ+;owrM}yd=Nqia&)l9MH*%r!42=eb|4V4V|M; zzuKj^JnVcYtm_yYbe~h3e~}QGCaugo9gT&@rP1vDY&Ls4Cx1SC)%EQ7+=G8gpFIpo zpIw_vXPEqR_O={jJ%VXmuv@uwo^#~K*_-pCV{s`b!Y(nEFRbz1TR9<*7|m=cs;e%y zTd=%fNj0?xo0ElvE+kFx!kR8*jhDFiG$ZVzOM7FIl1vxV3(GmT>UQnsxX5I3ZV}JB zxR@krGN0#-Cdep>F|b-QF8s9aC*-G@9ETFS1{X>uR{)38nnF~RsA$1eKmxgh7uZW zyTMQLUA~L68-B+K%(|H?WL(BVKBwlf8ehy|$wfxBB+EL9bYk4S@9Zw^sPmQP zDUt^&Bw=xZr*~C@0%3WIxyYM>yP#xSOJN&PjZ{-a_hYt;VeG=@ebWwaIzu_5Cic1& zTRP`Rnx&)8=pH<`$0S96`VAopoC4@+jD z|7-z4JQAwM1hBzazX}&81)JVOrCZt1udxP`)7hNpRTDfdx{;KMihN7(0>ppV*C(;F zERonPG@j`2h#imX65KQZ+xk7a7}OdPjYIG=jpwz7jmGb24LglbY7GaC7qmtPjV`Ux zN#j#m!%5>stY8b_cbjibb&u3PRwpXHG5$H6F3_4FM;m zPgXP<#i{BMpACIr{iH}utCNkOGzg2rupbJax}|``HYRlu(Y)tlx`=)g6iHYFd;%e1 zLnGYFXQ_DM%DLU$S#=i8B8Rq)wup+3O48r}wS6Db|Igj9_U0jg*-@9XHb2J=Fw6@-AkTkvzL>F zk}7OTql7jjCk+?qLLRkye2)Q@(3sU3W74HU!VK)fU`fGwrwD-})GY020Pwv735C{v zOcR`FVDpHj1fF=)P?tN9g^ajDKH!k<7;X7LjlnfnEw*r?z&W2$XGs`ED`vTj3}|_j zWpiF0!@H3*ZZUD#fy+BaFq^~D{@b@1sFTT6P+O6Kj=FfRr9rYCngYF^kDJ&I<+P@9 zFL`YSjX9S0HoVdR3h?=THllgJj_T4ozrc%Cn0cqGZ`cS)LG# zuy} z-T9V|X>vx}sWW81n>gSSA^LT6O@aQ3T!5-tV%@?H^AGk8qm8Hk`TJ ze&y&VuQKk|a3h1ux}ZY$FU=2+M(~>-Kag9zKsbs^EBf%t0WXLPx1&6N(2vW3W4u7% z#9rKe;#T1(E)bl+_3KfdpY9Tm@dCIHJkIln!?^x9wl^9%dER8?klcFBz(r!sx~^U< te;;=$xD{NeR_mPZQgB0OUHs84taZ(}T{miV%Ucm#*eN3;>6d4e{{fbCH>Cgo diff --git a/pitfall/pitfall/test/test16rkt.pdf b/pitfall/pitfall/test/test16rkt.pdf index 4ff081a582e616245f0ac2e463a41fbddb0e7a40..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 GIT binary patch literal 0 HcmV?d00001 literal 6086 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