From d846450023b978321fc04e55bfb2dbe669270811 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=91=A8=E9=9B=84?= <3315571593@qq.com> Date: Thu, 20 Apr 2023 22:08:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=8F=E7=B1=B3=E4=BE=BF=E7=AD=BE=E7=B2=BE?= =?UTF-8?q?=E8=AF=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../周雄/tool包/BackupUtils.docx | Bin 0 -> 16999 bytes .../周雄/tool包/DataUtils.docx | Bin 0 -> 16054 bytes .../周雄/tool包/GTaskStringUtils.docx | Bin 0 -> 11961 bytes .../周雄/tool包/ResourceParser.docx | Bin 0 -> 13935 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/小米便签开源代码的精读报告/周雄/tool包/BackupUtils.docx create mode 100644 doc/小米便签开源代码的精读报告/周雄/tool包/DataUtils.docx create mode 100644 doc/小米便签开源代码的精读报告/周雄/tool包/GTaskStringUtils.docx create mode 100644 doc/小米便签开源代码的精读报告/周雄/tool包/ResourceParser.docx diff --git a/doc/小米便签开源代码的精读报告/周雄/tool包/BackupUtils.docx b/doc/小米便签开源代码的精读报告/周雄/tool包/BackupUtils.docx new file mode 100644 index 0000000000000000000000000000000000000000..62e7afab91bdfa828413661a9c66e1d870bf86f3 GIT binary patch literal 16999 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 N#MH-p^5gvt`ajGRFF61J literal 0 HcmV?d00001 diff --git a/doc/小米便签开源代码的精读报告/周雄/tool包/DataUtils.docx b/doc/小米便签开源代码的精读报告/周雄/tool包/DataUtils.docx new file mode 100644 index 0000000000000000000000000000000000000000..14b5884d047e958640f3bcc3dfea7499919762b6 GIT binary patch literal 16054 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 literal 0 HcmV?d00001 diff --git a/doc/小米便签开源代码的精读报告/周雄/tool包/GTaskStringUtils.docx b/doc/小米便签开源代码的精读报告/周雄/tool包/GTaskStringUtils.docx new file mode 100644 index 0000000000000000000000000000000000000000..4951964870364d77eb322341328beb56ea225235 GIT binary patch literal 11961 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 G|NB48>K5Su literal 0 HcmV?d00001 diff --git a/doc/小米便签开源代码的精读报告/周雄/tool包/ResourceParser.docx b/doc/小米便签开源代码的精读报告/周雄/tool包/ResourceParser.docx new file mode 100644 index 0000000000000000000000000000000000000000..4832119fbb4e2bd0c7cb806070579457c2d99383 GIT binary patch literal 13935 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