├── .gitignore ├── Makefile ├── fake.ttf ├── hack.ttf ├── test.woff ├── hack.subset.ttf ├── go.mod ├── go.sum ├── roomids.txt ├── README.md ├── genfont.py ├── ws.go ├── main.go └── fake.ttx /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | result 3 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | build: 2 | go install -v 3 | 4 | run: 5 | douyu-crawler-demo 6 | -------------------------------------------------------------------------------- /fake.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cj1128/douyu-crawler-demo/HEAD/fake.ttf -------------------------------------------------------------------------------- /hack.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cj1128/douyu-crawler-demo/HEAD/hack.ttf -------------------------------------------------------------------------------- /test.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cj1128/douyu-crawler-demo/HEAD/test.woff -------------------------------------------------------------------------------- /hack.subset.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cj1128/douyu-crawler-demo/HEAD/hack.subset.ttf -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/cj1128/douyu-crawler-demo 2 | 3 | go 1.14 4 | 5 | require ( 6 | github.com/gorilla/websocket v1.4.2 7 | github.com/otiai10/gosseract v2.2.1+incompatible 8 | github.com/pkg/errors v0.9.1 9 | github.com/veandco/go-sdl2 v0.4.4 10 | ) 11 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= 2 | github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= 3 | github.com/otiai10/gosseract v2.2.1+incompatible h1:Ry5ltVdpdp4LAa2bMjsSJH34XHVOV7XMi41HtzL8X2I= 4 | github.com/otiai10/gosseract v2.2.1+incompatible/go.mod h1:XrzWItCzCpFRZ35n3YtVTgq5bLAhFIkascoRo8G32QE= 5 | github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= 6 | github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 7 | github.com/veandco/go-sdl2 v0.4.4 h1:coOJGftOdvNvGoUIZmm4XD+ZRQF4mg9ZVHmH3/42zFQ= 8 | github.com/veandco/go-sdl2 v0.4.4/go.mod h1:FB+kTpX9YTE+urhYiClnRzpOXbiWgaU3+5F2AB78DPg= 9 | -------------------------------------------------------------------------------- /roomids.txt: -------------------------------------------------------------------------------- 1 | 2947432 2 | 99999 3 | 5022725 4 | 71415 5 | 6512 6 | 66666 7 | 5395900 8 | 52319 9 | 5551065 10 | 7874579 11 | 74751 12 | 5324055 13 | 461130 14 | 5324388 15 | 5818349 16 | 1121443 17 | 1143121 18 | 65962 19 | 1415 20 | 191431 21 | 5321749 22 | 5574362 23 | 757122 24 | 1289415 25 | 5592288 26 | 4291405 27 | 6794440 28 | 3361877 29 | 5632185 30 | 6588602 31 | 5168755 32 | 582074 33 | 6509544 34 | 562007 35 | 5324559 36 | 94228 37 | 6583631 38 | 2667743 39 | 6937618 40 | 4666609 41 | 308993 42 | 5324613 43 | 46000 44 | 6710618 45 | 5574973 46 | 5586772 47 | 6560603 48 | 6464113 49 | 2150596 50 | 820795 51 | 954258 52 | 6682560 53 | 5083790 54 | 4895619 55 | 80756 56 | 5747228 57 | 5175512 58 | 548061 59 | 12930 60 | 5574907 61 | 5168755 62 | 582074 63 | 6509544 64 | 562007 65 | 5324559 66 | 94228 67 | 6583631 68 | 2667743 69 | 6937618 70 | 4666609 71 | 308993 72 | 5324613 73 | 46000 74 | 6710618 75 | 5574973 76 | 5586772 77 | 6560603 78 | 6464113 79 | 2150596 80 | 820795 81 | 954258 82 | 6682560 83 | 5083790 84 | 4895619 85 | 80756 86 | 5747228 87 | 5175512 88 | 548061 89 | 12930 90 | 5574907 91 | 599351 92 | 7833742 93 | 6522466 94 | 1370693 95 | 8546776 96 | 5630372 97 | 6043590 98 | 5715587 99 | 8362761 100 | 6143935 101 | 7457181 102 | 139219 103 | 20360 104 | 1658669 105 | 4331948 106 | 6557140 107 | 7768165 108 | 5359506 109 | 6572448 110 | 5575407 111 | 262831 112 | 2989633 113 | 2706482 114 | 2328040 115 | 3784132 116 | 5174728 117 | 6506454 118 | 653829 119 | 8341465 120 | 5237825 121 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Douyu Crawler Demo 2 | 3 | 斗鱼关注人数爬虫 Demo,具体可以参考这篇博客 [斗鱼关注人数爬取 —— 字体反爬的攻与防](https://cjting.me/2020/07/01/douyu-crawler-and-font-anti-crawling/)。 4 | 5 | 注意:**爬虫程序有很高的时效性,很快就会过时无法使用。Demo 最后测试时间为 2020-07-02 日**。 6 | 7 | ## 安装 8 | 9 | ```bash 10 | $ go get -v github.com/cj1128/douyu-crawler-demo 11 | ``` 12 | 13 | ## 爬取主播关注人数 14 | 15 | 通过命令行参数传递 roomID。 16 | 17 | ```bash 18 | $ douyu-crawler-demo 2947432 19 | 2020/07/02 13:21:37 room ids: [2947432] 20 | [2947432] 13:21:37 start to crawl followed count 21 | [2947432] 13:21:37 followed_count fetched, fontID: tcmpj93mbl, obfuscatedNumber: 16570037 22 | [2947432] 13:21:37 font downloaded 23 | [2947432] 13:21:37 rendered image created 24 | [2947432] 13:21:37 font recognized, mapping: 0169573842 25 | [2947432] 13:21:37 real number parsed: 13780098 26 | [2947432] 13:21:37 success 27 | 2020/07/02 13:21:37 all done in 539.568009ms 28 | 2020/07/02 13:21:37 total: 1 29 | 2020/07/02 13:21:37 success: 1 30 | 2020/07/02 13:21:37 error: 0 31 | 2020/07/02 13:21:37 ocr failed count: 0 32 | $ cat result/result.txt 33 | 2947432,s5q2vdii2e,12980048,13780098 34 | # 房间号,字体 ID,假数据,真数据 35 | # 房间号为 2947432 的主播,关注人数为 13780098 36 | ``` 37 | 38 | 结果存储在 `result` 目录中: 39 | 40 | - `result/fonts`: 缓存所有下载的字体 41 | - `result/mapping.json`: 缓存字体的映射关系 42 | - `result/result.txt`: 存储爬取结果 43 | - `result/tmp`: 存储临时文件,比如字体渲染以后的图片 44 | 45 | 爬取大量主播时,也可以通过文件来传递房间号,每行一个房间号。 46 | 47 | ```bash 48 | $ douyu-crawler-demo -f roomids.txt 49 | ``` 50 | 51 | ## OCR 识别字体 52 | 53 | 可以传入字体进行 OCR 识别得到结果。 54 | 55 | ```bash 56 | $ douyu-crawler-demo -ocr fake.woff 57 | ocr result: 8123456709 58 | ``` 59 | 60 | ## 生成混淆字体用于反爬 61 | 62 | 传递基准字体文件名以及需要生成的混淆字体数量。 63 | 64 | 这里我们以 [Hack](https://sourcefoundry.org/hack/) 字体为例,注意使用前先记得裁剪。 65 | 66 | ```bash 67 | $ cd douyu-crawler-demo 68 | $ ./genfont.py hack.subset.ttf 20 69 | .... 70 | $ ls result/generated # 结果存储在这个目录中 71 | 0018fb8365.7149586203.ttf 267ccb0e95.8402759136.ttf 72 | 08a9457ab9.3958406712.ttf 281ef45f09.2154786390.ttf 73 | 1bbdd405ca.9147328650.ttf 788e0c7651.8790526413.ttf 74 | 1f985cd725.6417320895.ttf 5433d36fde.1326570894.ttf 75 | 2d56def315.8962135047.ttf 6844549191.3597082416.ttf 76 | 6bd27a4bac.0658392147.ttf a422833064.8416930752.ttf 77 | 6e337094a4.0754261839.ttf c7f0591c38.5761804329.ttf 78 | 9a0e22d6ad.9173452860.ttf d3269bd2ce.0384976152.ttf 79 | 9a407f17c1.8379426105.ttf f97691cc25.1587964230.ttf 80 | 44a428c37d.3602974581.ttf ffe2c54286.6894312057.ttf 81 | ``` 82 | 83 | 文件名的命名规则为 `fontID.mapping.ttf`。也就是说如果使用 `0018fb8365.7149586203.ttf` 这个字体,那么 0 会被渲染成为 7。 84 | -------------------------------------------------------------------------------- /genfont.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 生成用于数字混淆的字体文件用于反爬 3 | # 即字体对于数字的渲染是错误的,例如数字 1 会渲染成 5 4 | # ./genfont.py 5 | # 生成字体在 result/generated 目录中 6 | 7 | import sys 8 | import os 9 | import subprocess 10 | from pathlib import Path 11 | import random 12 | from bs4 import BeautifulSoup 13 | import copy 14 | import hashlib 15 | 16 | names = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"] 17 | 18 | # must contain glyphs with name "zero" "one" .. "nine" 19 | def check_font(ttx): 20 | for name in names: 21 | if ttx.find("TTGlyph", attrs={"name": name}) is None: 22 | return False 23 | 24 | return True 25 | 26 | def gen(ttx): 27 | mapping = names[:] 28 | random.shuffle(mapping) 29 | 30 | target = copy.copy(ttx) 31 | 32 | for name in names: 33 | target.find("TTGlyph", {"name": name})["id"] = name 34 | 35 | for idx, name in enumerate(names): 36 | tmp = target.find("TTGlyph", attrs={"id": mapping[idx]}) 37 | 38 | tmp.attrs = {} 39 | 40 | for k, v in ttx.find("TTGlyph", attrs={"name": name}).attrs.items(): 41 | tmp[k] = v 42 | 43 | content = target.prettify() 44 | name = hashlib.md5(content.encode("utf8")).hexdigest()[:10] + "." + "".join([str(names.index(x)) for x in mapping]) 45 | 46 | print(f"Generate temporary ttx: {name}.ttx") 47 | target_ttx_path = os.path.join("result", "tmp", f"{name}.ttx") 48 | with open(target_ttx_path, "w") as f: 49 | f.write(content) 50 | 51 | target_ttf_path = os.path.join("result", "generated", f"{name}.ttf") 52 | print(f"Generate target ttf: {target_ttf_path}") 53 | subprocess.run(f"ttx -o {target_ttf_path} {target_ttx_path}", shell=True, check=True) 54 | 55 | def run(font_file, count): 56 | ttx_name = os.path.splitext(font_file)[0] + ".ttx" 57 | ttx_path = os.path.join("result", "tmp", ttx_name) 58 | 59 | if not Path(ttx_path).exists(): 60 | print("Convert ttf to ttx..") 61 | subprocess.run(f"ttx -o {ttx_path} {font_file}", shell=True, check=True) 62 | 63 | with open(ttx_path) as f: 64 | ttx = BeautifulSoup(f, "xml") 65 | 66 | if not check_font(ttx): 67 | print("font must contain glyphs with name 'zero', 'one', 'two' .. 'nine'") 68 | exit(1) 69 | 70 | for _ in range(count): 71 | gen(ttx) 72 | 73 | if __name__ == "__main__": 74 | if len(sys.argv) < 3: 75 | print(f"usage: ./genfont.py ") 76 | exit(1) 77 | 78 | # create necessary dirs 79 | os.makedirs(os.path.join("result", "generated"), exist_ok=True) 80 | os.makedirs(os.path.join("result", "tmp"), exist_ok=True) 81 | 82 | run(sys.argv[1], int(sys.argv[2])) 83 | -------------------------------------------------------------------------------- /ws.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "bytes" 5 | "crypto/md5" 6 | "encoding/binary" 7 | "fmt" 8 | "net/url" 9 | "strings" 10 | "time" 11 | 12 | "github.com/pkg/errors" 13 | 14 | "github.com/gorilla/websocket" 15 | ) 16 | 17 | const devID = "4d9c39a8a93746b6db53675800021501" 18 | 19 | // return hex-encoded string 20 | func md5Sum(payload string) string { 21 | return fmt.Sprintf("%x", md5.Sum([]byte(payload))) 22 | } 23 | 24 | func decode(payload string) map[string]string { 25 | result := make(map[string]string) 26 | 27 | for _, item := range strings.Split(payload, "/") { 28 | parts := strings.Split(item, "@=") 29 | 30 | if len(parts) == 2 { 31 | result[parts[0]] = parts[1] 32 | } 33 | } 34 | 35 | return result 36 | } 37 | 38 | func encode(data map[string]interface{}) string { 39 | var buf strings.Builder 40 | first := true 41 | 42 | for k, v := range data { 43 | if !first { 44 | buf.WriteString("/") 45 | } 46 | 47 | buf.WriteString(fmt.Sprintf("%s@=%s", k, v)) 48 | first = false 49 | } 50 | 51 | return buf.String() 52 | } 53 | 54 | func genPayload(data map[string]interface{}) []byte { 55 | var buf bytes.Buffer 56 | buf.Write([]byte{0, 0, 0, 0, 0, 0, 0, 0, 0xb1, 0x02, 0x00, 0x00}) 57 | 58 | buf.WriteString(encode(data)) 59 | buf.WriteString("/\x00") 60 | 61 | length := buf.Len() - 4 62 | tmp := make([]byte, 4) 63 | binary.LittleEndian.PutUint32(tmp, uint32(length)) 64 | 65 | result := buf.Bytes() 66 | 67 | result[0] = tmp[0] 68 | result[1] = tmp[1] 69 | result[2] = tmp[2] 70 | result[3] = tmp[3] 71 | result[4] = tmp[0] 72 | result[5] = tmp[1] 73 | result[6] = tmp[2] 74 | result[7] = tmp[3] 75 | 76 | return result 77 | } 78 | 79 | func getFollowedCount(roomID string) (fontID string, obfuscatedNumber string, err error) { 80 | u := url.URL{Scheme: "wss", Host: "wsproxy.douyu.com:6672", Path: "/"} 81 | c, _, err := websocket.DefaultDialer.Dial(u.String(), nil) 82 | 83 | if err != nil { 84 | err = errors.Wrap(err, "websocket could not dial") 85 | return 86 | } 87 | 88 | defer c.Close() 89 | 90 | rt := fmt.Sprintf("%d", time.Now().Unix()) 91 | 92 | payload := genPayload(map[string]interface{}{ 93 | "type": "loginreq", 94 | "roomid": roomID, 95 | "devid": devID, 96 | "rt": rt, 97 | "vk": md5Sum(rt + "r5*^5;}2#${XF[h+;'./.Q'1;,-]f'p[" + devID), 98 | }) 99 | 100 | err = c.WriteMessage(websocket.BinaryMessage, payload) 101 | if err != nil { 102 | return 103 | } 104 | c.SetReadDeadline(time.Now().Add(20 * time.Second)) 105 | 106 | done := make(chan struct{}) 107 | 108 | go func() { 109 | defer close(done) 110 | 111 | msgCount := 0 112 | 113 | for { 114 | _, message, e := c.ReadMessage() 115 | 116 | if e != nil { 117 | err = errors.Wrap(e, "read message error") 118 | return 119 | } 120 | 121 | msgCount += 1 122 | 123 | // we need to retry 124 | if msgCount > 10 { 125 | err = errors.New("no followed_count received") 126 | return 127 | } 128 | 129 | data := decode(string(message[12:])) 130 | 131 | if data["type"] == "followed_count" { 132 | // log.Printf("recv: %v\n", data) 133 | fontID = data["ci"] 134 | obfuscatedNumber = data["cfdc"] 135 | return 136 | } else { 137 | // log.Printf("recv: %s\n", data["type"]) 138 | } 139 | } 140 | }() 141 | 142 | <-done 143 | 144 | return 145 | } 146 | -------------------------------------------------------------------------------- /main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "bufio" 5 | "encoding/json" 6 | "fmt" 7 | "io" 8 | "io/ioutil" 9 | "log" 10 | "net/http" 11 | "os" 12 | "path" 13 | "strings" 14 | "sync" 15 | "time" 16 | 17 | "github.com/otiai10/gosseract" 18 | "github.com/pkg/errors" 19 | "github.com/veandco/go-sdl2/img" 20 | "github.com/veandco/go-sdl2/sdl" 21 | "github.com/veandco/go-sdl2/ttf" 22 | ) 23 | 24 | var httpClient = &http.Client{ 25 | Timeout: time.Minute, 26 | } 27 | 28 | var ocrClient = gosseract.NewClient() 29 | var ocrLock sync.Mutex 30 | 31 | type crawlResult struct { 32 | err error 33 | roomID string 34 | fontID string 35 | obfuscatedNumber string 36 | realNumber string // "" means OCR error 37 | } 38 | 39 | var mapping sync.Map 40 | 41 | func must(err error) { 42 | if err != nil { 43 | panic(err) 44 | } 45 | } 46 | 47 | func parseRoomIDsFromFile(p string) ([]string, error) { 48 | file, err := os.Open(p) 49 | if err != nil { 50 | return nil, err 51 | } 52 | defer file.Close() 53 | 54 | var result []string 55 | 56 | scanner := bufio.NewScanner(file) 57 | 58 | for scanner.Scan() { 59 | result = append(result, scanner.Text()) 60 | } 61 | 62 | if err := scanner.Err(); err != nil { 63 | return nil, err 64 | } 65 | 66 | return result, nil 67 | } 68 | 69 | func main() { 70 | startTime := time.Now() 71 | 72 | // prepare folders 73 | must(os.MkdirAll("result", 0755)) 74 | must(os.MkdirAll("result/fonts", 0755)) 75 | must(os.MkdirAll("result/tmp", 0755)) 76 | 77 | defer ocrClient.Close() 78 | 79 | // init sdl ttf 80 | must(ttf.Init()) 81 | 82 | if len(os.Args) == 1 { 83 | fmt.Println(`usage: douyu-crawler-demo [roomid]... 84 | or douyu-crawler-demo -f 85 | or douyu-crawler-demo -ocr `) 86 | return 87 | } 88 | 89 | if os.Args[1] == "-ocr" { 90 | fontPath := os.Args[2] 91 | imgPath := path.Join("result", "tmp", "tmp.png") 92 | 93 | must(renderFont(fontPath, imgPath)) 94 | 95 | result := ocrText(imgPath) 96 | 97 | if isOCRValid(result) { 98 | fmt.Printf("ocr result: %s\n", result) 99 | } else { 100 | fmt.Printf("ocr faield") 101 | } 102 | 103 | return 104 | } 105 | 106 | // load previous mapping 107 | mappingFilePath := path.Join("result", "mapping.json") 108 | { 109 | if fileExists(mappingFilePath) { 110 | content, err := ioutil.ReadFile(mappingFilePath) 111 | must(err) 112 | 113 | var m map[string]string 114 | must(json.Unmarshal(content, &m)) 115 | 116 | for k, v := range m { 117 | mapping.Store(k, v) 118 | } 119 | } 120 | } 121 | 122 | var roomIDs []string 123 | 124 | if os.Args[1] == "-f" { 125 | var err error 126 | roomIDs, err = parseRoomIDsFromFile(os.Args[2]) 127 | if err != nil { 128 | log.Fatalf("could not parse room ids from file %s: %v", os.Args[2], err) 129 | } 130 | } else { 131 | roomIDs = os.Args[1:] 132 | } 133 | 134 | log.Printf("room ids: %v\n", roomIDs) 135 | 136 | var wg sync.WaitGroup 137 | 138 | totalCount := len(roomIDs) 139 | successCount := 0 140 | errorCount := 0 141 | ocrFailedCount := 0 142 | 143 | // csv file 144 | // fields: room id, font id, obfuscated number, real number 145 | // if ocr failed, write `?` for real number 146 | resultPath := path.Join("result", "result.txt") 147 | resultFile, err := os.Create(resultPath) 148 | must(err) 149 | defer resultFile.Close() 150 | 151 | roomIDChan := make(chan string) 152 | 153 | go func() { 154 | for _, roomID := range roomIDs { 155 | roomIDChan <- roomID 156 | } 157 | 158 | close(roomIDChan) 159 | }() 160 | 161 | for i := 0; i < 100; i++ { 162 | wg.Add(1) 163 | 164 | go func() { 165 | defer wg.Done() 166 | 167 | for roomID := range roomIDChan { 168 | l := log.New(os.Stdout, fmt.Sprintf("[%s] ", roomID), log.Ltime) 169 | 170 | // l.SetOutput(ioutil.Discard) 171 | result := crawlRoom(l, roomID) 172 | // l.SetOutput(os.Stdout) 173 | 174 | if result.err != nil { 175 | l.Printf("error: %v\n", result.err) 176 | errorCount += 1 177 | continue 178 | } 179 | 180 | if result.realNumber == "" { 181 | l.Printf("ocr failed, need manually processing: %s\n", result.fontID) 182 | ocrFailedCount += 1 183 | } else { 184 | successCount += 1 185 | } 186 | 187 | l.Println("success") 188 | 189 | if result.realNumber == "" { 190 | result.realNumber = "?" 191 | } 192 | resultFile.WriteString(fmt.Sprintf("%s,%s,%s,%s\n", 193 | roomID, 194 | result.fontID, 195 | result.obfuscatedNumber, 196 | result.realNumber, 197 | )) 198 | } 199 | }() 200 | } 201 | 202 | wg.Wait() 203 | 204 | // store mapping 205 | { 206 | f, err := os.Create(mappingFilePath) 207 | must(err) 208 | defer f.Close() 209 | 210 | m := make(map[string]string) 211 | 212 | mapping.Range(func(key, value interface{}) bool { 213 | m[key.(string)] = value.(string) 214 | return true 215 | }) 216 | 217 | buf, err := json.MarshalIndent(m, "", " ") 218 | must(err) 219 | 220 | f.Write(buf) 221 | } 222 | 223 | log.Printf("all done in %v\n", time.Since(startTime)) 224 | log.Printf(" total: %d\n", totalCount) 225 | log.Printf(" success: %d\n", successCount) 226 | log.Printf(" error: %d\n", errorCount) 227 | log.Printf(" ocr failed: %d\n", ocrFailedCount) 228 | } 229 | 230 | func crawlRoom(l *log.Logger, roomID string) crawlResult { 231 | l.Println("start to crawl followed count") 232 | 233 | result := crawlResult{roomID: roomID} 234 | 235 | // fetch followed_count, retry 5 times 236 | { 237 | var f, o string 238 | var err error 239 | 240 | for i := 0; i < 10; i++ { 241 | if i != 0 { 242 | l.Printf("retry for error %v\n", err) 243 | time.Sleep(time.Duration(i) * time.Second) 244 | } 245 | 246 | f, o, err = getFollowedCount(roomID) 247 | 248 | if f != "" { 249 | result.fontID = f 250 | result.obfuscatedNumber = o 251 | break 252 | } 253 | } 254 | 255 | if result.fontID == "" { 256 | result.err = errors.Wrap(err, "could not get followed_count") 257 | return result 258 | } 259 | 260 | l.Printf("followed_count fetched, fontID: %s, obfuscatedNumber: %s\n", result.fontID, result.obfuscatedNumber) 261 | } 262 | 263 | // check if we already have mapping 264 | if v, ok := mapping.Load(result.fontID); ok { 265 | l.Println("mapipng found") 266 | 267 | result.realNumber = parseObfuscatedNumber(result.obfuscatedNumber, v.(string)) 268 | return result 269 | } 270 | 271 | // download font 272 | fontPath := path.Join("result", "fonts", result.fontID+".woff") 273 | { 274 | if !fileExists(fontPath) { 275 | if err := downloadFont(result.fontID, fontPath); err != nil { 276 | result.err = errors.Wrap(err, "could not download font file") 277 | } 278 | l.Println("font downloaded") 279 | } else { 280 | l.Println("font found") 281 | } 282 | } 283 | 284 | // render font 285 | imgPath := path.Join("result", "tmp", result.fontID+".png") 286 | { 287 | if fileExists(imgPath) { 288 | l.Println("rendered image found") 289 | } else { 290 | if err := renderFont(fontPath, imgPath); err != nil { 291 | result.err = errors.Wrap(err, "could not render font") 292 | return result 293 | } 294 | 295 | l.Println("rendered image created") 296 | } 297 | } 298 | 299 | // ocr font 300 | ocrResult := ocrText(imgPath) 301 | 302 | if !isOCRValid(ocrResult) { 303 | l.Println("could not recognize font") 304 | return result 305 | } 306 | 307 | l.Printf("font recognized, mapping: %s\n", ocrResult) 308 | mapping.Store(result.fontID, ocrResult) 309 | 310 | result.realNumber = parseObfuscatedNumber(result.obfuscatedNumber, ocrResult) 311 | 312 | l.Printf("real number parsed: %s\n", result.realNumber) 313 | 314 | return result 315 | } 316 | 317 | // https://shark.douyucdn.cn/app/douyu/res/font/FONT_ID.woff 318 | func downloadFont(fontID string, destPath string) error { 319 | out, err := os.Create(destPath) 320 | if err != nil { 321 | return err 322 | } 323 | defer out.Close() 324 | 325 | resp, err := httpClient.Get(fmt.Sprintf("https://shark.douyucdn.cn/app/douyu/res/font/%s.woff", fontID)) 326 | if err != nil { 327 | return err 328 | } 329 | defer resp.Body.Close() 330 | 331 | _, err = io.Copy(out, resp.Body) 332 | if err != nil { 333 | return err 334 | } 335 | 336 | return nil 337 | } 338 | 339 | func renderFont(fontPath, imgPath string) error { 340 | font, err := ttf.OpenFont(fontPath, 50) 341 | 342 | if err != nil { 343 | return errors.Wrap(err, "could not open font") 344 | } 345 | 346 | surface, err := font.RenderUTF8Solid("0123456789", sdl.Color{0, 0, 0, 0}) 347 | if err != nil { 348 | return errors.Wrap(err, "could not render text") 349 | } 350 | 351 | return img.SavePNG(surface, imgPath) 352 | } 353 | 354 | func ocrText(imgPath string) string { 355 | ocrLock.Lock() 356 | defer ocrLock.Unlock() 357 | 358 | ocrClient.SetWhitelist("0123456789") 359 | ocrClient.SetImage(imgPath) 360 | text, _ := ocrClient.Text() 361 | return text 362 | } 363 | 364 | // should a string of length 10 with 0 ~ 9 365 | func isOCRValid(str string) bool { 366 | return len(str) == 10 && 367 | strings.ContainsRune(str, '0') && 368 | strings.ContainsRune(str, '1') && 369 | strings.ContainsRune(str, '2') && 370 | strings.ContainsRune(str, '3') && 371 | strings.ContainsRune(str, '4') && 372 | strings.ContainsRune(str, '5') && 373 | strings.ContainsRune(str, '6') && 374 | strings.ContainsRune(str, '7') && 375 | strings.ContainsRune(str, '8') && 376 | strings.ContainsRune(str, '9') 377 | } 378 | 379 | func parseObfuscatedNumber(o, mapping string) string { 380 | var result strings.Builder 381 | 382 | for _, digit := range o { 383 | result.WriteByte(mapping[digit-'0']) 384 | } 385 | 386 | return result.String() 387 | } 388 | 389 | func fileExists(path string) bool { 390 | _, err := os.Stat(path) 391 | return !os.IsNotExist(err) 392 | } 393 | -------------------------------------------------------------------------------- /fake.ttx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | PUSHB[ ] /* 1 value pushed */ 177 | 0 178 | FDEF[ ] /* FunctionDefinition */ 179 | DUP[ ] /* DuplicateTopStack */ 180 | PUSHB[ ] /* 1 value pushed */ 181 | 0 182 | NEQ[ ] /* NotEqual */ 183 | IF[ ] /* If */ 184 | RCVT[ ] /* ReadCVT */ 185 | EIF[ ] /* EndIf */ 186 | DUP[ ] /* DuplicateTopStack */ 187 | DUP[ ] /* DuplicateTopStack */ 188 | MPPEM[ ] /* MeasurePixelPerEm */ 189 | PUSHW[ ] /* 1 value pushed */ 190 | 10 191 | LTEQ[ ] /* LessThenOrEqual */ 192 | MPPEM[ ] /* MeasurePixelPerEm */ 193 | PUSHB[ ] /* 1 value pushed */ 194 | 6 195 | GTEQ[ ] /* GreaterThanOrEqual */ 196 | AND[ ] /* LogicalAnd */ 197 | IF[ ] /* If */ 198 | PUSHB[ ] /* 1 value pushed */ 199 | 52 200 | ELSE[ ] /* Else */ 201 | PUSHB[ ] /* 1 value pushed */ 202 | 40 203 | EIF[ ] /* EndIf */ 204 | ADD[ ] /* Add */ 205 | FLOOR[ ] /* Floor */ 206 | DUP[ ] /* DuplicateTopStack */ 207 | ROLL[ ] /* RollTopThreeStack */ 208 | NEQ[ ] /* NotEqual */ 209 | IF[ ] /* If */ 210 | PUSHB[ ] /* 1 value pushed */ 211 | 2 212 | CINDEX[ ] /* CopyXToTopStack */ 213 | SUB[ ] /* Subtract */ 214 | PUSHW[ ] /* 2 values pushed */ 215 | 2048 2048 216 | MUL[ ] /* Multiply */ 217 | MUL[ ] /* Multiply */ 218 | SWAP[ ] /* SwapTopStack */ 219 | DIV[ ] /* Divide */ 220 | ELSE[ ] /* Else */ 221 | POP[ ] /* PopTopStack */ 222 | POP[ ] /* PopTopStack */ 223 | PUSHB[ ] /* 1 value pushed */ 224 | 0 225 | EIF[ ] /* EndIf */ 226 | PUSHB[ ] /* 1 value pushed */ 227 | 0 228 | RS[ ] /* ReadStore */ 229 | SWAP[ ] /* SwapTopStack */ 230 | WCVTP[ ] /* WriteCVTInPixels */ 231 | PUSHB[ ] /* 3 values pushed */ 232 | 0 1 0 233 | RS[ ] /* ReadStore */ 234 | ADD[ ] /* Add */ 235 | WS[ ] /* WriteStore */ 236 | ENDF[ ] /* EndFunctionDefinition */ 237 | PUSHB[ ] /* 1 value pushed */ 238 | 1 239 | FDEF[ ] /* FunctionDefinition */ 240 | PUSHB[ ] /* 1 value pushed */ 241 | 32 242 | ADD[ ] /* Add */ 243 | FLOOR[ ] /* Floor */ 244 | ENDF[ ] /* EndFunctionDefinition */ 245 | PUSHB[ ] /* 1 value pushed */ 246 | 2 247 | FDEF[ ] /* FunctionDefinition */ 248 | DUP[ ] /* DuplicateTopStack */ 249 | ABS[ ] /* Absolute */ 250 | DUP[ ] /* DuplicateTopStack */ 251 | PUSHB[ ] /* 1 value pushed */ 252 | 192 253 | LT[ ] /* LessThan */ 254 | PUSHB[ ] /* 1 value pushed */ 255 | 4 256 | MINDEX[ ] /* MoveXToTopStack */ 257 | AND[ ] /* LogicalAnd */ 258 | PUSHB[ ] /* 3 values pushed */ 259 | 40 1 11 260 | RS[ ] /* ReadStore */ 261 | RCVT[ ] /* ReadCVT */ 262 | MUL[ ] /* Multiply */ 263 | RCVT[ ] /* ReadCVT */ 264 | PUSHB[ ] /* 1 value pushed */ 265 | 6 266 | RCVT[ ] /* ReadCVT */ 267 | IF[ ] /* If */ 268 | POP[ ] /* PopTopStack */ 269 | PUSHB[ ] /* 1 value pushed */ 270 | 3 271 | CINDEX[ ] /* CopyXToTopStack */ 272 | EIF[ ] /* EndIf */ 273 | GT[ ] /* GreaterThan */ 274 | OR[ ] /* LogicalOr */ 275 | IF[ ] /* If */ 276 | POP[ ] /* PopTopStack */ 277 | SWAP[ ] /* SwapTopStack */ 278 | POP[ ] /* PopTopStack */ 279 | ELSE[ ] /* Else */ 280 | ROLL[ ] /* RollTopThreeStack */ 281 | IF[ ] /* If */ 282 | DUP[ ] /* DuplicateTopStack */ 283 | PUSHB[ ] /* 1 value pushed */ 284 | 80 285 | LT[ ] /* LessThan */ 286 | IF[ ] /* If */ 287 | POP[ ] /* PopTopStack */ 288 | PUSHB[ ] /* 1 value pushed */ 289 | 64 290 | EIF[ ] /* EndIf */ 291 | ELSE[ ] /* Else */ 292 | DUP[ ] /* DuplicateTopStack */ 293 | PUSHB[ ] /* 1 value pushed */ 294 | 56 295 | LT[ ] /* LessThan */ 296 | IF[ ] /* If */ 297 | POP[ ] /* PopTopStack */ 298 | PUSHB[ ] /* 1 value pushed */ 299 | 56 300 | EIF[ ] /* EndIf */ 301 | EIF[ ] /* EndIf */ 302 | DUP[ ] /* DuplicateTopStack */ 303 | PUSHB[ ] /* 2 values pushed */ 304 | 1 11 305 | RS[ ] /* ReadStore */ 306 | RCVT[ ] /* ReadCVT */ 307 | MUL[ ] /* Multiply */ 308 | RCVT[ ] /* ReadCVT */ 309 | SUB[ ] /* Subtract */ 310 | ABS[ ] /* Absolute */ 311 | PUSHB[ ] /* 1 value pushed */ 312 | 40 313 | LT[ ] /* LessThan */ 314 | IF[ ] /* If */ 315 | POP[ ] /* PopTopStack */ 316 | PUSHB[ ] /* 2 values pushed */ 317 | 1 11 318 | RS[ ] /* ReadStore */ 319 | RCVT[ ] /* ReadCVT */ 320 | MUL[ ] /* Multiply */ 321 | RCVT[ ] /* ReadCVT */ 322 | DUP[ ] /* DuplicateTopStack */ 323 | PUSHB[ ] /* 1 value pushed */ 324 | 48 325 | LT[ ] /* LessThan */ 326 | IF[ ] /* If */ 327 | POP[ ] /* PopTopStack */ 328 | PUSHB[ ] /* 1 value pushed */ 329 | 48 330 | EIF[ ] /* EndIf */ 331 | ELSE[ ] /* Else */ 332 | DUP[ ] /* DuplicateTopStack */ 333 | PUSHB[ ] /* 1 value pushed */ 334 | 192 335 | LT[ ] /* LessThan */ 336 | IF[ ] /* If */ 337 | DUP[ ] /* DuplicateTopStack */ 338 | FLOOR[ ] /* Floor */ 339 | DUP[ ] /* DuplicateTopStack */ 340 | ROLL[ ] /* RollTopThreeStack */ 341 | ROLL[ ] /* RollTopThreeStack */ 342 | SUB[ ] /* Subtract */ 343 | DUP[ ] /* DuplicateTopStack */ 344 | PUSHB[ ] /* 1 value pushed */ 345 | 10 346 | LT[ ] /* LessThan */ 347 | IF[ ] /* If */ 348 | ADD[ ] /* Add */ 349 | ELSE[ ] /* Else */ 350 | DUP[ ] /* DuplicateTopStack */ 351 | PUSHB[ ] /* 1 value pushed */ 352 | 32 353 | LT[ ] /* LessThan */ 354 | IF[ ] /* If */ 355 | POP[ ] /* PopTopStack */ 356 | PUSHB[ ] /* 1 value pushed */ 357 | 10 358 | ADD[ ] /* Add */ 359 | ELSE[ ] /* Else */ 360 | DUP[ ] /* DuplicateTopStack */ 361 | PUSHB[ ] /* 1 value pushed */ 362 | 54 363 | LT[ ] /* LessThan */ 364 | IF[ ] /* If */ 365 | POP[ ] /* PopTopStack */ 366 | PUSHB[ ] /* 1 value pushed */ 367 | 54 368 | ADD[ ] /* Add */ 369 | ELSE[ ] /* Else */ 370 | ADD[ ] /* Add */ 371 | EIF[ ] /* EndIf */ 372 | EIF[ ] /* EndIf */ 373 | EIF[ ] /* EndIf */ 374 | ELSE[ ] /* Else */ 375 | PUSHB[ ] /* 1 value pushed */ 376 | 2 377 | CINDEX[ ] /* CopyXToTopStack */ 378 | PUSHB[ ] /* 1 value pushed */ 379 | 10 380 | RS[ ] /* ReadStore */ 381 | MUL[ ] /* Multiply */ 382 | PUSHB[ ] /* 1 value pushed */ 383 | 0 384 | GT[ ] /* GreaterThan */ 385 | IF[ ] /* If */ 386 | PUSHB[ ] /* 1 value pushed */ 387 | 0 388 | MPPEM[ ] /* MeasurePixelPerEm */ 389 | PUSHB[ ] /* 1 value pushed */ 390 | 10 391 | LT[ ] /* LessThan */ 392 | IF[ ] /* If */ 393 | POP[ ] /* PopTopStack */ 394 | PUSHB[ ] /* 1 value pushed */ 395 | 10 396 | RS[ ] /* ReadStore */ 397 | ELSE[ ] /* Else */ 398 | MPPEM[ ] /* MeasurePixelPerEm */ 399 | PUSHB[ ] /* 1 value pushed */ 400 | 30 401 | LT[ ] /* LessThan */ 402 | IF[ ] /* If */ 403 | POP[ ] /* PopTopStack */ 404 | PUSHB[ ] /* 1 value pushed */ 405 | 30 406 | MPPEM[ ] /* MeasurePixelPerEm */ 407 | SUB[ ] /* Subtract */ 408 | PUSHW[ ] /* 1 value pushed */ 409 | 4096 410 | MUL[ ] /* Multiply */ 411 | PUSHB[ ] /* 1 value pushed */ 412 | 10 413 | RS[ ] /* ReadStore */ 414 | MUL[ ] /* Multiply */ 415 | PUSHW[ ] /* 1 value pushed */ 416 | 1280 417 | DIV[ ] /* Divide */ 418 | EIF[ ] /* EndIf */ 419 | EIF[ ] /* EndIf */ 420 | ABS[ ] /* Absolute */ 421 | SUB[ ] /* Subtract */ 422 | EIF[ ] /* EndIf */ 423 | PUSHB[ ] /* 1 value pushed */ 424 | 1 425 | CALL[ ] /* CallFunction */ 426 | EIF[ ] /* EndIf */ 427 | EIF[ ] /* EndIf */ 428 | SWAP[ ] /* SwapTopStack */ 429 | PUSHB[ ] /* 1 value pushed */ 430 | 0 431 | LT[ ] /* LessThan */ 432 | IF[ ] /* If */ 433 | NEG[ ] /* Negate */ 434 | EIF[ ] /* EndIf */ 435 | EIF[ ] /* EndIf */ 436 | ENDF[ ] /* EndFunctionDefinition */ 437 | PUSHB[ ] /* 1 value pushed */ 438 | 3 439 | FDEF[ ] /* FunctionDefinition */ 440 | DUP[ ] /* DuplicateTopStack */ 441 | RCVT[ ] /* ReadCVT */ 442 | DUP[ ] /* DuplicateTopStack */ 443 | PUSHB[ ] /* 1 value pushed */ 444 | 4 445 | CINDEX[ ] /* CopyXToTopStack */ 446 | SUB[ ] /* Subtract */ 447 | ABS[ ] /* Absolute */ 448 | DUP[ ] /* DuplicateTopStack */ 449 | PUSHB[ ] /* 1 value pushed */ 450 | 5 451 | RS[ ] /* ReadStore */ 452 | LT[ ] /* LessThan */ 453 | IF[ ] /* If */ 454 | PUSHB[ ] /* 1 value pushed */ 455 | 5 456 | SWAP[ ] /* SwapTopStack */ 457 | WS[ ] /* WriteStore */ 458 | PUSHB[ ] /* 1 value pushed */ 459 | 6 460 | SWAP[ ] /* SwapTopStack */ 461 | WS[ ] /* WriteStore */ 462 | ELSE[ ] /* Else */ 463 | POP[ ] /* PopTopStack */ 464 | POP[ ] /* PopTopStack */ 465 | EIF[ ] /* EndIf */ 466 | PUSHB[ ] /* 1 value pushed */ 467 | 1 468 | ADD[ ] /* Add */ 469 | ENDF[ ] /* EndFunctionDefinition */ 470 | PUSHB[ ] /* 1 value pushed */ 471 | 4 472 | FDEF[ ] /* FunctionDefinition */ 473 | SWAP[ ] /* SwapTopStack */ 474 | POP[ ] /* PopTopStack */ 475 | SWAP[ ] /* SwapTopStack */ 476 | POP[ ] /* PopTopStack */ 477 | DUP[ ] /* DuplicateTopStack */ 478 | ABS[ ] /* Absolute */ 479 | PUSHB[ ] /* 2 values pushed */ 480 | 5 98 481 | WS[ ] /* WriteStore */ 482 | DUP[ ] /* DuplicateTopStack */ 483 | PUSHB[ ] /* 1 value pushed */ 484 | 6 485 | SWAP[ ] /* SwapTopStack */ 486 | WS[ ] /* WriteStore */ 487 | PUSHB[ ] /* 1 value pushed */ 488 | 6 489 | RCVT[ ] /* ReadCVT */ 490 | IF[ ] /* If */ 491 | ELSE[ ] /* Else */ 492 | PUSHB[ ] /* 2 values pushed */ 493 | 1 11 494 | RS[ ] /* ReadStore */ 495 | RCVT[ ] /* ReadCVT */ 496 | MUL[ ] /* Multiply */ 497 | PUSHB[ ] /* 2 values pushed */ 498 | 1 11 499 | RS[ ] /* ReadStore */ 500 | PUSHB[ ] /* 1 value pushed */ 501 | 6 502 | ADD[ ] /* Add */ 503 | RCVT[ ] /* ReadCVT */ 504 | MUL[ ] /* Multiply */ 505 | PUSHB[ ] /* 1 value pushed */ 506 | 3 507 | LOOPCALL[ ] /* LoopAndCallFunction */ 508 | POP[ ] /* PopTopStack */ 509 | DUP[ ] /* DuplicateTopStack */ 510 | PUSHB[ ] /* 1 value pushed */ 511 | 6 512 | RS[ ] /* ReadStore */ 513 | DUP[ ] /* DuplicateTopStack */ 514 | ROLL[ ] /* RollTopThreeStack */ 515 | DUP[ ] /* DuplicateTopStack */ 516 | ROLL[ ] /* RollTopThreeStack */ 517 | PUSHB[ ] /* 1 value pushed */ 518 | 1 519 | CALL[ ] /* CallFunction */ 520 | PUSHB[ ] /* 2 values pushed */ 521 | 48 5 522 | CINDEX[ ] /* CopyXToTopStack */ 523 | PUSHB[ ] /* 1 value pushed */ 524 | 4 525 | MINDEX[ ] /* MoveXToTopStack */ 526 | LTEQ[ ] /* LessThenOrEqual */ 527 | IF[ ] /* If */ 528 | ADD[ ] /* Add */ 529 | LT[ ] /* LessThan */ 530 | ELSE[ ] /* Else */ 531 | SUB[ ] /* Subtract */ 532 | GT[ ] /* GreaterThan */ 533 | EIF[ ] /* EndIf */ 534 | IF[ ] /* If */ 535 | SWAP[ ] /* SwapTopStack */ 536 | EIF[ ] /* EndIf */ 537 | POP[ ] /* PopTopStack */ 538 | EIF[ ] /* EndIf */ 539 | DUP[ ] /* DuplicateTopStack */ 540 | PUSHB[ ] /* 1 value pushed */ 541 | 64 542 | GTEQ[ ] /* GreaterThanOrEqual */ 543 | IF[ ] /* If */ 544 | PUSHB[ ] /* 1 value pushed */ 545 | 1 546 | CALL[ ] /* CallFunction */ 547 | ELSE[ ] /* Else */ 548 | POP[ ] /* PopTopStack */ 549 | PUSHB[ ] /* 1 value pushed */ 550 | 64 551 | EIF[ ] /* EndIf */ 552 | SWAP[ ] /* SwapTopStack */ 553 | PUSHB[ ] /* 1 value pushed */ 554 | 0 555 | LT[ ] /* LessThan */ 556 | IF[ ] /* If */ 557 | NEG[ ] /* Negate */ 558 | EIF[ ] /* EndIf */ 559 | ENDF[ ] /* EndFunctionDefinition */ 560 | PUSHB[ ] /* 1 value pushed */ 561 | 5 562 | FDEF[ ] /* FunctionDefinition */ 563 | PUSHB[ ] /* 1 value pushed */ 564 | 7 565 | RS[ ] /* ReadStore */ 566 | CALL[ ] /* CallFunction */ 567 | PUSHB[ ] /* 3 values pushed */ 568 | 0 2 0 569 | RS[ ] /* ReadStore */ 570 | ADD[ ] /* Add */ 571 | WS[ ] /* WriteStore */ 572 | ENDF[ ] /* EndFunctionDefinition */ 573 | PUSHB[ ] /* 1 value pushed */ 574 | 6 575 | FDEF[ ] /* FunctionDefinition */ 576 | PUSHB[ ] /* 1 value pushed */ 577 | 7 578 | SWAP[ ] /* SwapTopStack */ 579 | WS[ ] /* WriteStore */ 580 | SWAP[ ] /* SwapTopStack */ 581 | DUP[ ] /* DuplicateTopStack */ 582 | PUSHB[ ] /* 1 value pushed */ 583 | 0 584 | SWAP[ ] /* SwapTopStack */ 585 | WS[ ] /* WriteStore */ 586 | SUB[ ] /* Subtract */ 587 | PUSHB[ ] /* 1 value pushed */ 588 | 2 589 | DIV[ ] /* Divide */ 590 | FLOOR[ ] /* Floor */ 591 | PUSHB[ ] /* 1 value pushed */ 592 | 1 593 | MUL[ ] /* Multiply */ 594 | PUSHB[ ] /* 1 value pushed */ 595 | 1 596 | ADD[ ] /* Add */ 597 | PUSHB[ ] /* 1 value pushed */ 598 | 5 599 | LOOPCALL[ ] /* LoopAndCallFunction */ 600 | ENDF[ ] /* EndFunctionDefinition */ 601 | PUSHB[ ] /* 1 value pushed */ 602 | 7 603 | FDEF[ ] /* FunctionDefinition */ 604 | DUP[ ] /* DuplicateTopStack */ 605 | DUP[ ] /* DuplicateTopStack */ 606 | RCVT[ ] /* ReadCVT */ 607 | DUP[ ] /* DuplicateTopStack */ 608 | PUSHB[ ] /* 1 value pushed */ 609 | 12 610 | RS[ ] /* ReadStore */ 611 | MUL[ ] /* Multiply */ 612 | PUSHW[ ] /* 1 value pushed */ 613 | 1024 614 | DIV[ ] /* Divide */ 615 | DUP[ ] /* DuplicateTopStack */ 616 | PUSHB[ ] /* 1 value pushed */ 617 | 0 618 | LT[ ] /* LessThan */ 619 | IF[ ] /* If */ 620 | PUSHB[ ] /* 1 value pushed */ 621 | 64 622 | ADD[ ] /* Add */ 623 | EIF[ ] /* EndIf */ 624 | FLOOR[ ] /* Floor */ 625 | PUSHB[ ] /* 1 value pushed */ 626 | 1 627 | MUL[ ] /* Multiply */ 628 | ADD[ ] /* Add */ 629 | WCVTP[ ] /* WriteCVTInPixels */ 630 | PUSHB[ ] /* 1 value pushed */ 631 | 1 632 | ADD[ ] /* Add */ 633 | ENDF[ ] /* EndFunctionDefinition */ 634 | PUSHB[ ] /* 1 value pushed */ 635 | 8 636 | FDEF[ ] /* FunctionDefinition */ 637 | PUSHB[ ] /* 3 values pushed */ 638 | 7 12 0 639 | RS[ ] /* ReadStore */ 640 | RCVT[ ] /* ReadCVT */ 641 | WS[ ] /* WriteStore */ 642 | LOOPCALL[ ] /* LoopAndCallFunction */ 643 | POP[ ] /* PopTopStack */ 644 | PUSHB[ ] /* 3 values pushed */ 645 | 0 1 0 646 | RS[ ] /* ReadStore */ 647 | ADD[ ] /* Add */ 648 | WS[ ] /* WriteStore */ 649 | ENDF[ ] /* EndFunctionDefinition */ 650 | PUSHB[ ] /* 1 value pushed */ 651 | 9 652 | FDEF[ ] /* FunctionDefinition */ 653 | PUSHB[ ] /* 1 value pushed */ 654 | 0 655 | RS[ ] /* ReadStore */ 656 | SWAP[ ] /* SwapTopStack */ 657 | WCVTP[ ] /* WriteCVTInPixels */ 658 | PUSHB[ ] /* 3 values pushed */ 659 | 0 1 0 660 | RS[ ] /* ReadStore */ 661 | ADD[ ] /* Add */ 662 | WS[ ] /* WriteStore */ 663 | ENDF[ ] /* EndFunctionDefinition */ 664 | PUSHB[ ] /* 1 value pushed */ 665 | 10 666 | FDEF[ ] /* FunctionDefinition */ 667 | DUP[ ] /* DuplicateTopStack */ 668 | DUP[ ] /* DuplicateTopStack */ 669 | RCVT[ ] /* ReadCVT */ 670 | DUP[ ] /* DuplicateTopStack */ 671 | PUSHB[ ] /* 1 value pushed */ 672 | 1 673 | CALL[ ] /* CallFunction */ 674 | SWAP[ ] /* SwapTopStack */ 675 | PUSHB[ ] /* 1 value pushed */ 676 | 0 677 | RS[ ] /* ReadStore */ 678 | PUSHB[ ] /* 1 value pushed */ 679 | 4 680 | CINDEX[ ] /* CopyXToTopStack */ 681 | ADD[ ] /* Add */ 682 | DUP[ ] /* DuplicateTopStack */ 683 | RCVT[ ] /* ReadCVT */ 684 | ROLL[ ] /* RollTopThreeStack */ 685 | SWAP[ ] /* SwapTopStack */ 686 | SUB[ ] /* Subtract */ 687 | DUP[ ] /* DuplicateTopStack */ 688 | ABS[ ] /* Absolute */ 689 | DUP[ ] /* DuplicateTopStack */ 690 | PUSHB[ ] /* 1 value pushed */ 691 | 32 692 | LT[ ] /* LessThan */ 693 | IF[ ] /* If */ 694 | POP[ ] /* PopTopStack */ 695 | PUSHB[ ] /* 1 value pushed */ 696 | 0 697 | ELSE[ ] /* Else */ 698 | PUSHB[ ] /* 1 value pushed */ 699 | 48 700 | LT[ ] /* LessThan */ 701 | IF[ ] /* If */ 702 | PUSHB[ ] /* 1 value pushed */ 703 | 32 704 | ELSE[ ] /* Else */ 705 | PUSHB[ ] /* 1 value pushed */ 706 | 64 707 | EIF[ ] /* EndIf */ 708 | EIF[ ] /* EndIf */ 709 | SWAP[ ] /* SwapTopStack */ 710 | PUSHB[ ] /* 1 value pushed */ 711 | 0 712 | LT[ ] /* LessThan */ 713 | IF[ ] /* If */ 714 | NEG[ ] /* Negate */ 715 | EIF[ ] /* EndIf */ 716 | PUSHB[ ] /* 1 value pushed */ 717 | 3 718 | CINDEX[ ] /* CopyXToTopStack */ 719 | SWAP[ ] /* SwapTopStack */ 720 | SUB[ ] /* Subtract */ 721 | WCVTP[ ] /* WriteCVTInPixels */ 722 | WCVTP[ ] /* WriteCVTInPixels */ 723 | PUSHB[ ] /* 1 value pushed */ 724 | 1 725 | ADD[ ] /* Add */ 726 | ENDF[ ] /* EndFunctionDefinition */ 727 | PUSHB[ ] /* 1 value pushed */ 728 | 11 729 | FDEF[ ] /* FunctionDefinition */ 730 | DUP[ ] /* DuplicateTopStack */ 731 | DUP[ ] /* DuplicateTopStack */ 732 | RCVT[ ] /* ReadCVT */ 733 | DUP[ ] /* DuplicateTopStack */ 734 | PUSHB[ ] /* 1 value pushed */ 735 | 1 736 | CALL[ ] /* CallFunction */ 737 | SWAP[ ] /* SwapTopStack */ 738 | PUSHB[ ] /* 1 value pushed */ 739 | 0 740 | RS[ ] /* ReadStore */ 741 | PUSHB[ ] /* 1 value pushed */ 742 | 4 743 | CINDEX[ ] /* CopyXToTopStack */ 744 | ADD[ ] /* Add */ 745 | DUP[ ] /* DuplicateTopStack */ 746 | RCVT[ ] /* ReadCVT */ 747 | ROLL[ ] /* RollTopThreeStack */ 748 | SWAP[ ] /* SwapTopStack */ 749 | SUB[ ] /* Subtract */ 750 | DUP[ ] /* DuplicateTopStack */ 751 | ABS[ ] /* Absolute */ 752 | PUSHB[ ] /* 1 value pushed */ 753 | 36 754 | LT[ ] /* LessThan */ 755 | IF[ ] /* If */ 756 | PUSHB[ ] /* 1 value pushed */ 757 | 0 758 | ELSE[ ] /* Else */ 759 | PUSHB[ ] /* 1 value pushed */ 760 | 64 761 | EIF[ ] /* EndIf */ 762 | SWAP[ ] /* SwapTopStack */ 763 | PUSHB[ ] /* 1 value pushed */ 764 | 0 765 | LT[ ] /* LessThan */ 766 | IF[ ] /* If */ 767 | NEG[ ] /* Negate */ 768 | EIF[ ] /* EndIf */ 769 | PUSHB[ ] /* 1 value pushed */ 770 | 3 771 | CINDEX[ ] /* CopyXToTopStack */ 772 | SWAP[ ] /* SwapTopStack */ 773 | SUB[ ] /* Subtract */ 774 | WCVTP[ ] /* WriteCVTInPixels */ 775 | WCVTP[ ] /* WriteCVTInPixels */ 776 | PUSHB[ ] /* 1 value pushed */ 777 | 1 778 | ADD[ ] /* Add */ 779 | ENDF[ ] /* EndFunctionDefinition */ 780 | PUSHB[ ] /* 1 value pushed */ 781 | 12 782 | FDEF[ ] /* FunctionDefinition */ 783 | DUP[ ] /* DuplicateTopStack */ 784 | PUSHB[ ] /* 1 value pushed */ 785 | 0 786 | SWAP[ ] /* SwapTopStack */ 787 | WS[ ] /* WriteStore */ 788 | PUSHB[ ] /* 3 values pushed */ 789 | 11 10 3 790 | RCVT[ ] /* ReadCVT */ 791 | IF[ ] /* If */ 792 | POP[ ] /* PopTopStack */ 793 | ELSE[ ] /* Else */ 794 | SWAP[ ] /* SwapTopStack */ 795 | POP[ ] /* PopTopStack */ 796 | EIF[ ] /* EndIf */ 797 | LOOPCALL[ ] /* LoopAndCallFunction */ 798 | POP[ ] /* PopTopStack */ 799 | ENDF[ ] /* EndFunctionDefinition */ 800 | PUSHB[ ] /* 1 value pushed */ 801 | 13 802 | FDEF[ ] /* FunctionDefinition */ 803 | PUSHB[ ] /* 2 values pushed */ 804 | 2 2 805 | RCVT[ ] /* ReadCVT */ 806 | PUSHB[ ] /* 1 value pushed */ 807 | 100 808 | SUB[ ] /* Subtract */ 809 | WCVTP[ ] /* WriteCVTInPixels */ 810 | ENDF[ ] /* EndFunctionDefinition */ 811 | PUSHB[ ] /* 1 value pushed */ 812 | 14 813 | FDEF[ ] /* FunctionDefinition */ 814 | PUSHB[ ] /* 1 value pushed */ 815 | 1 816 | ADD[ ] /* Add */ 817 | DUP[ ] /* DuplicateTopStack */ 818 | DUP[ ] /* DuplicateTopStack */ 819 | PUSHB[ ] /* 1 value pushed */ 820 | 13 821 | RS[ ] /* ReadStore */ 822 | MD[1] /* MeasureDistance */ 823 | PUSHB[ ] /* 1 value pushed */ 824 | 0 825 | LT[ ] /* LessThan */ 826 | IF[ ] /* If */ 827 | DUP[ ] /* DuplicateTopStack */ 828 | PUSHB[ ] /* 1 value pushed */ 829 | 13 830 | SWAP[ ] /* SwapTopStack */ 831 | WS[ ] /* WriteStore */ 832 | EIF[ ] /* EndIf */ 833 | PUSHB[ ] /* 1 value pushed */ 834 | 14 835 | RS[ ] /* ReadStore */ 836 | MD[1] /* MeasureDistance */ 837 | PUSHB[ ] /* 1 value pushed */ 838 | 0 839 | GT[ ] /* GreaterThan */ 840 | IF[ ] /* If */ 841 | DUP[ ] /* DuplicateTopStack */ 842 | PUSHB[ ] /* 1 value pushed */ 843 | 14 844 | SWAP[ ] /* SwapTopStack */ 845 | WS[ ] /* WriteStore */ 846 | EIF[ ] /* EndIf */ 847 | ENDF[ ] /* EndFunctionDefinition */ 848 | PUSHB[ ] /* 1 value pushed */ 849 | 15 850 | FDEF[ ] /* FunctionDefinition */ 851 | DUP[ ] /* DuplicateTopStack */ 852 | PUSHB[ ] /* 1 value pushed */ 853 | 16 854 | DIV[ ] /* Divide */ 855 | FLOOR[ ] /* Floor */ 856 | PUSHB[ ] /* 1 value pushed */ 857 | 1 858 | MUL[ ] /* Multiply */ 859 | DUP[ ] /* DuplicateTopStack */ 860 | PUSHW[ ] /* 1 value pushed */ 861 | 1024 862 | MUL[ ] /* Multiply */ 863 | ROLL[ ] /* RollTopThreeStack */ 864 | SWAP[ ] /* SwapTopStack */ 865 | SUB[ ] /* Subtract */ 866 | PUSHB[ ] /* 1 value pushed */ 867 | 15 868 | RS[ ] /* ReadStore */ 869 | ADD[ ] /* Add */ 870 | DUP[ ] /* DuplicateTopStack */ 871 | ROLL[ ] /* RollTopThreeStack */ 872 | ADD[ ] /* Add */ 873 | DUP[ ] /* DuplicateTopStack */ 874 | PUSHB[ ] /* 1 value pushed */ 875 | 15 876 | SWAP[ ] /* SwapTopStack */ 877 | WS[ ] /* WriteStore */ 878 | SWAP[ ] /* SwapTopStack */ 879 | ENDF[ ] /* EndFunctionDefinition */ 880 | PUSHB[ ] /* 1 value pushed */ 881 | 16 882 | FDEF[ ] /* FunctionDefinition */ 883 | MPPEM[ ] /* MeasurePixelPerEm */ 884 | EQ[ ] /* Equal */ 885 | IF[ ] /* If */ 886 | PUSHB[ ] /* 2 values pushed */ 887 | 4 100 888 | WCVTP[ ] /* WriteCVTInPixels */ 889 | EIF[ ] /* EndIf */ 890 | DEPTH[ ] /* GetDepthStack */ 891 | PUSHB[ ] /* 1 value pushed */ 892 | 13 893 | NEG[ ] /* Negate */ 894 | SWAP[ ] /* SwapTopStack */ 895 | JROT[ ] /* JumpRelativeOnTrue */ 896 | ENDF[ ] /* EndFunctionDefinition */ 897 | PUSHB[ ] /* 1 value pushed */ 898 | 17 899 | FDEF[ ] /* FunctionDefinition */ 900 | MPPEM[ ] /* MeasurePixelPerEm */ 901 | LTEQ[ ] /* LessThenOrEqual */ 902 | IF[ ] /* If */ 903 | MPPEM[ ] /* MeasurePixelPerEm */ 904 | GTEQ[ ] /* GreaterThanOrEqual */ 905 | IF[ ] /* If */ 906 | PUSHB[ ] /* 2 values pushed */ 907 | 4 100 908 | WCVTP[ ] /* WriteCVTInPixels */ 909 | EIF[ ] /* EndIf */ 910 | ELSE[ ] /* Else */ 911 | POP[ ] /* PopTopStack */ 912 | EIF[ ] /* EndIf */ 913 | DEPTH[ ] /* GetDepthStack */ 914 | PUSHB[ ] /* 1 value pushed */ 915 | 19 916 | NEG[ ] /* Negate */ 917 | SWAP[ ] /* SwapTopStack */ 918 | JROT[ ] /* JumpRelativeOnTrue */ 919 | ENDF[ ] /* EndFunctionDefinition */ 920 | PUSHB[ ] /* 1 value pushed */ 921 | 18 922 | FDEF[ ] /* FunctionDefinition */ 923 | PUSHB[ ] /* 2 values pushed */ 924 | 0 16 925 | RS[ ] /* ReadStore */ 926 | NEQ[ ] /* NotEqual */ 927 | IF[ ] /* If */ 928 | PUSHB[ ] /* 2 values pushed */ 929 | 16 16 930 | RS[ ] /* ReadStore */ 931 | PUSHB[ ] /* 1 value pushed */ 932 | 1 933 | SUB[ ] /* Subtract */ 934 | WS[ ] /* WriteStore */ 935 | PUSHB[ ] /* 1 value pushed */ 936 | 15 937 | CALL[ ] /* CallFunction */ 938 | EIF[ ] /* EndIf */ 939 | PUSHB[ ] /* 1 value pushed */ 940 | 0 941 | RS[ ] /* ReadStore */ 942 | PUSHB[ ] /* 1 value pushed */ 943 | 2 944 | CINDEX[ ] /* CopyXToTopStack */ 945 | WS[ ] /* WriteStore */ 946 | PUSHB[ ] /* 2 values pushed */ 947 | 13 2 948 | CINDEX[ ] /* CopyXToTopStack */ 949 | WS[ ] /* WriteStore */ 950 | PUSHB[ ] /* 2 values pushed */ 951 | 14 2 952 | CINDEX[ ] /* CopyXToTopStack */ 953 | WS[ ] /* WriteStore */ 954 | PUSHB[ ] /* 1 value pushed */ 955 | 1 956 | SZPS[ ] /* SetZonePointerS */ 957 | SWAP[ ] /* SwapTopStack */ 958 | DUP[ ] /* DuplicateTopStack */ 959 | PUSHB[ ] /* 1 value pushed */ 960 | 3 961 | CINDEX[ ] /* CopyXToTopStack */ 962 | LT[ ] /* LessThan */ 963 | IF[ ] /* If */ 964 | PUSHB[ ] /* 2 values pushed */ 965 | 1 0 966 | RS[ ] /* ReadStore */ 967 | ADD[ ] /* Add */ 968 | PUSHB[ ] /* 1 value pushed */ 969 | 4 970 | CINDEX[ ] /* CopyXToTopStack */ 971 | WS[ ] /* WriteStore */ 972 | ROLL[ ] /* RollTopThreeStack */ 973 | ROLL[ ] /* RollTopThreeStack */ 974 | DUP[ ] /* DuplicateTopStack */ 975 | ROLL[ ] /* RollTopThreeStack */ 976 | SWAP[ ] /* SwapTopStack */ 977 | SUB[ ] /* Subtract */ 978 | PUSHB[ ] /* 1 value pushed */ 979 | 14 980 | LOOPCALL[ ] /* LoopAndCallFunction */ 981 | POP[ ] /* PopTopStack */ 982 | SWAP[ ] /* SwapTopStack */ 983 | PUSHB[ ] /* 1 value pushed */ 984 | 1 985 | SUB[ ] /* Subtract */ 986 | DUP[ ] /* DuplicateTopStack */ 987 | ROLL[ ] /* RollTopThreeStack */ 988 | SWAP[ ] /* SwapTopStack */ 989 | SUB[ ] /* Subtract */ 990 | PUSHB[ ] /* 1 value pushed */ 991 | 14 992 | LOOPCALL[ ] /* LoopAndCallFunction */ 993 | POP[ ] /* PopTopStack */ 994 | ELSE[ ] /* Else */ 995 | PUSHB[ ] /* 2 values pushed */ 996 | 1 0 997 | RS[ ] /* ReadStore */ 998 | ADD[ ] /* Add */ 999 | PUSHB[ ] /* 1 value pushed */ 1000 | 2 1001 | CINDEX[ ] /* CopyXToTopStack */ 1002 | WS[ ] /* WriteStore */ 1003 | PUSHB[ ] /* 1 value pushed */ 1004 | 2 1005 | CINDEX[ ] /* CopyXToTopStack */ 1006 | SUB[ ] /* Subtract */ 1007 | PUSHB[ ] /* 1 value pushed */ 1008 | 14 1009 | LOOPCALL[ ] /* LoopAndCallFunction */ 1010 | POP[ ] /* PopTopStack */ 1011 | EIF[ ] /* EndIf */ 1012 | PUSHB[ ] /* 1 value pushed */ 1013 | 13 1014 | RS[ ] /* ReadStore */ 1015 | GC[1] /* GetCoordOnPVector */ 1016 | PUSHB[ ] /* 1 value pushed */ 1017 | 14 1018 | RS[ ] /* ReadStore */ 1019 | GC[1] /* GetCoordOnPVector */ 1020 | ADD[ ] /* Add */ 1021 | PUSHB[ ] /* 1 value pushed */ 1022 | 2 1023 | DIV[ ] /* Divide */ 1024 | DUP[ ] /* DuplicateTopStack */ 1025 | PUSHB[ ] /* 1 value pushed */ 1026 | 0 1027 | LT[ ] /* LessThan */ 1028 | IF[ ] /* If */ 1029 | PUSHB[ ] /* 1 value pushed */ 1030 | 64 1031 | ADD[ ] /* Add */ 1032 | EIF[ ] /* EndIf */ 1033 | FLOOR[ ] /* Floor */ 1034 | PUSHB[ ] /* 1 value pushed */ 1035 | 1 1036 | MUL[ ] /* Multiply */ 1037 | DUP[ ] /* DuplicateTopStack */ 1038 | PUSHB[ ] /* 1 value pushed */ 1039 | 12 1040 | RS[ ] /* ReadStore */ 1041 | MUL[ ] /* Multiply */ 1042 | PUSHW[ ] /* 1 value pushed */ 1043 | 1024 1044 | DIV[ ] /* Divide */ 1045 | DUP[ ] /* DuplicateTopStack */ 1046 | PUSHB[ ] /* 1 value pushed */ 1047 | 0 1048 | LT[ ] /* LessThan */ 1049 | IF[ ] /* If */ 1050 | PUSHB[ ] /* 1 value pushed */ 1051 | 64 1052 | ADD[ ] /* Add */ 1053 | EIF[ ] /* EndIf */ 1054 | FLOOR[ ] /* Floor */ 1055 | PUSHB[ ] /* 1 value pushed */ 1056 | 1 1057 | MUL[ ] /* Multiply */ 1058 | ADD[ ] /* Add */ 1059 | PUSHB[ ] /* 2 values pushed */ 1060 | 0 0 1061 | SZP0[ ] /* SetZonePointer0 */ 1062 | SWAP[ ] /* SwapTopStack */ 1063 | WCVTP[ ] /* WriteCVTInPixels */ 1064 | PUSHB[ ] /* 1 value pushed */ 1065 | 1 1066 | RS[ ] /* ReadStore */ 1067 | PUSHB[ ] /* 1 value pushed */ 1068 | 0 1069 | MIAP[0] /* MoveIndirectAbsPt */ 1070 | PUSHB[ ] /* 3 values pushed */ 1071 | 1 1 1 1072 | RS[ ] /* ReadStore */ 1073 | ADD[ ] /* Add */ 1074 | WS[ ] /* WriteStore */ 1075 | ENDF[ ] /* EndFunctionDefinition */ 1076 | PUSHB[ ] /* 1 value pushed */ 1077 | 19 1078 | FDEF[ ] /* FunctionDefinition */ 1079 | SVTCA[0] /* SetFPVectorToAxis */ 1080 | PUSHB[ ] /* 2 values pushed */ 1081 | 0 2 1082 | RCVT[ ] /* ReadCVT */ 1083 | EQ[ ] /* Equal */ 1084 | IF[ ] /* If */ 1085 | PUSHB[ ] /* 1 value pushed */ 1086 | 16 1087 | SWAP[ ] /* SwapTopStack */ 1088 | WS[ ] /* WriteStore */ 1089 | DUP[ ] /* DuplicateTopStack */ 1090 | RCVT[ ] /* ReadCVT */ 1091 | PUSHB[ ] /* 1 value pushed */ 1092 | 12 1093 | SWAP[ ] /* SwapTopStack */ 1094 | WS[ ] /* WriteStore */ 1095 | PUSHB[ ] /* 1 value pushed */ 1096 | 11 1097 | SWAP[ ] /* SwapTopStack */ 1098 | PUSHB[ ] /* 1 value pushed */ 1099 | 6 1100 | ADD[ ] /* Add */ 1101 | WS[ ] /* WriteStore */ 1102 | DUP[ ] /* DuplicateTopStack */ 1103 | ADD[ ] /* Add */ 1104 | PUSHB[ ] /* 1 value pushed */ 1105 | 1 1106 | SUB[ ] /* Subtract */ 1107 | PUSHB[ ] /* 6 values pushed */ 1108 | 18 18 1 0 15 0 1109 | WS[ ] /* WriteStore */ 1110 | WS[ ] /* WriteStore */ 1111 | ROLL[ ] /* RollTopThreeStack */ 1112 | ADD[ ] /* Add */ 1113 | PUSHB[ ] /* 2 values pushed */ 1114 | 18 6 1115 | CALL[ ] /* CallFunction */ 1116 | PUSHB[ ] /* 1 value pushed */ 1117 | 137 1118 | CALL[ ] /* CallFunction */ 1119 | PUSHB[ ] /* 1 value pushed */ 1120 | 1 1121 | SZPS[ ] /* SetZonePointerS */ 1122 | ELSE[ ] /* Else */ 1123 | CLEAR[ ] /* ClearStack */ 1124 | EIF[ ] /* EndIf */ 1125 | ENDF[ ] /* EndFunctionDefinition */ 1126 | PUSHB[ ] /* 1 value pushed */ 1127 | 20 1128 | FDEF[ ] /* FunctionDefinition */ 1129 | PUSHB[ ] /* 2 values pushed */ 1130 | 0 19 1131 | CALL[ ] /* CallFunction */ 1132 | ENDF[ ] /* EndFunctionDefinition */ 1133 | PUSHB[ ] /* 1 value pushed */ 1134 | 21 1135 | FDEF[ ] /* FunctionDefinition */ 1136 | PUSHB[ ] /* 2 values pushed */ 1137 | 1 19 1138 | CALL[ ] /* CallFunction */ 1139 | ENDF[ ] /* EndFunctionDefinition */ 1140 | PUSHB[ ] /* 1 value pushed */ 1141 | 22 1142 | FDEF[ ] /* FunctionDefinition */ 1143 | PUSHB[ ] /* 2 values pushed */ 1144 | 2 19 1145 | CALL[ ] /* CallFunction */ 1146 | ENDF[ ] /* EndFunctionDefinition */ 1147 | PUSHB[ ] /* 1 value pushed */ 1148 | 23 1149 | FDEF[ ] /* FunctionDefinition */ 1150 | PUSHB[ ] /* 2 values pushed */ 1151 | 3 19 1152 | CALL[ ] /* CallFunction */ 1153 | ENDF[ ] /* EndFunctionDefinition */ 1154 | PUSHB[ ] /* 1 value pushed */ 1155 | 24 1156 | FDEF[ ] /* FunctionDefinition */ 1157 | PUSHB[ ] /* 2 values pushed */ 1158 | 4 19 1159 | CALL[ ] /* CallFunction */ 1160 | ENDF[ ] /* EndFunctionDefinition */ 1161 | PUSHB[ ] /* 1 value pushed */ 1162 | 25 1163 | FDEF[ ] /* FunctionDefinition */ 1164 | PUSHB[ ] /* 2 values pushed */ 1165 | 5 19 1166 | CALL[ ] /* CallFunction */ 1167 | ENDF[ ] /* EndFunctionDefinition */ 1168 | PUSHB[ ] /* 1 value pushed */ 1169 | 26 1170 | FDEF[ ] /* FunctionDefinition */ 1171 | PUSHB[ ] /* 2 values pushed */ 1172 | 6 19 1173 | CALL[ ] /* CallFunction */ 1174 | ENDF[ ] /* EndFunctionDefinition */ 1175 | PUSHB[ ] /* 1 value pushed */ 1176 | 27 1177 | FDEF[ ] /* FunctionDefinition */ 1178 | PUSHB[ ] /* 2 values pushed */ 1179 | 7 19 1180 | CALL[ ] /* CallFunction */ 1181 | ENDF[ ] /* EndFunctionDefinition */ 1182 | PUSHB[ ] /* 1 value pushed */ 1183 | 28 1184 | FDEF[ ] /* FunctionDefinition */ 1185 | PUSHB[ ] /* 2 values pushed */ 1186 | 8 19 1187 | CALL[ ] /* CallFunction */ 1188 | ENDF[ ] /* EndFunctionDefinition */ 1189 | PUSHB[ ] /* 1 value pushed */ 1190 | 29 1191 | FDEF[ ] /* FunctionDefinition */ 1192 | PUSHB[ ] /* 2 values pushed */ 1193 | 9 19 1194 | CALL[ ] /* CallFunction */ 1195 | ENDF[ ] /* EndFunctionDefinition */ 1196 | PUSHB[ ] /* 1 value pushed */ 1197 | 41 1198 | FDEF[ ] /* FunctionDefinition */ 1199 | SWAP[ ] /* SwapTopStack */ 1200 | DUP[ ] /* DuplicateTopStack */ 1201 | PUSHB[ ] /* 1 value pushed */ 1202 | 16 1203 | DIV[ ] /* Divide */ 1204 | FLOOR[ ] /* Floor */ 1205 | PUSHB[ ] /* 1 value pushed */ 1206 | 1 1207 | MUL[ ] /* Multiply */ 1208 | PUSHB[ ] /* 1 value pushed */ 1209 | 6 1210 | ADD[ ] /* Add */ 1211 | MPPEM[ ] /* MeasurePixelPerEm */ 1212 | EQ[ ] /* Equal */ 1213 | IF[ ] /* If */ 1214 | SWAP[ ] /* SwapTopStack */ 1215 | DUP[ ] /* DuplicateTopStack */ 1216 | MDAP[0] /* MoveDirectAbsPt */ 1217 | PUSHB[ ] /* 1 value pushed */ 1218 | 1 1219 | DELTAP1[ ] /* DeltaExceptionP1 */ 1220 | ELSE[ ] /* Else */ 1221 | POP[ ] /* PopTopStack */ 1222 | POP[ ] /* PopTopStack */ 1223 | EIF[ ] /* EndIf */ 1224 | ENDF[ ] /* EndFunctionDefinition */ 1225 | PUSHB[ ] /* 1 value pushed */ 1226 | 42 1227 | FDEF[ ] /* FunctionDefinition */ 1228 | SWAP[ ] /* SwapTopStack */ 1229 | DUP[ ] /* DuplicateTopStack */ 1230 | PUSHB[ ] /* 1 value pushed */ 1231 | 16 1232 | DIV[ ] /* Divide */ 1233 | FLOOR[ ] /* Floor */ 1234 | PUSHB[ ] /* 1 value pushed */ 1235 | 1 1236 | MUL[ ] /* Multiply */ 1237 | PUSHB[ ] /* 1 value pushed */ 1238 | 22 1239 | ADD[ ] /* Add */ 1240 | MPPEM[ ] /* MeasurePixelPerEm */ 1241 | EQ[ ] /* Equal */ 1242 | IF[ ] /* If */ 1243 | SWAP[ ] /* SwapTopStack */ 1244 | DUP[ ] /* DuplicateTopStack */ 1245 | MDAP[0] /* MoveDirectAbsPt */ 1246 | PUSHB[ ] /* 1 value pushed */ 1247 | 1 1248 | DELTAP2[ ] /* DeltaExceptionP2 */ 1249 | ELSE[ ] /* Else */ 1250 | POP[ ] /* PopTopStack */ 1251 | POP[ ] /* PopTopStack */ 1252 | EIF[ ] /* EndIf */ 1253 | ENDF[ ] /* EndFunctionDefinition */ 1254 | PUSHB[ ] /* 1 value pushed */ 1255 | 43 1256 | FDEF[ ] /* FunctionDefinition */ 1257 | SWAP[ ] /* SwapTopStack */ 1258 | DUP[ ] /* DuplicateTopStack */ 1259 | PUSHB[ ] /* 1 value pushed */ 1260 | 16 1261 | DIV[ ] /* Divide */ 1262 | FLOOR[ ] /* Floor */ 1263 | PUSHB[ ] /* 1 value pushed */ 1264 | 1 1265 | MUL[ ] /* Multiply */ 1266 | PUSHB[ ] /* 1 value pushed */ 1267 | 38 1268 | ADD[ ] /* Add */ 1269 | MPPEM[ ] /* MeasurePixelPerEm */ 1270 | EQ[ ] /* Equal */ 1271 | IF[ ] /* If */ 1272 | SWAP[ ] /* SwapTopStack */ 1273 | DUP[ ] /* DuplicateTopStack */ 1274 | MDAP[0] /* MoveDirectAbsPt */ 1275 | PUSHB[ ] /* 1 value pushed */ 1276 | 1 1277 | DELTAP3[ ] /* DeltaExceptionP3 */ 1278 | ELSE[ ] /* Else */ 1279 | POP[ ] /* PopTopStack */ 1280 | POP[ ] /* PopTopStack */ 1281 | EIF[ ] /* EndIf */ 1282 | ENDF[ ] /* EndFunctionDefinition */ 1283 | PUSHB[ ] /* 1 value pushed */ 1284 | 30 1285 | FDEF[ ] /* FunctionDefinition */ 1286 | SVTCA[0] /* SetFPVectorToAxis */ 1287 | PUSHB[ ] /* 1 value pushed */ 1288 | 13 1289 | CALL[ ] /* CallFunction */ 1290 | PUSHB[ ] /* 2 values pushed */ 1291 | 0 2 1292 | RCVT[ ] /* ReadCVT */ 1293 | EQ[ ] /* Equal */ 1294 | IF[ ] /* If */ 1295 | PUSHB[ ] /* 1 value pushed */ 1296 | 16 1297 | SWAP[ ] /* SwapTopStack */ 1298 | WS[ ] /* WriteStore */ 1299 | DUP[ ] /* DuplicateTopStack */ 1300 | RCVT[ ] /* ReadCVT */ 1301 | PUSHB[ ] /* 1 value pushed */ 1302 | 12 1303 | SWAP[ ] /* SwapTopStack */ 1304 | WS[ ] /* WriteStore */ 1305 | PUSHB[ ] /* 1 value pushed */ 1306 | 11 1307 | SWAP[ ] /* SwapTopStack */ 1308 | PUSHB[ ] /* 1 value pushed */ 1309 | 6 1310 | ADD[ ] /* Add */ 1311 | WS[ ] /* WriteStore */ 1312 | DUP[ ] /* DuplicateTopStack */ 1313 | ADD[ ] /* Add */ 1314 | PUSHB[ ] /* 1 value pushed */ 1315 | 1 1316 | SUB[ ] /* Subtract */ 1317 | PUSHB[ ] /* 6 values pushed */ 1318 | 18 18 1 0 15 0 1319 | WS[ ] /* WriteStore */ 1320 | WS[ ] /* WriteStore */ 1321 | ROLL[ ] /* RollTopThreeStack */ 1322 | ADD[ ] /* Add */ 1323 | PUSHB[ ] /* 2 values pushed */ 1324 | 18 6 1325 | CALL[ ] /* CallFunction */ 1326 | PUSHB[ ] /* 1 value pushed */ 1327 | 137 1328 | CALL[ ] /* CallFunction */ 1329 | PUSHB[ ] /* 1 value pushed */ 1330 | 1 1331 | SZPS[ ] /* SetZonePointerS */ 1332 | ELSE[ ] /* Else */ 1333 | CLEAR[ ] /* ClearStack */ 1334 | EIF[ ] /* EndIf */ 1335 | ENDF[ ] /* EndFunctionDefinition */ 1336 | PUSHB[ ] /* 1 value pushed */ 1337 | 31 1338 | FDEF[ ] /* FunctionDefinition */ 1339 | PUSHB[ ] /* 2 values pushed */ 1340 | 0 30 1341 | CALL[ ] /* CallFunction */ 1342 | ENDF[ ] /* EndFunctionDefinition */ 1343 | PUSHB[ ] /* 1 value pushed */ 1344 | 32 1345 | FDEF[ ] /* FunctionDefinition */ 1346 | PUSHB[ ] /* 2 values pushed */ 1347 | 1 30 1348 | CALL[ ] /* CallFunction */ 1349 | ENDF[ ] /* EndFunctionDefinition */ 1350 | PUSHB[ ] /* 1 value pushed */ 1351 | 33 1352 | FDEF[ ] /* FunctionDefinition */ 1353 | PUSHB[ ] /* 2 values pushed */ 1354 | 2 30 1355 | CALL[ ] /* CallFunction */ 1356 | ENDF[ ] /* EndFunctionDefinition */ 1357 | PUSHB[ ] /* 1 value pushed */ 1358 | 34 1359 | FDEF[ ] /* FunctionDefinition */ 1360 | PUSHB[ ] /* 2 values pushed */ 1361 | 3 30 1362 | CALL[ ] /* CallFunction */ 1363 | ENDF[ ] /* EndFunctionDefinition */ 1364 | PUSHB[ ] /* 1 value pushed */ 1365 | 35 1366 | FDEF[ ] /* FunctionDefinition */ 1367 | PUSHB[ ] /* 2 values pushed */ 1368 | 4 30 1369 | CALL[ ] /* CallFunction */ 1370 | ENDF[ ] /* EndFunctionDefinition */ 1371 | PUSHB[ ] /* 1 value pushed */ 1372 | 36 1373 | FDEF[ ] /* FunctionDefinition */ 1374 | PUSHB[ ] /* 2 values pushed */ 1375 | 5 30 1376 | CALL[ ] /* CallFunction */ 1377 | ENDF[ ] /* EndFunctionDefinition */ 1378 | PUSHB[ ] /* 1 value pushed */ 1379 | 37 1380 | FDEF[ ] /* FunctionDefinition */ 1381 | PUSHB[ ] /* 2 values pushed */ 1382 | 6 30 1383 | CALL[ ] /* CallFunction */ 1384 | ENDF[ ] /* EndFunctionDefinition */ 1385 | PUSHB[ ] /* 1 value pushed */ 1386 | 38 1387 | FDEF[ ] /* FunctionDefinition */ 1388 | PUSHB[ ] /* 2 values pushed */ 1389 | 7 30 1390 | CALL[ ] /* CallFunction */ 1391 | ENDF[ ] /* EndFunctionDefinition */ 1392 | PUSHB[ ] /* 1 value pushed */ 1393 | 39 1394 | FDEF[ ] /* FunctionDefinition */ 1395 | PUSHB[ ] /* 2 values pushed */ 1396 | 8 30 1397 | CALL[ ] /* CallFunction */ 1398 | ENDF[ ] /* EndFunctionDefinition */ 1399 | PUSHB[ ] /* 1 value pushed */ 1400 | 40 1401 | FDEF[ ] /* FunctionDefinition */ 1402 | PUSHB[ ] /* 2 values pushed */ 1403 | 9 30 1404 | CALL[ ] /* CallFunction */ 1405 | ENDF[ ] /* EndFunctionDefinition */ 1406 | PUSHB[ ] /* 1 value pushed */ 1407 | 44 1408 | FDEF[ ] /* FunctionDefinition */ 1409 | DUP[ ] /* DuplicateTopStack */ 1410 | ALIGNRP[ ] /* AlignRelativePt */ 1411 | PUSHB[ ] /* 1 value pushed */ 1412 | 1 1413 | ADD[ ] /* Add */ 1414 | ENDF[ ] /* EndFunctionDefinition */ 1415 | PUSHB[ ] /* 1 value pushed */ 1416 | 45 1417 | FDEF[ ] /* FunctionDefinition */ 1418 | DUP[ ] /* DuplicateTopStack */ 1419 | ADD[ ] /* Add */ 1420 | PUSHB[ ] /* 1 value pushed */ 1421 | 18 1422 | ADD[ ] /* Add */ 1423 | DUP[ ] /* DuplicateTopStack */ 1424 | RS[ ] /* ReadStore */ 1425 | SWAP[ ] /* SwapTopStack */ 1426 | PUSHB[ ] /* 1 value pushed */ 1427 | 1 1428 | ADD[ ] /* Add */ 1429 | RS[ ] /* ReadStore */ 1430 | PUSHB[ ] /* 1 value pushed */ 1431 | 2 1432 | CINDEX[ ] /* CopyXToTopStack */ 1433 | SUB[ ] /* Subtract */ 1434 | PUSHB[ ] /* 1 value pushed */ 1435 | 1 1436 | ADD[ ] /* Add */ 1437 | PUSHB[ ] /* 1 value pushed */ 1438 | 44 1439 | LOOPCALL[ ] /* LoopAndCallFunction */ 1440 | POP[ ] /* PopTopStack */ 1441 | ENDF[ ] /* EndFunctionDefinition */ 1442 | PUSHB[ ] /* 1 value pushed */ 1443 | 46 1444 | FDEF[ ] /* FunctionDefinition */ 1445 | PUSHB[ ] /* 1 value pushed */ 1446 | 45 1447 | CALL[ ] /* CallFunction */ 1448 | PUSHB[ ] /* 1 value pushed */ 1449 | 45 1450 | LOOPCALL[ ] /* LoopAndCallFunction */ 1451 | ENDF[ ] /* EndFunctionDefinition */ 1452 | PUSHB[ ] /* 1 value pushed */ 1453 | 47 1454 | FDEF[ ] /* FunctionDefinition */ 1455 | DUP[ ] /* DuplicateTopStack */ 1456 | DUP[ ] /* DuplicateTopStack */ 1457 | GC[1] /* GetCoordOnPVector */ 1458 | DUP[ ] /* DuplicateTopStack */ 1459 | DUP[ ] /* DuplicateTopStack */ 1460 | PUSHB[ ] /* 1 value pushed */ 1461 | 12 1462 | RS[ ] /* ReadStore */ 1463 | MUL[ ] /* Multiply */ 1464 | PUSHW[ ] /* 1 value pushed */ 1465 | 1024 1466 | DIV[ ] /* Divide */ 1467 | DUP[ ] /* DuplicateTopStack */ 1468 | PUSHB[ ] /* 1 value pushed */ 1469 | 0 1470 | LT[ ] /* LessThan */ 1471 | IF[ ] /* If */ 1472 | PUSHB[ ] /* 1 value pushed */ 1473 | 64 1474 | ADD[ ] /* Add */ 1475 | EIF[ ] /* EndIf */ 1476 | FLOOR[ ] /* Floor */ 1477 | PUSHB[ ] /* 1 value pushed */ 1478 | 1 1479 | MUL[ ] /* Multiply */ 1480 | ADD[ ] /* Add */ 1481 | SWAP[ ] /* SwapTopStack */ 1482 | SUB[ ] /* Subtract */ 1483 | SHPIX[ ] /* ShiftZoneByPixel */ 1484 | SWAP[ ] /* SwapTopStack */ 1485 | DUP[ ] /* DuplicateTopStack */ 1486 | ROLL[ ] /* RollTopThreeStack */ 1487 | NEQ[ ] /* NotEqual */ 1488 | IF[ ] /* If */ 1489 | DUP[ ] /* DuplicateTopStack */ 1490 | GC[1] /* GetCoordOnPVector */ 1491 | DUP[ ] /* DuplicateTopStack */ 1492 | DUP[ ] /* DuplicateTopStack */ 1493 | PUSHB[ ] /* 1 value pushed */ 1494 | 12 1495 | RS[ ] /* ReadStore */ 1496 | MUL[ ] /* Multiply */ 1497 | PUSHW[ ] /* 1 value pushed */ 1498 | 1024 1499 | DIV[ ] /* Divide */ 1500 | DUP[ ] /* DuplicateTopStack */ 1501 | PUSHB[ ] /* 1 value pushed */ 1502 | 0 1503 | LT[ ] /* LessThan */ 1504 | IF[ ] /* If */ 1505 | PUSHB[ ] /* 1 value pushed */ 1506 | 64 1507 | ADD[ ] /* Add */ 1508 | EIF[ ] /* EndIf */ 1509 | FLOOR[ ] /* Floor */ 1510 | PUSHB[ ] /* 1 value pushed */ 1511 | 1 1512 | MUL[ ] /* Multiply */ 1513 | ADD[ ] /* Add */ 1514 | SWAP[ ] /* SwapTopStack */ 1515 | SUB[ ] /* Subtract */ 1516 | SHPIX[ ] /* ShiftZoneByPixel */ 1517 | ELSE[ ] /* Else */ 1518 | POP[ ] /* PopTopStack */ 1519 | EIF[ ] /* EndIf */ 1520 | ENDF[ ] /* EndFunctionDefinition */ 1521 | PUSHB[ ] /* 1 value pushed */ 1522 | 48 1523 | FDEF[ ] /* FunctionDefinition */ 1524 | SVTCA[0] /* SetFPVectorToAxis */ 1525 | PUSHB[ ] /* 2 values pushed */ 1526 | 0 2 1527 | RCVT[ ] /* ReadCVT */ 1528 | EQ[ ] /* Equal */ 1529 | IF[ ] /* If */ 1530 | PUSHB[ ] /* 2 values pushed */ 1531 | 12 11 1532 | RCVT[ ] /* ReadCVT */ 1533 | WS[ ] /* WriteStore */ 1534 | PUSHB[ ] /* 1 value pushed */ 1535 | 1 1536 | SZPS[ ] /* SetZonePointerS */ 1537 | PUSHB[ ] /* 1 value pushed */ 1538 | 47 1539 | LOOPCALL[ ] /* LoopAndCallFunction */ 1540 | PUSHB[ ] /* 2 values pushed */ 1541 | 5 1 1542 | SZP2[ ] /* SetZonePointer2 */ 1543 | RCVT[ ] /* ReadCVT */ 1544 | IF[ ] /* If */ 1545 | IUP[0] /* InterpolateUntPts */ 1546 | EIF[ ] /* EndIf */ 1547 | ELSE[ ] /* Else */ 1548 | CLEAR[ ] /* ClearStack */ 1549 | EIF[ ] /* EndIf */ 1550 | ENDF[ ] /* EndFunctionDefinition */ 1551 | PUSHB[ ] /* 1 value pushed */ 1552 | 49 1553 | FDEF[ ] /* FunctionDefinition */ 1554 | SVTCA[0] /* SetFPVectorToAxis */ 1555 | PUSHB[ ] /* 1 value pushed */ 1556 | 13 1557 | CALL[ ] /* CallFunction */ 1558 | PUSHB[ ] /* 2 values pushed */ 1559 | 0 2 1560 | RCVT[ ] /* ReadCVT */ 1561 | EQ[ ] /* Equal */ 1562 | IF[ ] /* If */ 1563 | PUSHB[ ] /* 2 values pushed */ 1564 | 12 11 1565 | RCVT[ ] /* ReadCVT */ 1566 | WS[ ] /* WriteStore */ 1567 | PUSHB[ ] /* 1 value pushed */ 1568 | 1 1569 | SZPS[ ] /* SetZonePointerS */ 1570 | PUSHB[ ] /* 1 value pushed */ 1571 | 47 1572 | LOOPCALL[ ] /* LoopAndCallFunction */ 1573 | PUSHB[ ] /* 2 values pushed */ 1574 | 5 1 1575 | SZP2[ ] /* SetZonePointer2 */ 1576 | RCVT[ ] /* ReadCVT */ 1577 | IF[ ] /* If */ 1578 | IUP[0] /* InterpolateUntPts */ 1579 | EIF[ ] /* EndIf */ 1580 | ELSE[ ] /* Else */ 1581 | CLEAR[ ] /* ClearStack */ 1582 | EIF[ ] /* EndIf */ 1583 | ENDF[ ] /* EndFunctionDefinition */ 1584 | PUSHB[ ] /* 1 value pushed */ 1585 | 50 1586 | FDEF[ ] /* FunctionDefinition */ 1587 | DUP[ ] /* DuplicateTopStack */ 1588 | SHC[1] /* ShiftContourByLastPt */ 1589 | PUSHB[ ] /* 1 value pushed */ 1590 | 1 1591 | ADD[ ] /* Add */ 1592 | ENDF[ ] /* EndFunctionDefinition */ 1593 | PUSHB[ ] /* 1 value pushed */ 1594 | 51 1595 | FDEF[ ] /* FunctionDefinition */ 1596 | SVTCA[0] /* SetFPVectorToAxis */ 1597 | PUSHB[ ] /* 2 values pushed */ 1598 | 12 11 1599 | RCVT[ ] /* ReadCVT */ 1600 | WS[ ] /* WriteStore */ 1601 | PUSHB[ ] /* 1 value pushed */ 1602 | 1 1603 | RCVT[ ] /* ReadCVT */ 1604 | MUL[ ] /* Multiply */ 1605 | PUSHW[ ] /* 1 value pushed */ 1606 | 1024 1607 | DIV[ ] /* Divide */ 1608 | DUP[ ] /* DuplicateTopStack */ 1609 | PUSHB[ ] /* 1 value pushed */ 1610 | 0 1611 | LT[ ] /* LessThan */ 1612 | IF[ ] /* If */ 1613 | PUSHB[ ] /* 1 value pushed */ 1614 | 64 1615 | ADD[ ] /* Add */ 1616 | EIF[ ] /* EndIf */ 1617 | FLOOR[ ] /* Floor */ 1618 | PUSHB[ ] /* 1 value pushed */ 1619 | 1 1620 | MUL[ ] /* Multiply */ 1621 | PUSHB[ ] /* 1 value pushed */ 1622 | 1 1623 | CALL[ ] /* CallFunction */ 1624 | PUSHB[ ] /* 1 value pushed */ 1625 | 12 1626 | RS[ ] /* ReadStore */ 1627 | MUL[ ] /* Multiply */ 1628 | PUSHW[ ] /* 1 value pushed */ 1629 | 1024 1630 | DIV[ ] /* Divide */ 1631 | DUP[ ] /* DuplicateTopStack */ 1632 | PUSHB[ ] /* 1 value pushed */ 1633 | 0 1634 | LT[ ] /* LessThan */ 1635 | IF[ ] /* If */ 1636 | PUSHB[ ] /* 1 value pushed */ 1637 | 64 1638 | ADD[ ] /* Add */ 1639 | EIF[ ] /* EndIf */ 1640 | FLOOR[ ] /* Floor */ 1641 | PUSHB[ ] /* 1 value pushed */ 1642 | 1 1643 | MUL[ ] /* Multiply */ 1644 | PUSHB[ ] /* 1 value pushed */ 1645 | 1 1646 | CALL[ ] /* CallFunction */ 1647 | PUSHB[ ] /* 1 value pushed */ 1648 | 0 1649 | SZPS[ ] /* SetZonePointerS */ 1650 | PUSHB[ ] /* 5 values pushed */ 1651 | 0 0 0 0 0 1652 | WCVTP[ ] /* WriteCVTInPixels */ 1653 | MIAP[0] /* MoveIndirectAbsPt */ 1654 | SWAP[ ] /* SwapTopStack */ 1655 | SHPIX[ ] /* ShiftZoneByPixel */ 1656 | PUSHB[ ] /* 2 values pushed */ 1657 | 50 1 1658 | SZP2[ ] /* SetZonePointer2 */ 1659 | LOOPCALL[ ] /* LoopAndCallFunction */ 1660 | POP[ ] /* PopTopStack */ 1661 | PUSHB[ ] /* 1 value pushed */ 1662 | 1 1663 | SZPS[ ] /* SetZonePointerS */ 1664 | ENDF[ ] /* EndFunctionDefinition */ 1665 | PUSHB[ ] /* 1 value pushed */ 1666 | 52 1667 | FDEF[ ] /* FunctionDefinition */ 1668 | DUP[ ] /* DuplicateTopStack */ 1669 | ALIGNRP[ ] /* AlignRelativePt */ 1670 | DUP[ ] /* DuplicateTopStack */ 1671 | GC[1] /* GetCoordOnPVector */ 1672 | DUP[ ] /* DuplicateTopStack */ 1673 | PUSHB[ ] /* 1 value pushed */ 1674 | 12 1675 | RS[ ] /* ReadStore */ 1676 | MUL[ ] /* Multiply */ 1677 | PUSHW[ ] /* 1 value pushed */ 1678 | 1024 1679 | DIV[ ] /* Divide */ 1680 | DUP[ ] /* DuplicateTopStack */ 1681 | PUSHB[ ] /* 1 value pushed */ 1682 | 0 1683 | LT[ ] /* LessThan */ 1684 | IF[ ] /* If */ 1685 | PUSHB[ ] /* 1 value pushed */ 1686 | 64 1687 | ADD[ ] /* Add */ 1688 | EIF[ ] /* EndIf */ 1689 | FLOOR[ ] /* Floor */ 1690 | PUSHB[ ] /* 1 value pushed */ 1691 | 1 1692 | MUL[ ] /* Multiply */ 1693 | ADD[ ] /* Add */ 1694 | PUSHB[ ] /* 1 value pushed */ 1695 | 0 1696 | RS[ ] /* ReadStore */ 1697 | SUB[ ] /* Subtract */ 1698 | SHPIX[ ] /* ShiftZoneByPixel */ 1699 | ENDF[ ] /* EndFunctionDefinition */ 1700 | PUSHB[ ] /* 1 value pushed */ 1701 | 53 1702 | FDEF[ ] /* FunctionDefinition */ 1703 | MDAP[0] /* MoveDirectAbsPt */ 1704 | SLOOP[ ] /* SetLoopVariable */ 1705 | ALIGNRP[ ] /* AlignRelativePt */ 1706 | ENDF[ ] /* EndFunctionDefinition */ 1707 | PUSHB[ ] /* 1 value pushed */ 1708 | 54 1709 | FDEF[ ] /* FunctionDefinition */ 1710 | DUP[ ] /* DuplicateTopStack */ 1711 | ALIGNRP[ ] /* AlignRelativePt */ 1712 | DUP[ ] /* DuplicateTopStack */ 1713 | GC[1] /* GetCoordOnPVector */ 1714 | DUP[ ] /* DuplicateTopStack */ 1715 | PUSHB[ ] /* 1 value pushed */ 1716 | 12 1717 | RS[ ] /* ReadStore */ 1718 | MUL[ ] /* Multiply */ 1719 | PUSHW[ ] /* 1 value pushed */ 1720 | 1024 1721 | DIV[ ] /* Divide */ 1722 | DUP[ ] /* DuplicateTopStack */ 1723 | PUSHB[ ] /* 1 value pushed */ 1724 | 0 1725 | LT[ ] /* LessThan */ 1726 | IF[ ] /* If */ 1727 | PUSHB[ ] /* 1 value pushed */ 1728 | 64 1729 | ADD[ ] /* Add */ 1730 | EIF[ ] /* EndIf */ 1731 | FLOOR[ ] /* Floor */ 1732 | PUSHB[ ] /* 1 value pushed */ 1733 | 1 1734 | MUL[ ] /* Multiply */ 1735 | ADD[ ] /* Add */ 1736 | PUSHB[ ] /* 1 value pushed */ 1737 | 0 1738 | RS[ ] /* ReadStore */ 1739 | SUB[ ] /* Subtract */ 1740 | PUSHB[ ] /* 1 value pushed */ 1741 | 1 1742 | RS[ ] /* ReadStore */ 1743 | MUL[ ] /* Multiply */ 1744 | SHPIX[ ] /* ShiftZoneByPixel */ 1745 | ENDF[ ] /* EndFunctionDefinition */ 1746 | PUSHB[ ] /* 1 value pushed */ 1747 | 55 1748 | FDEF[ ] /* FunctionDefinition */ 1749 | PUSHB[ ] /* 2 values pushed */ 1750 | 2 0 1751 | SZPS[ ] /* SetZonePointerS */ 1752 | CINDEX[ ] /* CopyXToTopStack */ 1753 | DUP[ ] /* DuplicateTopStack */ 1754 | MDAP[0] /* MoveDirectAbsPt */ 1755 | DUP[ ] /* DuplicateTopStack */ 1756 | GC[1] /* GetCoordOnPVector */ 1757 | PUSHB[ ] /* 1 value pushed */ 1758 | 0 1759 | SWAP[ ] /* SwapTopStack */ 1760 | WS[ ] /* WriteStore */ 1761 | PUSHB[ ] /* 1 value pushed */ 1762 | 2 1763 | CINDEX[ ] /* CopyXToTopStack */ 1764 | MD[0] /* MeasureDistance */ 1765 | ROLL[ ] /* RollTopThreeStack */ 1766 | ROLL[ ] /* RollTopThreeStack */ 1767 | GC[1] /* GetCoordOnPVector */ 1768 | SWAP[ ] /* SwapTopStack */ 1769 | GC[1] /* GetCoordOnPVector */ 1770 | SWAP[ ] /* SwapTopStack */ 1771 | SUB[ ] /* Subtract */ 1772 | DUP[ ] /* DuplicateTopStack */ 1773 | IF[ ] /* If */ 1774 | DIV[ ] /* Divide */ 1775 | ELSE[ ] /* Else */ 1776 | POP[ ] /* PopTopStack */ 1777 | EIF[ ] /* EndIf */ 1778 | PUSHB[ ] /* 1 value pushed */ 1779 | 1 1780 | SWAP[ ] /* SwapTopStack */ 1781 | WS[ ] /* WriteStore */ 1782 | PUSHB[ ] /* 3 values pushed */ 1783 | 54 1 1 1784 | SZP2[ ] /* SetZonePointer2 */ 1785 | SZP1[ ] /* SetZonePointer1 */ 1786 | LOOPCALL[ ] /* LoopAndCallFunction */ 1787 | ENDF[ ] /* EndFunctionDefinition */ 1788 | PUSHB[ ] /* 1 value pushed */ 1789 | 56 1790 | FDEF[ ] /* FunctionDefinition */ 1791 | PUSHB[ ] /* 1 value pushed */ 1792 | 0 1793 | SZPS[ ] /* SetZonePointerS */ 1794 | PUSHB[ ] /* 1 value pushed */ 1795 | 17 1796 | SWAP[ ] /* SwapTopStack */ 1797 | WS[ ] /* WriteStore */ 1798 | PUSHB[ ] /* 1 value pushed */ 1799 | 4 1800 | CINDEX[ ] /* CopyXToTopStack */ 1801 | PUSHB[ ] /* 1 value pushed */ 1802 | 4 1803 | CINDEX[ ] /* CopyXToTopStack */ 1804 | GC[1] /* GetCoordOnPVector */ 1805 | SWAP[ ] /* SwapTopStack */ 1806 | GC[1] /* GetCoordOnPVector */ 1807 | SWAP[ ] /* SwapTopStack */ 1808 | SUB[ ] /* Subtract */ 1809 | PUSHB[ ] /* 2 values pushed */ 1810 | 10 0 1811 | WS[ ] /* WriteStore */ 1812 | PUSHB[ ] /* 1 value pushed */ 1813 | 9 1814 | RS[ ] /* ReadStore */ 1815 | CALL[ ] /* CallFunction */ 1816 | NEG[ ] /* Negate */ 1817 | ROLL[ ] /* RollTopThreeStack */ 1818 | MDAP[0] /* MoveDirectAbsPt */ 1819 | SWAP[ ] /* SwapTopStack */ 1820 | DUP[ ] /* DuplicateTopStack */ 1821 | DUP[ ] /* DuplicateTopStack */ 1822 | ALIGNRP[ ] /* AlignRelativePt */ 1823 | ROLL[ ] /* RollTopThreeStack */ 1824 | SHPIX[ ] /* ShiftZoneByPixel */ 1825 | ENDF[ ] /* EndFunctionDefinition */ 1826 | PUSHB[ ] /* 1 value pushed */ 1827 | 57 1828 | FDEF[ ] /* FunctionDefinition */ 1829 | PUSHB[ ] /* 1 value pushed */ 1830 | 0 1831 | SZPS[ ] /* SetZonePointerS */ 1832 | PUSHB[ ] /* 1 value pushed */ 1833 | 17 1834 | SWAP[ ] /* SwapTopStack */ 1835 | WS[ ] /* WriteStore */ 1836 | PUSHB[ ] /* 1 value pushed */ 1837 | 4 1838 | CINDEX[ ] /* CopyXToTopStack */ 1839 | PUSHB[ ] /* 1 value pushed */ 1840 | 4 1841 | CINDEX[ ] /* CopyXToTopStack */ 1842 | DUP[ ] /* DuplicateTopStack */ 1843 | MDAP[0] /* MoveDirectAbsPt */ 1844 | GC[1] /* GetCoordOnPVector */ 1845 | SWAP[ ] /* SwapTopStack */ 1846 | GC[1] /* GetCoordOnPVector */ 1847 | SWAP[ ] /* SwapTopStack */ 1848 | SUB[ ] /* Subtract */ 1849 | DUP[ ] /* DuplicateTopStack */ 1850 | PUSHB[ ] /* 1 value pushed */ 1851 | 4 1852 | SWAP[ ] /* SwapTopStack */ 1853 | WS[ ] /* WriteStore */ 1854 | PUSHB[ ] /* 2 values pushed */ 1855 | 10 0 1856 | WS[ ] /* WriteStore */ 1857 | PUSHB[ ] /* 1 value pushed */ 1858 | 9 1859 | RS[ ] /* ReadStore */ 1860 | CALL[ ] /* CallFunction */ 1861 | DUP[ ] /* DuplicateTopStack */ 1862 | PUSHB[ ] /* 1 value pushed */ 1863 | 96 1864 | LT[ ] /* LessThan */ 1865 | IF[ ] /* If */ 1866 | DUP[ ] /* DuplicateTopStack */ 1867 | PUSHB[ ] /* 1 value pushed */ 1868 | 64 1869 | LTEQ[ ] /* LessThenOrEqual */ 1870 | IF[ ] /* If */ 1871 | PUSHB[ ] /* 4 values pushed */ 1872 | 2 32 3 32 1873 | ELSE[ ] /* Else */ 1874 | PUSHB[ ] /* 4 values pushed */ 1875 | 2 38 3 26 1876 | EIF[ ] /* EndIf */ 1877 | WS[ ] /* WriteStore */ 1878 | WS[ ] /* WriteStore */ 1879 | SWAP[ ] /* SwapTopStack */ 1880 | DUP[ ] /* DuplicateTopStack */ 1881 | PUSHB[ ] /* 1 value pushed */ 1882 | 8 1883 | RS[ ] /* ReadStore */ 1884 | DUP[ ] /* DuplicateTopStack */ 1885 | ROLL[ ] /* RollTopThreeStack */ 1886 | SWAP[ ] /* SwapTopStack */ 1887 | GC[1] /* GetCoordOnPVector */ 1888 | SWAP[ ] /* SwapTopStack */ 1889 | GC[1] /* GetCoordOnPVector */ 1890 | SWAP[ ] /* SwapTopStack */ 1891 | SUB[ ] /* Subtract */ 1892 | SWAP[ ] /* SwapTopStack */ 1893 | GC[0] /* GetCoordOnPVector */ 1894 | ADD[ ] /* Add */ 1895 | PUSHB[ ] /* 1 value pushed */ 1896 | 4 1897 | RS[ ] /* ReadStore */ 1898 | PUSHB[ ] /* 1 value pushed */ 1899 | 2 1900 | DIV[ ] /* Divide */ 1901 | DUP[ ] /* DuplicateTopStack */ 1902 | PUSHB[ ] /* 1 value pushed */ 1903 | 0 1904 | LT[ ] /* LessThan */ 1905 | IF[ ] /* If */ 1906 | PUSHB[ ] /* 1 value pushed */ 1907 | 64 1908 | ADD[ ] /* Add */ 1909 | EIF[ ] /* EndIf */ 1910 | FLOOR[ ] /* Floor */ 1911 | PUSHB[ ] /* 1 value pushed */ 1912 | 1 1913 | MUL[ ] /* Multiply */ 1914 | ADD[ ] /* Add */ 1915 | DUP[ ] /* DuplicateTopStack */ 1916 | PUSHB[ ] /* 1 value pushed */ 1917 | 1 1918 | CALL[ ] /* CallFunction */ 1919 | DUP[ ] /* DuplicateTopStack */ 1920 | ROLL[ ] /* RollTopThreeStack */ 1921 | ROLL[ ] /* RollTopThreeStack */ 1922 | SUB[ ] /* Subtract */ 1923 | DUP[ ] /* DuplicateTopStack */ 1924 | PUSHB[ ] /* 1 value pushed */ 1925 | 2 1926 | RS[ ] /* ReadStore */ 1927 | ADD[ ] /* Add */ 1928 | ABS[ ] /* Absolute */ 1929 | SWAP[ ] /* SwapTopStack */ 1930 | PUSHB[ ] /* 1 value pushed */ 1931 | 3 1932 | RS[ ] /* ReadStore */ 1933 | SUB[ ] /* Subtract */ 1934 | ABS[ ] /* Absolute */ 1935 | LT[ ] /* LessThan */ 1936 | IF[ ] /* If */ 1937 | PUSHB[ ] /* 1 value pushed */ 1938 | 2 1939 | RS[ ] /* ReadStore */ 1940 | SUB[ ] /* Subtract */ 1941 | ELSE[ ] /* Else */ 1942 | PUSHB[ ] /* 1 value pushed */ 1943 | 3 1944 | RS[ ] /* ReadStore */ 1945 | ADD[ ] /* Add */ 1946 | EIF[ ] /* EndIf */ 1947 | PUSHB[ ] /* 1 value pushed */ 1948 | 3 1949 | CINDEX[ ] /* CopyXToTopStack */ 1950 | PUSHB[ ] /* 1 value pushed */ 1951 | 2 1952 | DIV[ ] /* Divide */ 1953 | DUP[ ] /* DuplicateTopStack */ 1954 | PUSHB[ ] /* 1 value pushed */ 1955 | 0 1956 | LT[ ] /* LessThan */ 1957 | IF[ ] /* If */ 1958 | PUSHB[ ] /* 1 value pushed */ 1959 | 64 1960 | ADD[ ] /* Add */ 1961 | EIF[ ] /* EndIf */ 1962 | FLOOR[ ] /* Floor */ 1963 | PUSHB[ ] /* 1 value pushed */ 1964 | 1 1965 | MUL[ ] /* Multiply */ 1966 | SUB[ ] /* Subtract */ 1967 | SWAP[ ] /* SwapTopStack */ 1968 | DUP[ ] /* DuplicateTopStack */ 1969 | DUP[ ] /* DuplicateTopStack */ 1970 | PUSHB[ ] /* 1 value pushed */ 1971 | 4 1972 | MINDEX[ ] /* MoveXToTopStack */ 1973 | SWAP[ ] /* SwapTopStack */ 1974 | GC[0] /* GetCoordOnPVector */ 1975 | SUB[ ] /* Subtract */ 1976 | SHPIX[ ] /* ShiftZoneByPixel */ 1977 | ELSE[ ] /* Else */ 1978 | SWAP[ ] /* SwapTopStack */ 1979 | PUSHB[ ] /* 1 value pushed */ 1980 | 8 1981 | RS[ ] /* ReadStore */ 1982 | GC[0] /* GetCoordOnPVector */ 1983 | PUSHB[ ] /* 1 value pushed */ 1984 | 2 1985 | CINDEX[ ] /* CopyXToTopStack */ 1986 | PUSHB[ ] /* 1 value pushed */ 1987 | 8 1988 | RS[ ] /* ReadStore */ 1989 | GC[1] /* GetCoordOnPVector */ 1990 | SWAP[ ] /* SwapTopStack */ 1991 | GC[1] /* GetCoordOnPVector */ 1992 | SWAP[ ] /* SwapTopStack */ 1993 | SUB[ ] /* Subtract */ 1994 | ADD[ ] /* Add */ 1995 | DUP[ ] /* DuplicateTopStack */ 1996 | PUSHB[ ] /* 1 value pushed */ 1997 | 4 1998 | RS[ ] /* ReadStore */ 1999 | PUSHB[ ] /* 1 value pushed */ 2000 | 2 2001 | DIV[ ] /* Divide */ 2002 | DUP[ ] /* DuplicateTopStack */ 2003 | PUSHB[ ] /* 1 value pushed */ 2004 | 0 2005 | LT[ ] /* LessThan */ 2006 | IF[ ] /* If */ 2007 | PUSHB[ ] /* 1 value pushed */ 2008 | 64 2009 | ADD[ ] /* Add */ 2010 | EIF[ ] /* EndIf */ 2011 | FLOOR[ ] /* Floor */ 2012 | PUSHB[ ] /* 1 value pushed */ 2013 | 1 2014 | MUL[ ] /* Multiply */ 2015 | ADD[ ] /* Add */ 2016 | SWAP[ ] /* SwapTopStack */ 2017 | DUP[ ] /* DuplicateTopStack */ 2018 | PUSHB[ ] /* 1 value pushed */ 2019 | 1 2020 | CALL[ ] /* CallFunction */ 2021 | SWAP[ ] /* SwapTopStack */ 2022 | PUSHB[ ] /* 1 value pushed */ 2023 | 4 2024 | RS[ ] /* ReadStore */ 2025 | ADD[ ] /* Add */ 2026 | PUSHB[ ] /* 1 value pushed */ 2027 | 1 2028 | CALL[ ] /* CallFunction */ 2029 | PUSHB[ ] /* 1 value pushed */ 2030 | 5 2031 | CINDEX[ ] /* CopyXToTopStack */ 2032 | SUB[ ] /* Subtract */ 2033 | PUSHB[ ] /* 1 value pushed */ 2034 | 5 2035 | CINDEX[ ] /* CopyXToTopStack */ 2036 | PUSHB[ ] /* 1 value pushed */ 2037 | 2 2038 | DIV[ ] /* Divide */ 2039 | DUP[ ] /* DuplicateTopStack */ 2040 | PUSHB[ ] /* 1 value pushed */ 2041 | 0 2042 | LT[ ] /* LessThan */ 2043 | IF[ ] /* If */ 2044 | PUSHB[ ] /* 1 value pushed */ 2045 | 64 2046 | ADD[ ] /* Add */ 2047 | EIF[ ] /* EndIf */ 2048 | FLOOR[ ] /* Floor */ 2049 | PUSHB[ ] /* 1 value pushed */ 2050 | 1 2051 | MUL[ ] /* Multiply */ 2052 | PUSHB[ ] /* 1 value pushed */ 2053 | 4 2054 | MINDEX[ ] /* MoveXToTopStack */ 2055 | SUB[ ] /* Subtract */ 2056 | DUP[ ] /* DuplicateTopStack */ 2057 | PUSHB[ ] /* 1 value pushed */ 2058 | 4 2059 | CINDEX[ ] /* CopyXToTopStack */ 2060 | ADD[ ] /* Add */ 2061 | ABS[ ] /* Absolute */ 2062 | SWAP[ ] /* SwapTopStack */ 2063 | PUSHB[ ] /* 1 value pushed */ 2064 | 3 2065 | CINDEX[ ] /* CopyXToTopStack */ 2066 | ADD[ ] /* Add */ 2067 | ABS[ ] /* Absolute */ 2068 | LT[ ] /* LessThan */ 2069 | IF[ ] /* If */ 2070 | POP[ ] /* PopTopStack */ 2071 | ELSE[ ] /* Else */ 2072 | SWAP[ ] /* SwapTopStack */ 2073 | POP[ ] /* PopTopStack */ 2074 | EIF[ ] /* EndIf */ 2075 | SWAP[ ] /* SwapTopStack */ 2076 | DUP[ ] /* DuplicateTopStack */ 2077 | DUP[ ] /* DuplicateTopStack */ 2078 | PUSHB[ ] /* 1 value pushed */ 2079 | 4 2080 | MINDEX[ ] /* MoveXToTopStack */ 2081 | SWAP[ ] /* SwapTopStack */ 2082 | GC[0] /* GetCoordOnPVector */ 2083 | SUB[ ] /* Subtract */ 2084 | SHPIX[ ] /* ShiftZoneByPixel */ 2085 | EIF[ ] /* EndIf */ 2086 | ENDF[ ] /* EndFunctionDefinition */ 2087 | PUSHB[ ] /* 1 value pushed */ 2088 | 58 2089 | FDEF[ ] /* FunctionDefinition */ 2090 | PUSHB[ ] /* 1 value pushed */ 2091 | 0 2092 | SZPS[ ] /* SetZonePointerS */ 2093 | PUSHB[ ] /* 1 value pushed */ 2094 | 17 2095 | SWAP[ ] /* SwapTopStack */ 2096 | WS[ ] /* WriteStore */ 2097 | DUP[ ] /* DuplicateTopStack */ 2098 | DUP[ ] /* DuplicateTopStack */ 2099 | DUP[ ] /* DuplicateTopStack */ 2100 | PUSHB[ ] /* 1 value pushed */ 2101 | 5 2102 | MINDEX[ ] /* MoveXToTopStack */ 2103 | DUP[ ] /* DuplicateTopStack */ 2104 | MDAP[0] /* MoveDirectAbsPt */ 2105 | GC[1] /* GetCoordOnPVector */ 2106 | SWAP[ ] /* SwapTopStack */ 2107 | GC[1] /* GetCoordOnPVector */ 2108 | SWAP[ ] /* SwapTopStack */ 2109 | SUB[ ] /* Subtract */ 2110 | SWAP[ ] /* SwapTopStack */ 2111 | ALIGNRP[ ] /* AlignRelativePt */ 2112 | SHPIX[ ] /* ShiftZoneByPixel */ 2113 | ENDF[ ] /* EndFunctionDefinition */ 2114 | PUSHB[ ] /* 1 value pushed */ 2115 | 59 2116 | FDEF[ ] /* FunctionDefinition */ 2117 | PUSHB[ ] /* 1 value pushed */ 2118 | 0 2119 | SZPS[ ] /* SetZonePointerS */ 2120 | PUSHB[ ] /* 1 value pushed */ 2121 | 17 2122 | SWAP[ ] /* SwapTopStack */ 2123 | WS[ ] /* WriteStore */ 2124 | DUP[ ] /* DuplicateTopStack */ 2125 | PUSHB[ ] /* 1 value pushed */ 2126 | 8 2127 | SWAP[ ] /* SwapTopStack */ 2128 | WS[ ] /* WriteStore */ 2129 | DUP[ ] /* DuplicateTopStack */ 2130 | DUP[ ] /* DuplicateTopStack */ 2131 | DUP[ ] /* DuplicateTopStack */ 2132 | GC[0] /* GetCoordOnPVector */ 2133 | SWAP[ ] /* SwapTopStack */ 2134 | GC[1] /* GetCoordOnPVector */ 2135 | PUSHB[ ] /* 1 value pushed */ 2136 | 1 2137 | CALL[ ] /* CallFunction */ 2138 | SWAP[ ] /* SwapTopStack */ 2139 | SUB[ ] /* Subtract */ 2140 | SHPIX[ ] /* ShiftZoneByPixel */ 2141 | ENDF[ ] /* EndFunctionDefinition */ 2142 | PUSHB[ ] /* 1 value pushed */ 2143 | 60 2144 | FDEF[ ] /* FunctionDefinition */ 2145 | PUSHB[ ] /* 1 value pushed */ 2146 | 0 2147 | SZPS[ ] /* SetZonePointerS */ 2148 | PUSHB[ ] /* 1 value pushed */ 2149 | 17 2150 | SWAP[ ] /* SwapTopStack */ 2151 | WS[ ] /* WriteStore */ 2152 | PUSHB[ ] /* 1 value pushed */ 2153 | 3 2154 | CINDEX[ ] /* CopyXToTopStack */ 2155 | PUSHB[ ] /* 1 value pushed */ 2156 | 2 2157 | CINDEX[ ] /* CopyXToTopStack */ 2158 | GC[1] /* GetCoordOnPVector */ 2159 | SWAP[ ] /* SwapTopStack */ 2160 | GC[1] /* GetCoordOnPVector */ 2161 | SWAP[ ] /* SwapTopStack */ 2162 | SUB[ ] /* Subtract */ 2163 | PUSHB[ ] /* 1 value pushed */ 2164 | 0 2165 | EQ[ ] /* Equal */ 2166 | IF[ ] /* If */ 2167 | MDAP[0] /* MoveDirectAbsPt */ 2168 | DUP[ ] /* DuplicateTopStack */ 2169 | ALIGNRP[ ] /* AlignRelativePt */ 2170 | SWAP[ ] /* SwapTopStack */ 2171 | POP[ ] /* PopTopStack */ 2172 | ELSE[ ] /* Else */ 2173 | PUSHB[ ] /* 1 value pushed */ 2174 | 2 2175 | CINDEX[ ] /* CopyXToTopStack */ 2176 | PUSHB[ ] /* 1 value pushed */ 2177 | 2 2178 | CINDEX[ ] /* CopyXToTopStack */ 2179 | GC[1] /* GetCoordOnPVector */ 2180 | SWAP[ ] /* SwapTopStack */ 2181 | GC[1] /* GetCoordOnPVector */ 2182 | SWAP[ ] /* SwapTopStack */ 2183 | SUB[ ] /* Subtract */ 2184 | DUP[ ] /* DuplicateTopStack */ 2185 | PUSHB[ ] /* 1 value pushed */ 2186 | 5 2187 | CINDEX[ ] /* CopyXToTopStack */ 2188 | PUSHB[ ] /* 1 value pushed */ 2189 | 4 2190 | CINDEX[ ] /* CopyXToTopStack */ 2191 | GC[1] /* GetCoordOnPVector */ 2192 | SWAP[ ] /* SwapTopStack */ 2193 | GC[1] /* GetCoordOnPVector */ 2194 | SWAP[ ] /* SwapTopStack */ 2195 | SUB[ ] /* Subtract */ 2196 | PUSHB[ ] /* 1 value pushed */ 2197 | 6 2198 | CINDEX[ ] /* CopyXToTopStack */ 2199 | PUSHB[ ] /* 1 value pushed */ 2200 | 5 2201 | CINDEX[ ] /* CopyXToTopStack */ 2202 | MD[0] /* MeasureDistance */ 2203 | PUSHB[ ] /* 1 value pushed */ 2204 | 2 2205 | CINDEX[ ] /* CopyXToTopStack */ 2206 | SUB[ ] /* Subtract */ 2207 | PUSHW[ ] /* 2 values pushed */ 2208 | 2048 2048 2209 | MUL[ ] /* Multiply */ 2210 | MUL[ ] /* Multiply */ 2211 | SWAP[ ] /* SwapTopStack */ 2212 | DUP[ ] /* DuplicateTopStack */ 2213 | IF[ ] /* If */ 2214 | DIV[ ] /* Divide */ 2215 | ELSE[ ] /* Else */ 2216 | POP[ ] /* PopTopStack */ 2217 | EIF[ ] /* EndIf */ 2218 | MUL[ ] /* Multiply */ 2219 | PUSHW[ ] /* 1 value pushed */ 2220 | 1024 2221 | DIV[ ] /* Divide */ 2222 | DUP[ ] /* DuplicateTopStack */ 2223 | PUSHB[ ] /* 1 value pushed */ 2224 | 0 2225 | LT[ ] /* LessThan */ 2226 | IF[ ] /* If */ 2227 | PUSHB[ ] /* 1 value pushed */ 2228 | 64 2229 | ADD[ ] /* Add */ 2230 | EIF[ ] /* EndIf */ 2231 | FLOOR[ ] /* Floor */ 2232 | PUSHB[ ] /* 1 value pushed */ 2233 | 1 2234 | MUL[ ] /* Multiply */ 2235 | ADD[ ] /* Add */ 2236 | SWAP[ ] /* SwapTopStack */ 2237 | MDAP[0] /* MoveDirectAbsPt */ 2238 | SWAP[ ] /* SwapTopStack */ 2239 | DUP[ ] /* DuplicateTopStack */ 2240 | DUP[ ] /* DuplicateTopStack */ 2241 | ALIGNRP[ ] /* AlignRelativePt */ 2242 | ROLL[ ] /* RollTopThreeStack */ 2243 | SHPIX[ ] /* ShiftZoneByPixel */ 2244 | SWAP[ ] /* SwapTopStack */ 2245 | POP[ ] /* PopTopStack */ 2246 | EIF[ ] /* EndIf */ 2247 | ENDF[ ] /* EndFunctionDefinition */ 2248 | PUSHB[ ] /* 1 value pushed */ 2249 | 61 2250 | FDEF[ ] /* FunctionDefinition */ 2251 | PUSHB[ ] /* 1 value pushed */ 2252 | 0 2253 | SZPS[ ] /* SetZonePointerS */ 2254 | PUSHB[ ] /* 1 value pushed */ 2255 | 17 2256 | SWAP[ ] /* SwapTopStack */ 2257 | WS[ ] /* WriteStore */ 2258 | DUP[ ] /* DuplicateTopStack */ 2259 | PUSHB[ ] /* 1 value pushed */ 2260 | 8 2261 | RS[ ] /* ReadStore */ 2262 | DUP[ ] /* DuplicateTopStack */ 2263 | MDAP[0] /* MoveDirectAbsPt */ 2264 | GC[1] /* GetCoordOnPVector */ 2265 | SWAP[ ] /* SwapTopStack */ 2266 | GC[1] /* GetCoordOnPVector */ 2267 | SWAP[ ] /* SwapTopStack */ 2268 | SUB[ ] /* Subtract */ 2269 | DUP[ ] /* DuplicateTopStack */ 2270 | ADD[ ] /* Add */ 2271 | PUSHB[ ] /* 1 value pushed */ 2272 | 32 2273 | ADD[ ] /* Add */ 2274 | FLOOR[ ] /* Floor */ 2275 | PUSHB[ ] /* 1 value pushed */ 2276 | 2 2277 | DIV[ ] /* Divide */ 2278 | DUP[ ] /* DuplicateTopStack */ 2279 | PUSHB[ ] /* 1 value pushed */ 2280 | 0 2281 | LT[ ] /* LessThan */ 2282 | IF[ ] /* If */ 2283 | PUSHB[ ] /* 1 value pushed */ 2284 | 64 2285 | ADD[ ] /* Add */ 2286 | EIF[ ] /* EndIf */ 2287 | FLOOR[ ] /* Floor */ 2288 | PUSHB[ ] /* 1 value pushed */ 2289 | 1 2290 | MUL[ ] /* Multiply */ 2291 | SWAP[ ] /* SwapTopStack */ 2292 | DUP[ ] /* DuplicateTopStack */ 2293 | DUP[ ] /* DuplicateTopStack */ 2294 | ALIGNRP[ ] /* AlignRelativePt */ 2295 | ROLL[ ] /* RollTopThreeStack */ 2296 | SHPIX[ ] /* ShiftZoneByPixel */ 2297 | ENDF[ ] /* EndFunctionDefinition */ 2298 | PUSHB[ ] /* 1 value pushed */ 2299 | 62 2300 | FDEF[ ] /* FunctionDefinition */ 2301 | SWAP[ ] /* SwapTopStack */ 2302 | DUP[ ] /* DuplicateTopStack */ 2303 | MDAP[0] /* MoveDirectAbsPt */ 2304 | GC[0] /* GetCoordOnPVector */ 2305 | PUSHB[ ] /* 1 value pushed */ 2306 | 2 2307 | CINDEX[ ] /* CopyXToTopStack */ 2308 | GC[0] /* GetCoordOnPVector */ 2309 | PUSHB[ ] /* 1 value pushed */ 2310 | 17 2311 | RS[ ] /* ReadStore */ 2312 | IF[ ] /* If */ 2313 | LT[ ] /* LessThan */ 2314 | ELSE[ ] /* Else */ 2315 | GT[ ] /* GreaterThan */ 2316 | EIF[ ] /* EndIf */ 2317 | IF[ ] /* If */ 2318 | DUP[ ] /* DuplicateTopStack */ 2319 | ALIGNRP[ ] /* AlignRelativePt */ 2320 | EIF[ ] /* EndIf */ 2321 | MDAP[0] /* MoveDirectAbsPt */ 2322 | PUSHB[ ] /* 2 values pushed */ 2323 | 46 1 2324 | SZP1[ ] /* SetZonePointer1 */ 2325 | CALL[ ] /* CallFunction */ 2326 | ENDF[ ] /* EndFunctionDefinition */ 2327 | PUSHB[ ] /* 1 value pushed */ 2328 | 63 2329 | FDEF[ ] /* FunctionDefinition */ 2330 | SWAP[ ] /* SwapTopStack */ 2331 | DUP[ ] /* DuplicateTopStack */ 2332 | MDAP[0] /* MoveDirectAbsPt */ 2333 | GC[0] /* GetCoordOnPVector */ 2334 | PUSHB[ ] /* 1 value pushed */ 2335 | 2 2336 | CINDEX[ ] /* CopyXToTopStack */ 2337 | GC[0] /* GetCoordOnPVector */ 2338 | PUSHB[ ] /* 1 value pushed */ 2339 | 17 2340 | RS[ ] /* ReadStore */ 2341 | IF[ ] /* If */ 2342 | GT[ ] /* GreaterThan */ 2343 | ELSE[ ] /* Else */ 2344 | LT[ ] /* LessThan */ 2345 | EIF[ ] /* EndIf */ 2346 | IF[ ] /* If */ 2347 | DUP[ ] /* DuplicateTopStack */ 2348 | ALIGNRP[ ] /* AlignRelativePt */ 2349 | EIF[ ] /* EndIf */ 2350 | MDAP[0] /* MoveDirectAbsPt */ 2351 | PUSHB[ ] /* 2 values pushed */ 2352 | 46 1 2353 | SZP1[ ] /* SetZonePointer1 */ 2354 | CALL[ ] /* CallFunction */ 2355 | ENDF[ ] /* EndFunctionDefinition */ 2356 | PUSHB[ ] /* 1 value pushed */ 2357 | 64 2358 | FDEF[ ] /* FunctionDefinition */ 2359 | SWAP[ ] /* SwapTopStack */ 2360 | DUP[ ] /* DuplicateTopStack */ 2361 | MDAP[0] /* MoveDirectAbsPt */ 2362 | GC[0] /* GetCoordOnPVector */ 2363 | PUSHB[ ] /* 1 value pushed */ 2364 | 2 2365 | CINDEX[ ] /* CopyXToTopStack */ 2366 | GC[0] /* GetCoordOnPVector */ 2367 | PUSHB[ ] /* 1 value pushed */ 2368 | 17 2369 | RS[ ] /* ReadStore */ 2370 | IF[ ] /* If */ 2371 | LT[ ] /* LessThan */ 2372 | ELSE[ ] /* Else */ 2373 | GT[ ] /* GreaterThan */ 2374 | EIF[ ] /* EndIf */ 2375 | IF[ ] /* If */ 2376 | DUP[ ] /* DuplicateTopStack */ 2377 | ALIGNRP[ ] /* AlignRelativePt */ 2378 | EIF[ ] /* EndIf */ 2379 | SWAP[ ] /* SwapTopStack */ 2380 | DUP[ ] /* DuplicateTopStack */ 2381 | MDAP[0] /* MoveDirectAbsPt */ 2382 | GC[0] /* GetCoordOnPVector */ 2383 | PUSHB[ ] /* 1 value pushed */ 2384 | 2 2385 | CINDEX[ ] /* CopyXToTopStack */ 2386 | GC[0] /* GetCoordOnPVector */ 2387 | PUSHB[ ] /* 1 value pushed */ 2388 | 17 2389 | RS[ ] /* ReadStore */ 2390 | IF[ ] /* If */ 2391 | GT[ ] /* GreaterThan */ 2392 | ELSE[ ] /* Else */ 2393 | LT[ ] /* LessThan */ 2394 | EIF[ ] /* EndIf */ 2395 | IF[ ] /* If */ 2396 | DUP[ ] /* DuplicateTopStack */ 2397 | ALIGNRP[ ] /* AlignRelativePt */ 2398 | EIF[ ] /* EndIf */ 2399 | MDAP[0] /* MoveDirectAbsPt */ 2400 | PUSHB[ ] /* 2 values pushed */ 2401 | 46 1 2402 | SZP1[ ] /* SetZonePointer1 */ 2403 | CALL[ ] /* CallFunction */ 2404 | ENDF[ ] /* EndFunctionDefinition */ 2405 | PUSHB[ ] /* 1 value pushed */ 2406 | 65 2407 | FDEF[ ] /* FunctionDefinition */ 2408 | PUSHB[ ] /* 1 value pushed */ 2409 | 56 2410 | CALL[ ] /* CallFunction */ 2411 | SWAP[ ] /* SwapTopStack */ 2412 | DUP[ ] /* DuplicateTopStack */ 2413 | MDAP[0] /* MoveDirectAbsPt */ 2414 | GC[0] /* GetCoordOnPVector */ 2415 | PUSHB[ ] /* 1 value pushed */ 2416 | 2 2417 | CINDEX[ ] /* CopyXToTopStack */ 2418 | GC[0] /* GetCoordOnPVector */ 2419 | PUSHB[ ] /* 1 value pushed */ 2420 | 17 2421 | RS[ ] /* ReadStore */ 2422 | IF[ ] /* If */ 2423 | LT[ ] /* LessThan */ 2424 | ELSE[ ] /* Else */ 2425 | GT[ ] /* GreaterThan */ 2426 | EIF[ ] /* EndIf */ 2427 | IF[ ] /* If */ 2428 | DUP[ ] /* DuplicateTopStack */ 2429 | ALIGNRP[ ] /* AlignRelativePt */ 2430 | EIF[ ] /* EndIf */ 2431 | MDAP[0] /* MoveDirectAbsPt */ 2432 | PUSHB[ ] /* 2 values pushed */ 2433 | 46 1 2434 | SZP1[ ] /* SetZonePointer1 */ 2435 | CALL[ ] /* CallFunction */ 2436 | ENDF[ ] /* EndFunctionDefinition */ 2437 | PUSHB[ ] /* 1 value pushed */ 2438 | 66 2439 | FDEF[ ] /* FunctionDefinition */ 2440 | PUSHB[ ] /* 1 value pushed */ 2441 | 57 2442 | CALL[ ] /* CallFunction */ 2443 | ROLL[ ] /* RollTopThreeStack */ 2444 | DUP[ ] /* DuplicateTopStack */ 2445 | DUP[ ] /* DuplicateTopStack */ 2446 | ALIGNRP[ ] /* AlignRelativePt */ 2447 | PUSHB[ ] /* 1 value pushed */ 2448 | 4 2449 | SWAP[ ] /* SwapTopStack */ 2450 | WS[ ] /* WriteStore */ 2451 | ROLL[ ] /* RollTopThreeStack */ 2452 | SHPIX[ ] /* ShiftZoneByPixel */ 2453 | SWAP[ ] /* SwapTopStack */ 2454 | DUP[ ] /* DuplicateTopStack */ 2455 | MDAP[0] /* MoveDirectAbsPt */ 2456 | GC[0] /* GetCoordOnPVector */ 2457 | PUSHB[ ] /* 1 value pushed */ 2458 | 2 2459 | CINDEX[ ] /* CopyXToTopStack */ 2460 | GC[0] /* GetCoordOnPVector */ 2461 | PUSHB[ ] /* 1 value pushed */ 2462 | 17 2463 | RS[ ] /* ReadStore */ 2464 | IF[ ] /* If */ 2465 | LT[ ] /* LessThan */ 2466 | ELSE[ ] /* Else */ 2467 | GT[ ] /* GreaterThan */ 2468 | EIF[ ] /* EndIf */ 2469 | IF[ ] /* If */ 2470 | DUP[ ] /* DuplicateTopStack */ 2471 | ALIGNRP[ ] /* AlignRelativePt */ 2472 | EIF[ ] /* EndIf */ 2473 | MDAP[0] /* MoveDirectAbsPt */ 2474 | PUSHB[ ] /* 2 values pushed */ 2475 | 46 1 2476 | SZP1[ ] /* SetZonePointer1 */ 2477 | CALL[ ] /* CallFunction */ 2478 | PUSHB[ ] /* 1 value pushed */ 2479 | 4 2480 | RS[ ] /* ReadStore */ 2481 | MDAP[0] /* MoveDirectAbsPt */ 2482 | PUSHB[ ] /* 1 value pushed */ 2483 | 46 2484 | CALL[ ] /* CallFunction */ 2485 | ENDF[ ] /* EndFunctionDefinition */ 2486 | PUSHB[ ] /* 1 value pushed */ 2487 | 67 2488 | FDEF[ ] /* FunctionDefinition */ 2489 | PUSHB[ ] /* 1 value pushed */ 2490 | 0 2491 | SZPS[ ] /* SetZonePointerS */ 2492 | PUSHB[ ] /* 1 value pushed */ 2493 | 4 2494 | CINDEX[ ] /* CopyXToTopStack */ 2495 | PUSHB[ ] /* 1 value pushed */ 2496 | 4 2497 | MINDEX[ ] /* MoveXToTopStack */ 2498 | DUP[ ] /* DuplicateTopStack */ 2499 | DUP[ ] /* DuplicateTopStack */ 2500 | DUP[ ] /* DuplicateTopStack */ 2501 | GC[0] /* GetCoordOnPVector */ 2502 | SWAP[ ] /* SwapTopStack */ 2503 | GC[1] /* GetCoordOnPVector */ 2504 | SUB[ ] /* Subtract */ 2505 | PUSHB[ ] /* 1 value pushed */ 2506 | 10 2507 | SWAP[ ] /* SwapTopStack */ 2508 | WS[ ] /* WriteStore */ 2509 | MDAP[0] /* MoveDirectAbsPt */ 2510 | GC[1] /* GetCoordOnPVector */ 2511 | SWAP[ ] /* SwapTopStack */ 2512 | GC[1] /* GetCoordOnPVector */ 2513 | SWAP[ ] /* SwapTopStack */ 2514 | SUB[ ] /* Subtract */ 2515 | PUSHB[ ] /* 1 value pushed */ 2516 | 9 2517 | RS[ ] /* ReadStore */ 2518 | CALL[ ] /* CallFunction */ 2519 | SWAP[ ] /* SwapTopStack */ 2520 | DUP[ ] /* DuplicateTopStack */ 2521 | ALIGNRP[ ] /* AlignRelativePt */ 2522 | DUP[ ] /* DuplicateTopStack */ 2523 | MDAP[0] /* MoveDirectAbsPt */ 2524 | SWAP[ ] /* SwapTopStack */ 2525 | SHPIX[ ] /* ShiftZoneByPixel */ 2526 | PUSHB[ ] /* 2 values pushed */ 2527 | 46 1 2528 | SZP1[ ] /* SetZonePointer1 */ 2529 | CALL[ ] /* CallFunction */ 2530 | ENDF[ ] /* EndFunctionDefinition */ 2531 | PUSHB[ ] /* 1 value pushed */ 2532 | 68 2533 | FDEF[ ] /* FunctionDefinition */ 2534 | PUSHB[ ] /* 2 values pushed */ 2535 | 8 4 2536 | CINDEX[ ] /* CopyXToTopStack */ 2537 | WS[ ] /* WriteStore */ 2538 | PUSHB[ ] /* 1 value pushed */ 2539 | 0 2540 | SZPS[ ] /* SetZonePointerS */ 2541 | PUSHB[ ] /* 1 value pushed */ 2542 | 4 2543 | CINDEX[ ] /* CopyXToTopStack */ 2544 | PUSHB[ ] /* 1 value pushed */ 2545 | 4 2546 | CINDEX[ ] /* CopyXToTopStack */ 2547 | DUP[ ] /* DuplicateTopStack */ 2548 | MDAP[0] /* MoveDirectAbsPt */ 2549 | GC[1] /* GetCoordOnPVector */ 2550 | SWAP[ ] /* SwapTopStack */ 2551 | GC[1] /* GetCoordOnPVector */ 2552 | SWAP[ ] /* SwapTopStack */ 2553 | SUB[ ] /* Subtract */ 2554 | DUP[ ] /* DuplicateTopStack */ 2555 | PUSHB[ ] /* 1 value pushed */ 2556 | 4 2557 | SWAP[ ] /* SwapTopStack */ 2558 | WS[ ] /* WriteStore */ 2559 | PUSHB[ ] /* 2 values pushed */ 2560 | 10 0 2561 | WS[ ] /* WriteStore */ 2562 | PUSHB[ ] /* 1 value pushed */ 2563 | 9 2564 | RS[ ] /* ReadStore */ 2565 | CALL[ ] /* CallFunction */ 2566 | DUP[ ] /* DuplicateTopStack */ 2567 | PUSHB[ ] /* 1 value pushed */ 2568 | 96 2569 | LT[ ] /* LessThan */ 2570 | IF[ ] /* If */ 2571 | DUP[ ] /* DuplicateTopStack */ 2572 | PUSHB[ ] /* 1 value pushed */ 2573 | 64 2574 | LTEQ[ ] /* LessThenOrEqual */ 2575 | IF[ ] /* If */ 2576 | PUSHB[ ] /* 4 values pushed */ 2577 | 2 32 3 32 2578 | ELSE[ ] /* Else */ 2579 | PUSHB[ ] /* 4 values pushed */ 2580 | 2 38 3 26 2581 | EIF[ ] /* EndIf */ 2582 | WS[ ] /* WriteStore */ 2583 | WS[ ] /* WriteStore */ 2584 | SWAP[ ] /* SwapTopStack */ 2585 | DUP[ ] /* DuplicateTopStack */ 2586 | GC[1] /* GetCoordOnPVector */ 2587 | PUSHB[ ] /* 1 value pushed */ 2588 | 4 2589 | RS[ ] /* ReadStore */ 2590 | PUSHB[ ] /* 1 value pushed */ 2591 | 2 2592 | DIV[ ] /* Divide */ 2593 | DUP[ ] /* DuplicateTopStack */ 2594 | PUSHB[ ] /* 1 value pushed */ 2595 | 0 2596 | LT[ ] /* LessThan */ 2597 | IF[ ] /* If */ 2598 | PUSHB[ ] /* 1 value pushed */ 2599 | 64 2600 | ADD[ ] /* Add */ 2601 | EIF[ ] /* EndIf */ 2602 | FLOOR[ ] /* Floor */ 2603 | PUSHB[ ] /* 1 value pushed */ 2604 | 1 2605 | MUL[ ] /* Multiply */ 2606 | ADD[ ] /* Add */ 2607 | DUP[ ] /* DuplicateTopStack */ 2608 | PUSHB[ ] /* 1 value pushed */ 2609 | 1 2610 | CALL[ ] /* CallFunction */ 2611 | DUP[ ] /* DuplicateTopStack */ 2612 | ROLL[ ] /* RollTopThreeStack */ 2613 | ROLL[ ] /* RollTopThreeStack */ 2614 | SUB[ ] /* Subtract */ 2615 | DUP[ ] /* DuplicateTopStack */ 2616 | PUSHB[ ] /* 1 value pushed */ 2617 | 2 2618 | RS[ ] /* ReadStore */ 2619 | ADD[ ] /* Add */ 2620 | ABS[ ] /* Absolute */ 2621 | SWAP[ ] /* SwapTopStack */ 2622 | PUSHB[ ] /* 1 value pushed */ 2623 | 3 2624 | RS[ ] /* ReadStore */ 2625 | SUB[ ] /* Subtract */ 2626 | ABS[ ] /* Absolute */ 2627 | LT[ ] /* LessThan */ 2628 | IF[ ] /* If */ 2629 | PUSHB[ ] /* 1 value pushed */ 2630 | 2 2631 | RS[ ] /* ReadStore */ 2632 | SUB[ ] /* Subtract */ 2633 | ELSE[ ] /* Else */ 2634 | PUSHB[ ] /* 1 value pushed */ 2635 | 3 2636 | RS[ ] /* ReadStore */ 2637 | ADD[ ] /* Add */ 2638 | EIF[ ] /* EndIf */ 2639 | PUSHB[ ] /* 1 value pushed */ 2640 | 3 2641 | CINDEX[ ] /* CopyXToTopStack */ 2642 | PUSHB[ ] /* 1 value pushed */ 2643 | 2 2644 | DIV[ ] /* Divide */ 2645 | DUP[ ] /* DuplicateTopStack */ 2646 | PUSHB[ ] /* 1 value pushed */ 2647 | 0 2648 | LT[ ] /* LessThan */ 2649 | IF[ ] /* If */ 2650 | PUSHB[ ] /* 1 value pushed */ 2651 | 64 2652 | ADD[ ] /* Add */ 2653 | EIF[ ] /* EndIf */ 2654 | FLOOR[ ] /* Floor */ 2655 | PUSHB[ ] /* 1 value pushed */ 2656 | 1 2657 | MUL[ ] /* Multiply */ 2658 | SUB[ ] /* Subtract */ 2659 | PUSHB[ ] /* 1 value pushed */ 2660 | 2 2661 | CINDEX[ ] /* CopyXToTopStack */ 2662 | GC[0] /* GetCoordOnPVector */ 2663 | SUB[ ] /* Subtract */ 2664 | SHPIX[ ] /* ShiftZoneByPixel */ 2665 | SWAP[ ] /* SwapTopStack */ 2666 | DUP[ ] /* DuplicateTopStack */ 2667 | ALIGNRP[ ] /* AlignRelativePt */ 2668 | SWAP[ ] /* SwapTopStack */ 2669 | SHPIX[ ] /* ShiftZoneByPixel */ 2670 | ELSE[ ] /* Else */ 2671 | POP[ ] /* PopTopStack */ 2672 | DUP[ ] /* DuplicateTopStack */ 2673 | DUP[ ] /* DuplicateTopStack */ 2674 | GC[0] /* GetCoordOnPVector */ 2675 | SWAP[ ] /* SwapTopStack */ 2676 | GC[1] /* GetCoordOnPVector */ 2677 | PUSHB[ ] /* 1 value pushed */ 2678 | 1 2679 | CALL[ ] /* CallFunction */ 2680 | SWAP[ ] /* SwapTopStack */ 2681 | SUB[ ] /* Subtract */ 2682 | SHPIX[ ] /* ShiftZoneByPixel */ 2683 | POP[ ] /* PopTopStack */ 2684 | EIF[ ] /* EndIf */ 2685 | PUSHB[ ] /* 2 values pushed */ 2686 | 46 1 2687 | SZP1[ ] /* SetZonePointer1 */ 2688 | CALL[ ] /* CallFunction */ 2689 | ENDF[ ] /* EndFunctionDefinition */ 2690 | PUSHB[ ] /* 1 value pushed */ 2691 | 69 2692 | FDEF[ ] /* FunctionDefinition */ 2693 | PUSHB[ ] /* 2 values pushed */ 2694 | 0 56 2695 | CALL[ ] /* CallFunction */ 2696 | MDAP[0] /* MoveDirectAbsPt */ 2697 | PUSHB[ ] /* 2 values pushed */ 2698 | 46 1 2699 | SZP1[ ] /* SetZonePointer1 */ 2700 | CALL[ ] /* CallFunction */ 2701 | ENDF[ ] /* EndFunctionDefinition */ 2702 | PUSHB[ ] /* 1 value pushed */ 2703 | 70 2704 | FDEF[ ] /* FunctionDefinition */ 2705 | PUSHB[ ] /* 2 values pushed */ 2706 | 0 57 2707 | CALL[ ] /* CallFunction */ 2708 | POP[ ] /* PopTopStack */ 2709 | SWAP[ ] /* SwapTopStack */ 2710 | DUP[ ] /* DuplicateTopStack */ 2711 | DUP[ ] /* DuplicateTopStack */ 2712 | ALIGNRP[ ] /* AlignRelativePt */ 2713 | PUSHB[ ] /* 1 value pushed */ 2714 | 4 2715 | SWAP[ ] /* SwapTopStack */ 2716 | WS[ ] /* WriteStore */ 2717 | SWAP[ ] /* SwapTopStack */ 2718 | SHPIX[ ] /* ShiftZoneByPixel */ 2719 | PUSHB[ ] /* 2 values pushed */ 2720 | 46 1 2721 | SZP1[ ] /* SetZonePointer1 */ 2722 | CALL[ ] /* CallFunction */ 2723 | PUSHB[ ] /* 1 value pushed */ 2724 | 4 2725 | RS[ ] /* ReadStore */ 2726 | MDAP[0] /* MoveDirectAbsPt */ 2727 | PUSHB[ ] /* 1 value pushed */ 2728 | 46 2729 | CALL[ ] /* CallFunction */ 2730 | ENDF[ ] /* EndFunctionDefinition */ 2731 | PUSHB[ ] /* 1 value pushed */ 2732 | 71 2733 | FDEF[ ] /* FunctionDefinition */ 2734 | PUSHB[ ] /* 1 value pushed */ 2735 | 0 2736 | SZP2[ ] /* SetZonePointer2 */ 2737 | DUP[ ] /* DuplicateTopStack */ 2738 | GC[1] /* GetCoordOnPVector */ 2739 | PUSHB[ ] /* 1 value pushed */ 2740 | 0 2741 | SWAP[ ] /* SwapTopStack */ 2742 | WS[ ] /* WriteStore */ 2743 | PUSHB[ ] /* 3 values pushed */ 2744 | 0 1 1 2745 | SZP2[ ] /* SetZonePointer2 */ 2746 | SZP1[ ] /* SetZonePointer1 */ 2747 | SZP0[ ] /* SetZonePointer0 */ 2748 | MDAP[0] /* MoveDirectAbsPt */ 2749 | PUSHB[ ] /* 1 value pushed */ 2750 | 52 2751 | LOOPCALL[ ] /* LoopAndCallFunction */ 2752 | ENDF[ ] /* EndFunctionDefinition */ 2753 | PUSHB[ ] /* 1 value pushed */ 2754 | 72 2755 | FDEF[ ] /* FunctionDefinition */ 2756 | PUSHB[ ] /* 1 value pushed */ 2757 | 0 2758 | SZP2[ ] /* SetZonePointer2 */ 2759 | DUP[ ] /* DuplicateTopStack */ 2760 | GC[1] /* GetCoordOnPVector */ 2761 | PUSHB[ ] /* 1 value pushed */ 2762 | 0 2763 | SWAP[ ] /* SwapTopStack */ 2764 | WS[ ] /* WriteStore */ 2765 | PUSHB[ ] /* 3 values pushed */ 2766 | 0 1 1 2767 | SZP2[ ] /* SetZonePointer2 */ 2768 | SZP1[ ] /* SetZonePointer1 */ 2769 | SZP0[ ] /* SetZonePointer0 */ 2770 | MDAP[0] /* MoveDirectAbsPt */ 2771 | PUSHB[ ] /* 1 value pushed */ 2772 | 52 2773 | LOOPCALL[ ] /* LoopAndCallFunction */ 2774 | ENDF[ ] /* EndFunctionDefinition */ 2775 | PUSHB[ ] /* 1 value pushed */ 2776 | 73 2777 | FDEF[ ] /* FunctionDefinition */ 2778 | PUSHB[ ] /* 2 values pushed */ 2779 | 0 1 2780 | SZP1[ ] /* SetZonePointer1 */ 2781 | SZP0[ ] /* SetZonePointer0 */ 2782 | PUSHB[ ] /* 1 value pushed */ 2783 | 53 2784 | LOOPCALL[ ] /* LoopAndCallFunction */ 2785 | ENDF[ ] /* EndFunctionDefinition */ 2786 | PUSHB[ ] /* 1 value pushed */ 2787 | 74 2788 | FDEF[ ] /* FunctionDefinition */ 2789 | PUSHB[ ] /* 1 value pushed */ 2790 | 55 2791 | LOOPCALL[ ] /* LoopAndCallFunction */ 2792 | ENDF[ ] /* EndFunctionDefinition */ 2793 | PUSHB[ ] /* 1 value pushed */ 2794 | 75 2795 | FDEF[ ] /* FunctionDefinition */ 2796 | PUSHB[ ] /* 1 value pushed */ 2797 | 0 2798 | SZPS[ ] /* SetZonePointerS */ 2799 | RCVT[ ] /* ReadCVT */ 2800 | SWAP[ ] /* SwapTopStack */ 2801 | DUP[ ] /* DuplicateTopStack */ 2802 | MDAP[0] /* MoveDirectAbsPt */ 2803 | DUP[ ] /* DuplicateTopStack */ 2804 | GC[0] /* GetCoordOnPVector */ 2805 | ROLL[ ] /* RollTopThreeStack */ 2806 | SWAP[ ] /* SwapTopStack */ 2807 | SUB[ ] /* Subtract */ 2808 | SHPIX[ ] /* ShiftZoneByPixel */ 2809 | PUSHB[ ] /* 2 values pushed */ 2810 | 46 1 2811 | SZP1[ ] /* SetZonePointer1 */ 2812 | CALL[ ] /* CallFunction */ 2813 | ENDF[ ] /* EndFunctionDefinition */ 2814 | PUSHB[ ] /* 1 value pushed */ 2815 | 76 2816 | FDEF[ ] /* FunctionDefinition */ 2817 | PUSHB[ ] /* 1 value pushed */ 2818 | 8 2819 | SWAP[ ] /* SwapTopStack */ 2820 | WS[ ] /* WriteStore */ 2821 | PUSHB[ ] /* 1 value pushed */ 2822 | 75 2823 | CALL[ ] /* CallFunction */ 2824 | ENDF[ ] /* EndFunctionDefinition */ 2825 | PUSHB[ ] /* 1 value pushed */ 2826 | 77 2827 | FDEF[ ] /* FunctionDefinition */ 2828 | PUSHB[ ] /* 3 values pushed */ 2829 | 0 0 68 2830 | CALL[ ] /* CallFunction */ 2831 | ENDF[ ] /* EndFunctionDefinition */ 2832 | PUSHB[ ] /* 1 value pushed */ 2833 | 78 2834 | FDEF[ ] /* FunctionDefinition */ 2835 | PUSHB[ ] /* 3 values pushed */ 2836 | 0 1 68 2837 | CALL[ ] /* CallFunction */ 2838 | ENDF[ ] /* EndFunctionDefinition */ 2839 | PUSHB[ ] /* 1 value pushed */ 2840 | 79 2841 | FDEF[ ] /* FunctionDefinition */ 2842 | PUSHB[ ] /* 3 values pushed */ 2843 | 1 0 68 2844 | CALL[ ] /* CallFunction */ 2845 | ENDF[ ] /* EndFunctionDefinition */ 2846 | PUSHB[ ] /* 1 value pushed */ 2847 | 80 2848 | FDEF[ ] /* FunctionDefinition */ 2849 | PUSHB[ ] /* 3 values pushed */ 2850 | 1 1 68 2851 | CALL[ ] /* CallFunction */ 2852 | ENDF[ ] /* EndFunctionDefinition */ 2853 | PUSHB[ ] /* 1 value pushed */ 2854 | 81 2855 | FDEF[ ] /* FunctionDefinition */ 2856 | PUSHB[ ] /* 3 values pushed */ 2857 | 0 0 69 2858 | CALL[ ] /* CallFunction */ 2859 | ENDF[ ] /* EndFunctionDefinition */ 2860 | PUSHB[ ] /* 1 value pushed */ 2861 | 82 2862 | FDEF[ ] /* FunctionDefinition */ 2863 | PUSHB[ ] /* 3 values pushed */ 2864 | 0 1 69 2865 | CALL[ ] /* CallFunction */ 2866 | ENDF[ ] /* EndFunctionDefinition */ 2867 | PUSHB[ ] /* 1 value pushed */ 2868 | 83 2869 | FDEF[ ] /* FunctionDefinition */ 2870 | PUSHB[ ] /* 3 values pushed */ 2871 | 1 0 69 2872 | CALL[ ] /* CallFunction */ 2873 | ENDF[ ] /* EndFunctionDefinition */ 2874 | PUSHB[ ] /* 1 value pushed */ 2875 | 84 2876 | FDEF[ ] /* FunctionDefinition */ 2877 | PUSHB[ ] /* 3 values pushed */ 2878 | 1 1 69 2879 | CALL[ ] /* CallFunction */ 2880 | ENDF[ ] /* EndFunctionDefinition */ 2881 | PUSHB[ ] /* 1 value pushed */ 2882 | 85 2883 | FDEF[ ] /* FunctionDefinition */ 2884 | PUSHB[ ] /* 4 values pushed */ 2885 | 0 0 0 65 2886 | CALL[ ] /* CallFunction */ 2887 | ENDF[ ] /* EndFunctionDefinition */ 2888 | PUSHB[ ] /* 1 value pushed */ 2889 | 86 2890 | FDEF[ ] /* FunctionDefinition */ 2891 | PUSHB[ ] /* 4 values pushed */ 2892 | 0 1 0 65 2893 | CALL[ ] /* CallFunction */ 2894 | ENDF[ ] /* EndFunctionDefinition */ 2895 | PUSHB[ ] /* 1 value pushed */ 2896 | 87 2897 | FDEF[ ] /* FunctionDefinition */ 2898 | PUSHB[ ] /* 4 values pushed */ 2899 | 1 0 0 65 2900 | CALL[ ] /* CallFunction */ 2901 | ENDF[ ] /* EndFunctionDefinition */ 2902 | PUSHB[ ] /* 1 value pushed */ 2903 | 88 2904 | FDEF[ ] /* FunctionDefinition */ 2905 | PUSHB[ ] /* 4 values pushed */ 2906 | 1 1 0 65 2907 | CALL[ ] /* CallFunction */ 2908 | ENDF[ ] /* EndFunctionDefinition */ 2909 | PUSHB[ ] /* 1 value pushed */ 2910 | 89 2911 | FDEF[ ] /* FunctionDefinition */ 2912 | PUSHB[ ] /* 4 values pushed */ 2913 | 0 0 1 65 2914 | CALL[ ] /* CallFunction */ 2915 | ENDF[ ] /* EndFunctionDefinition */ 2916 | PUSHB[ ] /* 1 value pushed */ 2917 | 90 2918 | FDEF[ ] /* FunctionDefinition */ 2919 | PUSHB[ ] /* 4 values pushed */ 2920 | 0 1 1 65 2921 | CALL[ ] /* CallFunction */ 2922 | ENDF[ ] /* EndFunctionDefinition */ 2923 | PUSHB[ ] /* 1 value pushed */ 2924 | 91 2925 | FDEF[ ] /* FunctionDefinition */ 2926 | PUSHB[ ] /* 4 values pushed */ 2927 | 1 0 1 65 2928 | CALL[ ] /* CallFunction */ 2929 | ENDF[ ] /* EndFunctionDefinition */ 2930 | PUSHB[ ] /* 1 value pushed */ 2931 | 92 2932 | FDEF[ ] /* FunctionDefinition */ 2933 | PUSHB[ ] /* 4 values pushed */ 2934 | 1 1 1 65 2935 | CALL[ ] /* CallFunction */ 2936 | ENDF[ ] /* EndFunctionDefinition */ 2937 | PUSHB[ ] /* 1 value pushed */ 2938 | 93 2939 | FDEF[ ] /* FunctionDefinition */ 2940 | PUSHB[ ] /* 3 values pushed */ 2941 | 0 0 67 2942 | CALL[ ] /* CallFunction */ 2943 | ENDF[ ] /* EndFunctionDefinition */ 2944 | PUSHB[ ] /* 1 value pushed */ 2945 | 94 2946 | FDEF[ ] /* FunctionDefinition */ 2947 | PUSHB[ ] /* 3 values pushed */ 2948 | 0 1 67 2949 | CALL[ ] /* CallFunction */ 2950 | ENDF[ ] /* EndFunctionDefinition */ 2951 | PUSHB[ ] /* 1 value pushed */ 2952 | 95 2953 | FDEF[ ] /* FunctionDefinition */ 2954 | PUSHB[ ] /* 3 values pushed */ 2955 | 1 0 67 2956 | CALL[ ] /* CallFunction */ 2957 | ENDF[ ] /* EndFunctionDefinition */ 2958 | PUSHB[ ] /* 1 value pushed */ 2959 | 96 2960 | FDEF[ ] /* FunctionDefinition */ 2961 | PUSHB[ ] /* 3 values pushed */ 2962 | 1 1 67 2963 | CALL[ ] /* CallFunction */ 2964 | ENDF[ ] /* EndFunctionDefinition */ 2965 | PUSHB[ ] /* 1 value pushed */ 2966 | 97 2967 | FDEF[ ] /* FunctionDefinition */ 2968 | PUSHB[ ] /* 3 values pushed */ 2969 | 0 0 70 2970 | CALL[ ] /* CallFunction */ 2971 | ENDF[ ] /* EndFunctionDefinition */ 2972 | PUSHB[ ] /* 1 value pushed */ 2973 | 98 2974 | FDEF[ ] /* FunctionDefinition */ 2975 | PUSHB[ ] /* 3 values pushed */ 2976 | 0 1 70 2977 | CALL[ ] /* CallFunction */ 2978 | ENDF[ ] /* EndFunctionDefinition */ 2979 | PUSHB[ ] /* 1 value pushed */ 2980 | 99 2981 | FDEF[ ] /* FunctionDefinition */ 2982 | PUSHB[ ] /* 3 values pushed */ 2983 | 1 0 70 2984 | CALL[ ] /* CallFunction */ 2985 | ENDF[ ] /* EndFunctionDefinition */ 2986 | PUSHB[ ] /* 1 value pushed */ 2987 | 100 2988 | FDEF[ ] /* FunctionDefinition */ 2989 | PUSHB[ ] /* 3 values pushed */ 2990 | 1 1 70 2991 | CALL[ ] /* CallFunction */ 2992 | ENDF[ ] /* EndFunctionDefinition */ 2993 | PUSHB[ ] /* 1 value pushed */ 2994 | 101 2995 | FDEF[ ] /* FunctionDefinition */ 2996 | PUSHB[ ] /* 4 values pushed */ 2997 | 0 0 0 66 2998 | CALL[ ] /* CallFunction */ 2999 | ENDF[ ] /* EndFunctionDefinition */ 3000 | PUSHB[ ] /* 1 value pushed */ 3001 | 102 3002 | FDEF[ ] /* FunctionDefinition */ 3003 | PUSHB[ ] /* 4 values pushed */ 3004 | 0 1 0 66 3005 | CALL[ ] /* CallFunction */ 3006 | ENDF[ ] /* EndFunctionDefinition */ 3007 | PUSHB[ ] /* 1 value pushed */ 3008 | 103 3009 | FDEF[ ] /* FunctionDefinition */ 3010 | PUSHB[ ] /* 4 values pushed */ 3011 | 1 0 0 66 3012 | CALL[ ] /* CallFunction */ 3013 | ENDF[ ] /* EndFunctionDefinition */ 3014 | PUSHB[ ] /* 1 value pushed */ 3015 | 104 3016 | FDEF[ ] /* FunctionDefinition */ 3017 | PUSHB[ ] /* 4 values pushed */ 3018 | 1 1 0 66 3019 | CALL[ ] /* CallFunction */ 3020 | ENDF[ ] /* EndFunctionDefinition */ 3021 | PUSHB[ ] /* 1 value pushed */ 3022 | 105 3023 | FDEF[ ] /* FunctionDefinition */ 3024 | PUSHB[ ] /* 4 values pushed */ 3025 | 0 0 1 66 3026 | CALL[ ] /* CallFunction */ 3027 | ENDF[ ] /* EndFunctionDefinition */ 3028 | PUSHB[ ] /* 1 value pushed */ 3029 | 106 3030 | FDEF[ ] /* FunctionDefinition */ 3031 | PUSHB[ ] /* 4 values pushed */ 3032 | 0 1 1 66 3033 | CALL[ ] /* CallFunction */ 3034 | ENDF[ ] /* EndFunctionDefinition */ 3035 | PUSHB[ ] /* 1 value pushed */ 3036 | 107 3037 | FDEF[ ] /* FunctionDefinition */ 3038 | PUSHB[ ] /* 4 values pushed */ 3039 | 1 0 1 66 3040 | CALL[ ] /* CallFunction */ 3041 | ENDF[ ] /* EndFunctionDefinition */ 3042 | PUSHB[ ] /* 1 value pushed */ 3043 | 108 3044 | FDEF[ ] /* FunctionDefinition */ 3045 | PUSHB[ ] /* 4 values pushed */ 3046 | 1 1 1 66 3047 | CALL[ ] /* CallFunction */ 3048 | ENDF[ ] /* EndFunctionDefinition */ 3049 | PUSHB[ ] /* 1 value pushed */ 3050 | 109 3051 | FDEF[ ] /* FunctionDefinition */ 3052 | PUSHB[ ] /* 2 values pushed */ 3053 | 0 58 3054 | CALL[ ] /* CallFunction */ 3055 | MDAP[0] /* MoveDirectAbsPt */ 3056 | PUSHB[ ] /* 2 values pushed */ 3057 | 46 1 3058 | SZP1[ ] /* SetZonePointer1 */ 3059 | CALL[ ] /* CallFunction */ 3060 | ENDF[ ] /* EndFunctionDefinition */ 3061 | PUSHB[ ] /* 1 value pushed */ 3062 | 110 3063 | FDEF[ ] /* FunctionDefinition */ 3064 | PUSHB[ ] /* 2 values pushed */ 3065 | 0 58 3066 | CALL[ ] /* CallFunction */ 3067 | PUSHB[ ] /* 1 value pushed */ 3068 | 62 3069 | CALL[ ] /* CallFunction */ 3070 | ENDF[ ] /* EndFunctionDefinition */ 3071 | PUSHB[ ] /* 1 value pushed */ 3072 | 111 3073 | FDEF[ ] /* FunctionDefinition */ 3074 | PUSHB[ ] /* 2 values pushed */ 3075 | 0 58 3076 | CALL[ ] /* CallFunction */ 3077 | PUSHB[ ] /* 1 value pushed */ 3078 | 63 3079 | CALL[ ] /* CallFunction */ 3080 | ENDF[ ] /* EndFunctionDefinition */ 3081 | PUSHB[ ] /* 1 value pushed */ 3082 | 112 3083 | FDEF[ ] /* FunctionDefinition */ 3084 | PUSHB[ ] /* 1 value pushed */ 3085 | 0 3086 | SZPS[ ] /* SetZonePointerS */ 3087 | PUSHB[ ] /* 2 values pushed */ 3088 | 0 58 3089 | CALL[ ] /* CallFunction */ 3090 | PUSHB[ ] /* 1 value pushed */ 3091 | 64 3092 | CALL[ ] /* CallFunction */ 3093 | ENDF[ ] /* EndFunctionDefinition */ 3094 | PUSHB[ ] /* 1 value pushed */ 3095 | 113 3096 | FDEF[ ] /* FunctionDefinition */ 3097 | PUSHB[ ] /* 2 values pushed */ 3098 | 1 58 3099 | CALL[ ] /* CallFunction */ 3100 | PUSHB[ ] /* 1 value pushed */ 3101 | 62 3102 | CALL[ ] /* CallFunction */ 3103 | ENDF[ ] /* EndFunctionDefinition */ 3104 | PUSHB[ ] /* 1 value pushed */ 3105 | 114 3106 | FDEF[ ] /* FunctionDefinition */ 3107 | PUSHB[ ] /* 2 values pushed */ 3108 | 1 58 3109 | CALL[ ] /* CallFunction */ 3110 | PUSHB[ ] /* 1 value pushed */ 3111 | 63 3112 | CALL[ ] /* CallFunction */ 3113 | ENDF[ ] /* EndFunctionDefinition */ 3114 | PUSHB[ ] /* 1 value pushed */ 3115 | 115 3116 | FDEF[ ] /* FunctionDefinition */ 3117 | PUSHB[ ] /* 1 value pushed */ 3118 | 0 3119 | SZPS[ ] /* SetZonePointerS */ 3120 | PUSHB[ ] /* 2 values pushed */ 3121 | 1 58 3122 | CALL[ ] /* CallFunction */ 3123 | PUSHB[ ] /* 1 value pushed */ 3124 | 64 3125 | CALL[ ] /* CallFunction */ 3126 | ENDF[ ] /* EndFunctionDefinition */ 3127 | PUSHB[ ] /* 1 value pushed */ 3128 | 116 3129 | FDEF[ ] /* FunctionDefinition */ 3130 | PUSHB[ ] /* 2 values pushed */ 3131 | 0 59 3132 | CALL[ ] /* CallFunction */ 3133 | MDAP[0] /* MoveDirectAbsPt */ 3134 | PUSHB[ ] /* 2 values pushed */ 3135 | 46 1 3136 | SZP1[ ] /* SetZonePointer1 */ 3137 | CALL[ ] /* CallFunction */ 3138 | ENDF[ ] /* EndFunctionDefinition */ 3139 | PUSHB[ ] /* 1 value pushed */ 3140 | 117 3141 | FDEF[ ] /* FunctionDefinition */ 3142 | PUSHB[ ] /* 2 values pushed */ 3143 | 0 59 3144 | CALL[ ] /* CallFunction */ 3145 | PUSHB[ ] /* 1 value pushed */ 3146 | 62 3147 | CALL[ ] /* CallFunction */ 3148 | ENDF[ ] /* EndFunctionDefinition */ 3149 | PUSHB[ ] /* 1 value pushed */ 3150 | 118 3151 | FDEF[ ] /* FunctionDefinition */ 3152 | PUSHB[ ] /* 2 values pushed */ 3153 | 0 59 3154 | CALL[ ] /* CallFunction */ 3155 | PUSHB[ ] /* 1 value pushed */ 3156 | 63 3157 | CALL[ ] /* CallFunction */ 3158 | ENDF[ ] /* EndFunctionDefinition */ 3159 | PUSHB[ ] /* 1 value pushed */ 3160 | 119 3161 | FDEF[ ] /* FunctionDefinition */ 3162 | PUSHB[ ] /* 2 values pushed */ 3163 | 0 59 3164 | CALL[ ] /* CallFunction */ 3165 | PUSHB[ ] /* 1 value pushed */ 3166 | 64 3167 | CALL[ ] /* CallFunction */ 3168 | ENDF[ ] /* EndFunctionDefinition */ 3169 | PUSHB[ ] /* 1 value pushed */ 3170 | 120 3171 | FDEF[ ] /* FunctionDefinition */ 3172 | PUSHB[ ] /* 2 values pushed */ 3173 | 1 59 3174 | CALL[ ] /* CallFunction */ 3175 | PUSHB[ ] /* 1 value pushed */ 3176 | 62 3177 | CALL[ ] /* CallFunction */ 3178 | ENDF[ ] /* EndFunctionDefinition */ 3179 | PUSHB[ ] /* 1 value pushed */ 3180 | 121 3181 | FDEF[ ] /* FunctionDefinition */ 3182 | PUSHB[ ] /* 2 values pushed */ 3183 | 1 59 3184 | CALL[ ] /* CallFunction */ 3185 | PUSHB[ ] /* 1 value pushed */ 3186 | 63 3187 | CALL[ ] /* CallFunction */ 3188 | ENDF[ ] /* EndFunctionDefinition */ 3189 | PUSHB[ ] /* 1 value pushed */ 3190 | 122 3191 | FDEF[ ] /* FunctionDefinition */ 3192 | PUSHB[ ] /* 2 values pushed */ 3193 | 1 59 3194 | CALL[ ] /* CallFunction */ 3195 | PUSHB[ ] /* 1 value pushed */ 3196 | 64 3197 | CALL[ ] /* CallFunction */ 3198 | ENDF[ ] /* EndFunctionDefinition */ 3199 | PUSHB[ ] /* 1 value pushed */ 3200 | 123 3201 | FDEF[ ] /* FunctionDefinition */ 3202 | PUSHB[ ] /* 2 values pushed */ 3203 | 0 60 3204 | CALL[ ] /* CallFunction */ 3205 | MDAP[0] /* MoveDirectAbsPt */ 3206 | PUSHB[ ] /* 2 values pushed */ 3207 | 46 1 3208 | SZP1[ ] /* SetZonePointer1 */ 3209 | CALL[ ] /* CallFunction */ 3210 | ENDF[ ] /* EndFunctionDefinition */ 3211 | PUSHB[ ] /* 1 value pushed */ 3212 | 124 3213 | FDEF[ ] /* FunctionDefinition */ 3214 | PUSHB[ ] /* 2 values pushed */ 3215 | 0 60 3216 | CALL[ ] /* CallFunction */ 3217 | PUSHB[ ] /* 1 value pushed */ 3218 | 62 3219 | CALL[ ] /* CallFunction */ 3220 | ENDF[ ] /* EndFunctionDefinition */ 3221 | PUSHB[ ] /* 1 value pushed */ 3222 | 125 3223 | FDEF[ ] /* FunctionDefinition */ 3224 | PUSHB[ ] /* 2 values pushed */ 3225 | 0 60 3226 | CALL[ ] /* CallFunction */ 3227 | PUSHB[ ] /* 1 value pushed */ 3228 | 63 3229 | CALL[ ] /* CallFunction */ 3230 | ENDF[ ] /* EndFunctionDefinition */ 3231 | PUSHB[ ] /* 1 value pushed */ 3232 | 126 3233 | FDEF[ ] /* FunctionDefinition */ 3234 | PUSHB[ ] /* 2 values pushed */ 3235 | 0 60 3236 | CALL[ ] /* CallFunction */ 3237 | PUSHB[ ] /* 1 value pushed */ 3238 | 64 3239 | CALL[ ] /* CallFunction */ 3240 | ENDF[ ] /* EndFunctionDefinition */ 3241 | PUSHB[ ] /* 1 value pushed */ 3242 | 127 3243 | FDEF[ ] /* FunctionDefinition */ 3244 | PUSHB[ ] /* 2 values pushed */ 3245 | 1 60 3246 | CALL[ ] /* CallFunction */ 3247 | PUSHB[ ] /* 1 value pushed */ 3248 | 62 3249 | CALL[ ] /* CallFunction */ 3250 | ENDF[ ] /* EndFunctionDefinition */ 3251 | PUSHB[ ] /* 1 value pushed */ 3252 | 128 3253 | FDEF[ ] /* FunctionDefinition */ 3254 | PUSHB[ ] /* 2 values pushed */ 3255 | 1 60 3256 | CALL[ ] /* CallFunction */ 3257 | PUSHB[ ] /* 1 value pushed */ 3258 | 63 3259 | CALL[ ] /* CallFunction */ 3260 | ENDF[ ] /* EndFunctionDefinition */ 3261 | PUSHB[ ] /* 1 value pushed */ 3262 | 129 3263 | FDEF[ ] /* FunctionDefinition */ 3264 | PUSHB[ ] /* 2 values pushed */ 3265 | 1 60 3266 | CALL[ ] /* CallFunction */ 3267 | PUSHB[ ] /* 1 value pushed */ 3268 | 64 3269 | CALL[ ] /* CallFunction */ 3270 | ENDF[ ] /* EndFunctionDefinition */ 3271 | PUSHB[ ] /* 1 value pushed */ 3272 | 130 3273 | FDEF[ ] /* FunctionDefinition */ 3274 | PUSHB[ ] /* 2 values pushed */ 3275 | 0 61 3276 | CALL[ ] /* CallFunction */ 3277 | MDAP[0] /* MoveDirectAbsPt */ 3278 | PUSHB[ ] /* 2 values pushed */ 3279 | 46 1 3280 | SZP1[ ] /* SetZonePointer1 */ 3281 | CALL[ ] /* CallFunction */ 3282 | ENDF[ ] /* EndFunctionDefinition */ 3283 | PUSHB[ ] /* 1 value pushed */ 3284 | 131 3285 | FDEF[ ] /* FunctionDefinition */ 3286 | PUSHB[ ] /* 2 values pushed */ 3287 | 0 61 3288 | CALL[ ] /* CallFunction */ 3289 | PUSHB[ ] /* 1 value pushed */ 3290 | 62 3291 | CALL[ ] /* CallFunction */ 3292 | ENDF[ ] /* EndFunctionDefinition */ 3293 | PUSHB[ ] /* 1 value pushed */ 3294 | 132 3295 | FDEF[ ] /* FunctionDefinition */ 3296 | PUSHB[ ] /* 2 values pushed */ 3297 | 0 61 3298 | CALL[ ] /* CallFunction */ 3299 | PUSHB[ ] /* 1 value pushed */ 3300 | 63 3301 | CALL[ ] /* CallFunction */ 3302 | ENDF[ ] /* EndFunctionDefinition */ 3303 | PUSHB[ ] /* 1 value pushed */ 3304 | 133 3305 | FDEF[ ] /* FunctionDefinition */ 3306 | PUSHB[ ] /* 2 values pushed */ 3307 | 0 61 3308 | CALL[ ] /* CallFunction */ 3309 | PUSHB[ ] /* 1 value pushed */ 3310 | 64 3311 | CALL[ ] /* CallFunction */ 3312 | ENDF[ ] /* EndFunctionDefinition */ 3313 | PUSHB[ ] /* 1 value pushed */ 3314 | 134 3315 | FDEF[ ] /* FunctionDefinition */ 3316 | PUSHB[ ] /* 2 values pushed */ 3317 | 1 61 3318 | CALL[ ] /* CallFunction */ 3319 | PUSHB[ ] /* 1 value pushed */ 3320 | 62 3321 | CALL[ ] /* CallFunction */ 3322 | ENDF[ ] /* EndFunctionDefinition */ 3323 | PUSHB[ ] /* 1 value pushed */ 3324 | 135 3325 | FDEF[ ] /* FunctionDefinition */ 3326 | PUSHB[ ] /* 2 values pushed */ 3327 | 1 61 3328 | CALL[ ] /* CallFunction */ 3329 | PUSHB[ ] /* 1 value pushed */ 3330 | 63 3331 | CALL[ ] /* CallFunction */ 3332 | ENDF[ ] /* EndFunctionDefinition */ 3333 | PUSHB[ ] /* 1 value pushed */ 3334 | 136 3335 | FDEF[ ] /* FunctionDefinition */ 3336 | PUSHB[ ] /* 2 values pushed */ 3337 | 1 61 3338 | CALL[ ] /* CallFunction */ 3339 | PUSHB[ ] /* 1 value pushed */ 3340 | 64 3341 | CALL[ ] /* CallFunction */ 3342 | ENDF[ ] /* EndFunctionDefinition */ 3343 | PUSHB[ ] /* 1 value pushed */ 3344 | 137 3345 | FDEF[ ] /* FunctionDefinition */ 3346 | PUSHB[ ] /* 4 values pushed */ 3347 | 9 4 2 3 3348 | RCVT[ ] /* ReadCVT */ 3349 | IF[ ] /* If */ 3350 | POP[ ] /* PopTopStack */ 3351 | ELSE[ ] /* Else */ 3352 | SWAP[ ] /* SwapTopStack */ 3353 | POP[ ] /* PopTopStack */ 3354 | EIF[ ] /* EndIf */ 3355 | WS[ ] /* WriteStore */ 3356 | CALL[ ] /* CallFunction */ 3357 | PUSHB[ ] /* 1 value pushed */ 3358 | 8 3359 | NEG[ ] /* Negate */ 3360 | PUSHB[ ] /* 1 value pushed */ 3361 | 3 3362 | DEPTH[ ] /* GetDepthStack */ 3363 | LT[ ] /* LessThan */ 3364 | JROT[ ] /* JumpRelativeOnTrue */ 3365 | PUSHB[ ] /* 2 values pushed */ 3366 | 5 1 3367 | SZP2[ ] /* SetZonePointer2 */ 3368 | RCVT[ ] /* ReadCVT */ 3369 | IF[ ] /* If */ 3370 | IUP[0] /* InterpolateUntPts */ 3371 | EIF[ ] /* EndIf */ 3372 | ENDF[ ] /* EndFunctionDefinition */ 3373 | 3374 | 3375 | 3376 | 3377 | 3378 | SVTCA[0] /* SetFPVectorToAxis */ 3379 | MPPEM[ ] /* MeasurePixelPerEm */ 3380 | PUSHW[ ] /* 1 value pushed */ 3381 | 200 3382 | GT[ ] /* GreaterThan */ 3383 | IF[ ] /* If */ 3384 | PUSHB[ ] /* 2 values pushed */ 3385 | 1 1 3386 | INSTCTRL[ ] /* SetInstrExecControl */ 3387 | EIF[ ] /* EndIf */ 3388 | PUSHB[ ] /* 1 value pushed */ 3389 | 1 3390 | PUSHW[ ] /* 2 values pushed */ 3391 | 2048 2048 3392 | MUL[ ] /* Multiply */ 3393 | WCVTF[ ] /* WriteCVTInFUnits */ 3394 | PUSHB[ ] /* 2 values pushed */ 3395 | 0 7 3396 | WS[ ] /* WriteStore */ 3397 | PUSHB[ ] /* 8 values pushed */ 3398 | 0 115 95 74 59 41 6 0 3399 | LOOPCALL[ ] /* LoopAndCallFunction */ 3400 | PUSHB[ ] /* 2 values pushed */ 3401 | 0 7 3402 | WS[ ] /* WriteStore */ 3403 | NPUSHB[ ] /* 14 values pushed */ 3404 | 124 4 102 8 82 8 66 6 48 7 27 9 6 8 3405 | LOOPCALL[ ] /* LoopAndCallFunction */ 3406 | PUSHB[ ] /* 2 values pushed */ 3407 | 0 7 3408 | WS[ ] /* WriteStore */ 3409 | NPUSHB[ ] /* 14 values pushed */ 3410 | 130 2 112 6 92 6 74 4 57 5 38 6 6 8 3411 | LOOPCALL[ ] /* LoopAndCallFunction */ 3412 | PUSHB[ ] /* 2 values pushed */ 3413 | 0 13 3414 | WS[ ] /* WriteStore */ 3415 | PUSHW[ ] /* 8 values pushed */ 3416 | 8000 6592 5312 4288 3136 1792 6 9 3417 | LOOPCALL[ ] /* LoopAndCallFunction */ 3418 | PUSHB[ ] /* 2 values pushed */ 3419 | 0 19 3420 | WS[ ] /* WriteStore */ 3421 | PUSHW[ ] /* 8 values pushed */ 3422 | 64 64 64 64 64 128 6 9 3423 | LOOPCALL[ ] /* LoopAndCallFunction */ 3424 | PUSHB[ ] /* 2 values pushed */ 3425 | 3 0 3426 | WCVTP[ ] /* WriteCVTInPixels */ 3427 | PUSHB[ ] /* 2 values pushed */ 3428 | 36 1 3429 | GETINFO[ ] /* GetInfo */ 3430 | LTEQ[ ] /* LessThenOrEqual */ 3431 | IF[ ] /* If */ 3432 | PUSHB[ ] /* 1 value pushed */ 3433 | 64 3434 | GETINFO[ ] /* GetInfo */ 3435 | IF[ ] /* If */ 3436 | PUSHB[ ] /* 2 values pushed */ 3437 | 3 100 3438 | WCVTP[ ] /* WriteCVTInPixels */ 3439 | PUSHB[ ] /* 2 values pushed */ 3440 | 40 1 3441 | GETINFO[ ] /* GetInfo */ 3442 | LTEQ[ ] /* LessThenOrEqual */ 3443 | IF[ ] /* If */ 3444 | PUSHW[ ] /* 1 value pushed */ 3445 | 2048 3446 | GETINFO[ ] /* GetInfo */ 3447 | IF[ ] /* If */ 3448 | PUSHB[ ] /* 2 values pushed */ 3449 | 3 0 3450 | WCVTP[ ] /* WriteCVTInPixels */ 3451 | EIF[ ] /* EndIf */ 3452 | ELSE[ ] /* Else */ 3453 | PUSHB[ ] /* 2 values pushed */ 3454 | 39 1 3455 | GETINFO[ ] /* GetInfo */ 3456 | LTEQ[ ] /* LessThenOrEqual */ 3457 | IF[ ] /* If */ 3458 | PUSHW[ ] /* 3 values pushed */ 3459 | 2176 1 1088 3460 | GETINFO[ ] /* GetInfo */ 3461 | MUL[ ] /* Multiply */ 3462 | EQ[ ] /* Equal */ 3463 | IF[ ] /* If */ 3464 | PUSHB[ ] /* 2 values pushed */ 3465 | 3 0 3466 | WCVTP[ ] /* WriteCVTInPixels */ 3467 | EIF[ ] /* EndIf */ 3468 | EIF[ ] /* EndIf */ 3469 | EIF[ ] /* EndIf */ 3470 | EIF[ ] /* EndIf */ 3471 | EIF[ ] /* EndIf */ 3472 | NPUSHB[ ] /* 14 values pushed */ 3473 | 126 4 104 8 84 8 68 6 50 7 30 8 6 12 3474 | LOOPCALL[ ] /* LoopAndCallFunction */ 3475 | PUSHW[ ] /* 1 value pushed */ 3476 | 511 3477 | SCANCTRL[ ] /* ScanConversionControl */ 3478 | PUSHB[ ] /* 1 value pushed */ 3479 | 4 3480 | SCANTYPE[ ] /* ScanType */ 3481 | PUSHB[ ] /* 2 values pushed */ 3482 | 2 0 3483 | WCVTP[ ] /* WriteCVTInPixels */ 3484 | PUSHB[ ] /* 1 value pushed */ 3485 | 6 3486 | SDB[ ] /* SetDeltaBaseInGState */ 3487 | PUSHB[ ] /* 4 values pushed */ 3488 | 5 100 6 0 3489 | WCVTP[ ] /* WriteCVTInPixels */ 3490 | WCVTP[ ] /* WriteCVTInPixels */ 3491 | 3492 | 3493 | 3494 | 3495 | 3496 | 3497 | 3498 | 3499 | 3500 | 3501 | 3502 | 3503 | 3504 | 3505 | 3506 | 3507 | 3508 | 3509 | 3510 | 3511 | 3512 | 3513 | 3514 | 3515 | 3516 | 3517 | 3518 | 3519 | 3520 | 3521 | 3522 | 3523 | 3524 | 3525 | 3526 | 3527 | 3528 | 3529 | 3530 | 3531 | 3532 | 3533 | 3534 | 3535 | 3536 | 3537 | 3538 | 3539 | 3540 | 3541 | 3542 | 3543 | 3544 | 3545 | 3546 | 3547 | 3548 | 3549 | 3550 | 3551 | 3552 | 3553 | 3554 | 3555 | 3556 | 3557 | 3558 | 3559 | 3560 | 3561 | 3562 | 3563 | 3564 | 3565 | 3566 | 3567 | 3568 | 3569 | 3570 | 3571 | 3572 | 3573 | 3574 | 3575 | 3576 | 3577 | 3578 | 3579 | 3580 | 3581 | 3582 | 3583 | 3584 | 3585 | 3586 | 3587 | 3588 | 3589 | 3590 | 3591 | 3592 | 3593 | 3594 | 3595 | 3596 | 3597 | 3598 | 3599 | 3600 | 3601 | 3602 | 3603 | 3604 | 3605 | 3606 | 3607 | 3608 | 3609 | 3610 | 3611 | 3612 | 3613 | 3614 | 3615 | 3616 | 3617 | 3618 | 3619 | 3620 | 3621 | 3622 | 3623 | 3624 | 3625 | 3626 | 3627 | 3628 | 3629 | 3630 | 3631 | 3632 | 3633 | 3634 | 3635 | 3636 | 3637 | 3639 | 3640 | 3641 | 3642 | 3643 | 3644 | 3645 | 3646 | 3647 | 3648 | 3649 | 3650 | 3651 | 3652 | 3653 | 3654 | 3655 | 3656 | 3657 | 3658 | 3659 | 3660 | 3661 | 3662 | 3663 | 3664 | 3665 | 3666 | 3667 | 3668 | 3669 | 3670 | 3671 | 3672 | 3673 | 3674 | 3675 | 3676 | 3677 | 3678 | 3679 | 3680 | 3681 | 3682 | 3683 | 3684 | 3685 | 3686 | 3687 | 3688 | 3689 | 3690 | 3691 | 3692 | 3693 | 3694 | 3695 | 3696 | 3697 | 3698 | 3699 | 3700 | 3701 | 3702 | 3703 | 3704 | 3705 | 3706 | 3707 | 3708 | 3709 | 3710 | 3711 | 3712 | 3713 | 3714 | 3715 | 3716 | 3717 | 3718 | PUSHB[ ] /* 2 values pushed */ 3719 | 5 0 3720 | WCVTP[ ] /* WriteCVTInPixels */ 3721 | NPUSHB[ ] /* 66 values pushed */ 3722 | 26 10 2 5 2 1 74 7 1 2 0 5 4 2 5 103 0 3 3 1 95 0 1 1 112 3723 | 75 8 1 4 4 0 95 6 1 0 0 113 0 76 50 49 35 34 1 0 59 57 49 66 50 3724 | 66 43 41 34 48 35 48 19 17 0 33 1 33 9 11 20 3725 | CALL[ ] /* CallFunction */ 3726 | NPUSHB[ ] /* 38 values pushed */ 3727 | 102 34 102 35 105 41 105 42 105 43 102 48 118 34 118 35 121 41 121 42 121 43 118 48 134 3728 | 34 134 35 137 41 137 42 137 43 134 48 18 41 3729 | LOOPCALL[ ] /* LoopAndCallFunction */ 3730 | IUP[0] /* InterpolateUntPts */ 3731 | PUSHB[ ] /* 2 values pushed */ 3732 | 5 100 3733 | WCVTP[ ] /* WriteCVTInPixels */ 3734 | 3735 | 3736 | 3737 | 3738 | 3739 | 3740 | 3741 | 3742 | 3743 | 3744 | 3745 | 3746 | 3747 | 3748 | 3749 | 3750 | 3751 | 3752 | 3753 | 3754 | 3755 | 3756 | 3757 | 3758 | 3759 | 3760 | 3761 | 3762 | 3763 | 3764 | 3765 | 3766 | 3767 | 3768 | 3769 | 3770 | 3771 | 3772 | 3773 | 3774 | 3775 | 3776 | 3777 | 3778 | 3779 | 3780 | 3781 | 3782 | 3783 | 3784 | 3785 | 3786 | 3787 | 3788 | NPUSHB[ ] /* 64 values pushed */ 3789 | 30 1 2 5 25 7 2 1 2 6 1 0 1 3 74 0 5 0 2 1 5 2 103 0 4 3790 | 4 3 93 0 3 3 104 75 0 1 1 0 95 6 1 0 0 113 0 76 1 0 37 34 29 3791 | 28 27 26 20 18 13 11 0 44 1 44 7 11 20 3792 | CALL[ ] /* CallFunction */ 3793 | 3794 | 3795 | 3796 | 3797 | 3798 | 3799 | 3800 | 3801 | 3802 | 3803 | 3804 | 3805 | 3806 | 3807 | 3808 | 3809 | 3810 | 3811 | 3812 | 3813 | 3814 | 3815 | 3816 | 3817 | 3818 | NPUSHB[ ] /* 43 values pushed */ 3819 | 12 2 2 2 1 1 74 6 5 2 2 3 1 0 4 2 0 102 0 1 1 104 75 0 4 3820 | 4 105 4 76 11 11 11 13 11 13 17 17 17 18 16 7 11 25 3821 | CALL[ ] /* CallFunction */ 3822 | 3823 | 3824 | 3825 | 3826 | 3827 | 3828 | 3829 | 3830 | 3831 | 3832 | 3833 | 3834 | 3835 | 3836 | 3837 | 3838 | 3839 | 3840 | 3841 | 3842 | 3843 | 3844 | 3845 | 3846 | 3847 | 3848 | 3849 | 3850 | 3851 | 3852 | 3853 | 3854 | 3855 | 3856 | 3857 | 3858 | 3859 | 3860 | 3861 | 3862 | 3863 | 3864 | 3865 | 3866 | 3867 | 3868 | 3869 | 3870 | 3871 | 3872 | 3873 | 3874 | 3875 | 3876 | 3877 | 3878 | 3879 | 3880 | 3881 | 3882 | 3883 | 3884 | 3885 | 3886 | 3887 | 3888 | 3889 | NPUSHB[ ] /* 14 values pushed */ 3890 | 16 1 2 4 6 1 1 2 5 1 0 1 3 74 3891 | MPPEM[ ] /* MeasurePixelPerEm */ 3892 | PUSHB[ ] /* 1 value pushed */ 3893 | 10 3894 | LT[ ] /* LessThan */ 3895 | IF[ ] /* If */ 3896 | NPUSHB[ ] /* 31 values pushed */ 3897 | 7 1 4 0 2 1 4 2 103 0 5 5 3 95 0 3 3 104 75 0 1 1 0 95 6 3898 | 1 0 0 113 0 76 3899 | ELSE[ ] /* Else */ 3900 | MPPEM[ ] /* MeasurePixelPerEm */ 3901 | PUSHB[ ] /* 1 value pushed */ 3902 | 12 3903 | LT[ ] /* LessThan */ 3904 | IF[ ] /* If */ 3905 | NPUSHB[ ] /* 31 values pushed */ 3906 | 7 1 4 0 2 1 4 2 103 0 5 5 3 95 0 3 3 112 75 0 1 1 0 95 6 3907 | 1 0 0 113 0 76 3908 | ELSE[ ] /* Else */ 3909 | MPPEM[ ] /* MeasurePixelPerEm */ 3910 | PUSHB[ ] /* 1 value pushed */ 3911 | 17 3912 | LT[ ] /* LessThan */ 3913 | IF[ ] /* If */ 3914 | NPUSHB[ ] /* 31 values pushed */ 3915 | 7 1 4 0 2 1 4 2 103 0 5 5 3 95 0 3 3 104 75 0 1 1 0 95 6 3916 | 1 0 0 113 0 76 3917 | ELSE[ ] /* Else */ 3918 | MPPEM[ ] /* MeasurePixelPerEm */ 3919 | PUSHB[ ] /* 1 value pushed */ 3920 | 21 3921 | LT[ ] /* LessThan */ 3922 | IF[ ] /* If */ 3923 | NPUSHB[ ] /* 31 values pushed */ 3924 | 7 1 4 0 2 1 4 2 103 0 5 5 3 95 0 3 3 112 75 0 1 1 0 95 6 3925 | 1 0 0 113 0 76 3926 | ELSE[ ] /* Else */ 3927 | MPPEM[ ] /* MeasurePixelPerEm */ 3928 | PUSHB[ ] /* 1 value pushed */ 3929 | 23 3930 | LT[ ] /* LessThan */ 3931 | IF[ ] /* If */ 3932 | NPUSHB[ ] /* 31 values pushed */ 3933 | 7 1 4 0 2 1 4 2 103 0 5 5 3 95 0 3 3 104 75 0 1 1 0 95 6 3934 | 1 0 0 113 0 76 3935 | ELSE[ ] /* Else */ 3936 | MPPEM[ ] /* MeasurePixelPerEm */ 3937 | PUSHB[ ] /* 1 value pushed */ 3938 | 28 3939 | LT[ ] /* LessThan */ 3940 | IF[ ] /* If */ 3941 | NPUSHB[ ] /* 31 values pushed */ 3942 | 7 1 4 0 2 1 4 2 103 0 5 5 3 95 0 3 3 112 75 0 1 1 0 95 6 3943 | 1 0 0 113 0 76 3944 | ELSE[ ] /* Else */ 3945 | MPPEM[ ] /* MeasurePixelPerEm */ 3946 | PUSHB[ ] /* 1 value pushed */ 3947 | 29 3948 | LT[ ] /* LessThan */ 3949 | IF[ ] /* If */ 3950 | NPUSHB[ ] /* 31 values pushed */ 3951 | 7 1 4 0 2 1 4 2 103 0 5 5 3 95 0 3 3 104 75 0 1 1 0 95 6 3952 | 1 0 0 113 0 76 3953 | ELSE[ ] /* Else */ 3954 | NPUSHB[ ] /* 31 values pushed */ 3955 | 7 1 4 0 2 1 4 2 103 0 5 5 3 95 0 3 3 112 75 0 1 1 0 95 6 3956 | 1 0 0 113 0 76 3957 | EIF[ ] /* EndIf */ 3958 | EIF[ ] /* EndIf */ 3959 | EIF[ ] /* EndIf */ 3960 | EIF[ ] /* EndIf */ 3961 | EIF[ ] /* EndIf */ 3962 | EIF[ ] /* EndIf */ 3963 | EIF[ ] /* EndIf */ 3964 | NPUSHB[ ] /* 23 values pushed */ 3965 | 39 38 1 0 48 46 38 55 39 55 27 25 19 17 11 9 0 37 1 37 8 11 20 3966 | CALL[ ] /* CallFunction */ 3967 | 3968 | 3969 | 3970 | 3971 | 3972 | 3973 | 3974 | 3975 | 3976 | 3977 | 3978 | 3979 | 3980 | 3981 | 3982 | 3983 | 3984 | 3985 | 3986 | 3987 | NPUSHB[ ] /* 32 values pushed */ 3988 | 4 3 2 3 0 1 1 74 0 1 1 104 75 2 1 0 0 3 94 0 3 3 105 3 76 3989 | 17 17 20 16 4 11 24 3990 | CALL[ ] /* CallFunction */ 3991 | 3992 | 3993 | 3994 | 3995 | 3996 | 3997 | 3998 | 3999 | 4000 | 4001 | 4002 | 4003 | 4004 | 4005 | 4006 | 4007 | NPUSHB[ ] /* 28 values pushed */ 4008 | 4 1 0 1 1 74 0 0 0 1 93 0 1 1 104 75 0 2 2 105 2 76 18 17 16 4009 | 3 11 23 4010 | CALL[ ] /* CallFunction */ 4011 | 4012 | 4013 | 4014 | 4015 | 4016 | 4017 | 4018 | 4019 | 4020 | 4021 | 4022 | 4023 | 4024 | 4025 | 4026 | 4027 | 4028 | 4029 | 4030 | 4031 | 4032 | 4033 | 4034 | 4035 | 4036 | 4037 | 4038 | 4039 | 4040 | 4041 | 4042 | 4043 | 4044 | 4045 | 4046 | 4047 | 4048 | 4049 | 4050 | 4051 | 4052 | 4053 | 4054 | 4055 | 4056 | 4057 | 4058 | 4059 | 4060 | 4061 | 4062 | 4063 | 4064 | 4065 | 4066 | 4067 | 4068 | 4069 | 4070 | 4071 | 4072 | 4073 | 4074 | 4075 | 4076 | 4077 | 4078 | NPUSHB[ ] /* 68 values pushed */ 4079 | 15 1 2 1 16 1 3 2 22 1 5 3 3 74 0 3 0 5 4 3 5 103 0 2 2 4080 | 1 95 0 1 1 112 75 7 1 4 4 0 95 6 1 0 0 113 0 76 37 36 1 0 46 4081 | 44 36 55 37 55 28 26 21 19 12 10 0 35 1 35 8 11 20 4082 | CALL[ ] /* CallFunction */ 4083 | 4084 | 4085 | 4086 | 4087 | 4088 | 4089 | 4090 | 4091 | 4092 | 4093 | 4094 | 4095 | 4096 | 4097 | 4098 | 4099 | 4100 | 4101 | 4102 | 4103 | 4104 | 4105 | 4106 | 4107 | 4108 | 4109 | 4110 | 4111 | 4112 | 4113 | 4114 | 4115 | 4116 | 4117 | 4118 | 4119 | 4120 | 4121 | 4122 | 4123 | 4124 | 4125 | 4126 | 4127 | 4128 | 4129 | 4130 | 4131 | 4132 | 4133 | 4134 | 4135 | 4136 | 4137 | 4138 | 4139 | 4140 | 4141 | 4142 | 4143 | 4144 | 4145 | 4146 | 4147 | 4148 | 4149 | 4150 | 4151 | 4152 | NPUSHB[ ] /* 71 values pushed */ 4153 | 40 1 4 5 39 1 3 4 53 1 2 3 7 1 1 2 6 1 0 1 5 74 0 3 0 4154 | 2 1 3 2 101 0 4 4 5 95 0 5 5 112 75 0 1 1 0 95 6 1 0 0 113 4155 | 0 76 1 0 45 43 34 32 26 24 23 21 13 11 0 59 1 59 7 11 20 4156 | CALL[ ] /* CallFunction */ 4157 | 4158 | 4159 | 4160 | 4161 | 4162 | 4163 | 4164 | 4165 | 4166 | 4167 | 4168 | 4169 | 4170 | 4171 | 4172 | 4173 | 4174 | 4175 | 4176 | 4177 | 4178 | 4179 | 4180 | 4181 | 4182 | 4183 | 4184 | 4185 | 4186 | 4187 | 4188 | 4189 | 4190 | 4191 | 4192 | 4193 | 4194 | 4195 | 4196 | 4197 | 4198 | 4199 | 4200 | 4201 | 4202 | 4203 | 4204 | 4205 | 4206 | 4207 | 4208 | 4209 | 4210 | 4211 | 4212 | 4213 | NPUSHB[ ] /* 40 values pushed */ 4214 | 21 1 0 1 20 1 2 0 2 74 0 0 0 1 95 0 1 1 112 75 0 2 2 3 93 4215 | 0 3 3 105 3 76 46 45 44 43 41 46 4 11 22 4216 | CALL[ ] /* CallFunction */ 4217 | 4218 | 4219 | 4220 | 4221 | 4222 | 4223 | 4224 | 4225 | 4226 | 4227 | 4228 | 4229 | 4230 | 4231 | 4232 | 4233 | 4234 | 4235 | 4236 | 4237 | 4238 | 4239 | 4240 | 4241 | 4242 | 4243 | 4244 | 4245 | 4246 | 4247 | 4248 | 4249 | 4250 | 4251 | 4252 | 4253 | 4254 | 4255 | 4256 | 4257 | 4258 | 4259 | 4260 | 4261 | 4262 | 4263 | 4264 | 4265 | 4266 | 4267 | 4268 | 4269 | 4270 | 4271 | 4272 | 4273 | 4274 | 4275 | 4276 | 4277 | 4278 | 4279 | 4280 | 4281 | 4282 | NPUSHB[ ] /* 66 values pushed */ 4283 | 0 4 3 5 3 4 5 126 8 1 5 2 3 5 2 124 0 3 3 1 95 0 1 1 112 4284 | 75 7 1 2 2 0 96 6 1 0 0 113 0 76 30 30 15 14 1 0 30 51 30 51 41 4285 | 40 23 21 14 29 15 29 9 7 0 13 1 13 9 11 20 4286 | CALL[ ] /* CallFunction */ 4287 | 4288 | 4289 | 4290 | 4291 | 4292 | 4293 | 4294 | 4295 | Copyright (c) 2018 Source Foundry Authors / Copyright (c) 2003 by Bitstream, Inc. All Rights Reserved. 4296 | 4297 | 4298 | Hack 4299 | 4300 | 4301 | Bold 4302 | 4303 | 4304 | SourceFoundry: Hack Bold: 2018 4305 | 4306 | 4307 | Hack Bold 4308 | 4309 | 4310 | Version 3.003;[3114f1256]-release; ttfautohint (v1.7) -l 6 -r 50 -G 200 -x 10 -H 260 -D latn -f latn -m "Hack-Bold-TA.txt" -w G -W -t -X "" 4311 | 4312 | 4313 | Hack-Bold 4314 | 4315 | 4316 | 4317 | 4318 | 4319 | 4320 | 4321 | 4322 | 4323 | 4324 | 4325 | 4326 | 4327 | 4328 | 4329 | 4330 | 4331 | 4332 | 4333 | 4334 | 4335 | 4336 | 4337 | 4338 | 4339 | 4346 | 4347 | 4348 | 4349 | 4352 | 4353 | 4354 | 4355 | 4356 | 4357 | 4358 | 4359 | 4360 | 4361 | 4362 | 4363 | --------------------------------------------------------------------------------