diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..cd6ad26
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+*.otf
+*.sfd
+afdko_env/
+*.ttx
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..4816970
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "Adobe-GB1"]
+ path = Adobe-GB1
+ url = https://github.com/adobe-type-tools/Adobe-GB1
diff --git a/Adobe-GB1 b/Adobe-GB1
new file mode 160000
index 0000000..4633182
--- /dev/null
+++ b/Adobe-GB1
@@ -0,0 +1 @@
+Subproject commit 463318291007e231fd9a11d0e70d657455a9a586
diff --git a/CMapLatin.xlsx b/CMapLatin.xlsx
new file mode 100644
index 0000000..99e449f
Binary files /dev/null and b/CMapLatin.xlsx differ
diff --git a/ClearImageFiles.bat b/ClearImageFiles.bat
new file mode 100644
index 0000000..2317f77
--- /dev/null
+++ b/ClearImageFiles.bat
@@ -0,0 +1 @@
+del *.png
diff --git a/Divide.lua b/Divide.lua
new file mode 100644
index 0000000..be74424
--- /dev/null
+++ b/Divide.lua
@@ -0,0 +1,131 @@
+nx=20
+ny=25
+
+require("alien")
+
+alien.user32.SetProcessDPIAware:types{ret="int",abi="stdcall"}
+alien.user32.SetProcessDPIAware()
+
+local strpath
+local noclip=false
+if arg[1]==nil then
+ require("wx")
+ strpath=wx.wxFileSelector("选择文件",".","","png","便携式网络图像文件|*.png|所有文件|*",wx.wxFD_OPEN+wx.wxFD_FILE_MUST_EXIST)
+else
+ strpath=arg[1]
+end
+if strpath==nil or strpath=='' then
+ os.exit()
+end
+
+if arg[2]==nil then
+ noclip=wx.wxMessageBox("是否需要裁切空白?","裁切",wx.wxYES_NO)==wx.wxNO
+else
+ noclip=arg[2]=='noclip'
+end
+
+local _,sppos=strpath:reverse():find('%.')
+local dpn=strpath:sub(1,#strpath-sppos)
+
+require("gd")
+
+function clipToChar(imgTable,x,y,w,h,clipBlankPx)
+ local clipX,clipY,clipW,clipH=x,y,w,h
+ if not noclip then
+ local blankColor=imgTable:colorAllocate(255,255,255)
+ if clipBlankPx~=-1 then
+ --Clip left border
+ for ix=x,x+w-1,1 do
+ local nbFound=false
+ for iy=y,y+h-1,1 do
+ if blankColor~=imgTable:getPixel(ix,iy) then
+ nbFound=true
+ break
+ end
+ end
+ if nbFound then
+ clipX=math.max(x,ix-clipBlankPx)
+ break
+ end
+ if ix==x+w-1 then
+ return 0,0,0,0
+ end
+ end
+ --Clip top border
+ for iy=y,y+h-1,1 do
+ local nbFound=false
+ for ix=x,x+w-1,1 do
+ if blankColor~=imgTable:getPixel(ix,iy) then
+ nbFound=true
+ break
+ end
+ end
+ if nbFound then
+ clipY=math.max(y,iy-clipBlankPx)
+ break
+ end
+ end
+ --Clip right border
+ for ix=x+w-1,x,-1 do
+ local nbFound=false
+ for iy=y,y+h-1,1 do
+ if blankColor~=imgTable:getPixel(ix,iy) then
+ nbFound=true
+ break
+ end
+ end
+ if nbFound then
+ clipW=math.min(x+w-clipX,ix-clipX+clipBlankPx)
+ break
+ end
+ end
+ --Clip bottom border
+ for iy=y+h-1,y,-1 do
+ local nbFound=false
+ for ix=x,x+w-1,1 do
+ if blankColor~=imgTable:getPixel(ix,iy) then
+ nbFound=true
+ break
+ end
+ end
+ if nbFound then
+ clipH=math.min(y+h-clipY,iy-clipY+clipBlankPx)
+ break
+ end
+ end
+ --调整尺寸以符合原图比例w/h
+ local ratio=w/h
+ local clipRatio=clipW/clipH
+ if clipRatio>ratio then--补充高度
+ local newH=h*clipW/w
+ clipY=clipY+(clipH-newH)/2
+ clipH=newH
+ --看补充后是否出界
+ clipY=math.max(clipY,y)
+ clipY=math.min(clipY,y+h-clipH)
+ elseif clipRatio
+
+
+
+3. 绗斿埛浣跨敤閿欒
+瀛楃CID428锝濩ID520锛堜笉鍖呮嫭429銆431锛夊洜閿欒浣跨敤绗斿埛瀵艰嚧鍦‵ontForge涓鍏ヨ繖浜涘瓧绗︽椂涓庡叾浠栧瓧绗︾浉姣斾細鍋忕粏锛岄渶瑕佹墜鍔ㄥ皢绮楃粏澧炲姞10%宸﹀彸鎵嶈兘鑾峰緱杈冨ソ鏁堟灉銆
+
+4. 鍋囧悕鍙兘闇瑕佸鍏ュ悗缂╂斁鑷120%
+鍥犲亣鍚嶉儴鍒嗗瓧绗﹂噸鍐欙紝鐩告瘮鍘熸潵鍙兘瀛楅潰鍋忓皬锛岄渶瑕佽皟澶у瓧绗︺
+
+5. 瀛椾綋鍚嶇О闂
+ttx鏂囦欢涓璶ame鑺傜偣涓媔d涓4鐨勫悕绉伴渶瑕佸姞涓<绌烘牸>+瀛楅噸鍚嶇О銆傞儴鍒嗗叾浠栧悕绉颁害闇娣诲姞鎴栦慨鏀癸紝鍙傝冿細https://zhuanlan.zhihu.com/p/38679788
+Regular鐨刵ame鑺傜偣锛
+
+
+ Copyright (C) 2019-2022, lxfly2000 (lxfly2000@outlook.com)
+
+
+ Acy
+
+
+ Regular
+
+
+ 1.6;UKWN;Acy-Regular;lxfly2000
+
+
+ Acy Regular
+
+
+ Version 1.6;hotconv 1.1.0;makeotfexe 2.6.0
+
+
+ Acy-Regular
+
+
+ Acy-Font
+
+
+ lxfly2000
+
+
+ lxfly2000
+
+
+ https://github.com/lxfly2000
+
+
+ https://github.com/lxfly2000
+
+
+ SIL Open Font License, Version 1.1
+
+
+ https://github.com/lxfly2000/Acy-Font/blob/master/LICENSE.TXT
+
+
+ Acy
+
+
+ Regular
+
+
+ 1.6;UKWN;Acy-Regular;lxfly2000
+
+
+ Acy Regular
+
+
+ Version 1.6;hotconv 1.1.0;makeotfexe 2.6.0
+
+
+ Acy-Regular
+
+
+Medium鐨刵ame鑺傜偣锛
+
+
+ Copyright (C) 2019-2022, lxfly2000 (lxfly2000@outlook.com)
+
+
+ Acy Medium
+
+
+ Regular
+
+
+ 1.6;UKWN;Acy-Medium;lxfly2000
+
+
+ Acy Medium
+
+
+ Version 1.6;hotconv 1.1.0;makeotfexe 2.6.0
+
+
+ Acy-Medium
+
+
+ Acy-Font
+
+
+ lxfly2000
+
+
+ lxfly2000
+
+
+ https://github.com/lxfly2000
+
+
+ https://github.com/lxfly2000
+
+
+ SIL Open Font License, Version 1.1
+
+
+ https://github.com/lxfly2000/Acy-Font/blob/master/LICENSE.TXT
+
+
+ Acy
+
+
+ Medium
+
+
+ Acy Medium
+
+
+ Regular
+
+
+ 1.6;UKWN;Acy-Medium;lxfly2000
+
+
+ Acy Medium
+
+
+ Version 1.6;hotconv 1.1.0;makeotfexe 2.6.0
+
+
+ Acy-Medium
+
+
+ Acy
+
+
+ Medium
+
+
+Bold鐨刵ame鑺傜偣锛
+
+
+ Copyright (C) 2019-2022, lxfly2000 (lxfly2000@outlook.com)
+
+
+ Acy Bold
+
+
+ Regular
+
+
+ 1.6;UKWN;Acy-Bold;lxfly2000
+
+
+ Acy Bold
+
+
+ Version 1.6;hotconv 1.1.0;makeotfexe 2.6.0
+
+
+ Acy-Bold
+
+
+ Acy-Font
+
+
+ lxfly2000
+
+
+ lxfly2000
+
+
+ https://github.com/lxfly2000
+
+
+ https://github.com/lxfly2000
+
+
+ SIL Open Font License, Version 1.1
+
+
+ https://github.com/lxfly2000/Acy-Font/blob/master/LICENSE.TXT
+
+
+ Acy
+
+
+ Bold
+
+
+ Acy Bold
+
+
+ Regular
+
+
+ 1.6;UKWN;Acy-Bold;lxfly2000
+
+
+ Acy Bold
+
+
+ Version 1.6;hotconv 1.1.0;makeotfexe 2.6.0
+
+
+ Acy-Bold
+
+
+ Acy
+
+
+ Bold
+
+
+
+6. 鈥滆景鈥濆瓧(CID1250)杈圭晫鏈夐棶棰橀犳垚澶у皬閿欒銆
+
+7. 鍔犲叆鎷変竵瀛楃鍚庯紝闇瑕佷慨鏀笴MAP琛
+鍦ㄦ渶鍚庝竴涓猚map鑺傜偣涓姞鍏MapLatin.xlsx涓殑XML鍐呭銆
diff --git a/bugs/bug1.docx b/bugs/bug1.docx
new file mode 100644
index 0000000..1363c06
Binary files /dev/null and b/bugs/bug1.docx differ
diff --git a/build-bold.bat b/build-bold.bat
new file mode 100644
index 0000000..d41427a
--- /dev/null
+++ b/build-bold.bat
@@ -0,0 +1,13 @@
+if not exist afdko_env (
+ py -m venv afdko_env
+ call afdko_env\Scripts\activate.bat
+ py -m pip install afdko
+) else (
+ call afdko_env\Scripts\activate.bat
+)
+if exist Bold\Acy-Bold.otf del Bold\Acy-Bold.otf
+if not exist Bold md Bold
+makeotf -f Acy-Bold.otf -ff Adobe-GB1\GSUB\ag15-gsub.fea -fi fontinfo-bold.txt -r -nS -o Bold\Acy-Bold.otf
+ttx -f Bold\Acy-Bold.otf
+notepad Bold\Acy-Bold.ttx
+ttx -f Bold\Acy-Bold.ttx
diff --git a/build-medium.bat b/build-medium.bat
new file mode 100644
index 0000000..34e1324
--- /dev/null
+++ b/build-medium.bat
@@ -0,0 +1,13 @@
+if not exist afdko_env (
+ py -m venv afdko_env
+ call afdko_env\Scripts\activate.bat
+ py -m pip install afdko
+) else (
+ call afdko_env\Scripts\activate.bat
+)
+if exist Medium\Acy-Medium.otf del Medium\Acy-Medium.otf
+if not exist Medium md Medium
+makeotf -f Acy-Medium.otf -ff Adobe-GB1\GSUB\ag15-gsub.fea -fi fontinfo-medium.txt -r -nS -o Medium\Acy-Medium.otf
+ttx -f Medium\Acy-Medium.otf
+notepad Medium\Acy-Medium.ttx
+ttx -f Medium\Acy-Medium.ttx
diff --git a/build.bat b/build.bat
new file mode 100644
index 0000000..8c24204
--- /dev/null
+++ b/build.bat
@@ -0,0 +1,13 @@
+if not exist afdko_env (
+ py -m venv afdko_env
+ call afdko_env\Scripts\activate.bat
+ py -m pip install afdko
+) else (
+ call afdko_env\Scripts\activate.bat
+)
+if exist Regular\Acy-Regular.otf del Regular\Acy-Regular.otf
+if not exist Regular md Regular
+makeotf -f Acy-Regular.otf -ff Adobe-GB1\GSUB\ag15-gsub.fea -fi fontinfo.txt -r -nS -o Regular\Acy-Regular.otf
+ttx -f Regular\Acy-Regular.otf
+notepad Regular\Acy-Regular.ttx
+ttx -f Regular\Acy-Regular.ttx
diff --git a/duplook.py b/duplook.py
new file mode 100644
index 0000000..bb4f290
--- /dev/null
+++ b/duplook.py
@@ -0,0 +1,33 @@
+锘#python 3.9.2
+#encoding=utf-8
+
+import sys
+
+if len(sys.argv)==1:
+ print("This tool is for finding duplicated encodings.\nduplook.py ")
+else:
+ f=open(sys.argv[1])
+ unicode_count=[0]*65536
+ dup_count=0
+ while True:
+ line=f.readline()
+ if line=="":
+ break
+ if line[:9]=="Encoding:":
+ sp=line.split()
+ try:
+ cid1=int(sp[1])
+ unicode=int(sp[2])
+ if unicode==-1:
+ continue
+ elif unicode>=65536:
+ print("Skip char: ["+chr(unicode)+"] "+hex(unicode))
+ continue
+ cid2=int(sp[3])
+ unicode_count[unicode]=unicode_count[unicode]+1
+ if unicode_count[unicode]>1:
+ print("Duplicated char: ["+chr(unicode)+"] "+hex(unicode))
+ dup_count=dup_count+1
+ except ValueError:
+ continue
+ print("Total duplication: "+str(dup_count))
diff --git a/fontinfo-bold.txt b/fontinfo-bold.txt
new file mode 100644
index 0000000..7bcf4f2
--- /dev/null
+++ b/fontinfo-bold.txt
@@ -0,0 +1,20 @@
+FontName (Acy-Bold)
+FullName (Acy Bold)
+FamilyName (Acy)
+Weight (Bold)
+Copyright (Copyright (c) 2019-2022, lxfly2000 (lxfly2000@outlook.com))
+Version (1.001)
+Registry (Adobe)
+Ordering (GB1)
+Supplement 4
+FSType 0
+isFixedPitch false
+UnderlinePosition -100
+Serif false
+IsBoldStyle true
+IsItalicStyle false
+PreferOS/2TypoMetrics true
+IsOS/2WidthWeigthSlopeOnly false
+IsOS/2OBLIQUE false
+UseOldNameID4 false
+LicenseCode lxfly2000
\ No newline at end of file
diff --git a/fontinfo-medium.txt b/fontinfo-medium.txt
new file mode 100644
index 0000000..1c8a2fe
--- /dev/null
+++ b/fontinfo-medium.txt
@@ -0,0 +1,20 @@
+FontName (Acy-Medium)
+FullName (Acy Medium)
+FamilyName (Acy)
+Weight (Medium)
+Copyright (Copyright (c) 2019-2022, lxfly2000 (lxfly2000@outlook.com))
+Version (1.001)
+Registry (Adobe)
+Ordering (GB1)
+Supplement 4
+FSType 0
+isFixedPitch false
+UnderlinePosition -100
+Serif false
+IsBoldStyle false
+IsItalicStyle false
+PreferOS/2TypoMetrics true
+IsOS/2WidthWeigthSlopeOnly false
+IsOS/2OBLIQUE false
+UseOldNameID4 false
+LicenseCode lxfly2000
\ No newline at end of file
diff --git a/fontinfo.txt b/fontinfo.txt
new file mode 100644
index 0000000..8eadff1
--- /dev/null
+++ b/fontinfo.txt
@@ -0,0 +1,20 @@
+FontName (Acy-Regular)
+FullName (Acy Regular)
+FamilyName (Acy)
+Weight (Regular)
+Copyright (Copyright (c) 2019-2022, lxfly2000 (lxfly2000@outlook.com))
+Version (1.001)
+Registry (Adobe)
+Ordering (GB1)
+Supplement 4
+FSType 0
+isFixedPitch false
+UnderlinePosition -100
+Serif false
+IsBoldStyle false
+IsItalicStyle false
+PreferOS/2TypoMetrics true
+IsOS/2WidthWeigthSlopeOnly false
+IsOS/2OBLIQUE false
+UseOldNameID4 false
+LicenseCode lxfly2000
\ No newline at end of file
diff --git a/install.chm b/install.chm
new file mode 100644
index 0000000..a4f8240
Binary files /dev/null and b/install.chm differ