From a99209172ba7b8d1838ef460fa5cd82ed13397bb Mon Sep 17 00:00:00 2001 From: williamfzc <178894043@qq.com> Date: Sun, 5 Jan 2020 14:25:53 +0800 Subject: [PATCH 01/90] fix some typos --- BasicObject/list/list_cn.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/BasicObject/list/list_cn.md b/BasicObject/list/list_cn.md index a019236..4abe700 100644 --- a/BasicObject/list/list_cn.md +++ b/BasicObject/list/list_cn.md @@ -105,7 +105,7 @@ ## timsort -CPyton 用来对 `list` 对象排序的算法名称叫做 **timsort**, 它有一点复杂 +CPython 用来对 `list` 对象排序的算法名称叫做 **timsort**, 它有一点复杂 >>> l = [5, 9, 17, 11, 10, 14, 2, 8, 12, 19, 4, 13, 3, 0, 16, 1, 6, 15, 18, 7] >>> l.sort() @@ -120,7 +120,7 @@ CPyton 用来对 `list` 对象排序的算法名称叫做 **timsort**, 它有一 ![sort_begin1](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/sort_begin1.png) -假设 `minrun` 为 5, 我们后面会解释 `minrun` 是什么并且是怎么计算的, 现在我们先忽略一部分细节, 跑一边算法看看 +假设 `minrun` 为 5, 我们后面会解释 `minrun` 是什么并且是怎么计算的, 现在我们先忽略一部分细节, 跑一遍算法看看 ![sort_begin2](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/sort_begin2.png) @@ -136,7 +136,7 @@ CPyton 用来对 `list` 对象排序的算法名称叫做 **timsort**, 它有一 第二组内的元素被 [binary_sort](#binary_sort) 排好序了, 并且 `pending` 的下一个空闲的位置存储了第二组相关的信息 -我们从上图可以发现, `pending` 在这里的作用和调用栈的 stack 类似, 每次给下一组拍完序之后, 这组相关的信息就会被压入这个栈中, 每次压入后, 一个名为 `merge_collapse` 的函数都会被调用 +我们从上图可以发现, `pending` 在这里的作用和调用栈的 stack 类似, 每次给下一组排完序之后, 这组相关的信息就会被压入这个栈中, 每次压入后, 一个名为 `merge_collapse` 的函数都会被调用 /* cpython/Objects/listobject.c */ /* 检查 stack 中的每一个 run, 在必要的时候合并相邻的 run 直到以下的条件都满足为止 @@ -347,4 +347,4 @@ CPyton 用来对 `list` 对象排序的算法名称叫做 **timsort**, 它有一 * 减小内存碎片 # read more -* [Timsort——自适应、稳定、高效排序算法](https://blog.csdn.net/sinat_35678407/article/details/82974174) \ No newline at end of file +* [Timsort——自适应、稳定、高效排序算法](https://blog.csdn.net/sinat_35678407/article/details/82974174) From 8ed12a3727fdfce37319ce3a2ae9f67142084243 Mon Sep 17 00:00:00 2001 From: NANOUU <59022292+antoniasymeonidou@users.noreply.github.com> Date: Thu, 9 Jan 2020 20:04:46 +0200 Subject: [PATCH 02/90] logo --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 2f80cc9..5f82de9 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Cpython Internals +![cpython logo](https://docs.google.com/drawings/d/e/2PACX-1vQKKPvv9xI22zZcRtElIMx_-G22qYcLUvl-gbngubjf76dr80ZjsYQZCCKVqEvJnmBnwZyDXqG9GPlu/pub?w=300&h=200) + * [简体中文](https://github.com/zpoint/CPython-Internals/blob/master/README_CN.md) * [한국어](https://github.com/zpoint/CPython-Internals/blob/master/README_KR.md) * **Watch** this repo if you need to be notified when there's update @@ -91,4 +93,4 @@ I will only recommend what I've read * [rushter(blog/eng)](https://rushter.com/) * [YET ANOTHER PYTHON INTERNALS BLOG(blog/eng)](https://pythoninternal.wordpress.com/) * [Junnplus(blog/cn)](https://github.com/Junnplus/blog/issues) -* [manjusaka(blog/cn)](https://manjusaka.itscoder.com/) \ No newline at end of file +* [manjusaka(blog/cn)](https://manjusaka.itscoder.com/) From 5671ce2775e56fc021a8077174887622a43eb4c2 Mon Sep 17 00:00:00 2001 From: zpoint Date: Tue, 9 Jun 2020 18:37:34 +0800 Subject: [PATCH 03/90] better comment --- BasicObject/list/list_cn.md | 4 ++-- BasicObject/type/type_cn.md | 2 +- Interpreter/gil/gil_cn.md | 15 +++++++++------ 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/BasicObject/list/list_cn.md b/BasicObject/list/list_cn.md index f0b9d66..1cae3b4 100644 --- a/BasicObject/list/list_cn.md +++ b/BasicObject/list/list_cn.md @@ -294,7 +294,7 @@ merge_collapse(MergeState *ms) ``` -之后我们把 `l` 到 `start` 的每一个元素都往前移一格, 移完后把 `start` 这个位置的元素值设置为 `pivot` 的值 +之后我们把 `l` 到 `start` 的每一个元素都往后移一格, 移完后把 `start` 这个位置的元素值设置为 `pivot` 的值 ![binary_sort2](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/binary_sort2.png) @@ -310,7 +310,7 @@ merge_collapse(MergeState *ms) ![binary_sort5](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/binary_sort5.png) -搜索结果为下标为 2, 在把 `l` 到 `start` 的每个值前移一格后 +搜索结果为下标为 2, 在把 `l` 到 `start` 的每个值后移一格后 ![binary_sort6](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/binary_sort6.png) diff --git a/BasicObject/type/type_cn.md b/BasicObject/type/type_cn.md index 85fbda1..0428527 100644 --- a/BasicObject/type/type_cn.md +++ b/BasicObject/type/type_cn.md @@ -100,7 +100,7 @@ D + merge(L(A), L(B), AB) D + merge(A, B, AB) # A 是下一个 list 的头部, 并且不在任何其他 list 的尾部中, 取出 A, 并把 A 从其他的所有的 list 中移除 D + A + merge(B, B) -# list 中的第一个元素是头部元素e而不是尾部元素, 所以 B 符合要求 +# list 中的第一个元素应该当成头部元素而不是尾部元素, 所以 B 符合要求 D + A + B ``` diff --git a/Interpreter/gil/gil_cn.md b/Interpreter/gil/gil_cn.md index 151770c..6f93704 100644 --- a/Interpreter/gil/gil_cn.md +++ b/Interpreter/gil/gil_cn.md @@ -45,7 +45,7 @@ 因为 **tick** 并不是以时间为基准计数, 而是以 opcode 个数为基准的计数, 有一些 opcode 代码复杂耗时长, 一些耗时短, 进而导致同样的 100 个 **tick**, 一些线程的执行时间总是执行的比另一些线程长 -在多核机器上, 如果两个线程都在执行 CPU 密集型的任务, 操作系统有可能让这两个线程在不同的核心上运行, 也许会出现以下的情况, 当一个拥有了 **gil** 的线程在一个核心上执行 100 次 **tick** 的过程中, 在另一个核心上运行的线程频繁的进行抢占 **gil**, 抢占失败的循环, 导致 CPU 瞎忙影响性能 +在多核机器上, 如果两个线程都在执行 CPU 密集型的任务, 操作系统有可能让这两个线程在不同的核心上运行, 也许会出现以下的情况, 当一个拥有了 **gil** 的线程在一个核心上执行 100 次 **tick** 的过程中, 在另一个核心上运行的线程频繁的进行抢占 **gil**, 抢占失败的循环, 导致 CPU 空转影响性能 当前的实现完全的把任务(线程)调度交给了操作系统, 哪个线程会抢到锁被唤醒, 哪个线程抢不到锁被阻塞, 程序员是无法控制的, 这也就导致了以下情况发生的概率, 想象一下一个处理 IO 密集型的线程已经收到了 IO 的信号, 但是需要等待另一个线程释放 **gil** 才能去处理, 在等待的过程中, 另一个线程执行满了 **tick** 次数, 释放了 **gil**, 但是之后自己又抢到了自己释放的 **gil**, 导致前面的 IO 密集型的线程又需要至少多等待 100 个 **tick** 才能处理已经接收到的信号, 有可能在信号丢失前都无法及时处理(实际上, 自己主动触发操作系统进行任务调度的线程会比被操作系统强制触发任务调度的线程在执行队列里有更高的优先级, 程序员可以让 IO 密集型任务尽快的进入等待状态, 主动触发任务调度, 提高这个线程的优先级)(详情参考操作系统相关资料) @@ -159,15 +159,18 @@ static void take_gil(PyThreadState *tstate) unsigned long saved_switchnum; saved_switchnum = _PyRuntime.ceval.gil.switch_number; - /* 释放 gil.mutex, 并待 INTERVAL 微秒(默认 5000) 或者等待过程中收到 gil.cond 的信号 */ + /* 释放 gil.mutex, 并在以下两种条件下唤醒 + 1. 等待 INTERVAL 微秒(默认 5000) + 2. 还没有等待到 5000 微秒但是收到了 gil.cond 的信号 + */ COND_TIMED_WAIT(_PyRuntime.ceval.gil.cond, _PyRuntime.ceval.gil.mutex, INTERVAL, timed_out); /* 当前持有 gil.mutex 这把互斥锁 */ if (timed_out && _Py_atomic_load_relaxed(&_PyRuntime.ceval.gil.locked) && _PyRuntime.ceval.gil.switch_number == saved_switchnum) { - /* 如果超过了等待时间, 并且这段等待时间里没有进行 gil 的换手, 则让当前持有 gil 的线程进行释放 - 把 gil_drop_request 值设为 1 */ + /* 如果超过了等待时间, 并且这段等待时间里 gil 的持有者没有变更过, 则尝试让当前持有 gil 的线程进行释放gil + 把 gil_drop_request 值设为 1, 持有锁的线程看到这个值的时候, 会尝试放弃 gil */ SET_GIL_DROP_REQUEST(); } /* 继续回到 while 循环, 检查 gil 是否为锁住状态 */ @@ -187,7 +190,7 @@ static void take_gil(PyThreadState *tstate) ## switch_cond and switch_mutex -**switch_cond** 是另一个 condition variable, 和 **switch_mutex** 结合起来可以用来保证释放后重新获得 **gil** 的线程不是同一个前面释放 **gil** 的线程, 避免 **gil** 换手但是线程未切换浪费 cpu 时间 +**switch_cond** 是另一个 condition variable, 和 **switch_mutex** 结合起来可以用来保证释放后重新获得 **gil** 的线程不是同一个前面释放 **gil** 的线程, 避免 **gil** 切换时线程未切换浪费 cpu 时间 这个功能如果编译时未定义 `FORCE_SWITCHING` 则不开启 @@ -276,7 +279,7 @@ main_loop: } fast_next_opcode: - /* 忽略 */ + /* 忽略 */ switch (opcode) { case TARGET(NOP): { FAST_DISPATCH(); From ff1f6b02b2d5d6c87a2b9a7d79634a501d879441 Mon Sep 17 00:00:00 2001 From: zpoint Date: Sat, 13 Jun 2020 08:54:36 +0800 Subject: [PATCH 04/90] fix gc finalizer --- Interpreter/gc/gc.md | 2 +- Interpreter/gc/gc_cn.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Interpreter/gc/gc.md b/Interpreter/gc/gc.md index 7c4bcfb..cada842 100644 --- a/Interpreter/gc/gc.md +++ b/Interpreter/gc/gc.md @@ -402,7 +402,7 @@ all objects survive this round of garbage collections will be moved to the elder what if the object needed to be garbage collected has defined it's own finalizer ? -before python3.4, those objects won't be collected even if they are moved to **unreachable** +before python3.4, those objects won't be collected, they will be moved to `gc.garbage` and you need to call `__del__` and collect them manually after python3.4, [pep-0442](https://legacy.python.org/dev/peps/pep-0442/) solves the problem diff --git a/Interpreter/gc/gc_cn.md b/Interpreter/gc/gc_cn.md index ff3dba8..ce12daf 100644 --- a/Interpreter/gc/gc_cn.md +++ b/Interpreter/gc/gc_cn.md @@ -410,7 +410,7 @@ CPython 总共使用了 3 代, 新创建的对象都会被存储到第一代中( 如果一个需要被垃圾回收的对象定义了自己的 `__del__` 怎么办呢? 毕竟有可能在 `__del__` 中增加了新的引用 -在 python3.4 之前, 这部分对象即使被移动到了 **unreachable**, 也是不会被释放回 heap 空间中的 +在 python3.4 之前, 这部分对象会被移动到 `gc.garbage` 中, 你需要手动调用他们的 `__del__` 方法并且对他们进行回收 在 python3.4 后, [pep-0442](https://legacy.python.org/dev/peps/pep-0442/) 解决了这个问题 From d5658f430dfffac5e7a5827a6905ceff71079dc8 Mon Sep 17 00:00:00 2001 From: zpoint Date: Sat, 13 Jun 2020 21:43:44 +0800 Subject: [PATCH 05/90] pyobject fix --- Interpreter/pyobject/pyobject_cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Interpreter/pyobject/pyobject_cn.md b/Interpreter/pyobject/pyobject_cn.md index c2c162e..9ccaedb 100644 --- a/Interpreter/pyobject/pyobject_cn.md +++ b/Interpreter/pyobject/pyobject_cn.md @@ -35,7 +35,7 @@ python 解释器不仅仅是一个解释器, 它包括很多个部分 -当你通过 `.py` 文件来执行一个 python 程序时, 编译的部分会把你写的源代码转换为一种叫做 python 字节码的形式, 这个时候会生成 `pyc` 文件, 生成的字节码还有参数等信息会存储在这个 `pyc` 中, 解释器会读取这个文件, 开始 main loop 循环, 一个字节码一个字节码的读取, 并执行 +当你通过 `.py` 文件来执行一个 python 程序时, 编译的部分会把你写的源代码转换为一种叫做 python 字节码的形式, import 目录下的文件中的字节码会被缓存在 `pyc` 文件中, 解释器会开始 main loop 循环, 一个字节码一个字节码的读取, 并执行 这个 `pyc` 文件并不会提高你的程序运行速度, 它只会提高你程序的加载速度, 你只要没有修改过源代码文件, 则下次启动可以跳过生成 `pyc` 的部分, 仅此而已 From ce8493180b0a820d819f041336ed15c2fa4afd20 Mon Sep 17 00:00:00 2001 From: zpoint Date: Mon, 22 Jun 2020 22:21:59 +0800 Subject: [PATCH 06/90] dict_cn update --- BasicObject/dict/5_5.png | Bin 106277 -> 0 bytes BasicObject/dict/PyDictObject.png | Bin 0 -> 69291 bytes BasicObject/dict/after_py36.png | Bin 0 -> 18853 bytes BasicObject/dict/after_py36_search.png | Bin 0 -> 25396 bytes BasicObject/dict/after_py36_space.png | Bin 0 -> 57527 bytes BasicObject/dict/before_py36.png | Bin 0 -> 23268 bytes BasicObject/dict/dict.md | 21 ++- BasicObject/dict/dict_cn.md | 228 ++++++++++++++----------- BasicObject/dict/dict_prob.png | Bin 0 -> 33436 bytes BasicObject/dict/dict_shares.png | Bin 297863 -> 0 bytes BasicObject/dict/free_list0.png | Bin 0 -> 10280 bytes BasicObject/dict/free_list1.png | Bin 0 -> 23664 bytes BasicObject/dict/free_list2.png | Bin 0 -> 20136 bytes BasicObject/dict/free_list3.png | Bin 0 -> 21416 bytes BasicObject/dict/hh_1.png | Bin 92450 -> 29742 bytes BasicObject/dict/hh_2.png | Bin 97020 -> 30796 bytes BasicObject/dict/hh_3.png | Bin 98345 -> 31217 bytes BasicObject/dict/hh_4.png | Bin 97020 -> 31981 bytes BasicObject/dict/hh_5.png | Bin 98684 -> 31299 bytes BasicObject/dict/hh_6.png | Bin 108566 -> 35336 bytes BasicObject/dict/indices.png | Bin 0 -> 32127 bytes BasicObject/dict/resize.png | Bin 106436 -> 30855 bytes 22 files changed, 148 insertions(+), 101 deletions(-) delete mode 100644 BasicObject/dict/5_5.png create mode 100644 BasicObject/dict/PyDictObject.png create mode 100644 BasicObject/dict/after_py36.png create mode 100644 BasicObject/dict/after_py36_search.png create mode 100644 BasicObject/dict/after_py36_space.png create mode 100644 BasicObject/dict/before_py36.png create mode 100644 BasicObject/dict/dict_prob.png delete mode 100644 BasicObject/dict/dict_shares.png create mode 100644 BasicObject/dict/free_list0.png create mode 100644 BasicObject/dict/free_list1.png create mode 100644 BasicObject/dict/free_list2.png create mode 100644 BasicObject/dict/free_list3.png create mode 100644 BasicObject/dict/indices.png diff --git a/BasicObject/dict/5_5.png b/BasicObject/dict/5_5.png deleted file mode 100644 index 4fb00c9808b9656c58cf0d51b4683a84fcab3b31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 106277 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�*|oSme9QbXkUZa!?IBGS@i2d%D$z5}6i}c#UK7*G`*y6c6OSkm_w`-!1(&K^dO`J(TuO&r7cFw?E@4(HU z@dB=n+79!VQ*75$sQmiwoRP=B5%rrQp_*o$+(Wn}R`}ZAm zA2$;#G=*e*2R6*IucCh?-VWot1@Iyk0%45zlbn$%d!Jx7X8H_=e-I%joUdjeT*|?@ z^A(wt;*jco$8JWBC1;Ly9mV*25XlsNaq@4`4F@JX^cby;w0q@ffq~GBfGf;MnxYw( zyEC~!9X>x&U5aswG%kH{&9#`jT21ZuY<77obhGf54yP^2%5~4KwC5F z+f6zs2lIM8XOs4lt&A4^HEXcIJIw4??-gPwoeeBlEIhV;e)@ofMTTfyp?Q@pPExAl zTw0&Gd7!=%O-49Q^H!EBychL&NQZ0iC2PnQ8j%qJ*eS<)Y1a-Ve?4-#38VuH15f5S z-=y?n`^3i`N-`ZvUM2RAZm@5#wSV>7!CbQloKLq~t}SZNPv$oIwNKX4s%k0Y%3waL zeo^*|B#5r730t8Di@*VcIQ=sZgnk6@SJg8gM2UaSh<9ms*2rcRX;A$!euq?VvgYYB5TFJ%afepJW#Ta1{j$@3__*bG zU1TPh)c)9r_c=GEnkRYY{LmmY5(-zp=0_Z_^&{J(E%A^N>Y~8AWrH%gDrZ$_zc(ws zPVrbsat*BUf)8+hI&VoGW4XC(IQ~{OKlF?FN7j#9a~7bzd3`77u~G8DA0 zP$UyiP4NEi#`cC1Uc;U7SVv}nBST{Z(;51PdVB>QitXSz{+0KU8L8ssh_=g*QT@x% z6WGwq2pcBdFB6^UP*-cfJxZ(hjZZ9`Dwei<+nRKaJ8KOR>p#i6GPE-)8yWZ7%TxGb zdhf!E^anNclAa${xKmQivXATA_6{Wq*C9Sm<)f*n3aDmyRy7P=E;=WrqchJC$~J9` z>(Zc~;YMJ*)Z5hkxrpzwq2Gx=b`~_@o6PVvW_@;Y_(rhS{hUWBU@r29dOv|ir30Uf z{@Ka3_7tt;q!x|Q9?%$^)^{{=L^*_iygL50sa>sEsmpkAC!2@f<{Mkz7jnDKn~pHE z=2QFvHcdVo3z}SkSVr0RV;}76)t{IgiJeN2asAXzrVEUs@u}L^>MU4<;!}%xQpb0_ zeH(-4C2`qVU$z{v(LT{1Twmz7Q#StjToiTUmy{snOndnhR7#Iui8X4ph1`si-sc(j zy{KC;bdT3x7o+uA&>wI9GEpFrj3$CJ@WZocuzgG3AuD5OGsQUw`Q-Coi!+90Z_+<# zpXYeE`&sKpUX#G$7=sNX2&%-o@on)=%!@UgT$2#c*w*sT&X&~=YS_#?gZq&kH~yns zV?@ne@WbFJFA8NHP;&-?a$5F_<)ZQ3VA%gfiNn`t=Rt2)*f=_Kh1P2W;15=%?;ozDgSI)g-xZNK!p5ygPw1T_TnvB0lkRFHxlWB|L<~_MS55+^+N_^~K~T*Yk%s2A zdkLTn-pV$puUmTns@wA$qZxvVXeZ}v6m?b;KCZjrxET~>lA5ubSo?q)BP7XtRL$-m z>{o_pk~tfmN64coy70TsZ3uO?yt+KmB1KVEl&C}zE*N4*NK6>D^+gXbq_WA*vmf5J zr)auMJ;0#C{9enV9B5HOpPc>QX=`Rh^BWpt+QT$0uCLuESXoyo=%oKH8Gy% zxcUdV_~0TC+*bG28k+6%_*d&^VrKAGSrlpR-VuG*WSX|>{>mn2^R`;_(nxiT=qbk3 zcl_?P5hiZCZteqGPu3bUkFFlE7^+PCh-xzE={NPSn9aR2#_iubbb>1?%OG3K?(RWn zzqa(i$^0}$Vb^oA=lg?Le$+%xy6)#2WJD+)CdulbJ^PI@ z87+3@cbzdR0oV>_ALkHNPFgY85HDI}JW9pmbg2O}ni6=F!3k?mn^l!O`lP-geRHq8pjt@lq?FUduNOHyIyF zHv8HmdJqt1qRnD#Y%=|}Ovzk3dOBM6ZFI5`&7rQ6s?K)RQ(;k`?K_jzn4`LL^>&qe zag`i)GoyS3A0}*<_!F5P_ z9_<8@68)o87R`Xt)T`Xqv0YrQ0rv;A%Qjc9kXaanp^Gf~xn178Vwt{=oE>>7ofMNZz_Wv&uTK`dVb{Sgj@* zmYmI4dQU@sK64^WTglbz-O{F>fNH2(3|4+x23B%@n(4cN_$v{kMQYqm^ydhForb9v z0b!VPsG#1#X^`V^nwPH62pxU>27?<3=9~Q}6=s~L>CpE0=C+YzzzI-KtA<=i`Lk@T z%opv)Nt#yXuJU_3U#FgTt+u4(v)xSuAvsLEaL#l4gWA13rNgDlWS3_TlfEbWSkcAV zza=0FHxIk}kZ1NofS!_KLVoWIQu>nAnTyQ&bnK)v6N_sU4$ zj~f;4gku_p9c2MB)^P3t{$fr?6-&scpR8imMw_o4tM6$v>} zpQazf9XBFOb5jo9vC^jqgtPe3c;mvS&95;~)p(H$8a86@)xmTuDoO15(0gyP2!Rx= zFd3J!H0`q_vU9r{%re#0)m@14?;9_1jHEYr={@yc)scm{uYt4D&a;)7b1sgM1A4hf zNIs#vX9hy;hFQ$j&$^77^GNsTsRJNC$11zTzeDyGvh(&pL2p#2K(W#+elVZCs&Pfgqo!*PE<sT;#n9-v*i%lOaaha`{oVlb+Z}9Af*RRrSg)6W|Z_tgi zM0`WhKbj1dj7G@eWo7%{PYFHLeZ>9~MgPM7+vC=hr4Ek1D>x1=cFyio;eG zi7KG?i%9*2)}ng8G&8)<3V#75ayHOC>=tg#p)^T@HS=}No*IJSK9;~2C9HvBV0GBZ zc7tr22y?v%8^O|74&DSf%qDPE)9Ie8OmRt1ud-CPP|7RU_L=qB27{ob&dI5co*uSR z>LHMNTE54?Er}h^F>B+Kq6g+;&)0_@0;(GT;4YjO1f$5Xc}Y%A$H~6+ngK-ineUmE zZ`VhfZHq2uR;O?o$k{wM_>#-LDpROq0_a1f^GVi0P={Yg8F0pXi~62_ufQi6achlu zHtJI1d?r2*_xH6f=*JkIXu@0qs1JPr4=__-X_pH^ewxHo0ZR_?ib1VQsWQH)fSu-E zVR%74Z&+hKW0IwmD2KA<=+G&34|9it7&$0~pzE+$9HhtHif2-NUrsd3+@shbS7Ssq zpa+`EWFu;+_jBW4$FXK{W~P5CiI!Ze8c5wqH@)=hZKdf3M2J#sy<~A{4`na`Nmm)Z z!r(4bF0oRMT&dUIqK&5olDhcH(m`3vo3qsN8>BI)PM}3qz2C!7`YTl^mh!B09(#YX zf=IiH^vFw8mW3Wp*h?Cm&$=p!vUwPy6*c_9brS!o#5|H0LtLfXxQua6e)x0!+yjhp zG{m4p^f#^oM7#L7tiuJQXc~$buz~jbbcexV(ICB4H3IwmY!O&B;sTN~Z}JvxuWM zofb{a#}Tls$%DN21wQL|Z__i_=4D*!+&1YFNjx=mAN#rIuiAL5k-2`8=@IFnIc(vs zGXyk8!Fq#RzR2;o@^zKLRy^Cev>1n>p&^X*YuD+_^ge!G&o}3VkNslrN!-Q0;*yZ` zkTN<$s_ym*@I_bOkc zd&0)5rbK)Le5M9lFI34;{TvR`v}qMO?PpRmE^6J zEm-Z)Ua9d`+4p?g#hIVXCo#$_Zq0Gs9a%%YsqNR$ z2|H7xDXW+D>_BYhDYVAeCu$PIKP@>odknrysl7qGpfZ@j?9R<^%59*}J20!2M3Ta* z0I^0~o9S=d`bfy8H~6)ff^1u8tSUV^2BTPX$~s4>lg6&ixeL#5_kUPVeV=8WuS~iy zbOfW2Q?5&Wx1{X?EnGX8$JT9`X6zu=r({Z{u7AVnE{{Xn7yeMzDILordMDk_fgz8r zST`beb*#ymxeRpo>^_If9;6+TeNq5Ed@s?Vu?s{mik1 z+&N+ll9p^ex2ng!hF5ryWRu)A&x;9N2jt4|jNR^6{n7^-_%qsa3l~eZ%yT)gPW#fl zp*Y{)b$Jd?Q?EFKj-c;0R`M*$P2!g;kQe9l3k}ms-!cuT!3yre9`nhL2WAX=H9OhH zlhCe?b<$1pZq`;MiOvXrKF^co@!Gr+=klI7^KxD;AJ%DXVx^wrNT}jvXdf?rb^#N$ z1ox$^@?$imL>lu-0;bx154Gbduc*cCT=>;H@It}M>!E#_dhpsG*k-Yw^UR?T8ey`2 zotUJTg9&u$`;8aTUoUO?^D-)Nfz8AXH#5e35KFD6i2_`V&L9p`Ij$^lr2FAkcPUjr zKQ;C*U$smH$OrDf%aW8ER<%_<`Bv6a-=*#{?qBbu3_g8DR)n@U!b;mrn~}UC#Sg&q+8I((EVDK~KI`3G+dm&5H=p%|AnB(HSse&NlU(D}`bKErB{c z_srtT@5;7v;WcmuEnIPQa?-SvFJ)rwP{)_#)@#-X#JPqXr07>(-4}Q@LtW3#FU<;2 zZXBw9p0Qn9#fNw5C-<02ADwmO@ea)%JO^fxeiS-wog_J$*0o+bwzzf7p_?_=Y0gIL zZS$JHmFHP4&j1_s@ptd6Y;-s1^WlZ^b80-_+EgZ_T6ZnnXgrsGtdYww(7!8c!Y;B| zi;cCtoPE&e;*8t@v(`-G)!>SQmt&fSOM*CSFRkj6-SESuBX6kHWqCa`HO-ivo5SNc z@^PNUD#N!Y(aCR_73Kc(v-Nhv;+6cV`)PDE-p2l;A@6eK+AGZCne?|DCu85wJF|T^ zvNcg0vV9s};G%sAV$v={RQV$9pf{wZ8(zsUE8410;wu2Oq`1U>;&Q20aLFO|7RzdGtF}Tb0^T74j*E?6!h1V z^(RuA??DLoCj~*IZg~>yzU1H7YPq@BR8hfvr^sIaVg)FvVs#M^5IFidd@9Jw%DT>2 zke+4kpQ2`2c_ky9^sjY@!TotP$?lGeQ~FLi<1M+F_kn?D`LuURN=k^LZ=uKad!8n- zlyDcPGIKxNsp1=WcIL7XBIE{}q_NJ0`JJRIWnd(^%>3aX+;%GL)(m_A@O>D}9>w4$ ztyN{Hjl+T7ba{MebUY@_O?L4H{INri+4C3E4plrmvJ%p!{VhBdhHQ~tP{rY0?5cE* z%B|D|uy-m%`or@s{*qritduRxS>n3o@iL8q$Vu%BQOMek>i+&t>TauOL4oh2d~YSlMf|ms;?Q$ z*-Xu`9@JQUS>FC?jn55dyXh`&g-G8YxSp& zG#DF4!Q3};U_gWWg%h$dY zBQNv2SyF1kfQEK2dM|XV*c3#2W!2x}<0)bys=ASQ&bu{F-W|jrB&5rF-V#QS9OY0v zj6?gVcc>RS!eCp%`g=e6XdmS8PzfFZ+>P=3r_+rdo6I>}vH<*ieF9#QE+w z=6d-CLIqdQ26F`w?#;`Gnt2;-9cAGh@>z=@%6A~otVbKL?!6p4C_o=B7)MRXspfSc zUlb46iR*csShI{!WAxRt}Es$86>JuqaZlu@4+t*)P7jQV8ZqnDQrO&-T zv`mz$UMMFm^es9j248SSw{Nz!I)-a*>1gDfEsj{JE)IsMH%ErDMZJO45 zRLZsq`R?jO=~K&u*&Kex6}**;*{D8hE~};Ke%f$nZAQu5^I$8|UI_F77=_j|Oa?uCBxX`{jmxbigpk_pNAQ3}sQ+>DH~+&n!-i-7m`*IV%0< znRNTOllAxg@8afLdLmXhq8pz_98)pa-aR}8e=$*fJYRCNB#JW zCX=1ZKD)ra$A_K*t?Bh`W0&oNX9))HI%iiq)>rljgzAl=`X(Y~$G6BlJet`vT3P!( zEOYPgzcf}z0E3v`DKuw;OnUa&7jrwBE|t)NfJu56#8!_`js8)Y5K<>vt1nm1P>`MP zH!)2B3!d^|O#9BL!D@FDN2}od5uDJ~4?PLOg;`&ZR`6-hTUu`l?fc+j$HW|*tG|cU zFl}=5fi+UNu=3x&%o=I1=`eDyGK|{^`J{N&SR>FsL>hV#qPs}VANOTyxqE;q%wp~q zR7{mvNlM4LJ+{YK2m4eX8XX#qTTkSdac-RkuRU7MZLM9{eS+yzy4pskx*-WKvT2+y14tFfBF9>zohqcwlH7{W+yqbMX$26b;+N&{0bQ8fD#P(|f zFcqG@1-Rar05iMia`!Q8bLsauqSaMZa!yX=BQrYM+6%7CR;T7){-UBmp5Wv~DynEj zKf}{hZ|J?jVD?cL7{Siv&M=V3^7;uJ72EV3Ohmn$@GVKd}%VY)%R$7ULp+5P)BygzF*-WwqO)gtru#Xo;ue*5hE=^I|}PkKXw z?)$6I>?S+8?xC_GIs05_KZ$_wD{Jjh7x+Ws;a8I4J+f{mEND*;XljlBP_w_Tugr3fX6gP z!p)8dR&G!!l_Ft`j76O?tdmIACBhI^=FUdkBYOJ?t{q8H<^bsbT9%?a>a)7aJTne6 z*NDAp3X2Y76q1;>1{{bO8~1sgX)xN!F>B{BA%c*U#2;WbiM^sPODXZ{k|AX64A$h- zz`Wn|jOSFCCVSl)j<+_6lCWByI85>NQdm+qt_Zq4Q4m)9fK;S9udBjST%4FCM+mS> zErV@F5}y3P9nN!vi@ZSnYZxWSMY1(q1vlgX{TTn5VXBoc_k*Gk&q*iPNbMaRqhY^^ zf~edWFmrP|^nHAmwL>H>TrU>ydFbrwfh3tdeGt~>yo#@}upPG9cXLIvemAW4;}Vc* zxBxzIcQ%TUzZryHHWcpb%4>+!O`nNt%+0PCIs{QY?n`zi0nBAmg|Cj}Gdy;=*Emkq zd6d{@G_wvi^_<_|e>kNOV36;haBX|%Q+pgqz3xRJv6Z!yFg`1lgVQgjm+;Tv(iggH zn7b#N4aWeqCjWyBoX(}Z#tfjlj*&S8y?zC1l2apag*%EJ~yUv>P zWJhQR&ZVEJJx9)qJ}EuVOqH!s49bAYN?1#;Elb?zB(_1VSyaHcRPiC!amZ{M9Jjei zD)|f9`XCUQh7X_|KP*9;l(EnaKrd0VeHk$zsR?3<6r(3xOaMHi%mG&~ff=@V?S~&T zBdD>^?J3odLJM?4JN^jLd_ihNTuS&>eIF7y)fG_{ERmIz)Uc_PM8R}xp_^~{7Lr6; zdx6vQ>=_3vv?ASwF21@3-PK>7F?_Rol*d2a+dF4><9vXy3!6&MK>!~E+k(%B*?E#J zmv?U1=T}%0DJ6LGf2NTMXyofgwTp{<0>WdOb|6HDp-+nUS7|d#ZhZT+9-ab7?VDX) zrF*Jk4N7_y8t=D;#}3P)0CG=owjTaK#|mq?olij?50G3WpS%v$C%F5GF;1`xDB=No ztO%41?hA*BWTxxirjfv+CDyV1Y3_@e7e{G@kbd)d0Nm89u*)kcY~wIm?$_*PIgyf{ z*$~vkq@%}(5Sso-|5NM1Sys^6*}eGw-SS{k_#7Pkv`9it@l+uf=1h!yp=b+TEFa zhHybg2YF$ovSi`xBMLpV%09yJ+5r-h@d@n{r_Pq>Eu@!U?O&B{P%X{OZ8i;L(JFk8 z3|JgT`f+Nie%eX*s31vq0R2nHw|U`!sV+>fO=g)~QS#BL?nPVZ8u)NMi!`1#cX|GP;L= zMA@y8I}+vbn>x~J#ln%4w?8|lI)_~^b~AVWonDU_=S$}DoZ^n$`LBzB==)`NJ$vE3zm$yc{hT3>MifR8IC@GHD}+!QtM2wr9zOTvErI?%vfXLl&v zheb)-ywaK{%njPh!&V(zARy(xaVfg)tmM_lz63AkF1O>6SnNs76V zH-*d3Yimf_=+EQ=7L$2rZbU5o6~^f=t@E*#<{IUlcCu-Lwa;bUnaB`2FdHsP@9lKq z>V)usS5^1X91H8Os=zDvb>Q4ie5oBoo_!^eb)kr2=>)camt&N69ZOU8owS711Cf^-OP|FfqB(>xY}%AJXnElp+(W_}QjtrG#ncrM@lZoW| zS0$X8bm}@!n%OfA>=?Cuzh<)iVtn&<{`;<#@ef_S*Tk$yt9dmT)F*Zh5n=5-7lgs> z#V-q$67_RE+>2nktFrPX!e-QkB7NyBgiBg+uclBQJZz9xmsNI<%^kZmwmVS%GX4~v z$=mN2cx?{1TZOoQX;94EO(>^4kUpVFqGL|GuR=s4lo>y_^|Nv&-U5xolvUw%c(!jW zU^gaBNrn4hDIK--B~Y}F_VMivjvHb`K1e9Q5i@RV*?Ql^*?s zTnEstH|oAU@k*^+VU9wHv^xyRX)gx6SqvDu3%_&xShwUXE&4>6%knc(INrxmXzy!} zWqHADY88F{OcTA=+}n7`EjVsRJo<~<6o6HQlsxUP%a&b8qOd%6KinlH2OM4$dYgO9 ztxr=}twDkrMt9rKyTs=6r^cR4ymoYTFfAWTOXNvWs?rNVPyi`b@y-i1-XlwvE6(C2?m&Q?t6&4#>9?!A$lyd+5N&RAuLu6E? zbFVUh+=U`(ScvEn5@ld@kJG&l`~-us5IVvol{7xPmr!NO|K01vf@8a%+Ax;Dh=9rJ z+h$`MU#w*7vCoG}AH6b%k4pAsM&E?mRBl@5jwX)I*N()_(O#;TZgsMf+zh(ZZ>LwH zM(V_Coi+6n!8LO55Yw0D-Ej@Nxt!~gVN|R3WQ2>nyc9`RHg33U@1e}5)|%$VJx>(- zu3Pe_N&3;@R{f@K3G8~L-?VYs%0Ym+N0w4r8m4~|PiBfTX*Xr*ne-Iycg=WcrwGw0 z@9WjuZB*}GOxX5S4my$g8EekER_$|F*zV#xh>-a@MwphaIP_%Bw1g(mhRxvD`4qJ^bs6eIQ=R=x^%2tg?K?2s8UBJl ziYQDgp_|?byR+p93pn{5yW1IlZbABRG&28#nN?~wJ~hq{^c)6uuq*}f!&daviagb;oF%Y2)p)Mb&0N`WI?6PfK{fpg{sNF#%Z{6OWtjGw zUBS@~wfCL`L4I*U={W{Aen6hNHs~EUTof~RuK@_>km>oaxH|+Pzo_sB!g zK59L3eUK;bo~l z=9aXm5rjL$`iZ4qYN^i>{VI$o$V>ZC_MTX2i`>x- zeP*uyMy0)OI8YtPv|=DwZBd)kUA})R8%qQ4A!^p>9aawBNuaxAm33&Ao*OgC7w#>X3R&pYOlG`~iw{nBDosb|hwPa3w~{=4nayvjs?;x61$;uC5(tpoSVk^3 zmE+II*x`yn&3Gvr)9YAe+lL|M4}ES)d}b>Iy_oNF63>U;KyTksnmN0~CW|v4D@r>9 zVaNpz+@W@GUzoN#uK4;YpJOgTBIc>#EzJ6F7z|EzL<}20*%8TEt0p|I-0|KM9v>Z6)kl?jc?X65uEgCvf39SDd!ID`|eGmbhwD$}?D*aq!_`Rd3Ef ztjoz*?XOd^E+^A{!mD27n-%w&3a&-HN{l8eAaOPK&fFnk(fxUH_TyZ8t?H}_AT$;nEZuuu1?az!1CNG=gOB3d%FRAW%3FhGQIdr|CA=9gJ+s-`g$>>H|FQShVNtGY`>-GwAPPz;si>5I2!b?7 zNjFHVbW2Nzg;FZr-K8``S%A`=!YD|WG(-7a53c22YwzvyJ>KK{{rCQ}4%W;#&olRP z-&daJd1W}4_^RReBAO|gmA5Y7Du%)Hk}c|jFv|G;G~UZeiUa`xG?6f^J64ZmZ3nj$j%HvADP>)`?@d%2KhEtoh)pja<{=qTye zfnG$MCuse;Om@8n^woW&7*hHPPd@bO+j*J8)c0=nMiS_6K=_B0D2A}|9S4D`Xj)5# z&&lvQcV4yW4(?J|Tg~=@MI~;pGj0Jgn2t~Ojpc;__vMg;;si{=IxyXjC<=IFtW6Rm*n9rFooRk`wJ}F{CPyonuY{ zWt7#iL@?s1eWR-G)-6x;ByVUc@%Fj$_b6b9}*jk-lzvCP`s~Xtk#GRh0BXfZ} zFeamWH9!)|V%fUFd8eTsktMIBtxhUTQ0QAm4o%#d&BOF)Dalo=Qr>f>t$X|Z;}zQ&<*(Z!tgUnD$5WBM)UKRV!v)74y(g&#QK+YC%6&_`;p*o|wDN;Yc&VrA{gCpQAon#l58`8& z!k2L!Nxp{WSl>|O9^tLY44Tn>qlhc+$gk|b1(hPy&GlEoUF^$9!e8wo+Q961x`1>o zRR=39?}arUQ<%=IC$~b@^sH4C>X9?|d6!`>0Z-w!?u(~~N(4Q}7mv<)jSrDTt8jls z#D&+(CQh5gDw$q+v`yH~;|x!x*nWz;%Cl*fJk!3=TDS)ti0XLyz?%ju$m@SpC}Q!f zxHx_+t2qp9*Bjt+hvY69L$!mmhN*Z{#cLtAb<1scNk^k>6U~`{Fq+NRhv#tZb#H2X zmhU2#7TF^QEW!n{T$bWvRuSop4oMorHRjO@URz!3*2a!lx$}w^L*{bULnQ5rcav}0 zwYf2K1yW3|(~ZxX=mYgQtmzyHxg5cVtwjIxc%3M#_9;Nu)H~&*d1p3?wvixe$wu8; zYuP#Zg>8Pj5WnfaWFE;C|5ox8*Fi_|vI78Kjq;2nw;!26yE@M>VQt|N4z43}53e$J z$XD%r-y*zY%$H}hEVi+Fwq_-W`tZ7kLz7G-n5U+(lTly9#?zb$x&kS91v4vETlDkH zVE9Psg-q*iMVT;~y>E|=cQ%)LP^ec05%|_9d*N3kcHCp-E>GpOgU7nxiPSV4CmvGA z#W~`aPxiK;KVI3D(lae^M>dH9YweTb@Koxgb~<`)lAb1=g(We(%(eT8wV$HD(ptap z_1D1%8ia(jD!N7^EJjU^c>d#43bA{ny4cfTSNh21`l-8lm~b|IYOVORE3TlQ?h=kRB(F5$V;6} z%XONkoQXr%VL#?4{)9|*t$vn#ivS=Ac=(28$6ESMs;=p9%Vf$}m+Yx>m%C2)C%?|X zPT?(`-OQYJPwy1osmYChnL9MN=?Vqpk?D@i-TsO~n*3XkNc#WhoT3!MT%2EkE(n~g8+c7)< z;BNu=Tg(fV%l_k3J=buVh^rJgiV9%1;+q4h*y;Hex7lWs-AQybY6c_laJhPxHzEy! zUWv3LXxc;4tClJ)DOcDy6MDZO)9%|udpIl{pWhs|p1Iy-T{$0qJCC-RUU2CsMf)Za z&9TL2>Tm{t6(7MN-c+SkVcXzWEIFh$t5q`NJUlvcZxmIhHr(aDfPMFZ_IuZ%?6)c{ z(5Q2tPF%!i}!)>i& zq@Ldxp3E!Cq<^4xd7hKr^UY4-WN$@B)5@ha?QMAQW!%2y6qeF!?JufxU3c?qDTs+Z zzC0vrE~{B%*)9`Fvg$EV3tiiWn(DTbXtP$m%w%ep zC*}mO*ecEGQkcKj^54l!%%Uzm1^7Rw~*&SZzu{w$Wnbi*+LFqw-YzNvLq1 zXa?%9g`Vs5g_Yq&&pxN5@p_G}N-e>xwXZO;);i&1q|NZ&&ZH2T6;+H)JVHY|BnB+d zi$%cv{2KHAPymT(4~Jk}f*><(_7yawcFV09f8e%zAdq-1Zx1A7iW06GDCx8`2(G`1 z#W=i?8qcl#*yH*Ho?0Dl=Rt4tioDkuC~ij)h3eT#Ep2AP3G6i2J{PeS!?G(ZHScH0 zbMh;D2K6UV2#j{*voe*1I)#NTu)7DnGf|9vm^$56XN!V`DBzGJ3>6^QWQt}4ilA78 z%}X}pY?`(Dkj?$go`)ky2Sn>S4WxB{eR5{eQ+tYgD`9Vy-oF3#j(($^$l~m)KpTs0jc4* zY|VS2EMg_Hj=E{7_~qtik#WQfYBK62PRr5Vb~7M~|4IbAgiASR&|DUEEd{?9q4Lg4 z18tzEa}7p>ek+-86lKYV!fYP<+PBHMR1cXpO*P(8KRV@<9+WzZ;2OVZ$(a`UL3-Bm z&)9sMz?d)dA@@+qIe!7ynMABj9u>2Lv?K1XQF1}8+7OT7K(;|_(BbU+=6SE612ZsI z#ri2*rWTq!1M2;*eKPMHQr-ZE#8O7c@p*Q55}sdn+C7$Z$jVO(paEH3#tC!)cNXjG zxwE+xn%!|ptXi`-^H?A2DnHX47M-bRMQ!easrVE)O10m`|AIa9Tx1$hxm+_ww0zSS zr3He-1QaM?cGS8~hyVcu*njC-0_knd{Y;Hr|tVrFa|gk*2v(5p}1)n@MwZy zCc4dyfskK%A3+<3{P>!C1%FS2_`?RCztqE;60ieT?5ARv`Y_XZK-zK!=8tM2rzvjXPhxH zzp@qtge|(q3)k5rh{by1R-!iwn^-wOJ>HL?ia|Jq^&Uy2x}pOBhPeznDQxtTUpjv5WtZ#Zfo=I;&Mmz51 zd7t@PC;zjWw|AyS7LI%d{)jnlHh#4EK!%WXSBS5M{`O$s+=@--V@XxY56uiTAN6rXi-fNG}T*x+HAGb zWAC$SCpB!tlo&O_+a1^?n4a%MBHQ!u`D*Vw^XhaAGD0IjIDqvnb7GEq4a|>uY{fXU z+*RqzjTb$$V2^8i;|T3bLBecaAVPmw_gg#4<%?vJZoTCCREX zy0}8!7YgyIk$SB}!JKNQ?68CRg`Ce5Gd($ZX4={@r=gnRQBgHqJiQn_0U>P(G|Ng} z&c0P1(#jN%_U*IlT@f!qBkjWcT5SGCwrx$P>83FbY$@XQS8`+|j+Po5Y353KiJ2By z*<;><7SUSs*nJ8WGvr^ak1TP}bWPwfB<3&J_H_B8KFrU}6_Zs|_{CX})Dz++N{!=x z)~Jb_c;6P25HT6x+LYy)(P={fN`DiN-jqd}7?`Gva^W8NRSH2$(+X z90_IoR*Bwibvih1;v`V3s=NN;Er}vwrs@H`VTznE9Vg|8h8n3>+r(le+cx!O;moF|3z3w20#A-vSj8iGn-R$^NWNT+y~ix~mR| zv`4dD=lYBF{wqua?+76w%Yk>daFR(QVMJ1g|KGFfpFoN~a214c!UhhSA%H^v_ji86 zgMPe0SO9#rd%K#vzx$*Z1E7hn>lFT1`1)UN+UFi1+3RQ9I{)T~{`yn?0EW|E2OtyC z=!>hryYhQxxU!yCc+fAPGCzMI5j?>_!ie18URe*WytGy1@Ym|MJ z#if5+KpU7r^uL9T`I(pJ4}Al4MPAq7`utEI=hdq&T1$zirjvC6P1};*ZwG=(X7(_F zA_{mqLuSZ~BtQuntjh22?;G*n*aC=%8Ll`zNVdpd`+~#avi!C1GVdUtvdi?R&d##5 zT=$*UuYUm9HD>L2&=E`(qhpAQcK9XD7kE#X-LlFx)^F|N#a2-Gk2t6kj0tTe`-skJ2X zLNBdMh6y+V6b}N$x>%qYO^DKLDXynJckgrTm~fo6&yyvnK8jVuJ0@af#BVN*5I@W@o5%YilH9THp znCh=>%x>oYKmLaC^j^o|@NiO!4GUA#%&E10RpH{IqAmwV#|p=%t5DD(BV;N0^ydEI z7+@tvhcRowq^4dml%C=KMpmT2#(Ok_fKgw}I=)^UoUQ5u43|k4=0jY}&cv9rtI(uK ztqWO9O>{&Prsn2H7m5s;=dKkVgF`y9<2c{!PmWiQ{n>gN;qx4?sHphgyeI?Ml0K>{ zhJIF4%FwfnNa%CcCCi&J@jFg=tv!H7XvA89<**p;Jga;*NdVKaEKeK;^cG{2yY_X= zgvt}INY~@-PgEw4#4+C}VIl0n2r{mfrKG$==4aI7uC2YZ1F`W^=b@hUcqR9F0HIq7 z4d1<8*}mX-K8)0_5irIq)woOY&*vp~*EFaH0B1e(EoHBF14Ea)oVK@>Q!t<+IZmdI zF)pwv@n~Bg+nFtRP`G>TyZU3AwTP912!ZEYv*KCbIF&FL()M^Yb^FvVtM)lE@7`;E z1mbo>HQ3v$(<&V%ely8&%CE+=#itNNiECensR{m|ubPNdgrvQFQJ`Sub-!iZA(Yd+ zR;3>dCmgT}vU6cw{Db8{G0aLf?WVI$GOisro?}qHXR1bPwfXH!ssBSeC*e44*Mu}H zlVO-2$V4iv+*hL4dVkzf<&{geW5w-+#W)e=nSzB>ZKz%C<|Uzdw(^oF4t1wFTu{!V zNr+1bI=n?E=84BJ`&Pb&xNlv3768`c94*`d0KIQ1(>FY^Qu$rYLZERZ|7A_YpkA$~ zUY|d_wN_a00|~7cuGz}jgVKRF$`H8zk2kVQs9gqn?a~=bsy%nB@(%(tYt~5r2UNZK zQc?Agpo(;41ecd72V*{76r{W4Sw^5gx|ow zcGD4u?6Zx2y0riNe&P9}goJt3R}2Dw=jL9g9KccvR+N48JHJ^%4@9^1#(=B8^X*vw zw~+tvWDa2e-$MSwA%p|)|71tDfPPX@2=MmYVlQkOYN;oO4|P>mSAP#hxd~}B^4hlA z&TE9)e7o=anDWk00;B$kv{UXU8@bDqA}H_JPi)Sm-NRN8#i&n|S&qhL)%wh)M;tp@ zroXh^*kny~FS>u7xsm(sfXhek<+WsD_vrpup6`d)_)qXC*6et$zl_<8KVQ20bfsXi zkjdmwV;SYu?djO0_pR(qPoJIN1NtnX0BND<(CwL zDk(=xOH0_T(t0VoAPb=L&2E>AfO%A+d^yIe2RvP16M+dV7uIPYK>pYqiHQ;Y$*P;^ zt@$ka(`<6zvubHMo4?Bg)I6Y_*<0v;JNpOEtjumLg4O;$4H*bC{>Bbvt0oSV;LU>` zs+qZY_6PH9DN7(0>Z+d%XC4a*3hG`jEiV2{=_9=F577+-Kp6}CeAlQ_UZK^`RY>a%O1PIzlx&+wyz}jOs5B_F#3H@#W%~tH? z|9#_sU(x?t$A2`S|F?Vo(f$6v*gc#uM7A|w9J2emUWq2@ZaX*Eva*c?W#`37X-)c8 zp8dG@!z;Sd-6){`(h>Suc?Hd0JKYCdU!u9{3e9?i*In_D=nY{bH+DC_X8lC-5|4t} z10g>Mn@b+O=TY%`SCH#sC;Q2>ZZU`7O=R=_ouL8-^f!DCg`iLy>d+&H>cF3H`*t?B zyjULJuwT$4a`#)$c?2L`iY!PxFT1LpV6DiSOxy%BYwLWRqO0;R z?Eh-2N4=@~mYDvB#uzdZWyDfjSXdvooo|!UW`#^5Mtj@$gw!ALcvw!YLlnhMx$yD- z3{?Mq!WGl7Tk_RRk)cn(1QJ(QkyGL0RRK3&QNp(QEVYNu$_A+Hw@lNplbM*V9#ofpYZr4SM%L!>`&oFL9IfH!UVIEtK2$`VlTkn;@%uJk{Pq=@G;EL#@W9&2W)rxiv7h7u|K6raN{=CVPx>wZ;J2~UC z9JK}KiR6;qQ*2vWuO2ta6Qu-~tv=y<{FjVu|FMnK@VM0dpOjzoa5p~H^?YTc&cKPv zP>}gzBEAU}P#2^Z+Eh?wsh)fDIbO1ON%l;ajtI1^L>)5}FDQ?O4;8gKI2P3Uq*P=L zaB_}P)_IZ+d8*Nm^WFP)i^FN|=051ViM28k1ZpIeWWPT7`y>2WIqXh_G%5NLmpbYU zu6luY;W3c&!Yp(S+tK%mD;GGx;U_}T=a5j3+y;R3 z4M*Hp6i%=AqPxhRJhO|pWNj!$FHoGXJmW9c!ZmT;wh3HKK(CQPg1 zZQ^I_`i zvQT1;qIO3bGr#!A{u@5L2=`R-;m7o!_wox%BAgDJPWD92Z}Vd+BtK4hYp4QGW)By{ zX-z;X&jg_gcJ=hAeWz$9J@<1b|NBJ=6=B7Mg^dx2TNNHc3EXeMXqMki>eIAKcLUTy zi$={diG8o8NtCut^;Hx8ga7dJXjKwuTI(WYHmmBPW&kd;IOEk(%K!d*p8xc;9f+>U;APks6LHG^` z=QG3p7b}8xO^h7Zz2h?w=6sKX!)m!w%s5ITQreLd~qKuEObKhss+u z56F$f^aBs&l~$la?m#cP6pb(}w>_bc8ez49&|VaP1bQ_wXVz=o8RvW~Y-3;zYWBO#>j3)JZ@758aZhpubgY{PZb__yM2G zxG-1L)*hq=D9BP(3A=C^5%mGqs&CghpuHR*t_MtA36btNr@@cNy!#0@FO0t#IO=@n zPeQxX3KKzm3zw1REP~#guR`Dn6)**!V;Mn0E29z48h|dapCOzKM9c@_@iilpy%Dn> zEkFAeI~h^HGPAMaronuWv;*w4vF8{C`Z6*uAg-*UV&IShqEejFn}#&(Ti~f-RBN^p z*S-Ucz|y*Ut+)GIdiuq#;bE&@q0!zaesS`^cy#;0;XA{~pneJq=k2L` zpc~f=<8sZ2SGOBAYVK&eXOoOCk2kd-2GDcKUq4bso~KR+X0;jvX{<@}8;lh-admZ_ zb3pXD3FMKPyAue4p`dE{snY9Z=z$fkAmcYmjnZqT1`@RDr!x|)kqHP5mCoB~8$!5e z+jwU$AwnQQyfX|%AYMDz8%-w>a5se5T^|$;kVzKvRjxHtKp3-$NKwzjTW9*5eJc+; z4{4bzV>0Wqe3S6%8x3H}gz@TB#{@!+QTn_I^oY`xtgx*5=f6J0nHRv4m8fdvGK0tx z>D1KJWn|nZfhm(|1%wJ2%c^9r@UCaienQ4RHiJI*U74dMqwH8&2^80%h;*3jSvwNon+b!|<91_r6SQ)(@%3?y zb`Q~z_&NG?gNQj@SP5!F?Uu$HHOFZ;7#>{Fx_DVdLYnu zWoE*8eQuzpk1^~t&98r$pHw1y`gq|@Fdej{K0-TRPDrpY(ksNr0^?5qv||__(8p3t z%mra>r&H!kaOFt&TlTdf2k!W@%zXyNw{h_Lj_w=j+BfaE_@t2tzIC5=4pUoQBCdiE zqCFs{PUAl8s$6nxJKM89A*26&t1nQiZo+~k#>Vy0uPwQv9QdQ0EY6$2fAG`!3=GcV zCdJo9H|?-K0-uf5q!1cM7fd24UcyNp3I^tf(|z~a9Fh!l>Vj2RcXAi*wUzOt#Jo;4 z7>;gJ$AX+m|LmR|RA-O90w76Z&J=|2Lzpn%9t*{usXzQ{<7qDL&1!FvmU>eGhwzB_ zXAt`@!+Zjw5(1dPUD1J{i)sV-dK0oKCRU`<=1E!IBO`jIFOuH@zaIeK22bTfY`!9F z(Ze}mlSk=epV^$`%LT>4nhcu=7&@SLFUg~R3ca_^of6S2D)I&T-$Sx7TrE!DwJ)nk z{JV4dm)BCP!``oY<@5~2q6qzj5FG4MAaKza8m404S?^^DOAmfS$dnHM)-atQez&+%p zj)=2!K|wL#N7w@i!ltvXnYG$l6)@}Lo?AVqR_2W=)-5!AGJj?rTJZS`VQa6P@^eNI zFsb|Y5PF?`@{v?bOiT-SW+VMG+16e(o}0Jrf&3AT0C)D|faNAO^yPyI*%HEU6su9Z zmCex`y^*D*rB$<}eIWHTjv6bveC_+h@P+HAZ(x?Uc|xfenNQ99QHhFC8yCf#`B?@N z&3dUBbv}=}uA~|%LaF!Qk6Zk#>OE4vU33K!tj=}yi&r9WTQraZ%IbpMc72o?Uost!iK^*^F<_Swp<1O46cF*Rz?B`h zrV52B^Y7|Ld@(W!HK_-ZX$!Uf-dcfI6kzQ~=74|3qheM8POsDjTx<(s(m8`$u}tC| z!v!REVMYkoyT>Qmq7;UNz{Ct)R~=qLDE9e~8#wErv5e4i&j`@1_~Nr(Mq^r?Wotcmm76*}9XiCx25wD(8cxe&!PTVh z@*eUl$8uv_fV}FC|`z7bokfHu4`i@SK{M^sKDC>e^ z*y7eiQpGl}D7YaX6v?%fW{wuX3;5T#fgEJ6Y|U18ikg=11qcu`(n-umg}K~I6l$}I9Upq)|a2@u;{D()%C@NtbvaRZE8HvkQc+QDE5FOYF>VJA*uN3=;AjJALK+RsMhz z0Lx8uS*jxojIYChB5MC7UFX5uUkk#0W=1uJQhE_>P!ow#NdB(i9b&!_9gj%OWqhw= z^SpgOVaASIAdsB>?V+2&Ab0_SroV2=C0>NAv{#J%)eA@tO1)8m0*h5E0a~WW@Q)ul zqZi9Q*~xU(dVR0*@3NPaNdvNR`&1YkBN~QdaibZAt~&yU!KK0IgsOAx!xt#vOv{&$ z>Vk&ae7rNLyBg=@l`@_AJPb27nn7&9cy&ir^AgZ;1RvWW8ZV#9Z2`XhF#O})UwhDO zO-MhkMjW4o-10d-CpUM@(Nh=uHNN8Ke8wgwSL1%|ijjhWHXN@16oQfY)VmH4mLB}) zToT^>KngN4EN}Oe1pv`R zSj9eMS}1WJY=dMN=4Z3X5GbpkRw5_~Nw86QMMp;`>rrBUg?77o;WdYtMRxhk0drE* z>8?AE2&jx75l|R!t{K?5jV<{*o-PvjHpTQ2x_XQ!m>#@I!Aui6S|M04i11rn?#r zwMaLgY@A9(o}y*h(&R;bw}zE|1FX~$wJr?wksA=xFki=zOoHtg^jef)YB`a`;rw$ zW>|}q+X!R_?f3xc)#j`AlCg2Q8gR3+AXJoh-FzHa1TaWP8Y6K}G0PB>ZX*GDq#jh8 z0l(Ph=f$DybTKV;K>okp%D-;!B!U$5dDwdKS9|1-Jo6bb96~8ZvrjZUw|G*u3n<`63&;Rnw`~ZZ|`apVd>gJT?mEW9xDc~wbhrTf8`wi6M zMj{*_98%txU#;CA+gn%}4EFzQ3EQizhj}XphKGkqhTK`0m0(K`j{v-FxH^H^DDK*1 zIrOE=&NT$}uTSEI*+6}IrhH1+F}6ELx#5^wz|$OvEkEIf6)>x8P!H`<{?Po~2Qpc1 zbBt4%RiK&~_34S`-7H%v6H-|Ezc_c7qNngP^@0P|ZrDG)HF={6}+|z!P ztGP^CYX`)MJ~}r>pxcz@ZVnbGV|BE)%0nfFq|VN6*?|mm_1w{>upD11Yd77?{m1>j z{m_nu9xV+wlUfZgDQfJ&aeP+c>|NfY4N?#y|Iss^lurw48A15Rtw-W8p;ouV#eq#@o&KV%I-96}P+l=J@w@Wv%VGuzyk^e5CPU@?L%J z%~x-c0Kvh*;XyBxma`|LP#VDZK-o|Ad5iS-+kNfrw^p;oqzCO7k&dDCZd zADwaT5ScoWO*<&(c0atn`&!wbKJEM^jrs-O+)|Ch_oY+!1$jeljIfWb>DBOZadKJT z%PkVD#D67qO}^I+V@$I$HaKFgy8wDE%{!PCIXLwM0ZhVYBsyuB28}Q5*4x&)y!}wA zN}XTl>{`uwRe^jgq*$ksJ3ydbo7#3xLn)%5QaH0#s`!#FIjGVu+FBM!pOb0|M7jIV z5BvdFSXuO`3*y5}G6--6K?96Mm-V)s2SFX{^(voF2jfM!H@mg0Fc5%PlG326e#HweBuf$9YQn z*=qN$rXG(V1FxW_if%iS10K_95imHC|CG6Kx8@3h#3Vj>cT&q)DW%=v7-DAMp8Q;X zD*QZ#*4tYHD~L}oE%G?>;$18yDlexIm&wA>vr;H)3HKzsC0tZ9K~8wci9f7J=!HZ* z;%=jSJ(PbG;zU%Xg`GQR_fh6d7hc9Y<7Ey~pImD>Pwzz$)I|Pq(=t0+7ZpE-8shlZiM}T{+7S<4e-|9*&=VrT|7# zkmS$mi?AiYP~{T@hh<~0v6njDdIKe2G`9UjGkcLqoBXif8{3SUrkFg@#4|Y87F0zU zUmiblUIwmJ*cg*14lj~kx_JvYUm(_*_h{`l)xSqzerm!jCB(<#IL(xEXWzUf5>E8Q zg?14~yumx$49})$7STj4HT9pHq|s z&oi5Od4TvIJs#Y_2hf;|o_@pqyU%6PA(5Od>Js+Ad+4EO!2$Vbw3xjr?SHT z*)%dbk_#>H@`#w~SFbuaIXTMKuMNn(i!btw;MkUeJ=_Kx*$uXYn+QtQjy2kwZ#$ za~4n_HU?r^J+Am{sBg>PNg{vVv=1-bsn+9%jTe7ZF+WQR505*6wj%=b2Dw;7mNABi zPQnmJjD(zu%krjtQ^(%!_7E*&8|4~ZYq2K|m=Y>`5IKmd@z{<=YPfB=JYA2XG~_2h zLE9&r5XlWR^jy*k96>5Oy#tdQy9yeXkw}e%^4@13V^Af$6!|b=EVz#!pEZC8j%^7x zLZ0HLMS3g9L>XfMDH|gdZ=jkOXT&+-8CBD`&9Senb}3M>h}JHJeTNCzEr`a%YD^p$ ztTnpNYuxvP4kJp^4TpAzYX^*DqM$6luVrZr>7b8D)n01{yBR3tIte($cCt&&79uSm zMA1zUMgOhw85V3VMKL&CM3fRg7UtP`tc^<@(3Tm@x9@ql0K%nn;&*fzprR4j^5Hoh z2X>k{4=+rn8p>mBqm=6$QI4`wySta8znhInd0UlGo~J!ytQR)m8V*g&@gofVcR}M3 z6YU5Lhnj=Qye7yPtkb`s~wplB0(sD1ghpRlJRNK z2|QIDkF}l&J~SqX=j$_3?7UeL4V~NhFs>x#F*d=LM?M9$qfV@#2Z{$$={dT~*enmC zK(fRMOQ`m=gZ(rp6{u9U@-8q;FXn*8V&^9yaPD_9U~b{7cTJeK*~QrW{QU3ek?I4Q z$~}({3Kp%vBvPWcG`BT~NC>frNS8k5+;~~6N{pKlmWhQMpsFeOO;aM!sQ7gvzbdV% zm=7 zPMYEM)Yfz(0}4!0fm6_Y-a2v+qAmybmPHGN-lM(gp}OO()(z z-k4wdlv#rA!(HhAnb3QQ3BMKde*KBWbRzN#1$tA0^jIKz9%-8uGS{bk1*tw=)aX;@ z&S1~gl+`aMysq(?of`}?PB#v+PbSy_O}$WDQM%1DR^9dq+n?&VQ78Y@0wC51N0j8` z5plUrsLI9T%BHY%1-Hw}-3&kAV+_k1(@}T{3t8XHBw-vWgQv`r-=W=*3WIMrhrPb< zPKRq-f8hPR-qaapR&3vhZ2lCW1}B$;2deD^10T*j2&Xzyn~R|tzhEUK)vLF(Lft_1E=Plj|!ew zcE^PF47eN&WBvM@i8V~?mXs--L8c=?p2(pk+Ui_mZZci5{1-9rB(ns1>ZUm8puK=NuY~<*(-7 zM8O=iG_So$uhzk;%}bt(b&3_Q1ds_qPO>DT)1~%x=J6ROu#~d&pC_=ovLYqD4H2%i5z~k~np3^o9;K*P-OiEdz4fwMx!UdF z#ZKr_hT^I`e*9SFQ(3pzEnXk694vK$cEC|j!)Gl|%sXBwpMG_?G+GjN4zXXYQ3pF2 z9W5e;T*NANtbsy)k%bEqnyyEF z0T#Q|5}#mxeJuI078!~L5gXU8n8LC?9eX)JH}$q6f!2?ww&4fGRqwo~7i6bC)*|FT zc}?nTSb@6{SI&S{RAf*eY`sXSTTU5oTSK3=9VMg{_CDa_a^aaiN%V<`7&7aboqIHI za)4xgt?ooIKnXICZq7h(Y`Gn0{>i}Yp!$Jtwrf)$+O|69aZDi+U3*?(h{K0)GpBYd zXB93jKoQO}(y(i#6~`N;o-=ey02>FT@EIgSn&sPFI{fuQ!&!BCX9)tBOXYdSL+2g@ zMo9=oT5Wg9Mi-4J;-92#SHrgTs`|dS_`TJdZK*S&rua)~HEeK&@0f(|QMi{(?9<%h z6=O}w>0RCvTPdV4<`eI}C98Snx%rO9SX6_{jl?{~p@m*Jk;~{ zNr7p(kL|g7*|GzX*5d=zlkZWsFC12h_+h-bf~}oI$~34jIFnYz4Ib_=bya6X9 zXk=cs)hTKdbz3@}p`vPe#2t9nkzW4({rdyo_yO*mi!gypL_m?0>C3=+yDCc=y2ca+C+a2Bg>nCK|(- zi$05`7$GaPjT6md?6)0IFCb{p9rt8IIvBmjE+l_5h;cA#b9iJ9Ifpm67eXkzx=(Q> zpE$RLm25+ser+H(%<7~1It`pPV@5^!w#7@_^>+}5@r~YRQ)zp5(Mt$%F9RZ9EWM7E z&5{XKtt82g-EtV2Gp$qk4Gz~SkK)+K_|da)C?4@_6Dwq?~xE%1Ldx(0*fwfn^y*W_vm1&U}1Z>95#;9Fc#A*X>_(!apB(eH*@Hk zEzGr;)amg|^Taoe=29pu+^tC63Z%)0#(ZPGasbV1D9bic$H+vACX)N?EH1zIHm>9m zPrSN5c~3U>PJcZ3TFn`vBlEMfO$!RVwxK`>|UBWk&8^o0UuYq zuWuU4^z^jo!!cjEWWaRWCR?PAYn0<4B+ME2U2# zz`0})b%grsY_svH6(f@nPijIBP@*snDK-K-n1YQ_i`qB-AUW8xZ@zYi(YwQ&A8##f zZ^QUG*R4^q+DKf+6W2a_ulkZzB|ht%!0NbmXnVoAHb!uxqRr?{JAY9*?dPI|T}v+M zL6FCJvKqJOPS5AV`~B0(CsIETmMzcpcm^Srtn8V|0w(m8?F9Nk4Yd)bm8*se?*(34 zfX7ljPq^XR4~?qAPq<=DIS)1u#vUGRq&!z%b+VN;<;2)-X002~G8XJy<-l;PT>J@Nuq zj6VG0me9z0X_--3`IFaEAaW8-V8mw|C12fIHg2K6t;Gu(6P+^pTb)u;l4xO_(`Vic zk#}xDWGRQ}d|hN2BLGvud!aqzL|`8pE#w(~Bjcn^sJzZe3L!CrY|)zAlp3$Ujt2&P zxss0J(NNP{8`7>{h$YBV6t7fL->vtcLXc_2AopT4FJ64w)=5#8h~eq|o-64`j`uR6 z`!kmBuN>*FL#JLz2iv>L;+w>-3SDiT5K!M)Xdypm%4^#gOtb8wf^OL9cODx#4{#dY z-X%)WukWivl27q2JSWx=f9&?DX})%Ewstv{|J1%u48nhpMr1#|+B!X;JC0sjy>J6u zr3AL^$y>6vB;B%I(2*$=Uv@Os5)^EU(5-Zu5AbjJ7J8~L>R)FosjQ5fg0xKO?49yY zNBj^C|7j$c_N?XBD(%6%VzI58ft##^SXF^zt7;UlccXgIV;VN2n&8k1KcOEgu%`5y zNKI5$w&z~s>Rt75%sT6ooIuQ89dQ8_XxGjE^vO4^6w~)b|(ZB97!AsE&CM_&+oYx)yo**S!dc>}Vzw<=0jt$L2O*1xt-+1_YX^cpdtM@2Y&ye| zG|`i}x$oAzu#s@SP(zZ+G4wc>8!i@h8r~&c6lar7dQLnt_8@~i?1Jy%7E0!ZSI!Qc zLf}aTb|qJYKXhNO&%6v0f!bVr5?1U)w3oebmuU?-=&8v_yqkwo2drgQ*=6UQBWtgw z8R8rXWr5N`Y55M~*1TU+lK2IMA2F||%U=j^qo`Zq8nO(*6&!mkPkk(KlAMXV^;#f} zpqdU5pJbF37ZUb5-24n0T2kDf?uxE&OhNcRcX#FmIHcF%xO$s!$&Bf7N1V|fn(bGD zLNa0?v)!^>2gUv6X+i62Y!XH;A7%7jg37pvh# zEbNu*w*ZgXCa)7@kVt+sx1-0!R?St1>dc#V6MgX62DuoCmuRW zi@Ly=Kt$UfB+SE|W?_P#C-WmhS7jv>x^Zsv^gA>Xnh)$+pWvH&Nvturv!?&uk#}n< zrHfe~)0oR~kymq6x`Urw3sXM?f*FuAmAo#i-JPGy&e^Oap`VRJtX#TqK>G4ijjD4^ z%YYr&Db_5|Dq-3ks@>IIAF$9{i8hNE=xp9G3`Sbp0?=WLVL9{eOPph`CQC-Grmr!? zc|F*+Rrc?RBn{~=PNo>jmc4;7BW=cua8R`=wVY9oCVY#44wAQR@+}u=L-f@i<#?>b zpqmBV0Ih(&3t&31t-4rP9ZtA;3j4os;<+%6;MmhvXs`0lat6_`+CG|qzHQv-W2sm( zl;uF7RB&W1lHCBxg+*ZAOrhx!=IJfdsEyhVOZ1k&vFXVR4(yV_Ie!#JLA@pLI~jf!_8& zPZABt$8&90sc?+WbaB@#1rB(K2rWMkPDSQeDR-cfQP zaU0Hr&udUK-@WwVCGZVWVc5(q>d+fR;HmwwI}XKpZcR_8hR91NV46)jK>=rtSVOK( zF$@t!SB|YBqNl1i$&4qm{rpD6^wyrqWkyLYTa}U5strE6o7f#GV z^izftzx`>_nEr-47%_!K5SUgurb|J8r9tW>=%w3}dIt!4JJ+nl4IFJ34_^RjJ^S7f z-Mepar)~BoY&x6t)(htz%pj>!r5)#^u0YR63htw)G!sOh51q5Z#+gCR^Wv6<>%KRB zhAU#gP>{ht&NvYK;$F}#Q~q;=(L(V%U+L-JDDWLaPH^)DANR;|2$buOHt%Pr=u`{<7(wnYbSd}3P#C9@ANo{nvh zRei>t266RUS||szoR8YU2Yh%K2sh3Lg~S2+y8F_%NOaD%rzh#n#VSwH8xRZBJ?UF? zLvI%*+0!wc(a5N$OFz;m@p2tWXL~mkS4(dsKwyavW$((pFkr*O-5P2**Q+Jj+O(51 zIU5?D=i}q3J;^EPpCdwNdPc}l7N?Qe?`)L8W~#g_WHYCR=m@ZJo|1hycwBs(_|4-1 z*_L9VA~}05j1~mn3n%^Lzu$ZBA?O9u&yDC_zPF-3N8A2n8no=qxmFE7ad1BR5IDBw zu|7c0m-Xt@w9I|v-$b^si{kLJp{9~^ho6M7C+qeDFr3d-e+`nms%beJ=_NmA(Uica z+Vf%*zg5B*iX=^sTH;y?As_P=rpLt*X&( z=Fd0(yuHjUNP^{<^y!R(oo?vw#l^4VyW!2W!reJOaz)!94cA}5?ChIM%i9Hxsm^v=%EzEkE zmzQ_?!A91u0LCu4~1KTk+9#Rxg6ZC_fR`*WxK+(eN>*chqB4z$6!b{6b>!ujy%msI-?6Luv&8LKSR zK^R+a2AM65)`9+(Q)9e^baFq=5#mdP8zoP^RE#}cjV$KFy)P4gz-P`=YmkZ$8w=YA z@7f5Xinbokkq56~9&aZgbQ7QysIa;wmJs|zxa`OgKPMTv{^R?*Mp4BF^nWkb(IuQC z-brsxC8+x|MQgr9pEyW9-qIv^T)Exqx{BT$iu@jT>8*D3e;%`OJTZNRRm?F0f~#S+W$XG^)%-4!_I}sV`@Z6P zai%W$KmWyFUx`$~_7D&d7&z3B)^zG|AX6c+t(kf3X+jmMWr8u}{4C2;l3tF{Z1-}s z&(E%!*=T#$LQ>3Z@-Z8Yna}l{)vdL?1S0A7#ZN6o)8zhU9N;nxDzsa!$!#Wg@4n2k z%$cFjWzt`IxV$Caa4?zZ7z;D)88dENFHSFYWr#>(ldlL5)kzGwFrbldO{ zsLx%VDSKAXV*Et?ORneS#)fJ7R^Y*}J2-hQPB%FIW|#M`JrOI6>@fxACBog1aaHHI zSkdlr^6@zhJFxb@wm*s3U|aFpjimnJGv2~HV5P^eH9h?G_kcyf14G6v907Ebzb^C7 z)Ar+!aX0|sW0%PO=`%P?h;coj8~zX911^#dY)DX%&VMe&UtY-+27{07p!rXpgH|yJ zOde0`?-t6Z25&j^U%$>r_A}7DWFvqkl*_5NnoO1!Q9Wl=q{XFg3Q-0U0%C?(1lcqT z&sT$w9~`|R`2V%{<>6GW-{0ABQqmz~rlcsd%8(&;8OlsTLdd~Zh8#jNw4G9jQkgSE z=1{hwh^j&DP}G_5EGf?~nI--&6lQ*W=mGa1U$vtj}5t^d^>o zLEXEiBmJf#$68*ONtXhk&tp+qKRZnG5Jm_aj0tIpR2wyYQE>vko}CTXSSA^xRF(wt zn_-7Oe2j{N2_Phkv!%s)AM$S+z}DJx#`Z4{K5) z#>0Bfhd@_86o*m|gd5s#aYh^4ADcXpQa{U@cXu7kn!sAg6BZmV6Y}$9(9_i6Y1?qk z6tzg}AjUvd9d&Fx(>Ud?4RW|q8i5zhP~(34!`QZJg*ouZgiE_cotrx~ARIBssx-Of zr-cB~2nL3@*m2t|ijp4P&-?q4GO$~8U_ktuhj;BAt5Y_Kfp+7VJmobjmko&`26vRlafV8>icAhq#}McDAMxk(cS&>IiV? zl(+DKDL+JT3)UcB4T%6?-~z1zICp&{O>ynjt5^3y<3b$>O{=5uMKPcc4N&RQV12dE zJN%kdXjtP-m_^{P8wA5sfUT0Myg~L4Lanu0ysw|1pWKHi>s0d!EikkBuNKj@#Cg3c zA#F@Qlo;pU10Ih(_?0Cjpg56S<414W2ZwED5``th4NgFVm^Jva)WwD{52hz8+$qz3 zg7@n0_OWY3WSrhc0lBM;8UMmgp=*;p#2cM8tximb9ig^@_Orn33YAZVG(lO>BbIeH z3a@5sS%%UoKn7zUq$p^jOa}MbP9|N2ohO}>=-D|rHIa){4CHk}O(~GU`Ntl`$&(7?Kx)zD$aS?fMEA|o5if*H)0Ul`uJ5SH_Bq-v~vvaHAo zJBH$ep&lC)zq}iW$_Uz3g@!$QUGJQ|VU5@F+&R*zocgmqNmVc>9f5O)X7Bp8^&g82 zRhs|eh8*21s9{C7_lU5b^+5<+EI`Llg|jNt2YAl>!OAQPZ2X4LpHEevIT8kzF2BUC zUDqHt@jkP$v>7BKG>0eDD?aQuAF66ef?N|hbI9j&&C)A`_+}2gyW8pUH+wLnhp;8P z#j^}=(K6r+V0}1Zj*|U5BtsIV@KD-V;i)xpV^9-L!avayPyl@lf|^QD5hn%4P-+e} zF@( zEiZ2LFe=N(K|@7*z(^AErx8vt2B^CdU1&V?rRhU4g4?yFTdu$P{)Vm(l1@bF= zOi#``*PCgWMFNK3A&Z2B7fe16k!YbB)aiF`+6IFKM<<<{_^_7q>)3aB%r|9UqpaBC zqr9J*Js>=3qx?qg?k?h$-X|fUTbvdqoEM~HS&Ut!Cb+LLFD4#rM292gU%a6TQgdA! zJ=+Ks%tZ`C-6u)BjXs#-e2Hy+w8<&}3fO^p8E40mxo2tN!|1%>SA zu*jtcy?28)ff%TJ8jBQwB>>{Jf0{+HW$9?3?WDri_iCv{PHVXtLvQPS7wf_}a5n7S z9^(XC6$)KMUI})D(Qg&3;xc$Bb}}>8)v();I9k%CNBmfHNxCF+BGYuVO(JiLBiBsB z@Il6Q(!eo1k+l*4PqW^W{hL4&?j z=Iv1*8m7nl2^|im9HLt-ns(#O7VT0`+%(g=(e6}5kCO|p8V3g&&(76$k1I_&zPY<4 ztLWCPTO_%yXIaN?&njx4ekM~^o}BEL*@&c}Xs=+;-)|RfbyFP%<+&PXyK&Q@=@4QF zr`m#>0x9D!^*&%y%+JrGlKNXp$FrTaQ5OLcWM+=KK|OD9rCJ2DkCn=iMJFV18@q@1 zKm*gT)PU-jG&<0%$_+Zzq;fjl-@<+7eHfW`QR`U&${~@6pd}RWbErq{o#^5}^q)bp zPzBGPHv=kI6Sz_*`NHFgPs@91Ev)F?-26N;ch-* zY#^m*Hb5_&FyQgpQPpSQ+F`~cVD3c~h2hA*9QwUJAA7%DN!Dkwq(d9-H%X}Ur=cS$ z&J0|K9$dBTjL9?xS+Ga;V)g=e5Xb5pA}n29{HM$DCnX!ED)?(%1XQ$kt~d3w@Dn_X zZM&Hzlshfj6J$3oPmFuzT-q;_Qy08j%Wv4iulSI7K)38a=a~fPYYnP4>qG-oUa9FK z)q_;T2Kj-jWT^?Tag+k>^G^^K-7XtQe@p*#`_@O8)SQK?)FX1 zbGQ4{XfESmZ)W8SJ;&{g^D4uc4K8+m3UJJ)Z`%&Cv`j8q)AV**v}VDpy{(yTeeuOn z!KPr(T)B;;GpEV+0Fn=I6eQV#tztDuE zFI`6*!742aC)4QcJRDvkxTXU98PD zwou28D_{2O7fkoKCHq#dEuELu%|&*}PbTs58NC?rWb7Mv{fu>d^Q%M$aQX6{b}zAz zR=y$D9+X9jel=uP{iu$-6sk>3#-NxN2M-UAuIsBz!#>DsC4IUa?78n8HVw399BViaFhbViJZv|P$WmeA zSnmTl)nKgeeFMNc-eqq7MLa@~iI-sa(2^7GbgQcaV6zm8)E0Ms? zU|#BVdK#?p$my9G`IswDU?i^6;XM9a3jh;v{o4dJk1A5rzQ-gdCtug`Olax2F5VN3 zHH3*bd|n;7IL*(f`F89CyBexrkSanr4Y;sins>Rut@L8b-@G~E)fu=w?|^-D)umPV zqj2*R=5yPgLjS?kHCAW2mEg z+Q5Ue%a52PU zY<3+RCWA;(v~Iz$cZwR%4=%1PDV8^oHF`*4M9}|MuJ3qO1JBukFbebunK*nU#x9Bq zMeb?I4>v-9n1gDtMskNOBd=aM$YZ@@flRy-A?1izDMp+f5#i<7tUEXqZOcNSy@B9m zp`sUyUyRSdxKvoeQ*s)EEPKKF88L}R=8XO_%$CJeJsQRl? z`np+{_b9#-c5Sds#OmcUD;=<)wMH#&`qR{WdvOq$c%tn`HvBk!-(CYR1s}}#(1GIf zuXyo}W3X#It!2Mo2H)KWW-tt;BsgvYeMTnH^YAb zK<9|g?)P-V2WvkTy$PBlHokHee9_#I;50iUFD)(YYo-@^eg$wTi20IYdhe*cG|wRu zrCVS2hm}0`Y%zr15?D8YeZYLO@=gx&X0$l}P`Pl!RKQ8^Ve6og4>sbYJ*1rPZOg)9 zvTX^5(^SWEzK1D4LvVUIWQ|Z;SEpyN2@EwugA2IhR%Ansb5~IycSF*OV@VN?FGTTW z@$vBv!80>62F}jTf~K1zpHxIs?R>SRLjt4_kN8k|Id-DBcj4m)Gs82lhGv~)8bRSF zW#?p;er)pYI%4?<(}QEVm#e;vnNXyy-i5_id-u-Lp!xe(yRt@QEBjF+tmMRn`|J0l z%DrzbNt79Pn2rqhXgFE3Np;HtnfLK0$DKD;jm}#vVqb2|{@Y}(W@xBhYn*en<^LZ-iLYqQP+%0e8k*3kaQZeqPSTIG zpBxaT!K)2wCQpg}VZ{QgUTfnb_GWLh0#w!l>dG-z@9XApRptHEUq*r0V&CHCZ(n$b z;%szFfZnseg>cZ~byk8G4OCdpl)sYE`97#j^JQ<^bCY zQrwYA<5$UV>FKPd>Qf)=Pg z_K*B&>>V6L+MxOrY9pm{k;e-s*L}m_khAlU=O+{oFLa_-=A=>CTF%ku48$=^QrDly z7}ASCFt?BAj!|cVi+=c)nC@2yYZYFU4ls*qMa5;&vO~`j_A@th0kVI7jUTl+smhrJ zcuTmUq4xw1!<3*USEk=kP&={rZZm6XKw?llJbKpi^JzdbI zd;85Z)*cpw8y>P~r~Zfz>`H~Ds4%9m65H~w=q^jwb*y`UdyseQ&oo=tM*Rae1jH$>WFpUor5Np#y~<#R4B5+^ z282-;(Lg^5P6G#3tK>4Gw&IK+0CXn`@EM#j9OWdA!_o4&^uIu4bDuETM0r1RAqJ{i zsJ$fpw)l%eDma<})nCvmeMt-G4LRi?4yMO#zdi>wt>o6kHhZ<|JZjoTRZtINQrS0` zm&ghSCw73Md8}dl$I`Ye_htiFGj>Szup+>yTJUlJksagWCD!|Ob6k31n`p0;i$yF367S} zS>~X%T);snU3x)$44nu7x=i;0ecj{=7letm*(_pqV{3EIw8rs7JizLHzi*Zw|Yj`F( zs!00>LO}acW1Xt*Lz|cg=qhubxmEzI?>iPm#Wvt)*hAF```W#eS|H%Mw6eb3#1=36 zs+V)x?io-P=VG+`?b0CNJO)+|!cuOj&l)PO&t)PK1SW>K{AP#y&aK{nTbE)wlN%$X z!bI2aCziX=%#x%%5XHJIb9%+_s==%__&VBv7?2ct0Wh5FZO#A|pbsdu{$rrvR>9`D zaZBWPIAT4b=N>Qu#JLr0Jc{82A$Uv@89An$S>a+l2{ygv_Q;Cjqm6+CM@VBAGj9~KstZ}m9f(5_JN{X9UlDEo)QVm2!2;hE;(ivJtTsMP=8&8VNJ z^1qJACg%DpEXSMK+1NQaG=`t0K~jVSfMI;uW)F5HbVtL=<7T-JY=0y(J!2q&R>Ro* zbhx{n*%LZ|)Z=ckW>L8T5m{Cnn#I?qy2X0Hq;xW@;(; z8(j`OXynjgn4tco>c_#smv#s}#2%pOyg2pbTrWiR8YasoOF`y!)O&AJ1E_`)Zb=jY zQEx&T*@ER|W9R0MbNhP+`Q);-)R`cpvo(&DEe;4)fMH)CEZ)Y3hU?N0pX*#T4XJEt z%5WF@90Z1tRiq%kWt|G5ifAb?78J6tYnQ@& z+R`FrXr)Xx8?bw6_-Hw<>^UO+Gqmx-5kGr-vUg}FV=pU}@%I!HP`0U$9z9~V6RFJi z9PWhRpS(@26u&<3o7S;jnrV6R`K^npmsU%h|08~oweCuygQ47jE0SG-&jn2LMJ&@Y+BT(q_Fskf z2ZM~}kp@Kj0zi)hNGbvXgTUG{5GGL><V=mv5IUzhQ-c%dj&MLK*Yvwy92o#1pCOUy5+<+&Y|W`{byp^hDP1x!z~b4z}F2Qa&jt z^}q=7p1^n?p@03QvyvHTTJ76R8-icIe2_T;9H=%Yu&7$yy5xgd7HujrQ|l&8g6hxv zqj)Lm1a0OrLhw_U`>AVbTQ~gZN$drD#sn0xO!Gd^tX^(=q)#g}73Ytagg>C{$ zGtcw#Fwx~4*BZZ6ueIM1IuM_p1TE3YybzH+JdZ!V{n1Mn;8tpbdR@)MjO!hl8A4W_ zyiJ6r&ucF=oqT=hD25)SF}=MvD8+psH2p34!68uw)u+s{`7kd7nb@bHptA6XEQ`_h z9){DhYO*uoUqP}|#!LFjh=Gw0#a&P-NE>6{V`sX<`^<;DjNJwLUKv}&i9L9K&Av$z z#h|kR>OSg909P{`kmI981faWoJvRzCzMC&p(V=KNU=cV818yUK8_M78hDe}Ob96F1 z%vug~4FPNKFbgG|ON!S^17YF;z}wNL<2EPPzE}gutarMq4Pw#f%e!WkIeU|Mlw61|$aAR*!Q(?5>^r=qR?=^QcA^(H52NhGQFGpaW+@ao)q*7u-7><5 z<%RE`fM-_$f#!y&m=c&`g5Wr-Yui(1iI!RHF3gSX8HL%;kLgE?yCY0Fd_Rz1R~Wo` zqZcC}_0W-V-86i{^0^mM@VXC-tP7U{54?J=c*u+W0|WVax)3voH|m1yt629kGUl*? zU;EY9jnaexbj>JqfXswN8HjBGrT__u3z0}b*FY#;osUz-Neen|A1j`p?%)1$G605p z(QzY)!7>E<+@B4jB#_7JcBv-$Cg~ z2z%Q!iCAl>CUj@BilqQK2?()hP-K4)=x6p&;N_-0O9InDC=+cZ*K^ag;!1siynB!> ztf7}U6KS@(PwzLzn=TE)V5mC>GaO;6_IfCjF}eX5*F`lH6f0m~#pM@*SwnXGtm71(p4Guc&-MhI`QIF<#lX#( zkjs~E*V8AbyqEufdd zqA+r>Y4s*<43qp;yEqLxx(Sh9bqKsR#{f$vadboEj!FOcKgC{TFNS*jHXP5d<9gx6 zLLpF0qKw(;iV^4AsFb`(?A;}YEX5N!b&0fivKxG~;KVGud5OXKJV{`^?EqDl{trOC zHXxL$^di9FVxr+=_X7Ifl{KmflMj1Rh;y+-ZAi}@dh*oP+uTse%5W-3{KjkX7MZSg zJIVsU;xVN@rS`zKY_|6F+#`P~-c!vAZ=xB41`3-m3keJm610IGQ`H#3Mupju*me&9 zPrV4N8MCy6#MSZ9r4)uS$Cy0FOGp(7iutX55 zVX6J-;VYlj;q`i`P`6!rj>tW4ff!9BM422WMyJf)yRnuEQ^4BW*QY+r&NOrS)t7GPdl<)5#u!XKjM`!ISVO@Y6^KTt6Nx}0QXCfv>Re#%zW&o&sW z6tr`Ea`MXW)}~`cd;wQp%5#6b>g@U9@q0B1H_KCrxK5Ed%4?Y@F29z0t8?Up_osOK zeMA0ZK!WoS;f-m_I_{=CA#*RcNc?Htb{j31gt6H@b`W?lxvN?h$EHUd_4W%r`;z&~ z95hvhx0ocEhOyx zXwY?Qa8;FQQJ36!D~@fTcQ$XLCu2~@EV}>*-FB7ozMD_yYi#E?GMdw=a% zf|LVaL$|pP+~?~*Jh?K9x+Q>DUNb$<+Hsu4oEV~^SLB|D9D%;p9<@Q8EGqqR`BK;9 zA-}BAtUq&vEPxwRV4>~k0gweT@V7O;UGF%MUAS&{ZqJN7vFw1sNwc|{9AE3hq&;i5 z=By7<+{}b`V%(8tch^+or2LXgmBVytbJuY1n54p3+Dw>Qu?s`{z^1@#C*7MatZ~2Z zRNZd(RzCT1hSL;yBc&D@fbXi5n2_IUdLI2R6n_T~BOZVRm%|(5P;%*FquFpe2JmVK45dQQ70I~AL*l3X7HYchn)XJ4)JS<;?vvx;pqU^{O<+lwa zjYW`Qmz7+hCFnqd1>|?QsqKm)nF24|0MqPfYT?6Q+y~@0qL&|bie9$gR{B7oPMpJ$ z4ZvS0v3~~&gyp{j1uH7i8M+dg1OTrn#fIxYMhXUhh!kXwjL(T$4z(#fubQwMFF9kw zEOB6t^_-mcwQ$*!327N2HMNI`-D6UXHO-SnqZUn2k+aRW`^$-#(!^1MP%C6j^$5Gh zFuxj-+(Gjq6Q~>=m=ms}+g{~%^}L)6n&^4r`-IIMM?%}8k1vSZCr)|V3pPK5)wb# z>Up;s`o}!02!$sac@c!@xZ0VV8pXbKs9Q|P6FJw;i z6nFQ}^v{$`73I#!o}S@RJ+qv#X2=prRS9*Z&a#cAYOmh7knu3~m}||BbyK-Pa~g9I zqiY1+*~d+vy|yK&WSuf1j?SFD?fYuTmR@^}?H9`9-srcG(7?I{xZ18VJ_1QVaiktAEFe3iIz`K=#OgyK!dyRy8&8tnv#yxC;KMtLmua I?6>s)Kf?IxeE$=YCJdg7@_G91oQ;?RX3Khj!iX%skP^sdu z_#;P%d5;_+5+*wiS28+XejGW1KB9_Myy0rJ@RHQ^hSKKejv=ZlRa$K=Ep1x%eviA$ z$2^ED`n2BnDQIK!pHLlp&&R<>bc>`d@T8LV!ZQyk#k^DwQ>9t%r)D#Ul@lX-2~IH@ z{ah7^F3Ev`5eqM$U#Pk8C()%t+A%IK>Iiw{zy2stptSf+h&9kh>HhsE6*I>3?^oz> zz3jjJKM_|X9SNT%zMe|lmjw6ZUw_7*di>k}li<+YWLin- zPnjN&{QJm`G?H)r>qz0h71U6#FskHI-^l)Bu)*|8|1o}_ShRwDG@Z>W+J7G^yulFh ze_Y~Md@|0(J*2?-??Z(*C?)-mOL*TSjjC#;KFa?#iATt_lI&>y<5D`w(cqX^JL0ha zn8jC^G1mXM^#5XF%`iSDqJ13&?^VxKs|!bvoKsh@lI>rue0*}LmQ?lc8d-+H%jTp` zW4W}XU^3RMd9ahGtn;TZ6ygJpKE0O`erdrpmDE0*IejF2Z6(*zE6)v7xHWkjRrhkRWTE6sT zeiNBf5oAsk=HQyD7hC6Ly3A8Br!HF>UJ95d^kArx!}E%o10tqxeDec`{Sn=8L#p2@!i(x zuWs?IR*7KMH#awDVWaTpiI=c}e?C@LR@y3Ic^#M3*+Ry-zRP}DzZnY;RZ{&UjYMMR zB^bW;g7sjs79Q_#T~V>lxW!r3+1Ytl0d4no#*LBt?!zW~8-^$$!(Nt2%vS?i-CyNP z+(Dm9tatIW+c4`=f8I}EvMDGjU35$B#@K>(dM0P2rKO$GDA%t}!#01WXZs6hsHx71 zZ?Q8|FT=>>a>IorW@qO5ZeI7|*R%{4Y|@Z|LCj8{AGk`yrNsts{ZLr*AYU+B#mH!6 zxn<;ptjET}^SC&P;nhmR==07+n3neTVLfb*4wr-J;Km7BAC``c7>rL2JoeJe%#643 zaC4CLpv3fy*_LGgU9BXpM82l0I>Hsd zSm|eUzgEj))tk4C!yEHuERhE`xSY!v`L0KEGU{V2-m$31P^P1zVU#O;LY+S9l0mOf zo^?eb-csgkCr1Geo9t}pQfWP?6VyD#(WQ&6)>hN7Gu(`7eJI{!AO2l0f+6Y_huC%O zV;!|(#mP@4i~2=9A(vCX71Gw7*Rt{|!?$+nb?^%dR~M$In_0Y84$I3G<|t6Js;Xa= zX|hi``FJv2|D%m{qPT_FO>FXS8Czx1(?cBfQzo?iXpZX!y)0vxuSO>0ZX-blXB`|I zGz$giO*&SOf4aN(L&tdE_r71o#wjJy>>Tf9^^!5tK~ddh7}K#c-UvR zd0QU7^w@kaGQ0zyl>WN+fujcGx-9Z{%rQv%jK2EHD2Tqv-l4ds!y;$%g#TqL7>855 z`C@u(d3t7MrrWJsJv3@r`#m}OAB*fKJ{ttM&A5#2A_C_5tKx%m3>2~izf8Pk zUeC^WT3VV2lZ54?48p>q+ej9K;KSipihlfKc3a-u+}z)1I#O!tugzO_XGUejy6ao* zm(IA+sPsruuG+w3UD2oq=DIzuIqQNQtE_p}yED0vnMdTLCt+m^F511BR&d0iF4K|aXE#8luqI_{taViZtIwZhw07d zK*XpGmb4XEhguI_Or6x%~FBCT=2-PqVAfOuC zj2}`z6~a)NI^$fYPb_7}zQ`z+^PXyryTB-7RG9^-V{mJ9PUY<`wz|coVeI!ts@8+^ zzb=Je$P~1v3;LwKA!92bzt~)|=!H#BopEEk!J8xCP%87qY1lCh+sT{}%P64vaPYu@ z-=8dy?KwG#U!6d3aPVg#gVH=cBRw4qvz#8kKk+_UuTx6+dncWobw(yBn<4kHdVi}w zg(jk|dFHwislu=+Xrr3jPZCZC5k5ZbF9=^8C@yR>UBG;O%drwVUw-#>&v_bOoYlTL z8f6y}99*)x4?!QrA@<2>_{!_XAah;)1atj6cgB{&&PwQ=qz)`xU0r2-WegeZ?fdud z{q~E`=VU7%=+`T%qNkAjS{d>HjZ|-36&-IB@sgq%KSRbu?e4}Kjl`uydGCY0=KC4N zWGLQvbB$FQTVC&!SYFMd9@hiAUZ>qpgE~KGc?l#0TryiHp^w7;8%H=s@%-Uf^2}6I zA!jm1u`0Ny9BU=Z$3RhanwF!*k;ykgu1M(>}64pTei-JrS3GPkoj1= zenoCbw*)q3Tny5ye91Aty4_g35`>(;0$Oy~X_#fd#lg{0-y$cWEO(G0%do^c5q9r_ zPQ3M)-D&5Jb(s$ux;3K=yn7;S;nFY&W`tJ7&b8aK%)j}oK*L2kO=~R-?dPgp)*Lh$C4a#5zgK*pe zoDRP0d-rrtb$z4e=i}Qt7frMo4l6Y^HDz6oF)V*%F;rmQ_BE3>D0KH?nz-KlAjIG7 z_V%`sTj*es#cElPd(n(rrqv&74;?Gn>sI@B(5NlX;c_SI{TtcMPAzv0dylCQSUF+% z1KL(By(J3hJOlpqgr4%(Gj27hY!5B_^2W~R&T9sTHu!F>?JP6oaQmbqfQ&+!`Z59s zB-D^3HCW;i)GXSus`WEWJVRJ5t0O^3zvmdKOOyR$NHA5f?>3{FRo`RkR#U8pO7jKq zFPWRlZez6q^Opmtn5wM?ie_mz9Lnd*ZD*#ZCCLIC*y3Vi4Q^^_{dRM9-q?UG&DpVf z@mA04Qe`P9Hj-%c&lJv&{#B+G#}9hCfRv{b%i-8s&MB6}~; zAvstgPZzZ*+rbo0piH|EZ@xcPzEl+@k+4%%P>pMv(RGXtH+tPJ0k|`rC(}V4!4NoM zA9rp|4pIZ=*3H_mn;c!5Sk?`h<$S{JGY@rp;>PS;-}SgFKb++1I=qw7&97%w$w;!! zvYWa!v|4$MrAb=NN>+*AKbyd$99$N-E$qlVbBydvM)#3kC;N$8{!F>lJ$jrDD}{uj zUcH)!y0;qonh}6f2-}%giKN6cFjgp|JFZkiu;6n;96obQcvQ zcza7rOTOT|TLy!XJ0Y`?(W>WtnR92FQZ{D*DRYzVyJFU*3xW~$*t}t0j;7#dx*?-C z#nl|JWm#zrB9tiRHbeUMBk*Νpous<8?oR*4fB!{Q#1G#+KEFyBpEH8r)btH$DI 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 literal 0 HcmV?d00001 diff --git a/BasicObject/dict/before_py36.png b/BasicObject/dict/before_py36.png new file mode 100644 index 0000000000000000000000000000000000000000..bfd4252758be589417a44b403e4bfe600f59c624 GIT binary patch literal 23268 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 literal 0 HcmV?d00001 diff --git a/BasicObject/dict/dict.md b/BasicObject/dict/dict.md index b33b829..11b993e 100644 --- a/BasicObject/dict/dict.md +++ b/BasicObject/dict/dict.md @@ -2,9 +2,10 @@ # contents -because the **PyDictObject** is a little bit more complicated than other basic objects, I will not show `__setitem__`/`__getitem__` step by step, instead, I will illustrate in the middle of some concept +[related file](#related-file) + +[evolvement and implementation](#evolvement-and-implementation) -* [related file](#related-file) * [memory layout](#memory-layout) * [combined table && split table](#combined-table-&&-split-table) * [indices and entries](#indices-and-entries) @@ -24,19 +25,27 @@ because the **PyDictObject** is a little bit more complicated than other basic o * cpython/Include/cpython/dictobject.h -# memory layout +# evolvement and implementation before we dive into the memory layout of python dictionary, let's imagine what normal dictionary object looks like -usually, we implement a dictionary as a hash table, it takes O(1) time to look up an element, that's how exactly CPython does. +usually, we implement a dictionary as a hash table, it takes O(1) time to look up an element, that's how exactly CPython does this is an entry, which points to a hash table inside the python dictionary object before python3.6 -![entry_before](https://img-blog.csdnimg.cn/20190311111041784.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMxNzIwMzI5,size_16,color_FFFFFF,t_70) +![before_py36](./before_py36.png) If you have many large sparse hash tables, it will waste lots of memory. In order to represent the hash table in a more compact way, you can split indices and real key-value object inside the hashtable(After python3.6) -![entry_after](https://img-blog.csdnimg.cn/20190311114021201.png) +![after_py36](./after_py36.png) + +`indices` points to an array of index, `entries` points to where the origin content stores + +You can think `indices` as a simpler version hash table, and `entries` as an array, which stores each origin hash value, key, and value as an element + +Whenever you search for an element or insert a new element, according to the value of hash reslut mod the size of `indices`, you are able to get an index in the `indices` array, and get the result you want from the `entries` according to the newly get index + + It takes about half of the original memory to store the same hash table, and we can traverse the hash table in the same order as we insert/delete items. Before python3.6 it's not possible to retain the order of key/value in the hash table due to the resize/rehash operation. For those who needs more detail, please refer to [python-dev](https://mail.python.org/pipermail/python-dev/2012-December/123028.html) and [pypy-blog](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html) diff --git a/BasicObject/dict/dict_cn.md b/BasicObject/dict/dict_cn.md index 72125b4..d3ad184 100644 --- a/BasicObject/dict/dict_cn.md +++ b/BasicObject/dict/dict_cn.md @@ -1,57 +1,77 @@ -# dict - -# 目录 - -因为 **PyDictObject** 比其他的基本对象稍微复杂一点点,我不会在这里一步一步的展示 `__setitem__`/`__getitem__` 的过程,这些基本步骤会穿插在一些概念的解释里面一起说明 +# 字典 * [相关位置文件](#相关位置文件) -* [内存构造](#内存构造) - * [combined table && split table](#combined-table-&&-split-table) - * [indices and entries](#indices-and-entries) +* [演变和实现](#演变和实现) +* [内存构造](#演变和实现) + * [combined table 和 split table](#combined-table-和-split-table) + * [indices 和 entries](#indices-和-entries) * [哈希碰撞与删除](#哈希碰撞与删除) * [表扩展](#表扩展) -* [类型可变的indices数组](#类型可变的indices数组) -* [free list](#free-list) +* [indices数组](#indices数组) +* [缓冲池](#缓冲池) * [删除操作](#删除操作) - * [为什么标记成 DKIX_DUMMY](#为什么标记成-DKIX_DUMMY) - * [entries 中的删除](#entries-中的删除) + * [为什么标记成 DKIX_DUMMY](#为什么标记成-DKIX_DUMMY) + * [entries 中的删除](#entries-中的删除) * [结束](#结束) + # 相关位置文件 + * cpython/Objects/dictobject.c * cpython/Objects/clinic/dictobject.c.h * cpython/Include/dictobject.h * cpython/Include/cpython/dictobject.h -# 内存构造 -在深入看python 字典对象的内存构造之前,我们先来想象一下,如果让我们自己造一个字典对象会长成什么样呢? +# 演变和实现 -通常情况下,我们会用哈希表来实现一个字典对象,你只用花O(1)的时间即可以完成对一个元素的查找,这也是 CPython 的实现方式 +在深入看 CPython 字典对象的内部构造和实现之前,我们先来想象一下,如果让我们自己造一个字典对象会长成什么样呢? -下图是在 python3.6 版本之前,一个指向 python 内部字典对象的入口指针 +通常情况下,我们会用哈希表来实现一个字典对象,平均情况下你只需要花费 O(1) 的时间复杂度即可以完成对一个元素的查找,这也是 CPython 的实现方式 -![entry_before](https://img-blog.csdnimg.cn/20190311111041784.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMxNzIwMzI5,size_16,color_FFFFFF,t_70) +下图是在 [python3.6](https://github.com/python/cpython/commit/742da040db28e1284615e88874d5c952da80344e ) 版本之前,一个指向 python 内部字典对象的入口指针 -如果你有很多稀疏的哈希表,会浪费很多内存空间,为了用更紧凑的方式来实现哈希表,可以把 哈希索引 和 真正的键值对分开存放,下图是 python3.6 版本以后的实现方式 +![before_py36](./before_py36.png) -![entry_after](https://img-blog.csdnimg.cn/20190311114021201.png) +如果你的应用场景下有比较多的字典对象, 当它们以稀疏的哈希表存储时,会浪费较多的内存空间,为了用更紧凑的方式来实现哈希表,可以把 哈希索引 和 真正的键值对分开存放,下图是 python3.6 版本以后的实现方式 -只花费了之前差不多一半的内存,就存下了同样的一张哈希表,而且我们可以在 resize 时保持键值对的顺序,需要更详细的内容,请参考 [python-dev](https://mail.python.org/pipermail/python-dev/2012-December/123028.html) 和 [pypy-blog](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html) +下图是 python3.6 版本以后的实现方式 -现在,我们来看看 **PyDictObject** 的内存构造 +![after_py36](./after_py36.png) -![memory layout](https://img-blog.csdnimg.cn/20190308144931301.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMxNzIwMzI5,size_16,color_FFFFFF,t_70) +`indices` 指向了一列索引, `entries` 指向了原本的存储哈希表内容的结构 -## combined table && split table +你可以把 `indices` 理解成新的简化版的哈希表, `entries` 理解成一个数组, 数组中的每个元素是原本应该存储的哈希结果,键和值 -第一次看到 **PyDictObject** 的定义是很懵逼的,**ma_values** 是什么? 怎么 **PyDictKeysObject** 和上面看到的 indices/entries 结构长得不太一样? +查找或者插入一个元素的时候, 根据键的哈希值结果取模 `indices` 的长度, 就能得到对应的数组下标, 再根据对应的数组下标到 `entries` 中获取到对应的结果, 比如 `hash("key2") % 8` 的结果是 `3`, 那么 `indices[3]` 的值是 `1`, 这时候到 `entries` 中找到对应的 `entries[1]` 既为所求的结果 -源代码是这么注释的,我给翻译一下 +![after_py36_search](./after_py36_search.png) -```python3 +这么做的好处是空间利用率得到了较大的提升, 我们以64 位操作系统为例, 每个指针的长度为 8 字节, 则原本需要 `8 * 3 * 8` 为 `192` + +现在变成了 `8 * 3 * 3 + 1 * 8` 为 `80`, 节省了 58% 左右的内存空间 + +并且由于 `entries` 是按照插入顺序进行插入的数组, 对字典进行遍历时能按照插入顺序进行遍历, 而在旧的哈希表方案中, 由于不同键的哈希值不一样, 哈希表中的顺序是按照哈希值大小排序的, 遍历时从前往后遍历表现起来就是 "无序" 的, 这也是为什么 python3.6 以前的版本字典对象是 **无序** 的但是 python3.6 以后的版本字典对象是 **有序**的原因 + +![after_py36_space](./after_py36_space.png) + +这个方案最初是由 [PyPy](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html) 提出, 并在 [pep 468](https://www.python.org/dev/peps/pep-0468/]) 中引入到了 CPython, 在 python3.6 版本进行了实现 + +# 内存构造 + +我们来看看 **PyDictObject** 的内存构造 + +![PyDictObject](./PyDictObject.png) + +## combined table 和 split table + +第一次看到 **PyDictObject** 的定义是很疑惑的,**ma_values** 是什么? 怎么 **PyDictKeysObject** 和上面看到的 indices/entries 结构长得不太一样 ? + +下面是经过翻译的源代码注释 + +```c /* 字典对象可以按照以下两种方式来表示 The DictObject can be in one of two forms. @@ -75,7 +95,6 @@ Or: 所有共享的 哈希键值 必须是按照同样顺序插入的 All dicts sharing same key must have same insertion order. */ - ``` 什么意思呢? 在什么情况下字段对象会共享同样的键,但是不共享值呢? 而且键还只能是 unicode 对象,字典对象中的键还不能被删除? 我们来试试看 @@ -114,25 +133,19 @@ in lookdict_split, address of PyDictObject: 0x10bdbbc00, address of PyDictKeysOb # 现在,看不到 lookdict_split 的输出了,说明已经变成了 combined table >>> b2.b 4 - ``` -split table 可以在你对同个class有非常多实例的时候节省很多内存,这些实例在满足上述条件时,都会共享同一个 PyDictKeysObject, 更多关于实现方面的细节请参考 [PEP 412 -- Key-Sharing Dictionary](https://www.python.org/dev/peps/pep-0412/) - -![dict_shares](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/dict_shares.png) +`split table` 可以在你对同个`class` 有非常多实例的时候节省很多内存,这些实例在满足上述条件时,都会共享同一个 `PyDictKeysObject`, 更多关于实现方面的细节请参考 [PEP 412 -- Key-Sharing Dictionary](https://www.python.org/dev/peps/pep-0412/) -## indices and entries +## indices 和 entries -我们进到源代码里看一下 cpython 如何在 **PyDictKeysObject** 中实现 indices/entries, **char dk_indices[]** 又是什么意思? +我们进到源代码里看一下 CPython 如何在 **PyDictKeysObject** 中实现 indices/entries, **char dk_indices[]** 又是什么意思? ```c /* -这是代码本身的注释,我来翻译一下 +这是代码本身的注释,我进行了翻译 dk_indices 是真正的哈希表,他在 entries 存储了哈希的索引,或者 DKIX_EMPTY(-1) 和 DKIX_DUMMY(-2) 的一种 -dk_indices is actual hashtable. It holds index in entries, or DKIX_EMPTY(-1) -or DKIX_DUMMY(-2). dk_size 字段表示 indices 的大小,但是这个字段的类型是可以根据表的大小变化的 -Size of indices is dk_size. Type of each index in indices is vary on dk_size: * int8 for dk_size <= 128 * int16 for 256 <= dk_size <= 2**15 @@ -140,13 +153,8 @@ Size of indices is dk_size. Type of each index in indices is vary on dk_size: * int64 for 2**32 <= dk_size dk_entries 是一个数组,里面的对象类型是 PyDictKeyEntry, 他的大小可以用 USABLE_FRACTION 这个宏来表示, DK_ENTRIES(dk) 可以获得真正哈希键对值的第一个入口 -dk_entries is array of PyDictKeyEntry. It's size is USABLE_FRACTION(dk_size). -DK_ENTRIES(dk) can be used to get pointer to entries. # 注意, DKIX_EMPTY 和 DKIX_DUMMY 是用负数表示的,所有 dk_indices 里面的索引类型也需要用有符号整数表示,int16 用来表示 dk_size 为 256 的表 -NOTE: Since negative value is used for DKIX_EMPTY and DKIX_DUMMY, type of -dk_indices entry is signed integer and int16 is used for table which -dk_size == 256. */ #define DK_SIZE(dk) ((dk)->dk_size) @@ -186,86 +194,84 @@ PyDictKeyEntry *entries = (PyDictKeyEntry *) pointer_to_entries; ``` -现在就很清晰了 +现在就比较清晰 -![dictkeys_basic](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/dictkeys_basic.png) +![dictkeys_basic](./dictkeys_basic.png) + +`indices` 和 `entries` 是一段连续的连起来的空间, `indices` 指向前面介绍的哈希索引, `entries` 指向真正存储数据的数组头部 # 哈希碰撞与删除 -cpython 是怎么处理字典对象里的哈希碰撞的呢? 除了依靠一个好的哈希函数,cpython 还依赖 perturb 策略, -我们来读一读源代码看看 +CPython 是怎么处理字典对象里的哈希碰撞的呢? 除了依靠一个好的哈希函数,cpython 还实现了一个 perturb 策略 +我们可以截取部分源代码注释看下 ```python3 - j = ((5*j) + 1) mod 2**i -0 -> 1 -> 6 -> 7 -> 4 -> 5 -> 2 -> 3 -> 0 [and here it's repeating] +0 -> 1 -> 6 -> 7 -> 4 -> 5 -> 2 -> 3 -> 0 [开始下次循环] perturb >>= PERTURB_SHIFT; j = (5*j) + 1 + perturb; use j % 2**i as the next table index; - ``` -我更改了部分源代使得每次打印出更多信息 +我更改了部分源代使得每次打印出更多信息, 更改后的代码可在参考资料中找到 ```python3 - >>> d = dict() ->>> d[1] = 1 -: 1, ix: -1, address of ep0: 0x10870d798, dk->dk_indices: 0x10870d790 -ma_used: 0, ma_version_tag: 11313, PyDictKeyObject.dk_refcnt: 1, PyDictKeyObject.dk_size: 8, PyDictKeyObject.dk_usable: 5, PyDictKeyObject.dk_nentries: 0 -DK_SIZE(dk): 8, DK_IXSIZE(dk): 1, DK_SIZE(dk) * DK_IXSIZE(dk): 8, &((int8_t *)((dk)->dk_indices))[DK_SIZE(dk) * DK_IXSIZE(dk)]): 0x10870d798 - +>>> d[1] = "value1" >>> repr(d) -ma_used: 1, ma_version_tag: 11322, PyDictKeyObject.dk_refcnt: 1, PyDictKeyObject.dk_size: 8, PyDictKeyObject.dk_usable: 4, PyDictKeyObject.dk_nentries: 1 +ma_used: 1, ma_version_tag: 16667, PyDictKeyObject.dk_refcnt: 1, PyDictKeyObject.dk_size: 8, PyDictKeyObject.dk_usable: 4, PyDictKeyObject.dk_nentries: 1 index: 0 ix: -1 DKIX_EMPTY -index: 1 ix: 0 me_hash: 1, me_key: 1, me_value: 1 +index: 1 ix: 0 me_hash: 1, me_key: 1, me_value: 'value1' index: 2 ix: -1 DKIX_EMPTY index: 3 ix: -1 DKIX_EMPTY index: 4 ix: -1 DKIX_EMPTY index: 5 ix: -1 DKIX_EMPTY index: 6 ix: -1 DKIX_EMPTY index: 7 ix: -1 DKIX_EMPTY -'{1: 1}' - +"{1: 'value1'}" ``` -这里 indices 是索引, 索引里面 **-1(DKIX_EMPTY)** 表示这个坑位是空的, 现在代码里设置了 d[1] = 1, hash(1) & mask == 1, 会对应到 indices 的下标为 1 的坑位上, 这个坑位原本是 -1(DKIX_EMPTY) 表示没有被占用过, 马上占用他, 把这里的 -1 改成 entries 里面第一个空余的真正的存储 key 和 value 的位置, 这个位置是 0, 所以就把 0 存储到了 indices[1] 里 +这里 indices 是索引, 索引里面 **-1(DKIX_EMPTY)** 表示这个位置是空的, 现在代码里设置了 `d[1] = "value1"`, 而`hash(1) & mask == 1`, 会对应到 indices 的下标为 1 的位置上, 这个位置原本是 `-1(DKIX_EMPTY)`, 表示没有被占用过, 马上占用他, 把这里的 `-1` 改成 entries 里面第一个空余的真正的存储 key 和 value 的位置, 这个位置是 0, 所以就把 0 存储到了 `indices[1]` 里 -![hh_1](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/hh_1.png) +![hh_1](./hh_1.png) ```python3 -d[4] = 4 - +d[4] = "value4" ``` -![hh_2](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/hh_2.png) +![hh_2](./hh_2.png) -```python3 -d[7] = 111 +每新增一个元素, `dk_usable` 就减小1, `dk_nentries` 就增加1 +```python3 +d[7] = "value7" ``` -![hh_3](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/hh_3.png) +![hh_3](./hh_3.png) ```python3 -# 删除的时候并不会把索引清除,而是把对应那格的索引标记成 DKIX_DUMMY, DKIX_DUMMY 数字表示为 -2 +# 在删除的时候并不会把索引清除,而是把对应那格的索引标记成 DKIX_DUMMY, DKIX_DUMMY 数字表示为 -2 # 并且 dk_usable 和 dk_nentries 并没有改变 del d[4] - ``` -![hh_4](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/hh_4.png) +![hh_4](./hh_4.png) ```python3 # 注意, dk_usable 和 dk_nentries 现在变了 -d[0] = 0 - +d[0] = "value0" ``` -![hh_5](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/hh_5.png) +![hh_5](./hh_5.png) + +我们此时插入一个哈希结果为 16 的键的话, `hash (16) & mask == 0`, 而 `0` 已经被占用, 就产生了哈希碰撞, 在一些常规的哈希表的实现中, 比如 `Redis` 的 `hashtable` 使用的是开链法, CPython 的 `set` 对象使用的是线性探测法, 而CPython 的 `dict` 对象中为了避免上述两种方法的缺点, 实现了一套更加分散的探测方法(篇幅限制就不展开细说了, 有兴趣的同学可以参考源码注释) + +![dict_prob](./dict_prob.png) + +我们现在插入 `d[16] = "value16"` 看看结果 ```python3 -d[16] = 16 +d[16] = "value16" # hash (16) & mask == 0 # 但是索引位置 0 已经被 key: 0, value: 0 这个对象占用了 # 当前 perturb = 16, PERTURB_SHIFT = 5, i = 0 @@ -276,44 +282,76 @@ d[16] = 16 # 所以, perturb >>= PERTURB_SHIFT ===> perturb == 0 # i = (i*5 + perturb + 1) & mask ===> i = 6 # 此时索引位置 6 是空的,插入 - ``` -![hh_6](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/hh_6.png) +![hh_6](./hh_6.png) # 表扩展 +现在, `dk_usable` 为 0, `dk_nentries` 为 5, 说明当前表中存储的元素已经达到了阈值, 再插入一组对象试试 + ```python3 -# 现在, dk_usable 为 0, dk_nentries 为 5 -# 再插入一个对象试试 -d[5] = 5 -# 第一步,表达到了阈值,扩展表,并复制 -# 索引里被标记成 DKIX_DUMMY 不会被复制,所以索引对应的位置后面的元素都会往前移 +d[5] = "value5" +``` + +第一步,表达到了阈值,扩展表,并复制 + +索引里被标记成 `DKIX_DUMMY` 不会被复制,所以索引对应的位置后面的元素都会往前移 + +第二步, 插入 +```python3 +key: 5, value: "value5" ``` -![resize](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/resize.png) +![resize](./resize.png) + +# indices数组 + +indices 数组的大小是可变的,当你的哈希表大小 <= 128 时,索引数组的元素类型为 int_8, 表变大时会相应地用 int16, int32 或者 int64 来表示,这样做可以节省内存使用,这个策略在上面代码注释部分解释过了 + +![indices](./indices.png) + +# 缓冲池 ```python3 -# 第二步, 插入 key: 5, value: 5 +#ifndef PyDict_MAXFREELIST +#define PyDict_MAXFREELIST 80 +#endif +static PyDictObject *free_list[PyDict_MAXFREELIST]; +``` + +CPython 同时使用了 free_list 来重新循环使用那些被删除掉的字典对象,这样做的好处是可以避免内存碎片并且提高性能 + +每个进程都拥有一个全局变量 `free_list` +![free_list0](./free_list0.png) + +如果我们创建一个新的 `dict` 对象, 创建新对象的内存分配过程会用到 CPython 的 [内存管理机制](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/memory_management_cn.md) + +```python3 +d = dict() ``` -# 类型可变的indices数组 -indices 数组的大小是可变的,当你的哈希表大小 <= 128 时,索引数组的元素类型为 int_8, 表变大时会用 int16 或者 int64 来表示,这样做可以节省内存使用,这个策略在上面代码注释部分说明过了 +![free_list1](./free_list1.png) -# free list +之后我们再删除这个字典对象 ```python3 -static PyDictObject *free_list[PyDict_MAXFREELIST]; +del a +``` + +![free_list2](./free_list2.png)下一次你创建一个新的 `dict` 对象时, 会优先检查 `free_list` 中是否有可用的对象, 如果有的话则从 `free_list` 取, 如果没有的话, 再从 CPython 的 [内存管理机制](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/memory_management_cn.md) 申请 +```python3 +d = dict() ``` -cpython 也会用 free_list 来重新循环使用那些被删除掉的字典对象,可以避免内存碎片和提高性能,需要图解的同学可以参考 [list](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/list_cn.md#%E4%B8%BA%E4%BB%80%E4%B9%88%E7%94%A8-free-list), cpython set 使用了同样的策略,里面有图片解释 +![free_list3](./free_list3.png) # 删除操作 -字典中元素的删除使用的是 [lazy deletion](https://en.wikipedia.org/wiki/Lazy_deletion) 策略(上面已展示过) +字典中元素的删除使用的是 [惰性删除](https://en.wikipedia.org/wiki/Lazy_deletion) 的策略(前面已展示过) ## 为什么标记成 DKIX_DUMMY @@ -368,12 +406,12 @@ index: 0 1 2 3 4 5 6 7 ## entries 中的删除 -dict 对象需要保证字典中元素按照 [插入顺序](https://mail.python.org/pipermail/python-dev/2017-December/151283.html) 来进行保存, 删除操作不能对 **entries** 中的元素进行排序 +删除操作不对 **entries** 中的元素进行重新排序, 这么做可以保证字典中的元素存储顺序是按照 [插入顺序](https://mail.python.org/pipermail/python-dev/2017-December/151283.html) 来进行保存的 -把 entries[i] 当成空的值, 在后续表扩展/压缩时再重新压缩这部分空余的空间, 这样做可以保持删除操作的平均时间复杂度为 O(1) +并且把 `entries[i]` 当成空的值, 在后续表扩展/压缩时再重新压缩这部分空余的空间, 可以保持删除操作的平均时间复杂度为 O(1), 这在算法中是一种平摊(amortized)的思想 -并且通常情况下字典对象的删除操作并不普遍, 只有部分情况下会导致性能变慢([PyPy Status Blog](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html)) +并且通常情况下字典对象的删除操作并不普遍, 只有部分情况下会导致性能变慢 -#### 结束 +# 结束 -现在,我们大致弄明白了 cpython 字典对象的内部实现了! \ No newline at end of file +看似简单的字典对象, 实际上底层实现起来包括了不少的计算机体系的知识, 看似复杂, 但其实大部分都是我们熟悉的算法和数据结构的知识 \ No newline at end of file diff --git a/BasicObject/dict/dict_prob.png b/BasicObject/dict/dict_prob.png new file mode 100644 index 0000000000000000000000000000000000000000..07d0c4a149e447fd94dd2642e5706b904e89e149 GIT binary patch literal 33436 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

+OEpuiyq#~T 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%0DYI4=Z)vCL6$ z9wOpmH-aO*p9JQ*(}F3mQaBULt1MaE8sb~gU@}s9`!+z#ZdozHN03d37*d9V7OODL zTp#09mF!EyB{$ntZ<d8|9=s*&`|6iYdnh4X=R$DJUA zJ29{owAqYCrYzI)p z?ZUnFk}tSPbbq5K=RrJRs~}Y0nj0=Jq^Hof%pz=Lu8sF!3?S403E}${E}^1?7fRJ8 zdnEPJP)VfmX6EQ#v%ZxhdRq+O}^LHC{<(cit9n}krikzu^w{g)JF#r$Wh^t0UtHP zDr_i!WHK}84HLl~?^2r)!x{2fB?J9#u1vE9{2_sfkZZn`4JATOpFR-it`Mdlk419v_HP-nEl{aYilF$;;P70&5R;0WjukcHwMDnx}}?JhH_dEMN9f492<>1mqS)J z{ki-e=Crt*$uJoe+?%j&6MpDN)O@WEv0v?!h!2LT?Yac%X=NI2=c8JmZkWX6$t3et zCcLtKJ*1~fM-^FmQ8SR7J%B9ya26PaG<4MoRRkfcj_+g-3e=fcy~hR23@-L$M$<=Y z#Paj5wx!}t>9SMtSl+knlg#^HV_)YIfk>jMAsc!4F6uQpGGCb0(o!b4G)FbF#8Qne z0U@ctEX{^2S7UGn9R~I<)R-@{xkk-TUgtIlNA_fCc6%^~Hx^Vl&sJ<5o%J9#x#EMZ z=UQ=pUI3-xs;<;K!=dJNxl4!dqj;g7J`2;hv5DvF&Z3BW+2TxE;yR`+2e%@vhirCU zwVagVH7_vOe?N7Y9U)_p{1CXquQ)c6v#ML9?L)+g^J#}lgvK~SY zNPecZ55@_bkGQVB-tXWF+xY|CmR|GNxVgc-g5G=#h zbCI?2j>Ry(YPimrKfpI+^%2P{8{o0R@a33Vmf_nV|K2tktqXfV7h4@;AVG1oZ)5Qd zQZ#{1=N0-pvG5yRV8f=6aYk{%og6jYA!{}MKiu?*OFo7)-1H@cL^<4JM%Dv@;Uz84 za_aTbxR^9<|N4m(*)evqE(NM)IyUGv{AwazW&vcoUl+D2)8@;%JxUZk7joo)U*<4a zwGAU8Cm>(MU2VwG$ggw$^rlwAzubLeae<@a6YU0gMU|5%2*1@kl(M#p^gv)>+d&~T z9p@-bs#j_gzYS`IVMx!qvo0GPt3HnOn8y2~3 zq?5U|Wpx;q{lyv4p-?A^E<(b)jbys;>9lLaBJYUop_CP3?7XpJ!LVfN%F_B(@r~Fe zbl&k;#D|-b&njj~bNY4!(zor#=~a7{SB^cPL@LANfQBx*W3cZmk@$++n=6OP5wor+ zieXpqUAqVI?IMT&8=s+p_Eto-70A@gD+3NCTV;atcOEkv)1>#K2KA`t; zP$`ix|C9;3a(^`UQ~*xMwxLAXdf?dqKGyrNTt7Ee+a|82WhQgjbfLc@Ij{Q+*_J{= zbDIpdcj^TaQf$C+ZzG`v;FdE){>)rh@mqd=el~DzbCTSBHtZfu7X&yMpSn?ik9c4$ z`6(n+8m}~^6}d7fse$Teq(9$i1mfE`__~w#!R!*mBEWvg6F)^S z8Sx?{7E)TF&`Q(!z{pJ?*p0wcc)lC3A7wVq(V(q;ZUsXB7kLC!{eB{`dz19HwxP(c zI?m3N+Ksyy1Qlb~+S2>?y2wUqTy{@SaSpHU2DrKxQCCiyR{?8hYs9=el_31@AyLwi z!@@9X#e6>7Q_mC^iFqf zk?v|RGDS=i9oK(<hB?-u8FaLiVk&3pnnNwQU-df~X15E<)$D}f01wG=apD`rymfB+IrVe|ORr7j|zlde3n&-R(4jL8j&CLg=7GI!2a=1Z#6|?Zn!b2@Q717q zB++`P#Mx_m{ixdN5DP2lILbDXQZFTfSU`Ss=GD88r~jHS)~)4nLPGw=;|O zDUs< z67gJH1P+lsQX^=d^CuOFg<5K}`nh)zA_QSn3Z(r-6|MO8@bho0V@Zl^!lxz&&>fkF zx6uJoVyT>s?UY#m)*_pC>7f+$P2t%4#(y-k)F~MqF_92U<|c`Ok$d(#8>h#@u!?vQ z@*lDu(hg~kslC1^WhIEmpbeUZ?&D)pbT7NVeNN#?D7OigCXIt{FJ?q55Z;Il=t)<4 zH3CYkeJS9z2S=7UU-_;LmD(;r(HJ0U%dlccdtd|>qkgI?LQ3%b3=8$~VhB%_F=jlh z=X^$BpXYo6?7B#EN4QbQk_NU|1f<^&b|zxyqyyv&~QoaGeZXL;wQNz_)rHR@@3jq1_bHS~@voi0&AbnSxE z&@-yPUi!a0%!vnL(ojI^m|7maRCYG*D(;Iuc4agNseGbiHfY_f!am6+v=s3vnEcV& zvfcDXj~hQoaF!{JUOP1;gd3F`wkCOwSRXNn*PAerr7c9p^nJDi1u4WLv9~B!h%SA@vXOYHD6>^G`%cp|H>Ck)Oa9TxOP<`Z5>CuyaB>Z+@bE3Q<|IWw4JR8 z*Hk&i!T%d;tZIGdqsYewnnC=OjW-hT4;?xA;hOR6A&!&3cpxhBc=jSOQt6?eh)hTf z%&p1U64Sl&f_jRbL*HK*YTMGnU{^b41W!8Lgw= zG^OqklX5G|m@_EFx`|3U?PSRL4-`GOSgB8alc@FgHDX~rfXbaXAw#7Mz6Yxs0Q*UN7TNZ1i@nzXWAtWq`m?I4LxaW0t$PR(UyDA9DV)WV*TxP1}mgn;e@qi^c0H(Bz zxk=`L1K3l3teJoC)-$wRnz9*ypQDbM!V=AvnX(2)FT-s^FWjI<^0Yja_PuqeD+G(T zp~4byb5^Z1d|L42TIxC!4i#`IMyM%@Q>afcwUuKN6x!#CQX)$*#TJns(0T8~Og5-B zBKlD$NZXa&g+_uU4wKT<9bRy}b{`S}UUx^Z{i`71P=(b1_mX)I%%OI_A_fwO0duG7 z)2U#*m3$5teF{x+I468 zcQ;eD%K(6ylu@q#8+HxX{@m|)qxY~F2E7^35SRl@G84V#TP4n^1}B%#xb6b!6B}t6E3D=6O4v>@6$~{ojpt0dCDwq3>XYfGci56dhd~1PgJ~0{GO?xx~zVx zqi)}`gt1q6JpQi`QYb%cYtU20gwbCQKdjV;EMNTqSQ)QnZ|<5`T@9@10G?52LzirI;6DV)nQPj5C4iJJAFCA{GeAyIwen)?8 zZns6>z4keUgZtRK6d8)!u!KeZfdS9;zwkK+$(QxI2ug){I$!2sd~Uz;QdQ>uOk% zS|ZA_SLm^^Xanr%mC<^%8>*;cW&SoOKH;{G zwSrWCW~i^6M(G*8m0&QvPI!N(?B%G?GTCvy_%y-mNS}{)4Yf@7K}96~M$4jj zMx1lRYrr>MenLdlRJXl6tGf1u7L}l_UdFL5Gt)JdNrB2^eT?2TkrTuGj%4<|o5fJO znvCeG4fe^<;}gb!NY?5UaIy#Cc~!CC)=N~;#|LK{Pot2B}5F%6|Aw6Lnrj%?(aG<)U3Lti%}xG z$$e|fgJn5-9$Z|Hnx+(G*PKF^H*IY!Eoqfl&6KVwGzOimay46-Xco%yvbi-=1I}wQ@U)un0V+vx;9IH<3cMC9^!}&f-Zq zbj|2scVwEE%<7Qzx9%@bTlUmdQn_R9=4uu)@FjM=&MFwYr=oRsg(d`G;TV(g(DOqd zrBbWdONY6!h7mquDUA9XWJGgngZF(mR7Q+QZ)OOysqa{LyHLwb?#42Q>p)gTXgkuL z2Gf2)#U+tys=4PA82j|zuDlimt&?GNX;7800#ckVg8X7-+V?&;TD+OgFzlqn7)lS6 z%Rnu6lMO4Aq-yXT&oGRq%RkSB!w+9)=68ukEFZJ3o|# z4McrqRi%mU*h3&zj|btUWlY`qb8nwLtOT^evtQn?Dnc_x?rbho$Ew>MlKL<&@_Wbo;fg&r<@-eYKfr$oJ04+hbkhWxG$s>d*^dm9&-*{1y7SGR z9~L%IzwX4{e!=e75rJ&NYMA|6PrCbd`YEz-i6}9rddq^}eq8)E%s$*~Wf|0N9=<{J zF+H{WMR;9^=iAG>Utc|(jQAu@Ll0Z&-WbX?Wj>L`D-dU(2^B74{$`v*U|ML}?trL| zF#QOIQT9p{N;9ud&1D1u+=#Q+s|zjX`}P^yG4w2nHkf4lmdZSQQ?wxBd|n-BbtYP6 zTh`fTg*z$(5r$L;2nS*H*)ooA{QaOHdR!n_gWUs#VWSQZQE2?hl}q$=lDlHvIa}kPP1CG zW@lh-2rJ~&Bm?C>0!^jqJWtPN-u2u+T#-?_C|MYlKH()ZcA+Q83gjH}n777IQ?Aa* z?uMq(`|FZcD;Wxa@b-CL9NL8Wo1UxZ%sVNUM_V2aFrC^`3_~o(g`kv|QBl=U8i1@f zCh~GK{*OC!D&bPYk(SC#;#j}%NBjxUo_i3xY|$GgK;~beGCCM00Q2^F#4cRu0Y_8R36-gJ@ftb5&U1Sv)5G z`X6@Q|L>>exUHi#dfm>(GPsQnC|n7ft=L1Ot+n0l-c#%r;<}ViL}`v>QYxpZKks3gH;%85~BjC98a@lou|CS-c#?tg2JsyjMu-y_)U z6O^`Ub&zX<&Yhx-A=}H;EnJ@S;RA5UKUTezHQ<)hXRsd#AY+ZgF*9eGrl!_RBPnJ< z<{RymA!N1rsQVmy&AV*vzCa67tv68msFfD2z4ZCLit!?9iLTAR!e*jerUYbq)T2B~ zv4naycPL0AS?7e^IK%xK+{e5x>P6;Xdaw%Va}FB^IEbjqC&VWR;9rteT5=A(gl)d5 z0Cyd_0GVl?oT>BS>9)X$L50qGDpRAeb27wOT-RAeI$lbCn>dOXX0{yRIrDPBqDGW% zoCVFZnyA4cRW{|Uo8`m^oA4mtwon*xXa0C(;HHCT>ok!|kZlh%SCe07&oq@RZNAI|L5L zp1OX6t*OnHn$RVDOYXdecxPGh8E|B0GzZ_UH!npX4q@WH0Q!7s z?tBKu?YZjfk6}kB+GUW%V-<-056eQ|LP|!zb$|t-Gu;u- zL$wF8>RFK}IV^XIhV~X)5AYt4LfvCIjGLY}JVm)too$jD^@%Pn3{iI=YnbdUd2L6B zr~Mkw<|KUs&!kEK!0#8fc)hRJ8!xpQC@9;Jk&S6`hnlCsgyosF|M5wKImGupVFBI4 zJ_iC#oiKwgkn-te6|Gu>I%3ze`yxxYh9cDgFq%@Xq5gJb`jvTF{1lbj#EHETKjH3~ z;a?${P{gJXw%uH~TGK|%!Q7)qy~dKlLi*EWDTL4mkV%qM+zM~A7q=`N4{bhF>edIjfPQxV5Z*sTj!BtH%KR&dA^9pkI<*2duX)*$jx56 z5DHJIXRRSj8t^di7*jRJyh6LIo2Bl=Fk=gpOpq0}OFlNx-^eEnj$=`q0oR10Ofs5+M_N}!R$cVBGr`HnH3Csqwti| zWJSvb+0BD^n|Lq5@2Y<19nk)|xA(Af(4Hz9qET8@rpRtv&lhT+WAHMtU?V?hMsshw zOS#S&ir7~$4w>UmQ%JOt($t>om-))ny~&4Y`m8TQUADN|d3ob1@2a52pE5yC!XB>R z0{f4z-IlTV4tx*O9iIO}c_FrfPe?~dw8uSAZ+xXzqwJCMQzzEkBK@RrTWb3U_jAL^s?gi(xRUWrFBs#CGRao?jEmGJ(mHG9|8Da zp>gzuGUHN@6?8ffnE?AioKZKIqsdu#`d{3af<8R^@`JtIjhdZJgVB25$rhtZTyS8! zd2ZGE3SK2FOsj-JP&3h@lRUp=Z(D$Ik?3TEa$LPW;q4b6bB`AbQX`tO07f_oKw z@9qGB%h0R&8TP7a_2)Vwgm0Pyjv2c+odRS3@Eb)S7yViw$O+t5CQGO2RV#r*SoIsiuR-k1)&d9nVTbK7Qf9t;i0|-X5Dvf; zVm;F-UYCJ*j)20DyT_E9BQfw}@)c@u&ysI60UM}3 zVgqzZ3K3~1@**g&wpRcsOr!|+yJj_85v8AfBbchz!s^;D=8FgML4M^segTHWosQTw z^R+t5R^r_3Dh>ChKC{@2fAnz7#i>hnA);wB&n)Q5uJoQrg} z>gdOa@y)|M?J~Qk#D~g(rBw;7TUP*?cAD}uINEXaK5(IX&=nTs--xia<~o6K>mQE0 zQOt%`gJ~UWJOfE@=))qwWB3iQ#@xZMqa@7)>Wb0K$dk4}jp0(T1kg{%-*n=Xj0~-E zx)M9~iJyeryAJp*<3-|{f{pauqRzNnu;)r26FAF{!VAxbwRTK4Twc4;X4*pRG={I}%!Fd@hBVi~=*A#c*xtf&X+Z|AWuOg$G1% z`ulqMv?;bRC)>qM{VnKNl~*s*#8NmOUB=&i1EvWwk0Mf zgsDIrFJFH%NxyxzUu!aADOxOrw#IyJ=!OA#QXRt&w=6^sk5w(pF1LCs!69cFU+(3K*i3qvg3p%Ux!u~v{DfQ2e!jKPWf zt+g_?@?T$>ikiI?+Vs1QXgq5h*^jUA195_d-^Vvku`TtP6UifHc8!h_>$4riB?d!d z#j`oYe{8A;-Smu=aQpdtEI4-oTpQn80sRN`kYEGUS952tY|~gE+V&B^3ll}Zke7fI z#q<2}Q?%XZV(zx}g2GWnEBT8)6{bb}_a7y{EwN$-22U#?MR=A1P{*;fI79r4Pl6;D z6+t`{foXFaL&6)j3>!s_)P+3>(iM|{mA_{$f2N=T2E}Zxi+wn^RV#iOkAEJF{{sCb zwV>0<6R`d-alg$gJdI8vXw}lni(6qIDY1UvG9cI=Wqm`YgDv{+0p9=T<^B_dA{c$} zP}OZjnuuYfO#Q%Y7_5D||kRzT0M>&}e z7A|}i6gWx}NYLFi3LNtQ&%_kn_<;ZQNB`^nhMdJCuy|c>RJ)-61ZY81+E3s}2o4f+ zh^}_tsk7d4sKrZV-7aj`C;z!i`Kg%r>jnQ2pcJd|aWC11O%xB4cgPgk))j!*%Pka~ zpxxnIEo>D>9%X289N4O;RVn$!Wahs=<8u_qYcs8La~dnr@-uEN~4efejri=$!F4ub=i$QI_UcQG=Nu|KSfo*Z6AEOL6_)KNc*{ zl0ML^Xc;KUzGvPm|8B5FyOR6_PX?R$5075V9uJsi4q9zU)}F=^7rraLfzNRYis?8g{7QSNKNKeI-3a(S9PMg z@1Ec~;Klh2QE~kgWB&2!eXP(-W3{r6W79$5xUJP%hgZ1v;?9nxZ^2qJ7pighX3%C) zO~6)mGJ5fjAB+0QmKUch5mJ&?8!Q+7h){;F2UA)9=hI8-qP^OM^iu>ceaf1lnmL8c)B2tyO`kS;^<8$l5`1^@=!$--2LU4AI!EOLnxr?@d9??3 zHE)_A^*pF%$NQFNL%u^@s?m3M^siWYb?!?yfBmr1p+wE9VtO0xUnMJSI;XE`tzD6w zjmcV0J_;BA{ey*xTCLSSbOQr%YA5Ob(LZSz3L?*5Tm#7?1^@=ER{GkTPtl~pch@=?iq zGg=iN>*V(Xtk1Dyz;jQS^P6Y5XK#~JPH(hG zX5^e(W$;ZqZ62xFkPLrx_Ut#0L_W0=jcihB@_v}V+ketTG;Stub zYT{J4y~oZmQ`b!@_fjvlYZS+|m-tpA8O^8`BZzXHu}5GNz-{e91G9iX$+*P)4CU$K{GjU!Y=xO zkb0bBkFA7PHOqoPN^Bx)NBL~@NA2Q08#@3%XLi|TRXEk}%{L$G5lgpYqF?oe<&C%NpY027Bk#Wi&zcb!s8f@~%)pV{ zzrp{=6G<89kZErJR%9z2zNzZkIUY{rjF}(5;DgOT%s$ME#K?Y#EJL=^GY0WM>CyuShw^!0u^o#MByVmlGrcKtE0M~fEoXfJS*2tul@i?WD&y%xZu>V- zkqg!DMXwo(#f3;;;pi4g#a-n*`nW55)KZIc6X|%mr zR&j0#Y|n_|O_4C5a^i1UvpSr6kbkR9e5?d)l#@fIcLk{q zm(Y)Tm~md{E`H&Q_VlBuv|$&qxGc?->Y&CLLp@wlQa5MZa(`~Zu;y@XCMMgxi}TBx zM6Q6*_kiQWv_D4;4N#P|F)+ypm##|RRhDX%0IKSrQ`8pRcw~En=fx<`S-}4@Eg7s- zHwDMtxIK#o_RWBN&iSY$GJ3I+lIF@g zx4PxW$zeN1p5tvGgOA-|y|p8BWt7-7(dz5Y6LV})(8g%F*sDBWzUQuWc}bsJThiq( zj11;|(J$9ec(10>p?Is~{-g}A7~T&p$UiF_O_ZdL3s}%0Zj$P~%ol9F$FjRGk?o}b z+Cq(T&orIzAIbE<;Rvn+oEKz@gOifj%HpkrGDyga8)hHio8>$4{aa1t!y+N}rzFuU z@(D%wzGZ~Z1PV3|3vSj$-2X?|{|(>aYSOt-u{Lpitsxhjl2�y#*~TTt!0{ibnIu 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 diff --git a/BasicObject/dict/free_list0.png b/BasicObject/dict/free_list0.png new file mode 100644 index 0000000000000000000000000000000000000000..4bd169516703cc53894946e36023df98cbcbfc83 GIT binary patch literal 10280 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 literal 0 HcmV?d00001 diff --git a/BasicObject/dict/free_list1.png b/BasicObject/dict/free_list1.png new file mode 100644 index 0000000000000000000000000000000000000000..5544aed56bce704ad86f4ec958c9c5399740d16f GIT binary patch literal 23664 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 literal 0 HcmV?d00001 diff --git a/BasicObject/dict/free_list2.png b/BasicObject/dict/free_list2.png new file mode 100644 index 0000000000000000000000000000000000000000..d63aea25c14a6a12a7e26943ab5b67b449b7e67a GIT binary patch literal 20136 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 literal 0 HcmV?d00001 diff --git a/BasicObject/dict/free_list3.png b/BasicObject/dict/free_list3.png new file mode 100644 index 0000000000000000000000000000000000000000..031be67f3e15f811057462d2ccd0179d3dd74489 GIT binary patch literal 21416 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 Q1G+(7RYxWF^p)HH2d2i!kN^Mx literal 92450 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%0DcILtfcoNj0Zb{*$grk3R) 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

W&OC6sC#;I=!9 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%0ARxx}eVU+S8`A9jc_ z!|`Um`}1YSprzBMx072zzaBsBjlysF+$LNw4NBVz}nt;ivsePwtZChj9GCkECsfaqo%I!97S7_;(@ zdgDnT<$T4>8FL_x05Dp-H6TOcK#RdO^^JO^3;tp5! z>AUfoxLdY{e6Q}fOj-tgmT#obup~1(TsHrutE0wzVT08sNRduNJzo|LGJK5S^*Nb!Nfl$hmuyJ7MMmKdWXggUgJ!p3ER9SgU;v zX>>kw(sk+ccv%0Mffs(NePFQALg#4+YaO)cWGhM~@;xcykjT;+dX~5S=9#08h&VYq zD$+^9>Fk`J-KtAtFl9V#*eG03=~xV#D!*&GF>h*o>p+O@cP>qyAB)h|)g6@DTv==y zYEoYhf`W1rQgbO-fl|t)rU8bG1!O1jtt9vRci6LOBD+kLI_;S>gXW3hw(lhvy?L$e z1tvf1Dr=#z?jpJO`@VX80{;L=F0uMQsu35PZC)CRnO*P{xw-IiJP6Tw?6n{C>0*&Q z-=avj?<8!9o7I=}AkI)KKEtLZ{kR)=N}7RH?g`>ULHKf}wWA}rZ>f^UAVbPi0$4_s zHA|fxkjkKKANccb@IlSM6c$R~E>rBgBxDfmb!999HuE@)cuNBGu_hfE+i$>nhtwcV zjo-)irjgfh@U}f_vvaJ|6$ z)BXQ*o$sX~@6(;d(*JXHf4Hh>D3G?%GkkwX?kg0u6Ew4Kh5ArAGQBJR>(gE3(+HgyKt+X_5R8=pe;6nuzeiHWE)2DTBY1ky#%!5 zjQ%HU+4suZoK=IC)Nj@)+5qx@JR}RI z7e@9ra^@!GfqCl0p`oIt4@n0o~nv9XG>=xzmrgmK};ZKiC2hTnq4*MIh}f zx=Zah=@@@sC6gC`MbFDoK8##m?jsbPAV{9GoV@$~l+m?oH2e3L1SwzW7!jXs`Sj_U ztz#YC5lML;buZQF51&4$XKM<+&1~&@?#Cx?)sRx+gYB1a_fiwwU^DRWMk=AdTS)W> zxnZ5&?y#QMZQqOjtoXDJXLR#4p&P3N1zJ^Y_@10v&Kr!HCA-#lC1qr=$NFf%uujqO zH{o6*;c8A{FWe|OqLu%!5zm>RD`hU8pQydNv$g+V$y@)F&qjl5JaO6gzqxBAq5jBa zRP~DG_xJhZ6aW98{<|~f|MkkqAE%<~TTxJht~vNo---JxY1saiE?;&&p4*F~GrjT!HtSlO(@$dNh(=jlC&+UK ziP^T=dd`a-Wd9!P<|YQ|qBh&HzSziRv;A@%$#i=lZ}^PfC=!~=GBzp0eP8CnLYIl;Tqgf-6wKiP=~uKJc@3rKf*N^Msrh7SJ| z4+!B|%(_(mVe|jTrZ|MO*z9`Qx#ByIpEyy69fvd(PzyF07nt6s^gaJ>o~(o@iso{zP=yZ7%7WmxtLcY!^0Q~L87r(i353Ob6aV&toTM&`yG(z&BKJm?n2S&H z1#E3>pYMWi?(#)91sAV>>4>Ew{XeuO`_y(&7^|J%ymr{LKU-|w72+?gj3#>53HnvXLindr;p4_dXIxDt_*9JG*Q;D?##yp! z?U%CdQXs(@)hVlfX4g@3o|X$$RT)=4)hpLq{`Tbkaq$T`BcP-iKXLe|*nf32ZXM*W rW#GiCSFZX0pZ@cS|G#`?Hults2t_h> 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 literal 97020 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%0Dh9*$5Q5%a?7n{U`MCh`i+(FhD+aDXraK1FvL<_G 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 As{jB1 literal 98345 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 z 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 IbxsLQ0M3`DbpQYW diff --git a/BasicObject/dict/hh_4.png b/BasicObject/dict/hh_4.png index 77de9f8625204e3967a5c5d12216ec0ea5f28b9a..8da28b4318cc5ad0cf680fe62b3421dafcd535b5 100644 GIT binary patch literal 31981 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�u)qAvMfpY2Rt)XW}Ztn!_mFOiFj&#QBzBw?9NO zRc+aL?>9hOR28tBrQH3+zj^v}z6n{0*aWG7$IvTyoEL-#V@5=^vWc~<>mK2@RJDR{ z>m3+H>rV$S7KlNSWk7uBA*DZ(iiml_;2j6~S~E~1Xy}T)!2%5*Hq2DF53K%I11_~q z4|GZtg?KLu#a1CLPH0Ck^CD`y{fLT)%sE%|5E9ZrYFe<<87yWKe;DnC)}l*CrvL+S z`f}Cz0optGA>NacxcFIJE28TsCAMU~(I~FAbCJd56D8_OTyjY@ zd&rlyF59K$V{EIrE z@Z@RU*^t!+=!XI7Ho+fFyWvF~JO>qokaeK(290*lOBbnZB&8BBe5UBRFLa{<~i4WN->>3Z;BKfRraE zr^L)|2va)?1&Q*lfN926A>RY82{)7)NlkJ|zA?Y}ZU%f={(qi`g6Q##~hGUrpMCGe&_K|0fdtMk{9`{#{?h_25_!&XMJ((c?m^j$u} zj8d_ibv2Wt79m)$zr?hxGGRr&ZIK(qYNxU` z_kt9p@mIwIRvz^Q-<9yB_8$CFfVyf{Zq;4zYQg7p_J%WSI8hN!n#jfgG(mv~LnzTD z(F3F(s^pVhs@bLA(pVX3yRD}nC;wG*+^sJHUXdW#cYZrrb7FIl5 z^;T=~J{8F1)QGmF9DfXnu_9zB;r*J^YH0Q?AKsm`1%gv76vqp#YVqz|z3?%-ZdLSd z>MErilI56%5eldbg+&w4%k5|x(Q(R)FPxaXrlSPhU(#*$!e7sCYy#DBOEd4(F*r$i zS#(63;$6?4~X-rdM=~K0{9jT*?p5WXG?>b7E zv+TylV}n+c!q#Z)$pb|jy5Z<~mN))*h?>)HhQ-NT9+#cP7bM=}xl=Fw)$%aT@qR|z za>dJKS6mSLgf~B>f~-mnbR|#``0@R?y?iN;g>d8RIG6L>^Yoi@_msevIfyF@EG&3s z6|H}~1SKloD=+H$#`W>YzDC?&M6o;{C|9M=EI~~2WrOgt1PU5OSuWWq6{3`)Ep{yG zn8LkFdHY#s%e75&n!e}CwBE0mUwpU|bij=8F+x)dl*|?<>_E4hdtQf-(qssP|Et4i z7Vy%UaNi)WiSt0--V-f%Y`*dyiQdLEV47xXnu>zEUUb!~Th$mWnvZkg#!^Pg_3&fj zBn&83Tp(v+4go*4w7$!S;uZu&hiN)S5Cv2OUD$aV)2Enzd+s?d5p}sn>@AKfm=8sf zwaA^N>RP%sC=amaTxoqPcy1g9eByxZkn_-WB2;1YxjV0WZ*|Av{ML*>g#W{t=T9mi zG%vR&p9u;2Ag*f7|JneknuB5D%Xal8QE#@W8`(70eMh4+-KAM;KZokbwWgW#v(<{m zytfXyQv11qa_xTORXbOyZ#N!i_^odbv!${;ePPQpdbP;?Qf}19q}PHQb91@FyV|^q zxmo&Dspi02e~7Gmy24U>Vu6zJia~V6F15wcONwu|7Uw5#&s-WR4$fitR=XgjDlr~D z9B%zCh8w-6p5Lf|Sl^APcK0Nbw{hPMSkxX{p{OHb6=jK6)>0{+qrV(ged5FDb9CmH zUG}F6dvH$fgIOzt7BNq$xK5c3Dc06~--c#iCJ8ObRA$3MdE(F|W(7i?hA7_yx+L@p z`H+%)dv=FO?-Dm<<~-hH+1&*_nxk^3_?^8Q=c(tV7WYwOy{Kk!{*tuSVU^g^UIPZEG7X-bB$GB0p??RcsA2s(ZNqRy_SN)3hzp6)qMBsqamCa_kx0( zgrhd1oVeV#tC)IcB0w4|s3uiGJ5`egtZ0B)2UC)(SgTgAhi)}njja>7X`Py1t5dL% zQmh&P^O3B#dCj{y9_x%f(GgHvQ|-oc=hukCUj?<}2<=_BU4hka`?Y+gw|0Mc+%usk z$H(&|$k*9#W`0UfsKCi@BS37HL)QJw9p4%=iOVW_^Bg)jM||{z5(^$D(o)piW-j|a zdGAG0%V1RzZxOHhq}^S{DyPPXh_&KDXe=b^oYad6_`<2Vs=Yd#zN%`)Z_^*(Q&PR& z0oX<+r#>%&OSy!g6bz1lV@Hu{_aVuR!W!vd0O;G{cWjx&BVkSij9sCt>PARvx zxf|>q5^fw0-oi_#D}jiq;o#}B;08fQ(*?pgY&x$V1aEKgWIESe4JkkU&cb=Lm@%xq zaQbY5ok;0qUS_JIp~IUB$LA~D{Vs)9@NLgErw&PszBQ@L9-h8T^$~q@v7KjI>I*CVHc~} zttSzN{<12EV@c&*Pb`PB%^&Zc;J;FJ;Y;y(l9}??J54)LgF_L{msf|IZ&n=L`~3{( z7}vGUyf_K_!KH%TPxdF4?;4lBxNesP2MhN?Wnqpg{uc<7Y zq0TBQc0ByecRmmlIn18(G)3pazuHg!-(2_L!#i#qa!Vr*xg9*xH-+A>+Y zE{S{m?v;T$05J?qK)Hh7@4qGFf?&L&LH4as?BBgItOJX*@Sbxv8E1a~E%evpE2B@| zfqL*wW@VtO4UiZBDv0nb?A`O@mpni*nk)uiL-d+-`M2ud@pKK$5>&-eLv}M?#~UHh z)(l5%NkzqwnYX-qzLvfRrl+UR92lXFqtUzZ8YDUXbyUVwib`+w%Wo(jG4nR5d6zh1O1!kBMFxd3j|=L4$@9lvy}k()K>!t+WnkNf|=Wa&!Lw z-=#Iuw`GEWBHR*UeWY2_4oX_x-cD$WdYr=b1)fxmFP;Mj_hyPl`dYE zQSwk~R7ebCXw*-k$U>%kQh(gfw-P!aAnr{ibxoSm<@=tU>AyS=9%pePC$3&g`km?U z*X<=?hS~WpPw(XM-?%@2zQmRU9vo$%`aO4J!GF1^z4v(dkizr%MfnQ;AFjCnI=9fR zszA#?7RBiAe;vVh_zKEfgoO`&Jws%auvb=AQo)HDX_{OHkrVhQIeHiLI3fYHrQVn- zs)QTN_z|<20LLstKaMUI5XEDGKPzFja=-SA3z<4_xL7Rhy1=j3DcbS}@PK5i=z<5N z6>7~Wf}~FH()VqU)PzPPs*S0o9}A;o2eheNa(CK5o3GJu&d8;|;fwm2r><3grPs2(b`j;cgRC z&3mywC-|e7t_jrZf>EPht?Xl9Unf={S`bc2fF`=}m z>5LLS3}NTq3KX31phcHQS^wVAtSoKUa~j*yB5_4IG?z8omUMbt*a*&7O%=MaSr9&7 zX6|!*x8bM1ZIJnBB}$Ywa!16DscT+nb=a6Q`bY^tfqL79Dr_H@4YzNOhG&E(a=-ua zBikWyUq)o)nIiBtD}v6%VQQ?w4Fu83hGvbSVfp?WM*?0#j1s6#P>qB_+AaTEh>el$Vn6DTx2L6LPp{)%02$ z2sOQ0YsoWTvE(~#GkK%-bJFy=Wxi9L%NqPPQA{&s#V@-n=2$YFP)wF-@j+dBz(44n znid4I(6LSmajiuwybi@M3Y*zw=jPp#EwUj(%!c%f;h;lziI5Ur@+TI0CY?s!mup2% zRnIs#|6^z>^oxV+ysgMW1PW|?=4dPY%ONP*`~2ZCS7x8uXC?gaEh=Yg zXKQ6=^FBDdwGg21S}fcx+@+qsC%dJYJ;!a?j(NY+&+bF;faiY%0UoqC#D`P%WdLm) z1y<0lZY`y5R{W+)ZDjf(7BRk0{;^st5T$o{;V1`Rl#n*hKg;GOcxeVb^D|NKE zr`vSKEL)eeM`yo!*tEpXU^t(q!6*6~bY1qn?y9xxJum-npk`|;@QMEn1vg=iJpR9X zG+M*F#`K@FM^+H?8Cr`_pGumwCRh1|ybBQh?$>x3-s%f6Wt8EnH&eg&fPqNqRFNbsq1|8}l z(RtYp=$;$ALZ(I7ViiA-=oM&UML}7&pHqCFyUrD{hQq32ah}sJ_{-m z^eL!D@phZRwo)nEOxQ}61;upTLPcR2!``{#&f~1sO;r|Psu_<|}``f$lz4@KnpELXeh26}5gxz_=J7H#PS7EyH zSmvXfSsAzC*Sa%9L!{}1&Us%;Qy+5_>~bzQyw`?j@$53o66U8XYxL+JN6 z!9bWJ3u_dD3yubl3bJxT2^Ryo84U8lfwDnYq52UVAEY9v0eFgYj1$f@U0deMm)EYu zz|s4RgElCsC6b+YI~fkNh%>aTG=szI9nJykH*xnK{aA*4Srp2?`P+cMR`08*<4J7B z-uTT?T&)_=-(m>O0*+D+AGM^fw*naF*uH89vf{lu^@Q5QhR6Q4D$|-^ZFj+fALQDQ z59LG7HnHxj)vuK{BqtcB)4q6SF9#-iW-Z4jPK&h|j+2MA{&V*bvd#-kr5=xL{DI|JhJp5@!g!r6vIRVlzFHH{f%xuyA04muZRY-A1oNw-3)Z&4X)C((Z7Ck=x-Y=MezfC zpHK7Iu;TSk?4s)5C;pDH`j2nbO3h8WG@Udz<&+r0#_5-RS+M`P)#t0l)8U0s#m~|= z1}86q5}Z<39Tg)6x_`~0jw$px;bEsxw}Iwz5x}bvm;A5RX>~A`tlx1fBt^_CxvEgk z5CwykA5*y{fG;;C9prvmmkUW{tb;w1HR3}&(>zZSRDl*zZWl06#>ZLdjI1HjKwjH|TN2kA&UzH4ikSh|Y z#tY^l-KvRVdm%HBv|@+4U4ZO9F+tmWu^zH0{&=&r@yeb0@P*O$G|F*{^I*$XExWH7^!EIww_#<(z-h<4rm)ANY;blf zIh*#zd!*KvZgM51Tsb2rhXV|@ZzMiOtDP3Rg#F>~x^V6??8(=4jHLnbT$IxUw*{jj zP%1c;^1d|{#g5frCFr<`QtG`hQHnC^{gYfmFRSXY1<)z(LKV?yz~vLpC&tpAI%Cb` zsBX}MuD=hOjyLB4W@iOexBUKk=#uUVvMQLw+F0a9}b}uzdS)|AP<&U@K${UMQM>1h$@3%o#)>Zx`1T&u2w$GOUC?%Sa z5_+iSuIA*nsl&M`wrIc3%Y`*(2a@wC{Hg1m$rd%R_pcu9i}upiwEro5|6yfFuX(Et z%~?tDFRY3T>0-6R9R7ubPjK7Bc(GjmaUv8n$2nY_`AQM=ghBu|?kC%Z40Nu=gcue* z;+-3*lwN&ORMs@GzaWOuGf*e~YKJ_`M~FHT;^|5C<41@&ic-QNyKO~;Zb3ONcO98b z@=(>w$3J_F$WT9473U^kw~U9}cU{{7F}?xwQ3;VV^Exl%NRE%zyxP-eMCMutqf97q zcFHNpBuC+fbAc~tkd>>D3m@QShCq>e3zg)8J3#5%Vc4~7(gm|n#E+DP?n6qY^eB#F zgY0W{yuM0Ueux|nZO2n2!Ow5K4?@hGJ(D0OVAdupf0PTl*OT^@g4aPGTC8sNCo$Pq zK8r;S!XGQEp>Q}W(mEz~&h3ZpQd#XbV*$CMvU2~N>KnR|=`M9E3wABe_WR(Te&#?; z#tzh$>CRQ#jGcS=DV}hrK~)eFYDkaQCm%lpRT!%-HM1Ov zhwbP8wpR#JJbaM*`K!=197$(3`HC6*4@on954D(xLeG6&(mEt|F1Gd;2M-E3c;Lv= z7wKxe`a~UNt~aTn>V&$(mjc|k-W)l@PHS+J&LIAiR|cG5!$Aq3C5tLIBjbuuw9R8o zPcaZuQQ(U7mKHw{yE>Th_G^Jg;uZJZHTMY+{ScQJm3H3_Rk6GWsi$j+9I*YS^12|vNA!QDdVz!Goe69F5v|Bf}BnxumG@GcGL)WsrArZcO8ktg4Ry;3` zB&;irocpGLk7b1=s>qd4QAqTIhb~^C3)J)^;e0i>AsZhRX)3Q1Uz&#Yx@hDia!S)& zl1Vo;V@@$5SpgBJRo_YmQHjdYZhkeObC>Sv&HlntD~|47km63F$hKD<9Vlu8&Ne?4-R)Xz+O7KJDLan%+gnqKPVV!!FSG@nSUyNLJ4k!5_w6(}YoiZE1+ zA?o|+F;I-xu*GGQG$3jh7m=>dq@|F+D5uglZlzdgdE8Mur0e6^sPUj{9&DH1rkh$y zVc6-7#j#$f?ZDd65-C!XM@ilIBpQb}K3&44Q7e`DR)~r8roTT8QxcL+q$lnp zw0h-BCMk5eF)(@Jo5n{RCLBt%AsWgqLgMSxihTVgjHvi#qW$F}AMR<46i|(l&JUVtsq~n^TCp3#3@%D+698Z}z-MJj?>B354 z6%>G1DxaE~&U}r&p#?|PdGgk4BegPtt?v&b_?&GowuuQ@;JL|nF>*Q6qD*SKoLiBfP}L_tbY+0_F2yKS=|huu0c_n7=0w?9#t^|ac$X5((z5P z%=H9y7c3mL3~zZW*~jcS6+cHriC{fqRjHIPBV8#KKda=@Bhvj&!zLn!J-g{aiY|wL zJ!bVax3a+eKc5}Qp%|1B&@RbUCJKfksX5O6Nph*zY>3cthV8(7$#CcaF$Z0`?JKN9 z$wzt?x`MtHv5ID_3mB~Lg{aWBV^&mgcYktlN~5~Hhq#a~-kC~pt2ZZl*yxtxdyT2> z7UpvW^+NUN!R>6rW#a4<6FTuACpU#B*c}SQw?lGi<8StsDQFk$&p~k}Ag$*6pOu1_ z5eGYUOlJTH{>8j{^h=(f5aw%yEuqxRJGot4(tSS>-JWV{}Qn+!M> znRK6!6EkH`1Au%N=;JpTr}Y99$_C7mlX2e&dnP)SY_# zkMsZG11JNTuHbznP2&0ok<(fBHlmUX7WuCamU35)>2^qa+-R&%HpC`5oKk2%CC8@s z_VDI9U~VPzy*p{oG(k!xzye!F@)Z50=US08IMf;5dFU+!WbE5tLchDBMq~1a!RmnWJFFO5i5(5yqeX>)BG;Q^OW`rQX)c9@0jFM zB?^j0B72vj&RdZ7T`S(oXhia-JaRX$kXY^0%KU6MmD;i6_Ripxe7uiOski~Ioa{kX z#)sOnCohL6%uqG6Z%?nyiDlY?-2!F+5256(<_ZeQ66}r~us-v| z^Pl5-19f-I86&Wxx~5Q&IZIC)t`CyGUa!*?b%{tD^7(MpohLH?Wwx_y#D7H8@i z?<`jPgEYdym*gN-!+9wn(ow;XHB6D-`G@d!j>Bgk{Bm1&np%bik(qZ9lxwZs!+1xV z47Kf>Qb$TbG$=WSpD`>o!9ukuBF~j-PNI#C!2={4dL&#;>E%x6f+8Cs+jQqA8CIGmbaJd^B)A_fUXGDYgPe$HF?yDY8*7W#mB3GUXSDAnp`d(KUrc zN@VBdanVFudpZRd$8}1?M_w7w50Y$#hdlF7=M26o*U}q?NWqT`2-`pLRfH_Rnz! z1Th$Q_6;dOcc4|&0&SG{t(rW2wqrKrMkos*AlsJCs+7Wjr=}1e68Sdyrzv*h(g;EE zr#A*J4HDhH8nS^QTGMI1N(a=qPlLAoUnlrKM~wo{BUM&Gn0)*~JiatjyqKiw)I@Ee zBprSy3R$8_^#CE|Bnye0SvqO(W$(0&l#>9=Jx_KwC0mXDj1uNF{i)aL_Cn^*7)$dp zJ9OV~iC`%UHG!az$>XEsro@4Xsgs`!-1>l}wJ7*f)f#a$(||>0&QeNz}P_aZaj$aK4{sPDe*NHdZ@ecO+$uX=I^pKkW#w z4?xO%ZY37_*P>9L#*CVaN)yRScL~!JvgNO~Z9Lev6J;(Z@gSFFc|}D7)ULFI z+zgs!8^0t&9XS+wxn4yBR5bw>Y>PRWKuwp%nXyV@>P({1`N-*Pw{J`#mvfxVGMO#} zxfA}p-}0r|wE&Ac{qU?K^lYeyVAE`Qh7!NEgYc$*U$TU1^43ICzov(NMKGj0`e`pk zVDoFVsby}k;-t|XZXv<6b98ImsUc=xOB2}sutMKh<@r*fV=P%)Hn0Pg6XuQ*v9Qo?(qwU?BL^FUqXO zm!ZaWC&=epBEBSyQJN~aJvf63(`+G_t0z3ayu?&Bt2g5ePEQy>QOP=0)z!_A{&IiK zt$=f@u1grMGHFsbcuu_CK3t;TCnkcio)T88Or+iyf|Zq<+Y$}^!SxvVN*jnxebw<& zr+4ckkP7_@ab4F-F+MRi^`{*_K_<6Ul8w6c z33k3d=|lzw@Y^V45=Tq03rBj)!(-RNH7s85C_QH6FiID^RF>mHlS_S~)$J&JIWJLQ;ihqv9B3dyA1Q@f?nBm>1Ku>pRJ3Yu~Z) zDita~ju`_7(SdYNI{DO|(ZI-Wv%|Hu{Ei%Fo*w;a+N$D~3j)Wj76I9>?w3&C(QqP2 zG7~+ZW*~yO{nKj?Qv?b>sP3hcp|5F2wCIrArbQIFDV)IAnZD9>k1JU>q8JRxliAhb z(u704Zx{%{LBlq=A|nvzV!;!XnO;ru=V_FZBCQJMo`Nuq3z`=z$Ztv>q&GH1Cf^Mx zH&;aZj`(g+MmiIRYnlt(shEa?!KQo$i#!m_n&(00peGs{jX2x8A>CsU)h=(R-Kdqa zz5~}}E*Or@kXU{-jR$3R$PPOI@OBF4Bg)-Pz|sw60=g=b``plbGU_Fv=(zU)~8UA z=eTnWW(d|n9-hoVe-oN(W;wH`7#_Y5>(~^d#3yVQLmpoC8gfM0cy~J-Gh9_vJ3ETg z{rMa3rWjr_uI=&OR|B)eWX^hC+Q6K z^}*It9V73iv}8(esweZBe#!^iUPE@DU*Tc8K(W&m)u)4rM-qKS)i`myMHJmO`-l5< z3PIoVlP@_hXO^!7sfM)&!6P|&Z&17~V#a6#l#JR}OxX!=e7qQ;MJH|@+WNA+v3<|E zF3Xa!la|J6JW*aP0Sk{t4Tnxe&U_Ip{ao7ZTI^+i5JZxQ^q&in+u#8owByz(~-(K$}26K_EFdz@!pHC3bQJ9Xx`H~7Z2Uk9toG~N5$S8PQ{ zR~({w0i(3|9x~IiM@{@+tRQHQJtW9rB^aW;_B9n|$4@&X#c?AK>MSMFL-Ev~Iy#>F z$XO~YDpqJYyB_1w#A%_WeLdKw#Nvr9x-5mu6rU}JcUF$&75KWFMA6`1bIiYBW@>7_ zO3(2u)xtE!p{wAvqA6ZWp0T__yZf0*ls<}h7Ci0xkbv_$85Q$j$O$o36BO&mJy1|$ zQVns5xN_$)@&;My1CO0cAF36_nz9Ac0L$zdVb38lIE&wYS&xqKnUhxWVAlF=4*B$b z6;Q~by(6fdG0QMCPTOS^a||}mmj@?t3~XmW2uP`@*!G=R5%>e}=0<)pA4+uYb0O}? zxDy&1+f{H~HM`h?UXV=!*X7(1d80txQO?2q8Lp?gfx2HNG=LXF7}+Yt=FMn7XI$AiPOK|Xkt@+>OhiH7fpZwKWS!q#!RW>Ge=huSuV*+P5h zvVKLEGX1Dol`^R535mm)3Qd;1cp@*TNO!i3zBk<9`rkq%sQmT?DBgm~T%|K}`X!z>*Kn;jKCirzw zYE+yo^|sZtYX+a{zkg^5T|5PSO)!@F>6a_k2|m}d)O)B08RWfFg#R`=u&x0m1i`ji z@!OeukocKBi#G9>c75PlnMC?dJ03)1CP2Y+^?ZEYM!uv%51xU|PmAI4^y40AGegyv z6xopw>>Mb&s9q3%ulM&$f-4lvz&&oPXlh0ouq3aoZG{@Bd2uxD6aVo-v=Yd)VB=-l zzE;F528qTP+3zI3V4fPDKt^C)hVdg$2&*gjeO&%nai{d>>)VT&57Wd$3Z~c;P1|Q3yfx?d)@5@^gR8}Rn7U#E5GLSJ^O?n0UH<_3=Ub$3RyE< zcY@DE^Ey|zBB}BHF6QC5{T8$r4x!hqbB#qdT7DN(tL=nN#oM%B50>ETXF_fnxCw8! z^{wOfm60@qf`8Cm6oF!blZRs%swYbo-mE*cJGaJw;yW+R2Elp7H3YJzPELFG+pE^5 ztkkqvJdv&015z!-hg`lmMqmDeTyR;dO20<>pVcF&&!}eQ(O>|3wGVc#!txr>+J2t7 zb;0@V1oBRmy3aWFsA2nlgVJrE|G*Hv-;$>4|5(P*k|SAm-mpLKKTA&3+_gx{>OGQT z=>BXiJ9)TeQ|kX)mt!A+mKy>EPZkjm1id zH?yDrV_yA;d(d)%NBM56g|4-|hnDoUtn^r@*E~7RKcfrxzbN)W>(f1!goP{4r$n;= z5Z!A}Dx-P+ZwT!AWLcz4L?geY!sp2NQ-5EVhAD(+4Y$|CxkNCT!yt zp7b$q)mD_uk_hVDRagdeR}Q0|YAMw6Fk-qP)jc}3X@jx(*aeFx?|Swa9CLpUp?bRd zRgG+5i1(0Uf$Zf82#nS7D@-VEL(?1ii%@ri`Z5wSt zcEdh$-LH0{`luRn_rMlQ>7mLV_nI^7>&*z?jbqHZx+Y(I*@nk*?9Q%5WFCR1%g<}+ z&!^u1TEjfVPNXxX;iwkqd3|gOfg*bZbbUlY@v`bK@b9(`NSoZ8#8!UMN|ehxKTeg8 zl2}gPG|-OQADr|ov(z0Q9@mA$fl?0{<(D%=xdV$N?`IlecVe7_S_O|`o=FVSzOQrjVKG7z#Iwq!M$lV}r`->;oISFu2x zI7L`CRd2BCpnhnEt7<8434cS2zJ-H>W7SE%ZJt0VjM=$dj}b5=-B@NLAV2InX1Knt zk*^Ln4(;8xv3We%tvRP^JePqFj_0;gqbyv7-ZLP224VusB;CghU8~XaQ%cIpQ80I- z&>0Ej-umv@>S{FV_S9{8`rj7jB3Q9CfEGu?uWbo97JVNiqyB(1zu>16=x(c6Q?2uT zu3Xa6!p18+14+Bn&~pwOyVk|4^xY{cinWa$UE5{eW7Chz&S#aNbKS~$SP9eR^z62ax!gAA;q{!ePphY@m}gU!OY||X8By_ z28KOmY$qa=%lU`K?&?Ot?&I!d_%G*bQ!)RO6*E4s4$U5SpyP*F&o~lPZ5#B(l69RM z)Gmm!lz1sn#rSANJ)$;Xt1AyX+nzwEHmdj=o9n#O$|G0Ax$TfSDjIO`&2VYG_oJ4y zRUe8UcKWio-8*M50(}b(nqH$t>MPFZrHXnm%r-RrA+qd7tHb8Xs_6?VwG}aI5A~EY zi(Zh^VhMss2nG}}#Nrj(2rg>BnL3p3wl$5P!^tzK;}k)+$RRl`f+jERF{~Ie!~uEA z4Po!0ss(r6-#lZiI7I(>Qfu>(7E=SmeS(E^`)dcf1l)d%QwR3u7PwG_+ z*;Rq7&lg>l^P^c+r&7`^X?t zqyj{C)~V+pY=v#`KX{BS%f|%;*H#ByUy4Zv$^wIHx_HwhTGQ}g$y85;ol$@3r6>mU zvjw*f1g{(K(Zab9i*N*-6qu`Hw6UsAIyrh;!J7tp{|;AeIrvw;rG?zS<5k;JmB);Ap$}+7^95 zuwuL-fLp#=xwH+Y(AZyUajVHg+=rEYdA7HGd8+-r!xwTCOHdeM zgC>o{WgGb6A0HkwV0^WHZD1P7cV%Q|iupd$_Pp43Xbbzw`q4*m%#!ive&FaWk{=e( zjuhnoj!(CCi|H>dfVX43$K77Cd$^2{KK1s14;IGq=RKh(M}mF$0O3eE(Let1I5H6&^hV%0d+pr+yAQ{}E9A2OJ7cf=F$=yer)3Z&| zE_iGLRt+Z5tl&!bBNJ@G59oyS;~BdBTQEVv06)G^?+)dG<4+$7f|~{A%KNkJI0%Fr`2dx7W07yBxFZv6r;?pK|LfDG3n;58tA~XsEr#1`Vamd?&g?XC=$Gubt zC82pNGdnCS;wLod7t_P@FdYAGc-FOajs|A?rhwY>?SGH0Hyp1NOrQIR7@|Z z7!U<1DWxM@Oj?x;K=8f4jV~tvO9tUusW^9&x_N=f!*4*iSv;&=-|u02QU(?*HAao{ zwsbnl8jwZk0ia<}t<2J*NTWhR*~KX$S3^gSTYZdYp63`sdsct+R5{ISWMw^F7zV;< z4+DffEfQ)X?OyLrLh8=*mRH1`;_w@E% zgDpw*@MX2)h5;C&gbBqpKYMbHD8l76sqlGzp_yhwx6{x!_~pXLT1|c4Jw64MMzNF7 zd-0;%())5h=-|v@HYzJC2_ure8eM;V7|0?WPX_TYrjn){iuC(opttr4(M^u5Ji05h zy==ol5*@Wb$5%yHs($n7T8C>g4`tT2w7dqbQvM8*cqsIr3+cvYmvn=+j2 zgWp}JGt!!&^B5DNtR*TReB$h-o*mokZ<(v(SkLb)1h^LqDVxwmq z|EVO0WxTju3ZLAVWMWOKZJu9u`bg3JBhR4Qj_CWQ)@V1soA70u6qGwKF$*5|PI#vnS80EHpW#l#2N+`i| zUNxvxv%_%A;XFiO{u-*;O;0!OPA>rU*|#qX07;tcA3DCCo+SDy%>htlPwjY+0 zck-_d+$pMttn@p`t;Ak2bqsx>_F#^=M7%BcM@pz%V8|*zPMx;RI}*dR7{@}PC6`Lg z!If7nKz!+N4&A*oZ2mICER_L!okT{^la&f21Rvg1y=Y4Z^SbFi3)7#wuR`jBb2mHR z+=^&KD-!UU=Cx5Xl_uf;nZ-xg;?Q8C_)Fse{jQ~vMi*t%X)_N5P#ol;jcN{6w^X&q z-_CE7EJ0cT>8c_SDJu9sz|PZ5RGn#_3?H)GFE9g{%6wo1X{H>2HcmzuTvtYGX78;J80%$0J@%RfK9i7}ZGo`-C?u~n!x z2)E^O&F>QFz?vZcs&!a;a{|FdwfB%~k71G@r`VC~`1hcqQg+khyE`Ppn*n+=4f<;^>KNR=@14b>XS8YiZzl{c}E+C<(1XLQ-?gI%1Tqa zvNLzr4_fKfuRjoM#v$&o9mP za`uREeNjgg+Lr0ZYOflQ7R+ar?3PUH7z$Ys=VA{j5XDjkYrv;9bPA?Rs=n*8rSv2* zS=B;HmRi9g*SXq)9Y#Sc=8%WdQR=t6{o04Ki64Fm!=}=q0e&Z)jt0R%%h!+bcN|nh z>VZQo_jls<^=n&3VY}_PRens&w(C1oBcwER1<`6`#vITpkwoF*Dv(4WV~)lDDq;8% z2pO_9I%ZBZ6*0nC&+)N9wEo8!<^%q~X8%>sbn zIPhY=e`7FAg2OU+aM5PBtS`!~O0=EY`!Z4GE2Z@K)cE$!54EMaKQM_R6>?1lOa@G+ zK|o|3M2YU$Us2-vzy&=dd*pUbX&?REMLHs%NVyHD3t3DM8Su&;OuZDq_vxDG4A){$ z!5s_~2>l{cJ`pYKbvO!Z^$N4kjV*#KTmKP;{fCYgV=nT6@|9y`h zhvs_dD60nzK}v!CR($*s1;J7+WXsX5o8v!9D| z%)BXRa#gcB4WObQ`$^?S&eyo%S>IQte4zkn1+C43J6_uXUE&y}HD61hcf|9N#2)2a zj(|g`2lrcT!_845PLjkH1okFwU7{QU;wQ5gEN9*<2laGUHx5`JO0@>qP5F?t#gmc) z0|4n5S?{TLV^|bA?TF)I&}KuWu`c_Owuzwz8?7a0ER4j9U+<+Yf*YIHNz_0onCzM5Il*ZIA00 zhf>OF2QrGkTZ8NLY^{Rs%a2po^8KOo0vGBl_L;=zmfB9Q&no7Lp2}uURoXj?0?>*JdRHK7=c0G1?8xo zf$c53&Z6dGk5ICxb^x4^%ZZ@6I}xzefr+vqhAym8ylBwmPV?Lx&)?E zkEHeF=kk%UHPx88g}R>E8zC>Hyk2IW?^2E};>PQI#LQD>a+xf4g4nUuwI77Jdmcpj zs?}KM0b?r|03v4Jx++e;RrH(%j&t66lxq( z>Zcc*4bnQl8dXI($u)~bWv2#WCPHXUdFEy z;ZX9Tdsdq#$9ExlGS%@`$1FyL&pKX*>^)MZ>R^`_jUvNqi!BhJFHMzPIKJyT)p58j zf*;v(zhk&iC7l_Q?z-{WdOl3O>GXh9MSeAMf(WmncHIrpMGtroWI(q zeUL|EQ!puA{A9&YAZBHQU=05w0xn?pM-w$6zA9Ij?hz-NO$3__$U|=jC>@(sG=O31 zFcc+|T-uO}LHF!a^q<8svJ8{M3H1Fx0TcxdcEk zqC!SB{Bad%z0!G#xG`mczDun&PUacF1g^b}V9K0vC12Wvt#*pt{o#CC;&m*lQ z%vIG>+E$COyeV=lW-)`b(gGVwi6_CVTJqr(qg=grt!Y4SBeSQI-6m(rMBBw%)#o&v z6`Il;rcH8H-{qQhcFgodbWWNEX55m-m)NI_Gs`oOI951?THm0MxVdOle0S(O@pZ^} zp^0(u`WYupu+a+`mZn7XOJ*pl5z>7QU6$k)**ve%e2tN%*bw_={0B=^kaoYWQ(Erf zzz97^uDvB1(|n=oDQj|uP;y5;;34Vfb?GzyA)@DTDwoIjqrAlkk5l?5^=EFjTSpD@ zD{u(ZCx<;ui*EkbUa!V+)7ttNx=l!h?nO?|Ieee**P6zaxKp^q=|t&$-Pxp*j-f?* z8820l>jle+p6e46;e(aQ(6%GnBC{O-}b!zg5y<{$!n8MeP25qzXP@H&R*&n z=o`3zU`qDq%GuK6sTjE!UhZ>jT_pEEN7BXcfkjew;XXDv<9_hOQvApEBW>OJWW;HE z=<8ddJ*0Vxa#UofyY*0!Aj8sBcU}r{o!sZZY@H-cyxU3W`Z%`9L@@@7(*Yj!i!GMY zlR5x(Bwp)zzM3(Go12~&Nl$fJxnPRAT_Njz;kMRxZXO>UCQNSi>0X6mQ8BA z-Cl9M{dKSSdRQK>pN%k2vUXKI)5H*Qc#{;(isPcJe7AUc79qF{b1u{|qsUpJ2GmLT z7N2RqCN3hw;9b z$v-j4+XxiP;`5rbyeK9#g1i$nNj*{D5qtE~ydPUiI zM!o);_%YmAL27ah>t%eEqP4aI*P5tAYr5kq&f{TD*nZOCI-;D+qtPc@4z{7|2{7^c zLMh4hUdmbNq+fw}X?X~;IWO;((hG`(6uk{ZNQLQ>2&YZxSwPBlp_7E4<(h53dhq!Z zNC_RUxiCVUeQ#)7L#5c?axyMRlTG|-Qgj6qxtW@3!bcGSbF$ckic*Emm!6{*kS)>_ zTrXO-aCy^GJH66;^T~1VGZ#RBnYRl$Yh&Xf+FB(_G_uqyRb1_xbv0n84BVE>!ria% z$o*7m^EJUW;>3|rI}jMIxpm>E0t&_*rIQhWpBnfE8GC#bmW2zz)=m~9fVMVk@)JPb zbtd}eLO1ZXjoJXG`-}HNH%Zo1&DGd!;M1LBla4#C(e=RkHJ2h62Oi%lx!yUsWiJG| z=8^2*cO%1E4}rUs2G}qtS_%m#t?5m0*-R+(yjLu?ovwr6WRlk&Nq-?~*F9Q%{M#E= zJ$0`_uP6xmu^3WjqrHJcXBKep1@t`Ns1c7h)w^eXEWYX~m4WAMXNFeIT$^ltx%EtM zS336q=7nRSnGr~%Nlh#)L>fzMKqe~lq&imwf=b$on89~Pb>@cGJc$1+*dC)$Vth*0 zjS)QqfZDu1vU3S%!;n5yt|R61lucRJrJmvwjNQn~O_@-p4NaBjslBQvYmE^Nr89eJ zUVM|&Pu6xJEFH`ESxhBCzaiWRh=Yee0<>E7dbe^wrTCj-M|wfIW8-AjDR*kT$Qk8c zT|XN_z(8NX-z{rO)my;VL79(A{jz z=~bvn=Y6KNGH#G6>5+78nD;(@m)=Ia5;h#3={R3|PVNWb4TeX2ns#zFxM3Fbl=lDe?C9cH(Ry2f7Q;IKb(U z)9UAS$hw*u3uqq9u5;m(|HXMdHm}!e>Nsx}QVu*W@xg6wu^_ zOjJSkuP3!&U{PI(1Ft5@kf$a(E>+R^#W%#?5@G_(R8bcYvg$Nb!b%}2nV@B3&B~60 zH;X=c^G#Tne|Km%zS$x}gx(o1U%jdcHcZUIb7ASe89b-ZpYK6*bY8JTurF3Z zSq{$|XhYRbcs$9MK*<1b_%`-9DNY8H%>S#0$|y>)*8lno!jJ zYV%8JYUFrS1`I4zuc_!-zXfzePO}zpB54=Ae8!^;lFfE#z2qfELUW|^!P7E{$=CZ` zRwjB1G6p`Aw?@Ec6`yFCy9!lzSd=iP7ry0hiylw|*4S%V{5wCZVU|bsJEd`$^E0uc z_6yTQnPec1s?#Kyoe^X@<|<5I!n1BkMqkv!qWdSVcM+=T+YPbzFkKw{aQ?0~)J8?? z_a%!JAP{6J?!LCgiT2w5$DPDZc(_JK%cGg-y8;2t(<7@v8mz^q%0fJ3w^yZpz$h4r zJ6)5MNX6w$lWKhm5Nvw zL5e({IQ||OGu`&JmSQaZX@%;2oKy*O-m?COSQQrv#z#cngyO2M5*0|LH%vWJQ(_|zdkP$ zzc*)dIDhb4Z9VIUPk?R83rSgYG6oG;u1*cRh%VEddJmtP3%^%^o;|DpPt!z=sOf(E zxa!1*Xk*cz40p^~BC=5y{pXaSA3Z7Wc6kDI@ucflCeRq!Trs0Ki$_mS^_=a|xdHpm z`q$PNB^Bvz-;q$}y4*TK-)}_Oaw3ErkaVItT;C4ftjh=_`!4$NE#In&KV%iMtzM-V ze@w4kHuGVifQAw)CnH5JIt5d^6_BK95fNGzMy;11&MnYC_d*~g=~^iwc2L|vCOHQ( zwp4xAm!@-D>!7vFsjx82N3M;hf-;z|l1fQz%0>dpr17EW74sQ5_az4TG7~1sRRs7> z^Y9yA!b@Se!KSDoG|HI#g{6FBURWt7%EmYZy@l$=CvzUnmc#11y{wkee&nI8*n9bs zL$LTZh~E`(`e@mg-#^InVG0PLuSF%7NIf8@2z`4U0Qo_H9FR;)zKt7_GmZ2^CyCelo#eJb=zD2I_;_psx)H~XgL=OC?b+8{+* z0&2DSMuK=1J92XgysjJH{rh6Z#?0p#p4|w^Av^jk8U2Y-qj_T%_*%B4E=mhF2w1pi zEZVyc!paq&V=*o55gD$8?lLkDLchqr)N#c~5x&1C#e^S1*`5-`*PdebF+w3?tT`COCYDfVmF%iggH;crQ=eMzF`1d?0WEGuae`AKAC{FU?-4yYD#)KP5|)2+s zpp2D~%IwqUH1z~6!XacgP$0XZ@6$U^l7g;bGSZ}d($aiOZ7=ql-{fvw{NbuW_y_$q z3=9x4<+7ZF$uflQAc#UJea$u(H1;9#z(UBjsJZGs%d3|a8vOC_Aw$)(3vW#Q3*AG% z$c;QlT591F#)WE#WKM{6fmTxY=^%x755`BbRTpRac!v#ZoabP*#7OVMw&_ zq>4zF63oCeO~LAmD{}Fd@f2((JL*m0vh{HcHBHBrp*|0q(gu(g!omKPDAgV3~wX`C6t)oygecsEvI8fsn9esfEqsYE{oUG3qeUw5+kZd(w8r8cRAAfZ+ z_qaMWM}{+ovhkFBOBr>nj@Vl&72;XpAV-*gIRi-}awP>_@pHTisOs4Rc~i;PZptwB zU_6puL1VD5#?$#WV3T`h#FHky%n1`6(h;%?x>oUCGuP__gbbdi91~^n$;tI(Wo3_G zl2|)0o-#t*jz{#BO~U(^ z>yp#6c?oalIl+--m%fp&_D@syUjvkYXJ;TkEs_p z=Wfx|fU}EQ#Dh#HkJH>Op%;#q?!%nL(cA^RdD!a0XxL0&aoE7d2zMO&ojQUaSz<_D zde&KM2zQ=Fx~}6(L}_~=nI-*hi>CYFG@lMc8C%{#$YWi8mj)l-I-Uv0PnlP!9@Cts z5p&SwXkhG%xJ7f;G_dbu#De--d9OqsO0>p&Zax#h@@8I-?7Q3c>~;t+jR!^$H3_p0 zGiWcs5oVSj(k!1HbKQ>%5zIDYnScPl=9cm^9DibwV_t0~ud>zX8NEFG{RzZzq_J~u zV8f2rE0@*4yqF^Wfv60v5e+w-B3Dksuo*+9gOB_q474F5VOR4_Bo;O2Gr_uasC<8DhLK1KErn z{`^jkrZn^wYDp8?n;|f^p2gVwi^^o-OP&H7Z+ufs2@oo(nV=`j-9-AUcqQXkJJBLRgYQnB$Fop; z0s9;t3oDx}DGag9z54_V=#i3zhMf9qoMX?2sl}6$D~@y0#tO2ODp=na6%t$fk{q_N z%JPGPfkkvJ#DwV%ljGr!Kbo^}TUVnpB)8?arkMbOO=ckB6}cmJjxB}$;t+?Kv3q*S zbX4vQYL`$kYQv4n4%-}NbtB-bg&b-|7bI@YNQ2Hsm&!I9Ka#}A^_wc0qq?iwzD9ZE zf+|uDepiFP+4Ui$br3P?inWy%=5~$vGL&n(>y*;@OBvC^Z*Hx<6@00$d5phWMNlQx zI#rQ^LGO&*qf49#SUACs>rsJw)UB0A0`TL?5N|yas1Pjg6f{W~ZaIMCYb&Xd+7G3U zI@%!h+l`lTQtn)U3=ZXS9pEhx1FsnB+%#Kxr18L3yQ$p~E7~?B z>Xv&5Pqa&PE&{&IEWLcokqM*Hh5~xPul`a&UTCZQuG>GtccJaOeCJQsr)x@-)ZA2sbinXOhKEF z(dj^wrC=oI0q%M?TZttxjEH|E9$8|7J}TgtT-PDsxlEC8m`V7L;Xw(7y^=L2lC1%M zH9e&0{G%Hb+UpV&1S{OGRa;e-BsC9O?-=5W-xTc1jo}#(R#6@oyLcTAU9r=hCUIE& zdr-hUrjeth-xAq2VERSXc&~HUEz7BTsIb7Nj-GiAw+~nft92iw@_ttrq zK-GXh$Qye|@bqzvdigAR&P!E~XEfZZ4r!^;rW>Vtq=oNn0OF;Vy%_D7b$Y6`@^x;N z3UluW04#btZat~Xa8*dwa4enIux8h)Um91Oil%z+I2?n%YX}`MUMF{aOqUV5T4Vas zFMi4THW1^cuQ7uz^1b4GkNdt%ta!fTp=p`_P8h!6VP;t5ZP9I>f`KTIKDq!h zbo)8;t6mGUW&$&TT~Hf;YsFw)Cd=pRfDp2Nxtj zuyY=a4^{rcU-{oh`Rze5Eg;pLoZGR_>Obo%??KTbfIEV8GJS%7yzXEAATHr9n9`z3 zT}S-i1`T;Q|0p<6Xba_nY5)7kp_yTt#7$f-aQ|f<{ybj4rccHL)lPfqCdL2+d_@rP zCXAh)EZh5KRN_eDK37bz z^S-x@LFZ*ie#4zSkfUUgy3mo91ZGL&XdZBxa(r_`xf2yi9rfU?%`gK ze8c9q3cK9CzMK53?+-vD4B$0(G~9#+gHq7m@M%B&&Unlnk=gSRs<21iC;?0K;(dH# zHc)}8C%iN474QUWZEgg_I;EutC+VS_ZCV=gh_!t@uy(cIO0r8 zrub!D?vm@qTL)T_r&`%J3d`q+Mgy*JxPCnQWvhxcTzS6fJFWMFb+rKvr0;3(3ZsS} z!&jT6yH>S`S4n`v;?EH08bfbYqyCa2qmEP+TBcLAFeX;l!h`3%&vBdQKbh zqX^H!qn)mk#KpngqKi6*SEHFepfclX(mW$E@@2~+uU0#5Sn*i^QEtoC&W;WW-D~^V z`=BBmiX_dzrMGHMJ8k0m1X((9tWk*u2sB=14&X6$r43GNS+AoPqIl^ZCDDZGybIr# zlQduvF87LM)Tum=qNKR&{lswo_~$!pv49XTij&(gudz-PWJGX0QT_#jWeqE`)8$@;TKT3S#5X!Gmte8oxu#v&+EOeAs>Q}z zx4*o7_(WTX)2$h}mOTeV<1K58+!Q9cyKZ8_^XZ%0ef{fDtMlH*oBEm_g9o2aRc}$5 zyPR9k+75gKq!GPHfoRooY*kGB-oA(2q5KC6w%IsP`yWt7eeC?E?*k(3MFe+yKi2zY z!CoraQysDUCi>kvYzVUyYcJ2{C6zvbl=pIJ53NMF50cBqM=y`HlgXbEZyL9SoIR2# zLZG1R*vGF-s+iN%l|9X0FpMRUid2a|kB=sn=y-?*Rtu1jmehiQ3IxQp0*=lM-!Ir> zX?r3N?#K~4u4+ZR`mv4Z=sP(ROv1od^>Ne`x53Ir&PJ#ytk0G>EFgkwKK)C5fU7^K z|5A!8Yt~$~f8{E5hV}h>(BOHw_)*#DSn(s&q4r$;Gvcp5%-WUdnO=3riGHWZeHQ-LdpRMGft~A5SrVZdTvQ|)Af^zeGwkzZMM(vv3CjO<~ zN2g+MRi_k6aVKvoznKJaQ5_I}8rVm!+n#VUvT5?wA>?>CjT)-;}HF zR4Y(62hEN8w-1TT0wp;wt0cxhuGR9V{g-PZhj&y7ZfIcV6kEaWF)C<@3mWv${F)ug zcYrhkt2bSY%4nMgq&pjst|~(=$9w%cQo%~?e)0EL4xq`-F#BF|*8^b?(nhf9h^R5> zx{5-rqof51Ke>wAdyA~hlv2cRDFyzYI`qehNDbRRJz&}WML`-2G%pT=nqC-a@B{-- znRcysW?~eGs_rDaANu{aet%Eq5O}GI?~QfO{B+b#51p=xle7crwGdR3(-eMbN7E(d>_Q z6=KtJsQ$wKKP%;L#?apnE;gK#9xT6mu_!@ci^v8h16v{l3~?Cbgu2T&^@T7>RwH#; z?^sl_-$Pe{U~oOk-;DoHhZYF55J5=joQ443yR;`<`=}1Qr-soHq(He=Q z2&tp*{F7L81d+cvO@vcE4?6Y)CkEWONEg9j|s)J9J&QP#|GE2cIg{fC(oUsc=ptNV6HO5 ziK|un1Y8~(Z`e7{P0sufj27hjaaUcE_bo}$w1{VKWOjjdcZIQ`)^MVjlxpR#96B2r#dW*bXkh)V}cL;yx)H`bsxlF3xt0^x=S2lP!yEHk&fi=EAx-2QG=q) z?GjcC0b*Vd1z&)oRClUUzw2Ln3jFbeJFhVFpcI$v+v42CBO1!9od4o^oH2Qae4v;)cIrYNK5 z+us+d7|Qt7I`A1T)`xL(Bg)e%nc5gc`VZ&`cXp^aqEu$Ow!N0u7izV(*o-9alx;4n zEr3i-=ua4Kj;x!_-6d|&xj$jkCQI-6ng;kG5)~&YFU`C+Db2~u zY=Ed3BigAW4G~lfKUhQIm#ylcv~PM64i-@xE;I47%@v@W_6JLeLGv?m?m#v@Oa-8k z^$6q=DJ8N)-@^4$m4QgmKs7;xd!6RCAmPjg={bUz2(iaE(n?X;P)@c+n8$y40SZS=KE#rxg^ViUZ}IjpCICmnrXR^Krsd85#9g^K9ZqaZ!0k z)l%fBrKE`INwfS6TiUKaJ3gyZ10l030^964R@*DQxD-Uf&lP>d^9&ka zEdm-(S0Lt=v5t<;oW5s$HFkoAFl{i12k1u)uA*wq@lW>Ppm6t-o)&c9gBeE6sjP#f z-;FuS=E%({gPiBdgSDG>rIQ-;qA}ed9)$$}MBuC;0eq#K>~5dYkp^=}PcVPRwsJ+B z1jdPcg-wFgrQ$<|a)PfFU&?UNz*XV1HD^e-_dGe9bTq*D-aR&|`s9GCNuRjPIgdV6 zZ5GWXHw*po`#U#si-puJ@h*rW#rnA}#*70v@uO&ZHy}_Qt9kpMlWSL=Dgcp_`IF3N z1l9IveNggt;^W}(AI!2&F1XU&1-x5F$be?QO^I8#m)^PSotvsSgRukkV;hS+7XTmW zQN1@<=;~5Yhii@nyH842qdA4$1z*B#NL}sn*@N*VD4enOk-LT)NPx~&6}^q~V{m2k zG3aMrT3>~;6zd9jD-)Gu4axnkOy@c|uOC82e&S7 zVWErqLR;U5t1wHsXc+0U!Sw{BA7IR1hRN*x?Y&%dR8z9Zg|H((E_k0=CPOf}|FPl{ z8HI(i8J%b@u*;GQiu8U?HvFVGE9papBS(%9pStgpkc)?(0WtFFK+f_&Bj8mDtgV}wSdjFZig?$kuTa>N6Z&o!`f*Ohv7gU^! zt>Z40biHjbnB%)bs^NIPOv6K?#Z;%kWO408BxaCxn2wIF71FvbD`hLCWGfdf?7Xya zMW~QebT?quZBt%8fBxJy%)~)pZgb0^H*ik%(`)Mn6Am}E{VEb+UKSGSW)>&5&(F`s z&`e=Av+F-}>QSW4rqzl^8QI+c)Tx61=v#o>G|{Q0YcY zaWc&{i<6!G<>uA9b5(tztUZLwZ4g;fb~Z>!P*-;In$_m@ z&iHOSgv#z-y3GH%ax@ws%LaIItfh-`=~q+GEy?-hm1-B?DoVDK`1g$s4RU$c#67E!{Y+{4gglbyI_%iuOt{2ZOnc4#ct-75KIX!lvc zsAD*t5&Hh7;GxmMZ15x{F{5xp55dk8{m7+=xuiA78)+;hSMKJfIIX;q%H(?c)z9rL zV~bgu>`Va4-)o&W4nER(R-+BMcC-CH#?ZKZ9I#_j&?r1nq5#^7D3tbz^$|0j+g*pJ z1*2#&pn=BF!@rgJx_J>~dAU^eU_s!jQot{V)E&g#{}p!sM*>5;Ki;FINc8dZ>%>yi zFbRvONXEp(Bqbh)SatE3>CqQDPHV3a{8Hag$-Rs z)Fwivi*oE+joe<1#1_wV<q_Y$dO) zW0_?2$z!L)uI=0QrXRU%w`RKL>Le1bJlGSaMJD23xw1a$$UW+Hmtx>eLrmVO0koIb z^%#2oqpm|#1Bq$<&`E)3sZGAsZ}XF1dm!_xCnUb@INzsZJ(T)eDvMR zVlMD;n^=L%G)Z=WnR(DM=<($(pTo*=Yl&lrPK#dbP4Q4a*AAYgecEis3BNPff+0p zZJ0dYRE~1U;Dzme1E>ye{{0KDR$>8K#8k<=cPP+s; z`w@q69ICyOm9J0S7t|s=uri#o98Iv}YW#k&-wyv>GYuUTui-pY;(Kq4{=1+5>o?Zq z!QpVLs!uup`)K~-uS9vG2-6%NPs{vq82VMbDAD{T2hY}>g zgRvv+dHoN6|I@sW-GoQoJjR_7`lmnqF&e)=6y_B8H4|s@ul?aU{QU=iJbhCnJn9;| zx#r(*#=qPmADN6{`!!QfnAiVsJ5d72qZ;&<82`6jkXoAZ<=4AzcGI@Q6bR778uqI}6>Gnc^d{ z*NVrYQ~mxtr5OH0h^h*LCTM}w>)Kaxrx4uzi(wUr^U>C(Fs)ZS(}o7~*F+1~WO-v8 zxCiqH96Dm7R5%GGP_nw@+xZOdVw;i=$aY-+^J7*VCr?yhFaq9Y7Y!lxpm$OB2Hw}> z#7}}mqO9Q}aYRK2kD%4TKzt*$2M7h-XRJK-+2jSxTU=35(U$Mu?U(s(I*+nHZvA%J zRy^`Avw^#IP21Fz$*jNRveSD?%k%K_i{jdbhG=4vb*~cTeqZnm#M5~jP$*nS#0@vG ztfmn>UDlK2+IVDO^}rxU@bI1cN9kSuGMfjYDuD6V0yTx4SJVBaywd~aZk3uWOiZz> ztE;AA=x2|$PAuML=(8N9Y?7A#aBGse$qFaRAV;#)X80kX?MN zg?j?XbX|?oRVvOJ+&m8aian}mhppwwbyuJ6t~#6R&igj7XWUYPveUN~x17*^p`|mq zR6cLRz1LQvHq2HOjEu_PHZaba(MzY8ornp%{#wzwbLRnKn~X_gl5hUqq-N_$V86X3 zYE?0a2#Ef!W4kP4c{3)6T0}|q#G%%)F~dgD7;rxf4D?MzEaqs9^m4hiXaeht!2jYa zvm}1v;aNEHp4IC7`SVygL)x;^W6Y`O(P&?_<&Eifv~`59Mc!wfyh-2h2bXQGftS); zZaL3nVO?sxjBTCCqB>d7w;bA+kvLSNwc0avxx2%PQ2>)UwnuCUhrhX>Wq&WMeoue_2l(e+I{@n1` zCwq%W>#RRqrZ;8gk2AiHIKDH`()>HUD=lNvnOMPI?+VqtOsDOn1Z$X4(?*Mpmw5 zUb3Ei^4(Tq`I{|~)y%@=0?aJ5IG5m=DI8*J3ii|cqGG`iVHH_jpm{)9^?VuQxV5>4 zv;OjGk=3iGsti-k6a%7X#>ei>O`{FoRS{Y(Z}nU_AEADxY)N3&w&hYcLqyKT^dh}N zL1{~bGQU?a`x0a#tKL222;`fWRe8)Alz66@Dts;~f z{s4h{fK9kAyUE;R$xA+f6;jvH=?eFr$oTHKt#O99M^o{~yu)&|eUYAdXLn5$Up<~* znw+>$WLh0iK3_0>PD7_U8yx0M_?O*74pS#Z*-@)5U+@_%dc?4Aef4T%qIWz1IAUrw0PoW_GLWLuK3PmJ2H^Q9Ii^+ zJ9Lqgv%U2W?@=67CE@!IDi?2eV)pK9f!y0Oa&^V)515w&E<@A6Kc5P_?+6y)G4%1f zFYox86;TAjHV!_qgarXRx#&u)SckzC5kL|6+uI6fOQ4RD31;uFT(XgqCYLks_rB zt7(6&+P}O&OM};Hx$G;6JpA6Xq%=>1P)@+Wiufi|j%fig1Uzq#Y+```ex39C^5w~zn-<>DA~0!b;U zI8a}y9mniDHP&(Fc>emy^plx2bqvx4Y_nZ!Q*pUvd)Z=}%M28E4f;Mo0!&E~Qd07~BmJdL2qX5@ z!4sFB0j0Ko@imD{Vt&Jc-L?L=zjvQiTR7#7U)HIe3>c=2?3Vgh4qje0d+L$VQTZ#k zRX4f`-E=hn_Pf6p5Z|E-(TX>NPyT!)L&eXaJtdjpJj~b%dK*Cvmxg?l>}J0&Uq4|f zy!O3X;MLaVz&77zZ{wzVbx-H%f4xByHP}kszJAI-jJ!BwrsYu8VtzrXnbgvDxK)GL z+=YJ)Z)Er(W*YV`I<=GS#FUZRgQ`}ma@l+U8J=?aH==SGr+Va&Lb`h)htgVr)@s0x z!wN0+CdbtV)|4E9-O~z$eSg=DYB$(uH@B_LA|2U*%44xs;I>|{h~!1agYWo?AKhvqkaUjA7b2}2VE--GS_L*+IoR0leM*Ulh>(KD1uj_VH)m2? zU0vM@x&*`4&@myld~32iomq?Lh=`PIlnr#n)5p{B?ySxdSp9f29vG09nVFb$Q$(*{ zZv|HBvpknpDegFdts#L1LM+8>f!p@h;u{jz3wg=P5sWG z_HBE6-P7&6r!{EF#X*c=Dz<24Zq5?6-8;%3qzQa%gU!_Z0(-56U#s-*UgWYsD%^(M z>F4N~2x{x=pVt84sBy&%M@1}vn_EDjAsnI2SVJ)^9sz+eDtNt3Ji25&x9C*9;?#vz zE*T^r-<)-G;{i}?j%>~;z=k7x54{Qd)E0aOr356`!&4{~pp8%-$qyW#1ZePg(S+YC$8~|*jh#wy(ucj_24uLLTA>9@V4AmVGXHXx zUmUc*Wuy{eB&PXBlkB0GFy|B2&luNw%xccV)amD8g4ywtW_7GtREy?ky9CqQ%Cc)OCJlPWk$ zCCeZ&v6RX3eoXG7TwC*X>Im{Hr871ewdMtsc#^XIWDlh-$|?DHwbzgpQ2U@V3OTjO zuwU~TAKvC@8``^5n zhf+(;sDZ_g4@C*?6m0TjUs06%0LYig>3ED-Wg03)zPE!lzMyO=O+{A8#$m~Tj1lTu zv&sBsYol6Q!&>?UM9#Hp{VxD%mv35*E_7^k>VL^x4q3@;vmq`wU}aY4=v{oFc*1F% zY`t>7+C`TM`N$gAs_p0~#&|?{!*;U5^v(A6ET!8VrMyq34YYae&?vW8`}d{FK?h6q zGM(B_YiA;PTJ$x~LLK{LSu&F3M$&9C{Cx06o*A_F{9?KV9LpqTHJ&3hVhCG7f->X# z7121aafrpu3j6RV)t|w$Y|$dwY;jq^C1eGTLwm|PuXvDl2!FI50SnaV_U*HLAheek zo#f4eMN?g5G(YowxuBe{4^ZJoD>Hq0TyICDEF9$>7s3X@pZY4Q={)+kqXLR=3}&-N zySWiT3`+I}Io^$@@wc`?4JrYEucj{nTp9;V;xl2}80zmB(PF(?KQK|bP?aDrNJ_r~ zJaNaFqS5RGXy2u7W7!vJDN!-82T_$TG)^$Gy-uFi1?VVCL)8IC!vF#1%3L$gxr5|zP3_x-#P#x3aey{926w1fT z9!4=jQmVB)aeU^|D&8Yc&sN0ueg)LKMJPaVGUa+T3Ia%3w{@S7?U0gd^Nd~DLd2u# zsx%_E%}zHy#^trJ^3^cp*wL+i+=EkvC8pwP;~QCAwB}M(Of3O^tK11_`#V!>{=^<> z2hYW$?DKvJV&{vSZ8tX+*7CI0^QM&UZ*Meihcl=26h1T~dT%hYTC_?=^Ps09_;Ha67Tu4kuhvg{Yek@Hzze8}p2rgW`6Bi-r2 z&RKCRd8P)RNNXXqQ}>}#T1q;E!( zx!Fg4I+Rg4sPZ|g^5-2HT9IYIR5d7QQ|n$sI#uy+d?7I?K&fNR<3@pXtH*U#kxbrY zIVVyh->BE?TO%xloZ%o1TNSg-_5PJI4k-VV%T=ar1xm|4uz^Ec*BjA7>{QaS|MIZQ zne3^^>&6zN&UB3(cQM}{JU0ntr{Ayvf3=B%RHy)ui*2`6Q~$`x&)=W(JP@|X(aqDM z*PhV3cJZnnORJ0uW8a5pvLDeR^pcjK_38dRSh(y9yCRN--TCT?On%eR({z;>!+wS#vW zGp97%J{P!7 z7PLSDAPju%t#cx;m9HeXf(~+IKdiP>O5x;_(TQ}TACSImtw8?`>^qo+y}1z{9DGC8 z2LJ;vsVdh^( zsy4@BnD)`ot*&a-pAOV%3_HYjnYZI6Y9F6XsuYoIAC_>dGL(554`C0d%ZycIt*DFF z^O)!h;{XxOAgA4&ncXt?s%|j?&KKgSx{R<#iXqV#k_ZV650^yz<6u4|27Byh52BWn zcD>JSXZs_j3oTWPT`FQlAs#34xw}@G11Ehg2w1ykZ!g2 z^G?aXasK`|Nv)A&$|zIb&usf*NCl$wjI}f=eM-fxUvSVg;0`D{(tD+=hH#mFdKP_` z=@e2<`R51=OV<<@W@J0NWD@e%o&LA)Xdn)S&Fy{v7PS2l&qWO&wKFH&QrCaIjbC?& zMWUL?_Xq#D!apZSp(tC9RGC-yJ8u5lGyb~xert`WmL-}?Kc4I8T?{0~7D0-G#Gcj0 zPp}9NiIo;Xn2DPYy095JI`TaA^9!O9p8e;95G@oE72ifpvLSZcT1gwoN8>=|zrkxe zHD>xwl}1pze!sA#BAKERHDOwZq+to^KMsRnBT|g^>BbYSlMkwqmsHi-(%lsG5Ra+bP(Y|;(o~u7{kLNCMaRnmT zYCa$1RvK&1Gnt~e(I1QB`lI^n-8DC8iHWUdsvML) zIkd-o7j>=LuY`aPG924eT0n>Sg-5Mb`pjF_;V*F1!bd#WV{om#kC zC5ul;Xq}pRJs4rDWlN?~UstDFT>asatZBP*Rko zAR4oT+BzdYq{Q~eBb!HTZen16fgU-spN&rm1Bzfytymzu_J zUl(+RIb0>q`|Yj&eYF4i)e3jm>BqnAnLPE=L;BN-_@58MbymUb40E@k{@bVbg4Hpu z*qiF~--hx3<3W#N+@%pnTGIz$DFVE=|_jCjNrKY`Ml$lRQhL`sc`EJ#Vm6{gZx_rK2|3^DI7w zai^@%rvf&lU5UjG>@k31*Ca6!uQHY0cj-gmY*l#0rnC2V zoFb_9Y6)%~v^@o9|46wwlf|3$S?x$=z!cWz@Nd6}?)R&)RR^zo!C-Qp;+H2i+!f>| z_A8XxGS%q6`YX)2vOdpBzvG^R(`|k-czdJsKd%v)W7O0cHWwf54+{zT_{z`MHy+TN z-B|Mm|LMYua-Se%t9LLpO${r_%dZ_#S8%Je%gmsHd(HDU-e=&2)r1l$#0$0;%uJ*L zcEhK<*vZe5zwUKkYkr5q?!Br>U=KF@a%leFeC@megM@d|?N6z}w^v(ir1HBu^!0dV zK76~uV}GZr4iI_;HZ>f1@`pwPzAuklJwfOGohtyph@0W9it|2RKL~8Cw1Ou%K5yD( zHZnrxmd9w|xrp9c_z`W9MZ{C}J!cXj>UAk{2l0v2R3q9ZKb&3dIaEbX^&ASWl}FB1 zi?4?5&G@JRewo?4f{_FJY7d)AE$;^iJLkn(zaE?~5KBA}_7VO$F+S9RN%QL3#dQ9= zIl#0)9*jZbgH7zETq@>JGmI(7b=@l_=UPbfKf`k&o{ z-^~d+0&H)~Lv_#p_HjcByn z5qSr><{UvOJp|aC%bME^)1`b~7jUo2<1+Uj0jrl5PuqXjW^PvQ^mltc{ahvXJMWxGSzKqn`QfPS=$dSi z*twdZr8nV^qjFU}!)(dR7hQ+u?EPP6($^~`9RGfQ z@3~%^)7;kU_xyjx8GZS8SN`RYoo3+mJL`6s?%w?4S^a-m;QoU93%lkwzY0tV)!iZ` zCFS+;#nF&$kI$Vu2O2F&*#exWTN$+SOH*V`b%|X!bVPG^;X%FIzZ1X*!hWt7IvxGtpY;u3mC^P7)0*@9m#p}{7&46U=jN_Gt*{jz<(1!_0(I$|4x%*4qcStThdVx%JwlbUd>fb$dsAnH6sZaM3$(eb&+K zez(d~0%zJiXNeF5t!CP;d@^eJM5S}j7Xg>UfrfFT)xTP8^7vQQQh3zu32+qTBg@H+ zLI0i|$Sw*8HjHN5ght)-`M1sI+9y8Hnw6SMCOez|*W diff --git a/BasicObject/dict/hh_5.png b/BasicObject/dict/hh_5.png index 846611508afd163834e3ae97793f8aed02da962b..cf538f0890b06063d5936c22efbc9c6b1e8197aa 100644 GIT binary patch literal 31299 zcmeFZc|4ST*gh<&XpccDB@G&DvJ?uHkr`XY*q6$Zom+N7N{dm+E=!6Tj5TYrR+dth z?0b@ZSN8oquj+oD-=pVw-uK`4^ZDI>xnr)mzT0^o$8jF#*YAqT z5ol=WDrji7Fw<{`fBBX~7@?uzpux#qAi5fk$LxxJWV-SpLr0Pxiz3Cv6Fa)SFNX#_ z8GeC^Ir(XcnVm>%@OgU0o#HT(w3VGmnr;}Wn8Z`=a^i|HJ72z<*;uum%APuyU6`FM zl3iDQYpTvn=5y^#*Mq6G@$qVx^f7l@`MWf995h?#Woc;l-~K;-l)Zm|-lWZ4NASP> zEe+jnOeOZe`4~LmsXg6OqeHI;_z(WqC;t0zOr_ZW{owzdoXs2V|9$6h^b+{boH;{( zgI@NVH{H*lKN;6OcG&&3b7|=C+)t;^3@Hc;UZA&Dq`_1&Z~1F~C%Mw%f{kW|>M|Ca zPj96sa`uA*6C9iEwXz6IqVaTgV5sw$la4!JneP?B2Th z8T%i?XZd$39HI4b-7ib3xXbDJ_ria_M1x^D_GFgUhrqy5fyb6_+5EONK4cgX*B-I0 zrjjtt30JqI9^1SEtMCqkiQU%(EtKJ9S~@>}-#ob-74#ex1naU0+fkT)%H&sJht0c3 zK?Y`hwo_fRUmX@a)^>N}oqyxjpYQW|guadX{L#j&p7{a|M)N?^A*Ri5!mtr?@ zKWL=ux3h_wUvnC3$%Rdyq?N93p^;3?v}{fe?YO$QB~p)q57jSyIWd+|npYEbMlYCK z`BRr!4o|91cBS;js>4d}gJWHb57?a}G%^f}hi4ahynEQhEc;71b7j^S%fxLuOmeMS zpE!Tak=%<3)9kD=`g_t~O*pN;6)$|Xni;Ig-n#GHm-7Xd&Ah>nkhho{ZB8i{nELYa z?nKGTq-Khyz{<*0>BNU)-lA16^laZ$JdqeY=wcf#XkcBsHlOXYbw`-{Qqk(q&zc#A z=cU#c`?@nDqvVLMZM#XeF_KQnkJ+VKj=Fx^V%7HQI@PoC=35wv_3)RM&gBO#Yp*TO z*)07Wm>)@u?YO;V>v%bns-waDSZiJFxfvy?zDFXQd+o>4UUy`au3Pq1KK3`=i5==6 z8tQz1Z&#Y}hbIH0JncLuDuR@we{3El4Q&OJED3v!33o0{?{#gh^oq5|2qhf<$T0|2 zxV}6#@$p0e|L9V7opg4I=SoL>fb=LiwERo0)YK6Ta>TOaT$6f?H3?l|=rJMYu{@GE z@ovX4#{(9A<~?33X--pLyVsZMyjlD%KAx#L)1w`5^!#|{hojk^3*E1Ym;?n8ED3io zEU|d{{jLNF>-ft7&Ihhr zlD4a(+fD?WGYU6wZg(aqeK-g6D>(7bmlqf2r_1&g&X#4@N`8)!ahcRVEM^(9Hs5LI zJpA%OM+NIu>-P3`=cR%0PF0z;{{CliWzRh(B?_lXR!E!`=m%e2`}VLNAFRQyF|)7~ zyeWbSnd}J?KGW?OETEHBUUSLVZKB(yCwFOPs1wF#U3YHgQSnTzRG#yMuGH#uS(?k# zSCyQR%*w}y^%7NL^5VJb6O%GK?Ml0GnZYWORnqH=#_FQ2M?J=SYnvmR%9V|({ih?P zJqymyez}zAK4%$zlbR$VG)EYNJyxh}@zRKLvUrzZ{#%p{x1smiTzE58{ez!yjTkc< zfuGsgPvYX{fS3Tm2aBmdo1v-CZ~ervKI5uCu_b}Kip%drFEa+FN&$tV8CjK@Dr%hX z@%Aq44^p&l&oWgJ?{@8bEXb*3;q$uNIjZ>QC%!!UKKX^I!J4ST56<0At#Pwe>@HpP z=n6-DSDVv*8LHAtgpf#Z@k#mdPb5E~D!47U>k}l+BOegdnAbF~ zT=^y!Lpa?$_2`g@_2P7|%15Ry2ITnqih6Bv+C<>_%4chLp8V+-Y%0D`Iory=q(M*vS=O|{= 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 literal 98684 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

c5cLGH-zpOl`#{2 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 z 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 diff --git a/BasicObject/dict/hh_6.png b/BasicObject/dict/hh_6.png index 18f07b3d3562090045b1146b842d89c80bdedc4a..b221ad78a45033eed7ca960ad075601511fe6d73 100644 GIT binary patch literal 35336 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�S;e`m-_bN!11qULTsuhn#s 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 e*Z|y?g>N(E5_WVc>ZiT_39`UmL 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 x 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 YYbD4FQJj7Mfq$B+dPnkqKKbka0Zb4@SpWb4 diff --git a/BasicObject/dict/indices.png b/BasicObject/dict/indices.png new file mode 100644 index 0000000000000000000000000000000000000000..4b166a52c6c9b35731192d65c77fcc96f94728d8 GIT binary patch literal 32127 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%0A8EtUQQ9>27VsD+2d?fa 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 literal 0 HcmV?d00001 diff --git a/BasicObject/dict/resize.png b/BasicObject/dict/resize.png index b089e97ba8069d87ec4a7dd3450ae180e01f9793..671b92f3b6ec55f37f184bedaa84e28be52d7909 100644 GIT binary patch literal 30855 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 AWdHyG literal 106436 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 z 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 d>Nb%$|Ma?SY3$?>Ur}nUNPP@PaI_lY4K0G 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 From b4146f8eb8328b634178ab3a25a1c595c74b36be Mon Sep 17 00:00:00 2001 From: zpoint Date: Tue, 23 Jun 2020 00:31:41 +0800 Subject: [PATCH 07/90] dict upgrade --- BasicObject/dict/dict.md | 106 ++++++++++++++++++++++++-------- BasicObject/dict/dict_cn.md | 18 ++++-- BasicObject/dict/key_shares.png | Bin 0 -> 92439 bytes 3 files changed, 92 insertions(+), 32 deletions(-) create mode 100644 BasicObject/dict/key_shares.png diff --git a/BasicObject/dict/dict.md b/BasicObject/dict/dict.md index 11b993e..85927b5 100644 --- a/BasicObject/dict/dict.md +++ b/BasicObject/dict/dict.md @@ -17,6 +17,7 @@ * [why mark as DKIX_DUMMY](#why-mark-as-DKIX_DUMMY) * [delete in entries](#delete-in-entries) * [end](#end) +* [read more](#read-more) # related file * cpython/Objects/dictobject.c @@ -43,17 +44,27 @@ If you have many large sparse hash tables, it will waste lots of memory. In orde You can think `indices` as a simpler version hash table, and `entries` as an array, which stores each origin hash value, key, and value as an element -Whenever you search for an element or insert a new element, according to the value of hash reslut mod the size of `indices`, you are able to get an index in the `indices` array, and get the result you want from the `entries` according to the newly get index +Whenever you search for an element or insert a new element, according to the value of hash reslut mod the size of `indices`, you are able to get an index in the `indices` array, and get the result you want from the `entries` according to the newly get index, For example, result of `hash("key2") % 8` is `3`, and the value in `indices[3]` is `1`, so we can go to `entries` and find what we need in `entries[1]` -It takes about half of the original memory to store the same hash table, and we can traverse the hash table in the same order as we insert/delete items. Before python3.6 it's not possible to retain the order of key/value in the hash table due to the resize/rehash operation. For those who needs more detail, please refer to [python-dev](https://mail.python.org/pipermail/python-dev/2012-December/123028.html) and [pypy-blog](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html) +![after_py36_search](./after_py36_search.png) + +We can benefit more compact space from the above approach, For example, in 64 word size operating system, every pointer takes 8 bytes, we need `8 * 3 * 8` which is `192` originally, while we only need `8 * 3 * 3 + 1 * 8` which is `80`, it saves about 58% of memory usage + +Because `entries` store elements in the insertion order, we can traverse the hash table in the same order as we insert items. In the old version implementation, the hash table stores elements in the order of hash key, it appears **unordered** when you traverse the hash table. That's why dict before python3.6 is **unordered** and after python3.6 is **ordered** + +![after_py36_space](./after_py36_space.png) + +[PyPy](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html) implement the compact and ordered dict firstly, and CPython implement it in [pep 468](https://www.python.org/dev/peps/pep-0468/]) and release after python3.6 + +# memory layout Now, let's see the memory layout -![memory layout](https://img-blog.csdnimg.cn/20190308144931301.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMxNzIwMzI5,size_16,color_FFFFFF,t_70) +![PyDictObject](./PyDictObject.png) -## combined table && split table +## combined table and split table I'm confused when I first look at the definition of the **PyDictObject**, what's **ma_values** ? why **PyDictKeysObject** looks different from the indices/entries structure above? @@ -118,7 +129,7 @@ in lookdict_split, address of PyDictObject: 0x10bdbbc00, address of PyDictKeysOb The split table implementation can save lots of memory if you have many instances of same class. For more detail, please refer to [PEP 412 -- Key-Sharing Dictionary](https://www.python.org/dev/peps/pep-0412/) -![dict_shares](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/dict_shares.png) +![key_shares](./key_shares.png) ## indices and entries @@ -183,7 +194,7 @@ PyDictKeyEntry *entries = (PyDictKeyEntry *) pointer_to_entries; now, the overview is clear -![dictkeys_basic](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/dictkeys_basic.png) +![dictkeys_basic](./dictkeys_basic.png) # hash collisions and delete @@ -221,44 +232,47 @@ index: 6 ix: -1 DKIX_EMPTY index: 7 ix: -1 DKIX_EMPTY '{1: 1}' - ``` -![hh_1](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/hh_1.png) +`indices` is the index, value **-1(DKIX_EMPTY)** means the current location is empty, now I set `d[1] = "value1"` in the code, `hash(1) & mask == 1` will find the location 1 in the `indices`, it's `-1(DKIX_EMPTY)` originally, means it's free to use, we take the position and change `-1` to the next free index in `entries`, which is `0`, so we store `0` to `indices[1]` -```python3 -d[4] = 4 +![hh_1](./hh_1.png) +```python3 +d[4] = "value4" ``` -![hh_2](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/hh_2.png) +![hh_2](./hh_2.png) ```python3 -d[7] = 111 - +d[7] = "value7" ``` -![hh_3](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/hh_3.png) +![hh_3](./hh_3.png) ```python3 # delete, mark as DKIX_DUMMY # notice, dk_usable and dk_nentries don't change del d[4] - ``` -![hh_4](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/hh_4.png) +![hh_4](./hh_4.png) ```python3 # notice, dk_usable and dk_nentries now change -d[0] = 0 - +d[0] = "value0" ``` -![hh_5](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/hh_5.png) +![hh_5](./hh_5.png) + +If we insert an element with hash key result 16, `hash (16) & mask == 0`, but `0` is already taken, we encounter hash collision + +There're various different way to handle hash collision, `Redis` use open hashing(linked list) to solve the problem, CPython `set` object implements a close hashing(linear probing algorithm), while `set` implements a more sporadic algorithm(go to read the source code if you're interested with it) + +![dict_prob](./dict_prob.png) ```python3 -d[16] = 16 +d[16] = "value16" # hash (16) & mask == 0 # but position 0 already taken by key: 0, value: 0 # currently perturb = 16, PERTURB_SHIFT = 5, i = 0 @@ -272,7 +286,7 @@ d[16] = 16 ``` -![hh_6](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/hh_6.png) +# ![hh_6](./hh_6.png) # resize @@ -284,25 +298,57 @@ d[5] = 5 ``` -![resize](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/resize.png) +![resize](./resize.png) ```python3 # step2: insert key: 5, value: 5 - - ``` # variable size indices -Notice, the indices array is variable size. when the size of your hash table is <= 128, type of each item is int_8, int16 and int64 for bigger table. The variable size indices array can save memory usage. +Notice, the indices array is variable size. when the size of your hash table is <= 128, type of each item is int_8, int16, int32 and int64 for bigger table. The variable size indices array can save memory usage. + +![indices](./indices.png) # free list ```python3 +#ifndef PyDict_MAXFREELIST +#define PyDict_MAXFREELIST 80 +#endif static PyDictObject *free_list[PyDict_MAXFREELIST]; +``` + +CPython also use free_list to reuse the deleted hash table, to avoid memory fragment and improve performance + There exists per process global variable named **free_list** + +![free_list0](./free_list0.png) + +if we create a new `dict` object, the memory request is delegate to CPython's [memory management system](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/memory_management.md) + +```python3 +d = dict() +``` + +![free_list1](./free_list1.png) + +```python3 +del a ``` -CPython also use free_list to reuse the deleted hash table, to avoid memory fragment and improve performance, I've illustrated free_list in [list object](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/list.md#why-free-list) +the destructor of the `dict` type will stores the current `dict` to **free_list** (if **free_list** is not full) + +![free_list2](./free_list2.png) + +next time you create a new `dict` object, **free_list** will be checked if there is available objects you can use directly, if so, allocate from **free_list**, if not, allocate from CPython's [memory management system](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/memory_management.md) + +```python3 +d = dict() +``` + + + +![free_list3](./free_list3.png) # delete @@ -371,4 +417,10 @@ deleting entries from dictionaries is not very common, in some case a little bit # end -now, you understand how python dictionary object works internally. \ No newline at end of file +now, you understand how python dictionary object works internally. + +# read more + +* [pypy-blog](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html) + +* [python-dev](https://mail.python.org/pipermail/python-dev/2012-December/123028.html) \ No newline at end of file diff --git a/BasicObject/dict/dict_cn.md b/BasicObject/dict/dict_cn.md index d3ad184..7b26800 100644 --- a/BasicObject/dict/dict_cn.md +++ b/BasicObject/dict/dict_cn.md @@ -14,7 +14,7 @@ * [entries 中的删除](#entries-中的删除) * [结束](#结束) - +* [更多资料](#更多资料) # 相关位置文件 @@ -49,11 +49,11 @@ ![after_py36_search](./after_py36_search.png) -这么做的好处是空间利用率得到了较大的提升, 我们以64 位操作系统为例, 每个指针的长度为 8 字节, 则原本需要 `8 * 3 * 8` 为 `192` +这么做的好处是空间利用率得到了较大的提升, 我们以 64 位操作系统为例, 每个指针的长度为 8 字节, 则原本需要 `8 * 3 * 8` 为 `192` 现在变成了 `8 * 3 * 3 + 1 * 8` 为 `80`, 节省了 58% 左右的内存空间 -并且由于 `entries` 是按照插入顺序进行插入的数组, 对字典进行遍历时能按照插入顺序进行遍历, 而在旧的哈希表方案中, 由于不同键的哈希值不一样, 哈希表中的顺序是按照哈希值大小排序的, 遍历时从前往后遍历表现起来就是 "无序" 的, 这也是为什么 python3.6 以前的版本字典对象是 **无序** 的但是 python3.6 以后的版本字典对象是 **有序**的原因 +并且由于 `entries` 是按照插入顺序进行插入的数组, 对字典进行遍历时能按照插入顺序进行遍历, 而在旧的哈希表方案中, 由于不同键的哈希值不一样, 哈希表中的顺序是按照哈希值大小排序的, 遍历时从前往后遍历表现起来就是 "无序" 的, 这也是为什么 python3.6 以前的版本字典对象是 **无序** 的但是 python3.6 以后的版本字典对象是 **有序** 的原因 ![after_py36_space](./after_py36_space.png) @@ -137,6 +137,8 @@ in lookdict_split, address of PyDictObject: 0x10bdbbc00, address of PyDictKeysOb `split table` 可以在你对同个`class` 有非常多实例的时候节省很多内存,这些实例在满足上述条件时,都会共享同一个 `PyDictKeysObject`, 更多关于实现方面的细节请参考 [PEP 412 -- Key-Sharing Dictionary](https://www.python.org/dev/peps/pep-0412/) +![key_shares](./key_shares.png) + ## indices 和 entries 我们进到源代码里看一下 CPython 如何在 **PyDictKeysObject** 中实现 indices/entries, **char dk_indices[]** 又是什么意思? @@ -231,7 +233,7 @@ index: 7 ix: -1 DKIX_EMPTY "{1: 'value1'}" ``` -这里 indices 是索引, 索引里面 **-1(DKIX_EMPTY)** 表示这个位置是空的, 现在代码里设置了 `d[1] = "value1"`, 而`hash(1) & mask == 1`, 会对应到 indices 的下标为 1 的位置上, 这个位置原本是 `-1(DKIX_EMPTY)`, 表示没有被占用过, 马上占用他, 把这里的 `-1` 改成 entries 里面第一个空余的真正的存储 key 和 value 的位置, 这个位置是 0, 所以就把 0 存储到了 `indices[1]` 里 +这里 `indices` 是索引, 索引里面 **-1(DKIX_EMPTY)** 表示这个位置是空的, 现在代码里设置了 `d[1] = "value1"`, 而`hash(1) & mask == 1`, 会对应到 indices 的下标为 1 的位置上, 这个位置原本是 `-1(DKIX_EMPTY)`, 表示没有被占用过, 马上占用他, 把这里的 `-1` 改成 entries 里面第一个空余的真正的存储 key 和 value 的位置, 这个位置是 0, 所以就把 0 存储到了 `indices[1]` 里 ![hh_1](./hh_1.png) @@ -414,4 +416,10 @@ index: 0 1 2 3 4 5 6 7 # 结束 -看似简单的字典对象, 实际上底层实现起来包括了不少的计算机体系的知识, 看似复杂, 但其实大部分都是我们熟悉的算法和数据结构的知识 \ No newline at end of file +看似简单的字典对象, 实际上底层实现起来包括了不少的计算机体系的知识, 看似复杂, 但其实大部分都是我们熟悉的算法和数据结构 + +# 更多资料 + +* [pypy-blog](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html) + +* [python-dev](https://mail.python.org/pipermail/python-dev/2012-December/123028.html) \ No newline at end of file diff --git a/BasicObject/dict/key_shares.png b/BasicObject/dict/key_shares.png new file mode 100644 index 0000000000000000000000000000000000000000..42d74ac7e5400a4a0b55e1673d2f96222fc14fdf GIT binary patch literal 92439 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 z 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⪻tU-N_ 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 Date: Tue, 23 Jun 2020 00:33:34 +0800 Subject: [PATCH 08/90] dict update done --- BasicObject/dict/dict.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BasicObject/dict/dict.md b/BasicObject/dict/dict.md index 85927b5..751a75e 100644 --- a/BasicObject/dict/dict.md +++ b/BasicObject/dict/dict.md @@ -7,7 +7,7 @@ [evolvement and implementation](#evolvement-and-implementation) * [memory layout](#memory-layout) - * [combined table && split table](#combined-table-&&-split-table) + * [combined table and split table](#combined-table-and-split-table) * [indices and entries](#indices-and-entries) * [hash collisions and delete](#hash-collisions-and-delete) * [resize](#resize) From 69e7c4d5f3e3574e06ba4517950b038c87b4d1f9 Mon Sep 17 00:00:00 2001 From: zpoint Date: Sat, 4 Jul 2020 12:40:26 +0800 Subject: [PATCH 09/90] typo fix --- Interpreter/gc/gc.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Interpreter/gc/gc.md b/Interpreter/gc/gc.md index cada842..abf58bf 100644 --- a/Interpreter/gc/gc.md +++ b/Interpreter/gc/gc.md @@ -174,7 +174,7 @@ case TARGET(DELETE_NAME): { ### when will it be triggered -if the reference count becomes 0, the deallocate procedure will be triggered imeediately +if the reference count becomes 0, the deallocate procedure will be triggered immediately ```c /* cpython/Include/object.h */ From 4d5371d54a27d24a527ff88d1a20e21aa8f16e13 Mon Sep 17 00:00:00 2001 From: zpoint Date: Sat, 4 Jul 2020 23:19:46 +0800 Subject: [PATCH 10/90] Contribution and License --- README.md | 21 +++++++++++++++++++++ README_CN.md | 25 ++++++++++++++++++++++++- 2 files changed, 45 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f145f10..014352e 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,8 @@ The following contents are suitable for those who have python programming experi * [Interpreter](#Interpreter) * [Extension](#Extension) * [Learning material](#Learning-material) +* [Contribution](#Contribution) +* [License](#License) # Objects @@ -97,3 +99,22 @@ I will only recommend what I've read * [YET ANOTHER PYTHON INTERNALS BLOG(blog/eng)](https://pythoninternal.wordpress.com/) * [Junnplus(blog/cn)](https://github.com/Junnplus/blog/issues) * [manjusaka(blog/cn)](https://manjusaka.itscoder.com/) + +# Contribution + +All kinds of contributions are welcome + +* submit a pull request + * if you want to share any knowledge you know + * post a new article + * correct any technical mistakes + * correct english grammar + * translation + * anything else +* open an issue + * any suggestions + * any questions + * correct mistakes + * anything else + +# [License](https://creativecommons.org/licenses/by-nc-sa/4.0/) \ No newline at end of file diff --git a/README_CN.md b/README_CN.md index e537814..85f8361 100644 --- a/README_CN.md +++ b/README_CN.md @@ -27,6 +27,9 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 * [解释器相关](#解释器相关) * [扩展](#扩展) * [学习资料](#学习资料) +* [参与贡献](#参与贡献) + +* [授权](#授权) # 基本对象 @@ -84,7 +87,7 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 这一部分我计划在读完 [< < Compilers > >](https://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811) 和 [< < SICP > >](https://www.amazon.com/Structure-Interpretation-Computer-Programs-Engineering/dp/0262510871) 之后对这类知识有更好的理解之后再来更新, 与此同时我还需要处理优先级更高的日常工作, 所以可能数月之后这部分才会有更新 -# 学习资料 +# 参与贡献学习资料 以下的资料笔者遵循先阅读后推荐的原则 @@ -95,3 +98,23 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 * [YET ANOTHER PYTHON INTERNALS BLOG(blog/eng)](https://pythoninternal.wordpress.com/) * [Junnplus(blog/中文)](https://github.com/Junnplus/blog/issues) * [manjusaka(blog/中文)](https://manjusaka.itscoder.com/) + +## 参与贡献 + +欢迎所有形式的贡献 + +* 提交一个 pull request + * 如果你想分享任何你知道的相关知识 + * 发布一篇文章 + * 更正技术性错误 + * 更正语法性错误 + * 翻译 + * 其他情况, 不限于上述 +* 提交一个 issue + * 任何建议 + * 任何问题 + * 更正错误 + * 其他情况, 不限于上述 + +# [授权](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh) + From fd8ba3228aeeefd43e62dad92ec3555cdd1a1dc3 Mon Sep 17 00:00:00 2001 From: zpoint Date: Sun, 5 Jul 2020 11:08:24 +0800 Subject: [PATCH 11/90] gevent link --- Modules/asyncio/fileio.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 Modules/asyncio/fileio.md diff --git a/Modules/asyncio/fileio.md b/Modules/asyncio/fileio.md new file mode 100644 index 0000000..ebbbf47 --- /dev/null +++ b/Modules/asyncio/fileio.md @@ -0,0 +1,14 @@ +# asyncio + +# contents + +* [related file](#related-file) +* [memory layout](#memory-layout) +* [read more](#read-more) + +# related file +# memory layout + +# read more + +[Kavya Joshi - A tale of concurrency through creativity in Python: a deep dive into how gevent works.](https://www.youtube.com/watch?v=GunMToxbE0E) \ No newline at end of file From d6d492e1e77964033b0460127492ce7a38a3d71a Mon Sep 17 00:00:00 2001 From: zpoint Date: Thu, 9 Jul 2020 19:06:58 +0800 Subject: [PATCH 12/90] hit count --- BasicObject/bytearray/bytearray.md | 2 +- BasicObject/bytearray/bytearray_cn.md | 2 +- BasicObject/class/class.md | 2 +- BasicObject/class/class_cn.md | 2 +- BasicObject/complex/complex.md | 2 +- BasicObject/complex/complex_cn.md | 2 +- BasicObject/dict/dict.md | 2 +- BasicObject/dict/dict_cn.md | 2 +- BasicObject/enum/enum.md | 2 +- BasicObject/enum/enum_cn.md | 2 +- BasicObject/float/float.md | 2 +- BasicObject/float/float_cn.md | 2 +- BasicObject/func/func.md | 2 +- BasicObject/func/func_cn.md | 2 +- BasicObject/gen/gen.md | 2 +- BasicObject/gen/gen_cn.md | 2 +- BasicObject/iter/iter.md | 2 +- BasicObject/iter/iter_cn.md | 2 +- BasicObject/list/list.md | 2 +- BasicObject/list/list_cn.md | 2 +- BasicObject/long/long.md | 2 +- BasicObject/long/long_cn.md | 2 +- BasicObject/method/method.md | 2 +- BasicObject/method/method_cn.md | 2 +- BasicObject/set/set.md | 2 +- BasicObject/set/set_cn.md | 2 +- BasicObject/str/str.md | 2 +- BasicObject/str/str_cn.md | 2 +- BasicObject/tuple/tuple.md | 2 +- BasicObject/tuple/tuple_cn.md | 2 +- BasicObject/type/type.md | 2 +- BasicObject/type/type_cn.md | 2 +- README.md | 2 +- README_CN.md | 2 +- README_KR.md | 2 +- 35 files changed, 35 insertions(+), 35 deletions(-) diff --git a/BasicObject/bytearray/bytearray.md b/BasicObject/bytearray/bytearray.md index fcdbe56..f9adcd0 100644 --- a/BasicObject/bytearray/bytearray.md +++ b/BasicObject/bytearray/bytearray.md @@ -1,4 +1,4 @@ -# bytearray +# bytearray![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/bytearray_cn) # contents diff --git a/BasicObject/bytearray/bytearray_cn.md b/BasicObject/bytearray/bytearray_cn.md index a448b48..4895713 100644 --- a/BasicObject/bytearray/bytearray_cn.md +++ b/BasicObject/bytearray/bytearray_cn.md @@ -1,4 +1,4 @@ -# bytearray +# bytearray![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/bytearray) # 目录 diff --git a/BasicObject/class/class.md b/BasicObject/class/class.md index 59cc275..f081893 100644 --- a/BasicObject/class/class.md +++ b/BasicObject/class/class.md @@ -1,4 +1,4 @@ -# class +# class![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/class) # contents diff --git a/BasicObject/class/class_cn.md b/BasicObject/class/class_cn.md index 842b0fa..f850616 100644 --- a/BasicObject/class/class_cn.md +++ b/BasicObject/class/class_cn.md @@ -1,4 +1,4 @@ -# class +# class![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/class_cn) # 目录 diff --git a/BasicObject/complex/complex.md b/BasicObject/complex/complex.md index 79f1192..34d4079 100644 --- a/BasicObject/complex/complex.md +++ b/BasicObject/complex/complex.md @@ -1,4 +1,4 @@ -# complex +# complex![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/complex) # contents diff --git a/BasicObject/complex/complex_cn.md b/BasicObject/complex/complex_cn.md index c3622a3..1c60802 100644 --- a/BasicObject/complex/complex_cn.md +++ b/BasicObject/complex/complex_cn.md @@ -1,4 +1,4 @@ -# complex +# complex![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/complex_cn) # 目录 diff --git a/BasicObject/dict/dict.md b/BasicObject/dict/dict.md index 751a75e..153a1c7 100644 --- a/BasicObject/dict/dict.md +++ b/BasicObject/dict/dict.md @@ -1,4 +1,4 @@ -# dict +# dict![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/dict) # contents diff --git a/BasicObject/dict/dict_cn.md b/BasicObject/dict/dict_cn.md index 7b26800..78bdc5c 100644 --- a/BasicObject/dict/dict_cn.md +++ b/BasicObject/dict/dict_cn.md @@ -1,4 +1,4 @@ -# 字典 +# 字典![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/dict_cn) * [相关位置文件](#相关位置文件) * [演变和实现](#演变和实现) diff --git a/BasicObject/enum/enum.md b/BasicObject/enum/enum.md index c7ebf74..dd3f66c 100644 --- a/BasicObject/enum/enum.md +++ b/BasicObject/enum/enum.md @@ -1,4 +1,4 @@ -# enum +# enum![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/enum) # contents diff --git a/BasicObject/enum/enum_cn.md b/BasicObject/enum/enum_cn.md index 3027aec..85549ac 100644 --- a/BasicObject/enum/enum_cn.md +++ b/BasicObject/enum/enum_cn.md @@ -1,4 +1,4 @@ -# enum +# enum![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/enum_cn) # 目录 diff --git a/BasicObject/float/float.md b/BasicObject/float/float.md index f736df3..fd02930 100644 --- a/BasicObject/float/float.md +++ b/BasicObject/float/float.md @@ -1,4 +1,4 @@ -# float +# float![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/float) # contents diff --git a/BasicObject/float/float_cn.md b/BasicObject/float/float_cn.md index 1bd9ed8..d01187d 100644 --- a/BasicObject/float/float_cn.md +++ b/BasicObject/float/float_cn.md @@ -1,4 +1,4 @@ -# float +# float![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/float_cn) # 目录 diff --git a/BasicObject/func/func.md b/BasicObject/func/func.md index 6556db6..5a0376e 100644 --- a/BasicObject/func/func.md +++ b/BasicObject/func/func.md @@ -1,4 +1,4 @@ -# func +# func![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/func) # contents diff --git a/BasicObject/func/func_cn.md b/BasicObject/func/func_cn.md index b48cdbd..ac3a3e9 100644 --- a/BasicObject/func/func_cn.md +++ b/BasicObject/func/func_cn.md @@ -1,4 +1,4 @@ -# func +# func![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/func_cn) # 目录 diff --git a/BasicObject/gen/gen.md b/BasicObject/gen/gen.md index b57339c..12b0e95 100644 --- a/BasicObject/gen/gen.md +++ b/BasicObject/gen/gen.md @@ -1,4 +1,4 @@ -# gen +# gen![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/gen) # contents diff --git a/BasicObject/gen/gen_cn.md b/BasicObject/gen/gen_cn.md index 61c7511..ca27dec 100644 --- a/BasicObject/gen/gen_cn.md +++ b/BasicObject/gen/gen_cn.md @@ -1,4 +1,4 @@ -# gen +# gen![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/gen_cn) # 目录 diff --git a/BasicObject/iter/iter.md b/BasicObject/iter/iter.md index f2c6207..72bd5a6 100644 --- a/BasicObject/iter/iter.md +++ b/BasicObject/iter/iter.md @@ -1,4 +1,4 @@ -# iter +# iter![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/iter) # contents diff --git a/BasicObject/iter/iter_cn.md b/BasicObject/iter/iter_cn.md index 6659ac9..792c374 100644 --- a/BasicObject/iter/iter_cn.md +++ b/BasicObject/iter/iter_cn.md @@ -1,4 +1,4 @@ -# iter +# iter![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/iter_cn) # 目录 diff --git a/BasicObject/list/list.md b/BasicObject/list/list.md index 2610b05..b71ebab 100644 --- a/BasicObject/list/list.md +++ b/BasicObject/list/list.md @@ -1,4 +1,4 @@ -# list +# list![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/list) # contents diff --git a/BasicObject/list/list_cn.md b/BasicObject/list/list_cn.md index 1cae3b4..64f356a 100644 --- a/BasicObject/list/list_cn.md +++ b/BasicObject/list/list_cn.md @@ -1,4 +1,4 @@ -# list +# list![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/list_cn) # 目录 diff --git a/BasicObject/long/long.md b/BasicObject/long/long.md index 0eaeffd..c7ed966 100644 --- a/BasicObject/long/long.md +++ b/BasicObject/long/long.md @@ -1,4 +1,4 @@ -# int +# int![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/long) Thanks @MambaWong for pointing out the errors [#22](https://github.com/zpoint/CPython-Internals/issues/22) of this article diff --git a/BasicObject/long/long_cn.md b/BasicObject/long/long_cn.md index b61006e..a74cbc0 100644 --- a/BasicObject/long/long_cn.md +++ b/BasicObject/long/long_cn.md @@ -1,4 +1,4 @@ -# int +# int![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/long_cn) 感谢 @MambaWong 指出之前本章节存在的问题 [#22](https://github.com/zpoint/CPython-Internals/issues/22) 已改正 diff --git a/BasicObject/method/method.md b/BasicObject/method/method.md index bad1bd6..20cdd31 100644 --- a/BasicObject/method/method.md +++ b/BasicObject/method/method.md @@ -1,4 +1,4 @@ -# method +# method![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/method) # contents diff --git a/BasicObject/method/method_cn.md b/BasicObject/method/method_cn.md index fda5862..09b0b58 100644 --- a/BasicObject/method/method_cn.md +++ b/BasicObject/method/method_cn.md @@ -1,4 +1,4 @@ -# method +# method![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/method_cn) # 目录 diff --git a/BasicObject/set/set.md b/BasicObject/set/set.md index 37f4d5d..b7d02e9 100644 --- a/BasicObject/set/set.md +++ b/BasicObject/set/set.md @@ -1,4 +1,4 @@ -# set +# set![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/set) # contents diff --git a/BasicObject/set/set_cn.md b/BasicObject/set/set_cn.md index 5459a7f..108fb8d 100644 --- a/BasicObject/set/set_cn.md +++ b/BasicObject/set/set_cn.md @@ -1,4 +1,4 @@ -# set +# set![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/set_cn) # 目录 diff --git a/BasicObject/str/str.md b/BasicObject/str/str.md index d9816c6..e8d5483 100644 --- a/BasicObject/str/str.md +++ b/BasicObject/str/str.md @@ -1,4 +1,4 @@ -# str +# str![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/str) # contents diff --git a/BasicObject/str/str_cn.md b/BasicObject/str/str_cn.md index 4676a34..427044a 100644 --- a/BasicObject/str/str_cn.md +++ b/BasicObject/str/str_cn.md @@ -1,4 +1,4 @@ -# str +# str![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/str_cn) # 目录 diff --git a/BasicObject/tuple/tuple.md b/BasicObject/tuple/tuple.md index 1951fcd..839cae2 100644 --- a/BasicObject/tuple/tuple.md +++ b/BasicObject/tuple/tuple.md @@ -1,4 +1,4 @@ -# tuple +# tuple![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/tuple) # contents diff --git a/BasicObject/tuple/tuple_cn.md b/BasicObject/tuple/tuple_cn.md index 84d465f..32e0c06 100644 --- a/BasicObject/tuple/tuple_cn.md +++ b/BasicObject/tuple/tuple_cn.md @@ -1,4 +1,4 @@ -# tuple +# tuple![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/tuple_cn) # 目录 diff --git a/BasicObject/type/type.md b/BasicObject/type/type.md index c208def..c13b7ab 100644 --- a/BasicObject/type/type.md +++ b/BasicObject/type/type.md @@ -1,4 +1,4 @@ -# type +# type![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/type_cn) # contents diff --git a/BasicObject/type/type_cn.md b/BasicObject/type/type_cn.md index 0428527..4226813 100644 --- a/BasicObject/type/type_cn.md +++ b/BasicObject/type/type_cn.md @@ -1,4 +1,4 @@ -# type +# type![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/type_cn) # 目录 diff --git a/README.md b/README.md index 014352e..9364497 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Cpython Internals +# Cpython Internals![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals) ![cpython logo](https://docs.google.com/drawings/d/e/2PACX-1vQKKPvv9xI22zZcRtElIMx_-G22qYcLUvl-gbngubjf76dr80ZjsYQZCCKVqEvJnmBnwZyDXqG9GPlu/pub?w=300&h=200) diff --git a/README_CN.md b/README_CN.md index 85f8361..f9b9ce9 100644 --- a/README_CN.md +++ b/README_CN.md @@ -1,4 +1,4 @@ -# Cpython Internals +# Cpython Internals![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals-CN) * [English](https://github.com/zpoint/CPython-Internals/blob/master/README.md) * [한국어](https://github.com/zpoint/CPython-Internals/blob/master/README_KR.md) diff --git a/README_KR.md b/README_KR.md index 57d5569..04101b3 100644 --- a/README_KR.md +++ b/README_KR.md @@ -1,4 +1,4 @@ -# Cpython 내부 +# Cpython 내부![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals-KR) * [English](https://github.com/zpoint/CPython-Internals/blob/master/README.md) * [简体中文](https://github.com/zpoint/CPython-Internals/blob/master/README_CN.md) From 39b6b7b9dec006aaf5cd675725e6f78826d4f34f Mon Sep 17 00:00:00 2001 From: zpoint Date: Thu, 9 Jul 2020 19:15:59 +0800 Subject: [PATCH 13/90] hit count done --- Extension/C/c.md | 2 +- Extension/C/c_cn.md | 2 +- Interpreter/code/code.md | 2 +- Interpreter/code/code_cn.md | 2 +- Interpreter/descr/descr.md | 2 +- Interpreter/descr/descr_cn.md | 2 +- Interpreter/exception/exception.md | 2 +- Interpreter/exception/exception_cn.md | 2 +- Interpreter/frame/frame.md | 2 +- Interpreter/frame/frame_cn.md | 2 +- Interpreter/gc/gc.md | 2 +- Interpreter/gc/gc_cn.md | 2 +- Interpreter/gil/gil.md | 2 +- Interpreter/gil/gil_cn.md | 2 +- Interpreter/memory_management/memory_management.md | 2 +- Interpreter/memory_management/memory_management_cn.md | 2 +- Interpreter/module/module.md | 2 +- Interpreter/module/module_cn.md | 2 +- Interpreter/pyobject/pyobject.md | 2 +- Interpreter/pyobject/pyobject_cn.md | 2 +- Interpreter/slot/slot.md | 2 +- Interpreter/slot/slot_cn.md | 2 +- Interpreter/thread/thread.md | 2 +- Interpreter/thread/thread_cn.md | 2 +- Modules/io/fileio/fileio.md | 2 +- Modules/io/fileio/fileio_cn.md | 2 +- Modules/re/re.md | 2 +- Modules/re/re_cn.md | 2 +- 28 files changed, 28 insertions(+), 28 deletions(-) diff --git a/Extension/C/c.md b/Extension/C/c.md index 8eaca8b..e2b5011 100644 --- a/Extension/C/c.md +++ b/Extension/C/c.md @@ -1,4 +1,4 @@ -# profile python code and write pure C extension +# profile python code and write pure C extension![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/c_ext) # contents diff --git a/Extension/C/c_cn.md b/Extension/C/c_cn.md index f064ce9..87ba636 100644 --- a/Extension/C/c_cn.md +++ b/Extension/C/c_cn.md @@ -1,4 +1,4 @@ -# python 性能分析和 C 扩展 +# python 性能分析和 C 扩展![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/c_ext_cn) # 目录 diff --git a/Interpreter/code/code.md b/Interpreter/code/code.md index abacd0e..b1e3ae4 100644 --- a/Interpreter/code/code.md +++ b/Interpreter/code/code.md @@ -1,4 +1,4 @@ -# code +# code![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/code) # contents diff --git a/Interpreter/code/code_cn.md b/Interpreter/code/code_cn.md index b56e5da..4bce89a 100644 --- a/Interpreter/code/code_cn.md +++ b/Interpreter/code/code_cn.md @@ -1,4 +1,4 @@ -# code +# code![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/code_cn) # 目录 diff --git a/Interpreter/descr/descr.md b/Interpreter/descr/descr.md index 36a8ab4..5e2529b 100644 --- a/Interpreter/descr/descr.md +++ b/Interpreter/descr/descr.md @@ -1,4 +1,4 @@ -# descr +# descr![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/code) Thanks @Hanaasagi for pointing out the errors [#19](https://github.com/zpoint/CPython-Internals/issues/19) of this article diff --git a/Interpreter/descr/descr_cn.md b/Interpreter/descr/descr_cn.md index f59c725..1ef9526 100644 --- a/Interpreter/descr/descr_cn.md +++ b/Interpreter/descr/descr_cn.md @@ -1,4 +1,4 @@ -# descr +# descr![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/descr_cn) 感谢 @Hanaasagi 指出之前本章节存在的问题 [#19](https://github.com/zpoint/CPython-Internals/issues/19) 已改正 diff --git a/Interpreter/exception/exception.md b/Interpreter/exception/exception.md index 59468dc..3b57a22 100644 --- a/Interpreter/exception/exception.md +++ b/Interpreter/exception/exception.md @@ -1,4 +1,4 @@ -# exception +# exception![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/exception) # contents diff --git a/Interpreter/exception/exception_cn.md b/Interpreter/exception/exception_cn.md index 37ac38a..bb259b6 100644 --- a/Interpreter/exception/exception_cn.md +++ b/Interpreter/exception/exception_cn.md @@ -1,4 +1,4 @@ -# exception +# exception![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/exception_cn) # 目录 diff --git a/Interpreter/frame/frame.md b/Interpreter/frame/frame.md index 5097cf8..5f7ec41 100644 --- a/Interpreter/frame/frame.md +++ b/Interpreter/frame/frame.md @@ -1,4 +1,4 @@ -# frame +# frame![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/frame) # contents diff --git a/Interpreter/frame/frame_cn.md b/Interpreter/frame/frame_cn.md index ecd1660..ad9a713 100644 --- a/Interpreter/frame/frame_cn.md +++ b/Interpreter/frame/frame_cn.md @@ -1,4 +1,4 @@ -# frame +# frame![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/frame_cn) # 目录 diff --git a/Interpreter/gc/gc.md b/Interpreter/gc/gc.md index abf58bf..dd2aab3 100644 --- a/Interpreter/gc/gc.md +++ b/Interpreter/gc/gc.md @@ -1,4 +1,4 @@ -# gc +# gc![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/gc) * you may need more than 15 minutes to read this article diff --git a/Interpreter/gc/gc_cn.md b/Interpreter/gc/gc_cn.md index ce12daf..35a77e5 100644 --- a/Interpreter/gc/gc_cn.md +++ b/Interpreter/gc/gc_cn.md @@ -1,4 +1,4 @@ -# gc +# gc![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/gc_cn) * 长文, 预计阅读时间在十五分钟以上 diff --git a/Interpreter/gil/gil.md b/Interpreter/gil/gil.md index 52e2b37..7f6b3ad 100644 --- a/Interpreter/gil/gil.md +++ b/Interpreter/gil/gil.md @@ -1,4 +1,4 @@ -# gil +# gil![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/gil) # contents diff --git a/Interpreter/gil/gil_cn.md b/Interpreter/gil/gil_cn.md index 6f93704..0b4fe09 100644 --- a/Interpreter/gil/gil_cn.md +++ b/Interpreter/gil/gil_cn.md @@ -1,4 +1,4 @@ -# gil +# gil![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/gil_cn) # 目录 diff --git a/Interpreter/memory_management/memory_management.md b/Interpreter/memory_management/memory_management.md index 95eebb4..540fc4f 100644 --- a/Interpreter/memory_management/memory_management.md +++ b/Interpreter/memory_management/memory_management.md @@ -1,4 +1,4 @@ -# memory management +# memory management![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/memory-management) * you may need more than 20 minutes to read this article diff --git a/Interpreter/memory_management/memory_management_cn.md b/Interpreter/memory_management/memory_management_cn.md index c8dedfa..758ef3b 100644 --- a/Interpreter/memory_management/memory_management_cn.md +++ b/Interpreter/memory_management/memory_management_cn.md @@ -1,4 +1,4 @@ -# memory management +# memory management![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/memory-management_cn) * 长文, 预计阅读时间在二十分钟以上 diff --git a/Interpreter/module/module.md b/Interpreter/module/module.md index ebe4b27..a0acd04 100644 --- a/Interpreter/module/module.md +++ b/Interpreter/module/module.md @@ -1,4 +1,4 @@ -# module +# module![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/module) # contents diff --git a/Interpreter/module/module_cn.md b/Interpreter/module/module_cn.md index 7c4baab..2a45361 100644 --- a/Interpreter/module/module_cn.md +++ b/Interpreter/module/module_cn.md @@ -1,4 +1,4 @@ -# module +# module![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/module_cn) # 目录 diff --git a/Interpreter/pyobject/pyobject.md b/Interpreter/pyobject/pyobject.md index 5e3f26d..1cffc62 100644 --- a/Interpreter/pyobject/pyobject.md +++ b/Interpreter/pyobject/pyobject.md @@ -1,4 +1,4 @@ -# PyObject +# PyObject![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/PyObject) # contents diff --git a/Interpreter/pyobject/pyobject_cn.md b/Interpreter/pyobject/pyobject_cn.md index 9ccaedb..c9aec25 100644 --- a/Interpreter/pyobject/pyobject_cn.md +++ b/Interpreter/pyobject/pyobject_cn.md @@ -1,4 +1,4 @@ -# PyObject +# PyObject![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/PyObject_cn) # 目录 diff --git a/Interpreter/slot/slot.md b/Interpreter/slot/slot.md index 9335ee9..10ce795 100644 --- a/Interpreter/slot/slot.md +++ b/Interpreter/slot/slot.md @@ -1,4 +1,4 @@ -# slot +# slot![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/slot) # contents diff --git a/Interpreter/slot/slot_cn.md b/Interpreter/slot/slot_cn.md index 476dfa6..0c88572 100644 --- a/Interpreter/slot/slot_cn.md +++ b/Interpreter/slot/slot_cn.md @@ -1,4 +1,4 @@ -# slot +# slot![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/slot_cn) # 目录 diff --git a/Interpreter/thread/thread.md b/Interpreter/thread/thread.md index 476a71c..b520cd8 100644 --- a/Interpreter/thread/thread.md +++ b/Interpreter/thread/thread.md @@ -1,4 +1,4 @@ -# thread +# thread![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/thread) # contents diff --git a/Interpreter/thread/thread_cn.md b/Interpreter/thread/thread_cn.md index 6111d27..9144ebe 100644 --- a/Interpreter/thread/thread_cn.md +++ b/Interpreter/thread/thread_cn.md @@ -1,4 +1,4 @@ -# thread +# thread![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/thread_cn) # 目录 diff --git a/Modules/io/fileio/fileio.md b/Modules/io/fileio/fileio.md index 7f74791..b96f3ef 100644 --- a/Modules/io/fileio/fileio.md +++ b/Modules/io/fileio/fileio.md @@ -1,4 +1,4 @@ -# fileio +# fileio![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/fileio) # contents diff --git a/Modules/io/fileio/fileio_cn.md b/Modules/io/fileio/fileio_cn.md index db184b9..7c8e67d 100644 --- a/Modules/io/fileio/fileio_cn.md +++ b/Modules/io/fileio/fileio_cn.md @@ -1,4 +1,4 @@ -# fileio +# fileio![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/fileio_cn) # 目录 diff --git a/Modules/re/re.md b/Modules/re/re.md index 22d7076..992fe2d 100644 --- a/Modules/re/re.md +++ b/Modules/re/re.md @@ -1,4 +1,4 @@ -# re +# re![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/re) # contents diff --git a/Modules/re/re_cn.md b/Modules/re/re_cn.md index 9a2ecf2..b9beb31 100644 --- a/Modules/re/re_cn.md +++ b/Modules/re/re_cn.md @@ -1,4 +1,4 @@ -# re +# re![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/re_cn) # 目录 From 7d65d31335c63d3bf8e289f8b28859591ad7de90 Mon Sep 17 00:00:00 2001 From: zpoint Date: Fri, 10 Jul 2020 22:56:00 +0800 Subject: [PATCH 14/90] typo fix --- BasicObject/dict/dict.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BasicObject/dict/dict.md b/BasicObject/dict/dict.md index 153a1c7..f10bf75 100644 --- a/BasicObject/dict/dict.md +++ b/BasicObject/dict/dict.md @@ -26,7 +26,7 @@ * cpython/Include/cpython/dictobject.h -# evolvement and implementation +# evolution and implementation before we dive into the memory layout of python dictionary, let's imagine what normal dictionary object looks like From 02bf416da9667c17bb971eef3a8ef193f4c5f168 Mon Sep 17 00:00:00 2001 From: zpoint Date: Thu, 16 Jul 2020 22:12:19 +0800 Subject: [PATCH 15/90] compile begin --- Interpreter/compile/compile.md | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 Interpreter/compile/compile.md diff --git a/Interpreter/compile/compile.md b/Interpreter/compile/compile.md new file mode 100644 index 0000000..44fd081 --- /dev/null +++ b/Interpreter/compile/compile.md @@ -0,0 +1,31 @@ +# compile + +# contents + +* [related file](#related-file) +* [tokenizer](#tokenizer) + +# related file + +* Python/pythonrun.c +* Parser/tokenizer.c +* Parser/tokenizer.h +* Parser/parsetok.c + +# tokenizer + +Let's begin with the python Interactive loop, and execute a simple line + +```pythoon3 +./python.exe +>>> a1 = 10 + 2 +``` + +Token parser will scan the input and prase your input string according to the function written in `Parser/tokenizer.c->tok_get` + + + +```bash +make regen-grammar +``` + From e0a6298eedb996d356a89c78750a296492f64270 Mon Sep 17 00:00:00 2001 From: zpoint Date: Fri, 17 Jul 2020 11:22:52 +0800 Subject: [PATCH 16/90] compile change to version 3.10.1 --- Interpreter/compile/compile.md | 50 ++++++++++++++++++++++++++++++-- Interpreter/compile/grammar.png | Bin 0 -> 45969 bytes Interpreter/compile/pgen.png | Bin 0 -> 51951 bytes Interpreter/compile/pgen2.png | Bin 0 -> 35525 bytes README.md | 1 - 5 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 Interpreter/compile/grammar.png create mode 100644 Interpreter/compile/pgen.png create mode 100644 Interpreter/compile/pgen2.png diff --git a/Interpreter/compile/compile.md b/Interpreter/compile/compile.md index 44fd081..cfea3ad 100644 --- a/Interpreter/compile/compile.md +++ b/Interpreter/compile/compile.md @@ -5,12 +5,54 @@ * [related file](#related-file) * [tokenizer](#tokenizer) +The following contents are based on version 3.10.0 alpha 0 + +```bash +git reset --hard 38d3864efe914fda64553e2ec75c9ec15574483f +``` + # related file * Python/pythonrun.c * Parser/tokenizer.c * Parser/tokenizer.h * Parser/parsetok.c +* Include/grammar.h +* Parser/metagrammar.c +* Include/metagrammar.h + +# pgen + +This is the layout of "grammar" structure + +![grammar](./grammar.png) + + + +```bash +make regen-grammar +gcc -g -O0 -Wall -L/usr/local/opt/llvm/lib Parser/acceler.o Parser/grammar1.o Parser/listnode.o Parser/node.o Parser/parser.o Parser/bitset.o Parser/metagrammar.o Parser/firstsets.o Parser/grammar.o Parser/token.o Parser/pgen.o Objects/obmalloc.o Python/dynamic_annotations.o Python/mysnprintf.o Python/pyctype.o Parser/tokenizer_pgen.o Parser/printgrammar.o Parser/parsetok_pgen.o Parser/pgenmain.o -ldl -framework CoreFoundation -o Parser/pgen +# Regenerate Include/graminit.h and Python/graminit.c +# from Grammar/Grammar using pgen +Parser/pgen ./Grammar/Grammar \ + ./Include/graminit.h.new \ + ./Python/graminit.c.new +Translating labels ... +python3 ./Tools/scripts/update_file.py ./Include/graminit.h ./Include/graminit.h.new +python3 ./Tools/scripts/update_file.py ./Python/graminit.c ./Python/graminit.c.new +``` + +There's a program inside the `Parser/` directory, the above compile and run command will compile the `Parser/pgenmain.o` and output a program named `Parser/pgen`, which takes a **grammar file** as input and generate `grammar` structure, `dfa` tables and etc...(above diagram) as outpout(two c files, `graminit.c` and `graminit.h`) + +![pgen](./pgen.png) + +Let's focus on `pgen` + +The built-in `Parser/metagrammar.c` and `Include/metagrammar.h` will be used as the input grammar file's grammar + +![pgen2](./pgen2.png) + + # tokenizer @@ -25,7 +67,9 @@ Token parser will scan the input and prase your input string according to the fu -```bash -make regen-grammar -``` +# read more + +* [what-is-the-difference-between-an-abstract-syntax-tree-and-a-concrete-syntax-tree](https://stackoverflow.com/questions/1888854/what-is-the-difference-between-an-abstract-syntax-tree-and-a-concrete-syntax-tre) + +* [What's the Difference Between BNF, EBNF, ABNF?](http://xahlee.info/parser/bnf_ebnf_abnf.html#:~:text=BNF syntax can only represent,excluding alternatives%2C comments%2C etc.) diff --git a/Interpreter/compile/grammar.png b/Interpreter/compile/grammar.png new file mode 100644 index 0000000000000000000000000000000000000000..cd5641ec8b321377c016852db80df04f47702c2b GIT binary patch literal 45969 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 P0w0Hi&Nk&(-@`z_1> literal 0 HcmV?d00001 diff --git a/Interpreter/compile/pgen.png b/Interpreter/compile/pgen.png new file mode 100644 index 0000000000000000000000000000000000000000..100d0a0a824d95e14c510d5941ed53293e42ccaa GIT binary patch literal 51951 zcmeFZXHb;e5-v;*LmH4Mpv({i$w6`sf+Pi0a?X+@gCq$9LyjU*f&!vs36dqFLZ`BruUq%tx>fw3VBYnv)!nQ6>F%c|@}8zL3FImS0|SHPj*6l- z1_l-a0|UE^01y1d^_J5!3=AfWJBo7meM~m8@lz-t9CUBLy_V0E##b5M`ksJbl-56RF*X@|MWl>^{YZ)UMRD#P$I`@n>FEGhtUZ?TrhJ>v?x!n8e5vw66_)Fc} zvvuucR*WHg_08ed>5SodOFeH21vLc|=D&V|$FJP0ydjIhB8&C!A9<}_rvH2blOmVh ziZ}s-@ZUcKO0dwUI4b}7$xq<_+v6-uln7$1f4u9*XD;gRaIl{uink0b{;wjn+SFc_*=`Sy;t@Y9=-Jgn$jeVE&aq&s2 zHTR1k4IQ14SKZy+t4^I3`QQUHitx{iqJx<+y8qEUL9}d%AmXEyTbTBmIJs{j)dw28 z($*@j^&6%88WTfp4!PQI?y@CMH0I^CDKVy6OTDU@?eLswbYH(yplur6YZJH79*)#nZA}!CDOy`(IW$1k@e@ikQ$V7 z(a7p^NMxRsKz*(D8uggx7}w%SMR}#uDSlrSs-(O;V%Qq?uN(7P0E-fl4Mh~+U&}FA zmogrkVas%qG;jzg(th-6y`e)%ky%rm6QWZ*$_cM(LYCy#T*z|lCoPC7TS5#tJd2Sf z>~O&p?IO{*J)hdrKFJ~XXWD)@3ogElj#g{J6W{AA{@lhPUoA|LudOt32#7^;g$@~w zN#P%oF^YRcW@KdaDOqtBj5-eOZKd;Dc7IjlZLTg&X}HZ%Q;2%kYj4`Ot~mQ?)tw zRHfEM2dzsZku)?lm615~p70VGHprO)d(~%4PM@oB7%SlJdm@tj zF~-i$&Zh<#1=3o7K`^~v6IhPRMD002XD;f*zjXhlpiTc#t!ZoEoLy;7riAy_Yv-AU z^BiOo8yuSD=TO>sv!FYgpmVbk$d$Tu-=nW;Fyod3>bsQRL6fONKqy#sc_4G_ZDHZE zWx?plJDY(FY0tG$Q_IUm=x=veeOLA?3dMFMQc>F>wsJvZ%=5;TtAuIlOb7YHRV5BJ zsJqMJcQ|hKxMp>@E6$UM<&+oJbcZKiF&+z$)}=&!{mQ-VJ1YUNV!d{8rkVkta%cwX`&8jH!xEgyq`P)n#9K)*`)*B@7#|pKJqpMMz@5>r*DCQy078|x& z#Bzox6H7xhZi17Ll%vtd*FBq{`-#O{3-3($c(DY(hDTg8q)=$5z{>rY;e>|8ahJEAi ziw&aB_iygMU-7Lg7+F1iClgPeSismL#+I&L=Aw_vgI9$k`%wnG9PpgRvPNztb5E&X z8zh7YvhQ&mr>@RUhCQsb&r#7^B_42-9FbSG`SA%c`qyt=T^CTqO` zo2VvY?7o}I0Phlii;8eZo!ldYR=_A@O^nN)Ph{%jzVtXUKf{M7nl`T9du z;~&1W^{T}*)uP#)4!&`NhdnfL=_dxB@)t^GNG1J5Rf%#9%Cl@e z@PV%G7=F3}xfpPxu1Znumu6S)07tzms^dCvYwS$tIghakO=4s)yLy3kj_->)CGqSF zz7jL5W^}NHdSXpX zknpWrn`a|;Wdf>4wbj0|QbZcA4CS;Q+?6>ODgy2xqWZz}6<_z=sah_gkUf*3J+HUL z#lA!ibI-JO124}H-)iPapC86O{#Nsh73!yDr%zp|U3uUfoL?h-*CD|DAgjIHO**S6 z<;lRFq&jBPi^f8}x)2c9s4kvdNo*^CA|~+tgU(nBQ%>$VG>Z@Fc`&R@Z`h_uZ{071 zj`Y+zE$A_-BbY76bsPfdg-3Dn`O?*|+3KUnU#!d|Y8Krsb{wzrL`OHiWLbf9N#e}i zko|Flf&G+lD&yw5@9f2@$4RVtNBF)v3k8S;=hCN)b5&)HwY4Zs7K*qP-?xP$tM*5d z&r}&lQWLHuw!qyo*BkoqiY&)#n|b22-HpBFFMhfDdCF1NemQ7{@3t(6+Ab1kGqieT zuQwc0etJ6g;Dv07lKIk(_otA~3iFPKAc&v1?Jj=Y6MvvUFG6xn@;yxp3)|fnXOR)pI!%p_*VQ43p^1LneGQ`H z$h5{nDB4M$8jTrCy)Kf171ea_cT|qPz9r*vpK`g*X-ZgFkEbBzlT^9|KY9I4(O71l zi})up9FUh=a+7y|$6hny;Ei=1nPG#mhO$%rGV_mCyYeNsJQ!@PTH1iqGu-dF9(0B` zQaZt^B1-p?Y_OxNrWDy;S+-6}xORsv8UJR1u(z@I;l}nO?c&iDgZ1nxhq|Ksq7+o1lZN}fOKP)nHnwnKp^l~>o zbU6|O8xht?A`Zy+5`^{|! zDFAIms^m+pjq6ZX>F-fP5&AIS0_{gD8@}&d%$;7MPMAg$RSRlS26JU8?H}okrH1^N zyaRl0K5L-C(&q3?TM&((sGWIa4B|VvR;`mM3p|3ofGtWTdBykntC7`+x1Wmne-JB~ z6KD1FB>j%8_rsq$O>y?;$jAuVe_?U_ZfMmu={&U8pph=H6rp4?{RvkT)=^c$2pzpZM>T zMivL?@b<91Q2Kw8B2|s2`4yvz`q%%Hqx|o@nCy>yzGted1a5gB$yvXNYX0D7)DjZP z#DU*=YN^69L#_XEK{`B4`sr?P+{QcdI~@xbvdUlVg)(p^VITOz=Cw4jT(2v9VuP%& zulKF$)=~*#d3t&V#)FUb^lxrB6BFR%Cs?WwXBoHgxDnfj-__Der|1*M1iJ;WOshyZx4eC*yO@sU3)zv8=`3bv~9Q!N<@#v|r_0P5Z;o&7l4b)^gzZ~VAWJ#c8-W8gFmlB6@ z{l}L|D-9Mi3XqZ}H)%E3J|@m%FPZ%jXFhZ!+cUhn;l@R9kFvXcfNGni2O8BLg%2ZP zXT+2qF0lNVq4I$RY=zDD^q{%yF^Ejg**kGCN(2>| z{MCEnSpKE7nr`T0`#`@u z{X+f?+gLocBoap*E~{miB=TmA8hwJV^fUY$bk~2-if0?g;R1-G_rCsn_9FV&J4~-I z|L;aVbj*?*o0tVW>SMu+9zZ7lQX_QFCo-_y-H z!zWhysU?-&SHIM`%xUiLB4|t!9_Si>y`-_3uzqg5*sxxz~d$B^Zl{Ia*5?MORM$Ly42Fz$(use zW$T|9y{BQ9=i5OF4lfg;RtB><>7A+*vwWA+19PT0$Bf)#B~Lfr?G7uD9Y0@k=X}-7 zSB|!7S{wh$ErBb*Dr~+v#^HQY%r(ldXlV%yz6K*Y+#8bVi@fn--1%<2#FprUMKrg8 zqL!HAJe_S8EYqnrowxUQ196Hh&OlH$a0_Qh)vcJX(AY5wWR)gBbetFPG zAXCor=7WqJ*UroMtG7PoSSZ=s*(Ip))GM}}Zb<}1o&4+|drl%UJ$&iddVY}Hd@$MP zLZ(wX<@hdkqxJIQ3wpI$+kp&Lzm3WW$)6vvx#c$i&U@xQB&92Tx*@3VyYy`712$Po zrDe}2piS1h(#Nm-_rL1yZr076q&HZ`OFg{Ui4W@is%yGAC2Bj!U~05gJLP;a%2RfE zv=EPLG33giAF%(`kXG_=+Wlhmqz(W2#wE?tkC*WW?_S!~Nu8Po>_6}YdRpvdj{kL< zHbgRVP`{MzJ-d^B2{tca)eD^nIGj;1mO*>F;oNem3~espf4V3Z&sogaf>n|71O-41 zra|<%RP=a zg{SGKyy=-7mweXwUe4t&r97vpmZK2%rXTsyRzHUG0;OtdYTQm%i~5>;_ZGvhXeMBj zipmPlc#Kf5NFIF)6$m)-Fg42ifMWC-m-CwSwKWwD_}PZ<1`Ph=;am{!UCEuWY2TIX zi^-17+NnXBWN3ML({7aH{-{o1WAD%Ty}7_sjqVt_1=FA|D&1a?^YH+jwTC;uUf#;{ zQaL`g71*oW;fyy?)te&*T!wo?IhSWEUYil){ujq9=PjWQ(sk26I>fsI4knZ@fN7r^ z-O$YXVM+#@23h?*tY>IH$sXLL%BcVXg!TJ(4=4ySW$P8^GaSk|R5{wZlj#I)j`WKa zNW~N%8o4UfgUcQO!%hq#rs<^dx`c<0P5$EVWD>ArhYA&CxkX9t_AF#0VLMOa|q*-nq4 zbWgQt=YydaQq~t|$1O<24|3j5-wbnZVP{7CU0p)mk=4(a! z?Al0I-HcZzFC>xB=*eoqc|5-{J@U?3Og~(}TV%#Vr|%pnBu9puh@UzIpmDL)SIGv7 zu&|}#q8F39VufWc^-I*gAnOT$#RTaTs_zJfKoQW$-mCfQFC-^u3dU(EQd-ZJctea) zX~IK8l(p7D%8KR=S@NWUzfa;7LuD*eh*?o)z1W+mH1=SV>Su777umZYS5|PSwARlo zIUPh_5WdD|_Oz9a zk6rJr_rZkiseViD^po{cH?Y4tq936vV)>B{(zVRehsH6b{x|UEV3|; z6GY69%k#O*8Y>mGbIHfVkrnKn2GNJJes`tMekuf!C<~+u9c;X`z@l-`Mj5(D1wGfl z$LATmO28#=Vqfs=%s%`Kx1p<=?yKLitnyd)>P(!;8)i}Linqx|(m@p=Oy(9nrPXIX zyv_FuaTn#g-q%;61tLBe1T>QpFZBm;Tj*;($oUZWa5sMD9k7ExRZ1p z?fQ3%WX?Yh^;^Wks-D#c@GiaU;AhFthX#k5bz>upwR#KXSmxW>TOVH zI#Rb$)ptTKJb4B29)G0mJ!#OWWdLkVK9#gUN(-rRb(}k^v4yW<9^_NMysubFGKfCT zmGO+-fK7&A4A3BYZ?@x=3@PMet`jCc<1AwDUkSJW>9UYY&f^&TkvP#DxF5+%T!_I$HfUn-w^e`J0B%iG`lGuM|P=ra)2 z-UgAC^_Z%UHzSy_`HcO3Bmp6z>$n@1e?Ks*)=#tG;XHapr)xcF{oiax=R zCv9x3Frx_~H_s3~UnNd)s>~@6TZsEE#EKl?nm^{%zSQdp=CC`nMhHoi_2lK~bw+ca zK%b_yAP7SBI<+wMQX0W+^ZqeumMK%^Bf4{5@Z4k1YG;=@|CM|RVS9Dpei`-2cGw{M2Yw;mWEG~w+OTPfQm}EF_S1^)@Ajh+>a1~C zM<4{B&3Ge>q7i+1WLTy(T@rIL^%3u=8Jfjtv?;y9uWrLI_Xtzmh&c-DRCvC{d#l@K zJWS~7Oyu8gIW5cK?!3Nx)T1p5ps>xuL<+>X6r$gtB9|seY{|K!=adunlxepDll72S zoU5TrI7pIDbYt(c^7Z|@sS)2g_EkROJ5VJ0hVm&qgf4-&cMuQzz*8A#L?jpPtpM*p zc70Gm#MAP(o8Aa!w1euWMG>d{48UN({EFgd2AlQ(^ed7`ORM1hOTBa&1pkjpAts-h^@W3_^7KP)zv&q1MR6Ep^_!cszI3%WsW18<6U zS{v6(JRR)G6?Yto_y$pg6&k`M?=ijMV~r|d5-?{M)yCLIa6tI2qlGI5$<}FM#O5@b z4iW5~96R;+A?-X?td+8~=e^u%0?MiUhyHKAxt9btEyPLqYo(d4 zEZatxl;jlLbr08qc@Uc=p*SkJP9PsFeb?p_QkTa>{y|$ZSTz>pPD&@FI_XfoaVWXf zmx|labjgxB2Mx;aG0Y{`J10e_qm50|Zg#_R&7qhPVHk60~MR-ji6wlK5+Ms2-L6ce36?*;z%+3rEt7^WkOkVMy0`BUq zJRnC3T!uDQCp;t4p|p5&wK1eJm7I*!OLD=Hji42!I8P>X_U#bnGou|i48IbET?%un zYpb^KJ5Ba1hnvi$6QTWVn!6tif*gMm z4?gSJW&U9d^fNbEc0Ssl?_H#D2=NZo{EG|Fcv>E% zKq!Dvd1$7?5+_OoiF+p}fVJMf)3bZLlC#~K2-&w-W*42nY=_V(Fpz|AEWLSKw&wD) zBgnn4X3S)L=*j%FA?48C+0q@KW=0C!pv%*_^Rcn{eZMrN4mS>l;&6>PQEM!E23H$i zRMyKJpJxoHx0c<6xMMCLf4ZP+^|8mP3J%31+1(5`J|ebV&BrOv@0c=q;lF$5lAHTm zXvykThZ30IX3cY)xgos^#0FcOZb#CMCJo$?15tbCA8NyQk@6eZvaL*#{EcD4mF9vm z+Qs}~4v>zYZ0j*n!KzZjmH2ltSfB!E*$_}SRbbGIR#0+?Hd5>KK_z@Hc?3Mh-y`?^ zedaMzPtCe-LJ@jZ$*o-Y7FPrfplPC`*VTf4hEtS;_S{y?;zznWx?bbbY<_ywu15N^ z3a`n9uCE}(-kv}f$?nKQJnM`Y>yU$5KxnWi-f52eAD0K6_tE%4LG4D=mO5vFSidAF zOl8U}l;mveTb|2%{C5WLul2N=KcdmUgH)WVJ=a|^uO(R@58d9K<3s8*~|PDQWl%`)s#p#vB`kS}=3&&&}ga6X@A}#i#n)bMZBO z6t}#at4-#y(RKxcFibsnIv?uri%I$(lM&MwCg;bGaBwIT4enL=lG7;=l*uc>W(7iG z7zgu}+7hktulrZ1r}4F!3X*;f&j}THG|GN?-YZ87fV_m~)5 zPr9{~8Nb3Im0J9w%~)_EIvE1lCIiy-^9mGMz|(JGOdXQ}1Ui&W6OeU`&!mt}0pX|L zdaL}k2w>40*C4`r-=R)OdE|yH<;C$(5RcsnZM)#OUL;8dwA`swj!T%B^A@N;QLl^5 z-o+|~z8=Naumv21Fg5gfzTbeF`RJ(p6y~rZ*ulGL)oH+qK+2EC(qPGo;^L-@G;!dz zhSGM?HAHjQ>h-OpZ6Ur9O(GaY`>4~Ka%FwYRp~4^*?X7suFDld=_ITOLb1#v7luM^ z1&ZvJz}?xa+nC zCXr<{C_p!Wh^|0!OFVyCa?s@upm}8AjAqi#N3L#5%)i zRf7Rb9A(O>d_F|fVQgU*35;RA3blfwl^w1OK~C2TqZ8W{+U^S!A~_&^r=%89?T=e! z^!(I81-W~4XT$636#%fmE8*y2(>RvMhLd1H=tR{Emap9jExB5lj!$-t3p6DvbAlD9 zp&_IrIpfvA{ns^{?i=I?GX$j5OO} zf4|b01d?#4peG`|l*=FhnTIhE7y7#1pCngim~UmPH3FTxogao}K6v<68m_74fwf8L z?Yoj|(*Z`;1|3llO%>qWBV`fz(S}41V)>v)p=K1?c!S=bmqoLUf$Gz{0f2TiARw@kg2rnZ<#R_2*S7_5|bJP91Kk{Gz8VU6%*KFxDMZU%MnbS z)sG!qHe~V0>Ds3Kc6LJ?%Idp^2$pHaJkMX+RXCI3W-3>_fa=U1yYzf&ra6#9hI{s_ zDNnR-P22Cp&6@V_Kf9_R3R=5kKD>n0a^M~dF#aLd){a)sYW~md&>n)NfAT{00|a8Fe>|5d^?+%kFtka1nNfgZScTWc)eqA=Zz}k`V*CdA8S8f}PM+l8;HXunjmYt^dqffD??&?moP^YtjYkT>JnHTwW53-B1k^Z7uMtRuQu z-u;zo)9$xdi)zS@)#XGV=j*5Bb2z3Bx`6#Xa;^5IHo7w7*+b>03&VQ$B$sp4SXd3K z5(bLj^t!s$FM%{c^?S`r*rXKa=Dw^h=iP&79Ch$-yQmv)rsDqJ!T;B4obj*|U4I7E z(ygOd{uZD;6-OoW7|U2=US`Z5*ZXvtmO228!>$nE4J2e1zgeq69;sO56 z-l5or1!EDWoCfm@bD7-6Vi~>z>?j+jXG&ZtciK{AL(#mbiDEBPohT`-F?8kz;3);G zkXJYvc9@NMrt=6*yBEeD64PR1cULp zUXB9c!Kn5e<1yoq+7}Rt2G#!bGH=Q<9kOSjG7cqOzIupDm0}fEe)K}GDX3#-_CDk9rx*LZ>YQKJ-X4G4 zg3)a|8*;wiN8*(BclgJlxPqs_`}1(}?>S_98IQ3Ez58pIRM*kF4E@(G0k=(F`E#`m zZ&AX)9$YEUSDJqiJ`&O?Dl3Hi-9ybq$QptVg#2*pas7E!l3L-fovD~DW|$i!&?1q) zm%;!se6eM+Op4uL-M(zSO!e_H^v~9A2pe$mbE^<5DklHoS57j0;AaufGtVezhmgcD zf|toE3Pt{D*yi)?^8clGmGr-#oDz{3|Ci+`eEPfPfNq~Z@n6QL{deO7-gwdSL-o#! z{NWD?0)O8CJB0Z<_8)TzPx-sK055n<`)AjDul_DhP;2Pzd1}8PrIZ&8v;O<3LAzNR zPn~|7142T~@qg-3sAQRtFR^%*Sgl#UiITQ@_w`D|X}A(c#*Jz0QMG0f|4T{57{Ghr z%D(x)3OcJ#uf1av3s>x!FFcL{A|C%s#}FoHr&d5f0H*F@%l`LQZV5nF(f!G>T zVL40LlkfxQseMa6a0gz0RQ(DIL`iCl;+W?ExR87GXMU%p$j0Cs&_%nIxIcDs9|M>I z7SppGil}yh_BdZ128H}982>E+SuH(`R{|y=PTwBqcZsr8@xb~ZWU2++qr@Kz)y4#k zXrib0yVckseFPHAXklw&{9i2`4mK6wYt{heNr&8Cpu$0@I0nd|kD&2sAzBojYO38tlA(EhHd0SGYddT|RXqTpRU%G64ma(u4IP8RvR^39v!htk4 z5+#j$U@3_qo)`%ZNJs7?uk3=e7bT^oGfaspC4i2q6ustY+moR5wQor6?r%k;&h{vc z>8U5Y(k{k~TTmyG&;iUkGQjcGH#NQV{LE;Bn+ME}7}ueQvw(d=sG)aO@6-03soMB^ zs->%lc%Sjze4b>HvS|^z`-&t1@5|ZoVwdWbyYZRsXcK{6& zIemP7IF}<5aPn&ouzRfy)^(K@naJsKQ%=f?i&rZ^KL%2NIl@#uU!y5efDahvHA7G*_@(=&$8*W5#Y8nI%W9MhXTfdzQmwi3xP@=0 zVxiksLM*6GxXd_rCE39^?aU48i*;BVJWqR*~P-plVi z`p2eYx^N<$rmjcz4wkJ81Bs>^tdA`ZW;X_nl^Hi0rry$29Q0&Zflbw353cC55}1;e z1;p2ZYE&Jdd?q1%-h2PW6+I(?vL=5d2eerbjGbqje47DXP5Pl~sf+`vWEGUF&cDjW zREk9A50?Pt2=!e@=vhu3IK$oEtoRzD30mo@1zwbiZvngaRs}#z*c6eSGjR(giOdk* zJ<07UMYyZ$#i7-~iEa%F5Y7DLL5r?&e|>CQnw$=ByB{2BQYSVVk2T*o&7RWb*e_jg zn5n|r;UlL5i~*1S&d4h}*;C66I~Lsu^6!6Ud?Eks84C8CK0dn1rn0MK&X!E~d3gAz zh486&36j{$`0&F9&9E+DZC<5~+WXfk0U9sYAz>e($x{aK=0% z>TW>Zp;vRugBtX8#T=T`DrwQ;eTA=c{oa&w?NIGzwvtuQm}lKUAZ9Eesl{cry77KB zxct$uH34d*;-8;Rf#~&EK8}zQVRQTv>fkuleY;^k&6ltYkXSDtr~-E6_N*pSUY&-F zVC~J@x9bbOv)*OvJb=rL?PLw%fDr9G6e{PiX(D^sLy0iI$6YmO5%MZD|EI#3XM7(y zVxb15+gNt`+G%P8kh_-wxm#z)7fpzCAWrAt`ciM*l#O=EM0QbV7aeY#q*`#b8bz~m zvEw*(;BK(q!`1ghUeUyh!4{FVJ$wpS?^7QsTcm<6&H}I8&^+Vd{Dpd;YP>0`dGncS zELEZ|Lr=Z*>4X`%D}R8xmYtqi%5auN_bEljXKgAabK3jSCGXOhR*~%YRY~rvI-zeo z*o@IsRY_5bHs{x|u_0jf4@>u7d58z>JjKMOHuc}>nxjq}!qQ4pEs)-mbcyy5kG&Pc zg$KrQg!(xC5*oOIuHgCtPDz#%U{p#1vA3xfkF5-3ig+luo z1XEqap|s~_!R<$-x|E5x`>MRUImiJ2OwI2_#P*!IYVn*R&N_8v z7B5w!9O}zX0}N%O=oCJYiY=35{6-1bRSa@Tjj!v=%19;RTFc7Ib8_N4YB#Bj#=7*w zCS~sn6*B@jVuQd}%G1C2fxLBodbnNr3-DJmHH%~%mKukFsTz7|+1A#8bcAVqoTnFrNL)-ccNGYMdu zL<}{52_^H$;M*k)Xrk|37K&5gc{IlhpIZ_WHj=p(&;9YCzW=khK+93R%ITD~V6^DP ziWC?83ZUB$A-tri^M9u3DBg~z)_1O#ue`q@4j6NJ@x~nho-DZi9Z*HZ-jUX_{3X$rW2g+ajxI&#$;i=ZthrBJ&;~tsENtyayHRdEr<}B0qscyRg zL`V-1;lE)OyD%GWWo`|10kywT4QeDso44kf(ndAAe74LX1qt=@L!i16`_gp*vQ`OPoX3x$wxSeV3>b3!axXN#W|DfftL3HU$=gf@(-5 z*R$U^qUwFKW$fZzI=xr2&WE(@Y?!YgblE>@!u?%t-QX!+^J<7N2i26NTn zEZlpB)osQTZW_o@b#VfZU}W1JYmG8n^X;ci91y-DcIls3T1Q=fvbO9vtHvA2LIF2) z=5YJ0G;n#jH#Bhg{oOUGjCJWvA#y7vSF*y=?IxYY%{ryoCu&yTJ}jFw{S4`?8H<_@ z3fdd8?72w%Ogt%eY?au2@aSTCFXLU7$SnJpQbTtcCJ&METwlmZ^PwWCRP{t4(uCkU zqnBL^&H3qAYsTqb2N~RNizB4L+y!5i2_o^Bh?g}upFlLOgTIA6WPVOvi&lD}w+>`9 zzBH+&*!2?~)BWaK+l)P{X;Pqf6^@r!Ge+&Zr;*r2?Lh69W?|xMofvVQT5P9tnZu@J zd+M=5;y%iOTC0zT(`_yQzP}Hzn+7}-=RKicni98&WC;|l&NO9=t(MgjL&=;k7!}74 zrbMFKk~JSuJHO_HT0m`}{uS7OO{SzNRin=kM+@7Xu!Uzj-`xH25)Mc}fXy=y@-yi2 z3Z2kv{gm(C&y7)B7Y|L17n1;!dP)PQ$!q4pVlciU%0TVa-5eWppS=ON`!aH)$^G3= z5=F~k4-j>5y82XagR5!9uJ9I_&nHw}l7{mpUe+OqshSl>$%;)l&#shL4a{fd7smI* zUO67g$q2U4FmDYUn7Cy%VlzMiFxj&G6qq5&J6w?wu{{kuCD~S?JpQGV_~4;^%Vh|W zqH}YN{{7O%vfhn}flHfy=y9K^V#|fWE8X&C2dy4hgpln96XdyG{_*T|$Oe3?<5t@; z4IqZK9L`-Xs1nq@kjlh05}0UGJN|&3DWkj$gnJ{=y_C_QiW@2VDNr(~ma>(nbB_O3a+=mosc&k+E!Y!R(z+dNQ3)7QEvn z;ci`2@FAHwu17fm2k`@f?;pJ_RrH!`_Fbc`UApEV=<=es!hFDjJRhn*{LP)fhG6t)Mhjm^zuD}spUe|4?V0clr5Y>PwZ(lcZzZ{-o=8B?bX)#j!ePC_hh)9=4&(# z_=y~f#*G_QOzP^Z7OE$g7cO#I1oOvRjX`ImBV%(xb6FD#Hst#4p`?#481l(14tM)9 z#|Y)WNgs?~Km6_uZ8|^Ip-g2<(I*0fN1Omz(@}#$6YiDXK1yNs0_QGrp;Zs@6{a@S zTOtk0Yk@v{qdV!gQC0#2bP{KN3$Z9A7-?Er@v)`I9-}vM+Wqcc3K!}W<{0fgSz(X{)3!&TRC*j5D7v{mwQEPvYV@PYBBkp0kJ zrgrBNn$8rFjR+}d%=lBRo#WhM~N* z)^NJDY&<;vIAqn;>PBS;Eh3)}HN+%w7t0(#BI0D8bv95Wgbmwk>9KdLjwn6U%lj#k zZFU7BT(DSnmv~a%SnqJG#$l>-!DNG>d(`8?m9Ll5V&=MVxc{N?9$vE99^?_=dM-D> z#I-8C$ZHj7ovXF>wiEWlay#$)5Fi{N3Qs@XyuAwHsdaq77W_J&Lu*yAs+ry zp^&e2F{&N4A-@b&{%W=WXfj?xmKrQo(QQw<6HXPhXa&q3-o+wk0lrbL=(80C5+3~K z3Sv_X)0PdcfXp6nqH<*O{T{izV3pu1IUlyXVU-S1GEbL%M@NB#g7lw2EV?jBHifWL z6~r$sN(A|13JsQE0YHf05_~MIjO7YolwIly2V`IuzZ8af1zmgpJ*&YFIOcY#$^Y*k z|L2KB*LIKkUtECyJ+uk+pXkheo4A(0AbL|9Z$uAN?uUV;g@>n7C1VgSqH`0$YwVDL zUqq$wU{#PXm*9BT-uYb>|6NEACr4(pTh+E#5R|yNry+{n@Zb5NOYHZQz^!`Qo4yg{ z3w{~cBjo<8=$|bMS`PsMQkEe&^2{Hyv-9$-yZ+SVVPMXIn2_sjtO&RrKBqa&zxxR6 zU<)z%V|MR$z&f$se9{xLiWxVnVThO41Ji?k6UuAP5E!o8X>4>z`)BYw)N-SKp@v^jc*v zY+KRgb*2XJ*O%)O2F`q7(j+unVdPH{S~P$dD;QE%+wm4mDso@<{}~L1y^_LD0F9Cv z5Y!t>8rI%$@1utZcL6nCCH|U})n?6Ds!8*cXVn8@?#sP^DZN$K`1v;do$c9XHG?3r zn=je9@U3g*ev9~?Dpo&bYLX3NEknRMD$BK-F25$#Z@amU<)P1u8@$cGlCl7qrV5a= zKM~%@`ZgxvyK8lMDKhJ0nSRS5RXs!KPFdrYxIUl(t9{vum$_hnc{?_VHC0bOoS5!= zbO-3N-zSyWs7M+$EmH+mG^LEqKi@o%5(Pw3tn%>n3*~FRiY9@_))Rn5vG@W&#dLP` zn87)*Fz%@<=wARzjylFt}+yzAXkE=yFCKOm;P@;utJ@P;cP350(Zrof% z6I;`Naz*AvzXs(~hLj1sKN9Caw|J9mke*V2SiTGB`bY5M+S-R+GoHG1;vTQf-qe6H z%y-c^BcFK$>lK7tGhn@3E`s$Bl;*4LN2~zRIPiccQRS%l98m79(UStYrU5lGvzCue z0hu@fu*-{P*5kyMX(wEJ7_B=DSBZay9)_O~+ zno~iS_Gm)%k0@>cbN0eAsCQ`#kFIxLQJrfEC@3zzvpkf;%X~ZLXOXk6fj#S7mQrN9 z>q0l7qH*Brmx5@sPqn2bU#TX#7+%BDkx_-bOX8Y}s&(ZtxGZXtof zNJGwEY5CWIUJCmZ_0K+8=dK6Ep)*S} zriuz?TDod^rFqWsCOA02g}lw!=x8q>9n9HyyD7m?)Xp_uAMSpS=2ZoRe8W!m!m#Us zNArla56*VuQ6cKfSMEx}ie5ZpcsuH}khkBA)jja>T>++BMD8=PcHa04oCN8C}RQCY9xJ<6_F_?Eq zVU81(f9yDrsC;cT=fV5eBrFKc>!yHbaLJQ%kmqDEwI+O)8rfsqs(i7<2gDnM|rdy(b#i6eR%CrPtt3EZax zC2K$H2u3fcW7NkXI9$zOEwo;u?^VJnD0=60I{a})e@%Q*oA=et1#WMXk zW%uhT(5f>(e>uQjBd0~n>hk&FZ?$6rt%L6xktINTJTw&gJrgMpa0l&8lZV%IfqQh_ zmps)#Yw0ukuf}tq-9o`-y}H4W0lL7z%@5xM?hp@;FbwoX_;6mAB>ncRO!vW~dEc#< z&=`hRcj(<5`m<1D@Ym1#jNBrCgO}Gfm}mdT?`KKl1t|sz=-|a~e-6H0hA+ybuhJJ>--}H7!1Mjzjw0roltHSYv)Cn-hY!{4%XsOv zOBqGTEZdj2y1c%-A8#zZEpMS<2tVI=H}na32&%KU;RWJS;xqGNIY3S0-ine0lMS3pjwxz=f8utbz0uq7a zo%(pqZvzG@ea{n_l}{`j!FAYES_Jb;oX?HiBEhum98EIX4fBeF;-eDadtET2+4Q^+ zGSP1s#igbDa|mKrG}pftnhoO1rI_LhAeSu>$&JG!TJNI1KG+5-q zcFLu-ISaUa0mtzQ0>6R@572aNOkhNhV+W6;cm2Mv(i~5o42y_P6j^a`e%gme@5qFW zM+_~vuSUk-or`?D4*T-#h0?xQ*LCr6qjWz{L zVb2WxD$wS*M90Zj52B!m@rs_)ZhsL?EM#2&X2$w zuiq79CQ35|1I;vI$BW5JVDx0KT+VCz_dJ>j;BD&m6{LOdn(QY#d6+ria$$cJK)q_=|rX;Rj-tJb}K)NE~SOw$51lqAGQ=Q`9!DA(LDeQINg`~cgC3WFU-WRX6iEC z*1AVF`8pi*J4sBeuA_Y#lL^`{Z@HAT0nl@J);|O8CKs5X%xs+{yNq9*|CoH^bp1SG zzvGFVI)}n=4I9L^KMjT+50uGn1T&c@R@JDBWlDlt083_u)GbtfM>IsJtg!Z!=0}Tl zmU2T$cc(tw=NE_{uMXK@Rb*NFAl`1Y9|3q#8WR zGlU6L`uS#iqE<_MyJwWO?6TDCpua=@2RIP6fTBEe0w-kZk=6Ik$d<>Q)t+00X~Qu$ zb-F++8f(DjkAMHGN~NzQjmZ!fdn*$EnvYrL;|dgcrg{Z`VFt)9Z}}z%puck`*ax`w zn24N-zW?NtXlHv*2tez6@+z#~JZRXoB<;sMOE;i_fc(=2S4(edOViQao z>J3Wn^(Q=GG^wFP%vV|u{PEcHV0Ge%w>vf8q4o?uj7@mkAW-fHb-N0%i(->+3w76r z`2@`7T>L6ZI#>mMcz3QoMx-eBTkOs8^q80S!^>cPZ}sw;i(;EZh6sR-NwwF#tU=4? ziVb=u0Q?lN0a-uFCod+8Fj>f5eHkbINrndxUuD6u?c14bmI6}b)ii)|7u%1`Jc~a8 z40!gA)OFa4Nq&c#%2Bv&{nu9g$~91gayVOlJP0=l67kv?*S=+%`UHU7ko4HUKrZ^b z00_-*7r!ymIs%yK$VH+axIKf0rwS$RO7p!p*u3n02CG;X&Trs~_ICyn2WLxX6!bf>@8N0;t7?8EiOz@Z^_W{l&>T=vp4Rkjd4SD#u^DFjPgu-=IlhT}n7n1jp1u zyi7|0eguOX(#W-oY8SYRQ+(5xBq<=I8Gw6#>++c=dK~x??-_a&`P++*Sw^_ek<4D7f5wk)QoX=9uW3M5nxXb}GP4pMyxI zhw~K94`~+|+eNXV(SR*7ZP!mT2`G%@?8)h zPj$+Vq^g2DBFJbMuEp9LIL^x2khze6G2)-zbSqKq!1@eo=K}pM1G+bWGN zIi(!$tq`H`;GANCXFjG`V09$)ZgXm_yQZ2Gf=@QxU{wKLZ!WOoN(@qsE7^Dj}}48y4NSDaMg?*?Os8 zx6XUHEY@fn6JBbAi~5~o@~;G3OV9LrI{VWfp}pfE*cdo=dpMPwH2d>|QRSgyhf9>c zEn~WLKtqydPKvtCs`P z$E<4=PG#nmaM;30za3Kc&M3-x%C(gooRGb^dp`+Ey`!hPuVV^X-`~9D#B}<=zavfN z0R@@DC;2~2T$s}@L<=gk;lw;t{sAo9)gt2e5q7J9VSa=YsP<4YJQ=Y859Rf!P%pda zGj$Os2_sHlI1NYF!DOqLAED{S!rL(synZq@?N8*H>ffH{OiIYnR;lWxq;jgCexcL( zfDJ68pBF5dj(tZ&!Y@dXN_a%C>iX>vQcWAqTcwu3*f8C>5U=9TI!|!Du6T0Ert2d( z*WAOX=^+Z()vEfLPNVp#f`d}c*&PACV63Tgkb zW*;!VmDL*%kaTB61SCkTQp5iE`yJTOFP^7P2^DsLze)}}mrpzb)B67{(quDMRuG;Xa zmcfl>9%Pk@N5NkmJnwa$fqmPg*xuyQ@!G}83K5}Ge78mHmWHp-e01^7m?a!vqG^+2-~Koc zHQ_{VEBj#4+sp*-&6E2wYZC(v7i<#ennjq2zAc)0kXZ)tIXvUq3E=#j%e=%ts5T>qre z{uf>(PS})01X#*_=AJ|-_RiA6^Q1b(jXp@SAF zCeY|TyA++(A3yhRE*%Kry(SME)iXv}jz19=ZvkaWXZF+|7l>Vf(AOFuqBp)xES+=f zgpbUF5w2KL4D~m%?ZH1?BO*Z@gqgSbI+c?!S7Jy*Hgu%YGj?b%4Jc-6Y>|6eLvD^4 z19qBAjjS2k1zR5qm*lg7yCh~VC~1CBi8hNEs;NRRK54a;Ckc}UF*aH8M9|wbbuj+? z)~6oy5_g*>s_lo@h6*TGH6+B1%nH2hbab4w!8n0l+Kn6o;s(+WFbi!BO z?r)=4zX5?&l6X{3{8V6@5)eb{fEcQvWgi7nZ|oU`6ThrW>qu@i|_g4JzF1^&S5Hx5oM2*es^y_KuVPLmI$k( z3k5@BYH{1?lJ`}B@guopK5TS~T`sheI|$KN(;(q^dhrNf1$EKRFpcwJ1oY2lyJ9w6 z00ZAvlcrwemAACCEJ%>L{BTfHcd2F-A0dei73ntaiyPE^<5dHZS%3eDm6}ySjdz3O zl#r;ga@%3PmkGot>}uy+LyWj%Y>zpH^LE@ZR2dPP9~~#puh&YH+ZR}lCmC|bcmW5Q z@6A-@3c1AhS%Ay#PLvt5QE1mQG_wGiO%w-Z?mJAN!uxSwTWt-LkHl2<@Pux`o=Z}ek`(Gg- zb?uAmR2c{{^DD&j+NN5L53^?M0ZJFLFCTZipuN%(@9n$7B`c6T=9bQBPn@GZ0HE#V z(q!#UAyJ`p&OYz}mD;t0{f)U}Xs>oQ4g92QwLN@jFmlxam}@yNE~wE;=-K{u;lWpC z^Z^FeB_ z93Mr>&^3nxr6q{(*NN-F%e+QQ3pNqSk0YyF%?W6M!QiQHEY@C0An;EDjPW=Amoa=OTVXeB; z$47ZFO_k#GrS>nxzw))(-Xka`sXETYV%+c7gaqrYmW{gMQ2LL=`bV%RmwCH&Hzcfp^xdbq)B_x^n6*L!Zr5l- zjb;#MO(A=S_hlz`sYd4elh@K2p$h^U<}Vi(+=d;Cx=KzoRXKy;E9n+Un&68p>i-qv1S(xL6^OvbfG1fgv zcN=v%4`7DXNay5Hx56fyQ^N35x;VJI($b%vyua1*h3I(Y^#{^&c2uV+<$k{+gU*H* zEa7JitY|Kk3HDHq_V#|RWI}B?(}I$8f1CPqASYwrdAv-Tp-lZ==d=X9`0O2!`|Qdw zzm`vIVP<9r3-o6i+H7WTZ?9+l&Je}+>g4`u1AGZwjZqPxT*un4@n#H=kIH^2lFpH% zYR&1{rHTRBiKV4E@{4?MOyR13g$F1@7%>M7*%I2H`udI4LDZO=v@%+!edgVQV-!46cdG<**8Z16C9 z%nMe4Z+=6(#89J0WYcJv)Hm%AAdIuej92Dkp8dhNEtN&;dRDHC3Z&4oy~@aWo?3j9 z3V2Y;=Z}{<@4uJ&*?^{6$Qy`6Ggb_Zl#By&w|i@A>jq~%q&rxuKgo({ikLepPPrSPqw?Eh;%t$zg%v{mj+0AvxHAEu;vPLI zSpOQ0s?FKRYCc%dA9kd)7?-U4A)7Jqd{k#Rx&8J&msdvXjt@vL^n~6D6|NvgCdAW|f3n4?L`eKW`+MlE z5lFgUFke|=BvJsL_ir+dg6$f^@$K^rzO2JMn!q8d2q#Nc@`4ji<*B|-fN(U$ZHp0U z*qU|a69rr!5^sH0h1;b;cbS-~I$VnuH_=c-$M+>)b&{TRwL+3m=P9MGT_-{s0he}h zh7@~eD{|8%QKWIPCbnD9xYiKoaN%1dEUhln#8zNpq^M+?cM@N&PAw*#l+HkF>E+&P zEEF9BDdyJU{4X^e-K+Yn#DFA__*{K(ixk6z({3h}9Do<0U$=(G5zrLe%hq2pgZJw1 z%;e}vw)6x@7!lo0wxHtph-LuOjtNI2)eII3?yJF2VKU<5pV$8L=OL4k+cEBA1Vjdb z=6pee8X-Nq^5ZMh|Cz1#vU5LC1709W#N4sZ%&+BmctPm^lUlsz z*+uh8_}(AMr%nS;4c|_h$aw%92!&UoT#x5hFE5l&T!<5^H(~i z+}Boiwjq=lVcMVB9?hly_=^{!tQnJV+2`yZDV58i`yKWrrXuLXhh>pNc;Ags^n~^@ z>e?Vj=3}B!)61Zqm?pg4+zsmpV2l;m;ao_9}k2L^?%6&xgLdl0Fgldei zL>_Z-yMvNjIN?QZaT>RIdW7piNGqf*8A5X{`YZxw9?LJ9F2xuphVAXS#R$4r)FsXjSJ2b}zp15VVn3L5ZNojc*5#K{% z#&)gL&gwbifD{*y?loAm2eDy556=ftAhr7*c2DzDE#x2|M2ZLq!;DOAjOd3{^!E)v zbT6=|-x~T^JAKfN0s?6wD}+!n7Vyw-7slK$?qH6yU?^(X%N0EO*?B$6zWYwAbXJQE z1kVCgZ?n77VItGp>*+!XaisLPe@b1aBf|FyK0K`_!ob2Xy}%s7NqBvb{DzwTo_YpC z>?tFw0kTjNw+lR`@3V2%mA+X=UC~@(!FLZ`b|H#xFs$Poc_qwGzg77_a z6u-KROIgPwp`>A*_JVsA>53SInLHN{AY7@YK6G1PLh$cM$;f&wtLhJjI)-u~=poWz zYJS!3yGM{xp`)f|%epBYCYup4TEa^=+i-d-eC86}3nxIsaeEEu9MK6i^?QqXD?N@cA6BEY`*N0uRJsD5 ztNtu!$X4n|xQ{68O|Yf89k6D_Kh8=4hQK{{{z%D!#}~3f!kQLC3^l#6aA&W0lXA1s zVfnnmFV7>D=Wdxu4@qvH+n{xD3OBp|<=6VR73P<)cL4dk%+k;r0w>$XZYB~6UbhX} zLWgqn4tAT*-L+tn&GOosH`%c*LGxNq39vtL>xKZ3L|#}8zQlNMh4+kfN@ao4`x+66 z5G2^|aGnr7GRpGR9#1$q7B{rXtZ!zDNQwe`dS^@H*|`g-lR8&Ma_}lwo>Zj&NDr4U zRjOc9skx!w&rf=w1vV%2gYUGg{=BxjXQ`XQF8xKCy}%$V z+p)QgyYs64F!^G=LwFz!v_SrPlGB(eLZury!-~Y5CbfM@nU~4^R)y(|pcTI-MujKoyWwG9!Bf^kkq@*}TGxGQ$PuSK(Y$_yPlpLQ z1tTDcogT`Cjg2QRntTbJeeT&1>N65tcq=r&`p8qNT%O$?Zp6kDe)JAER8;abF0$^- zr1UQPTq!4J!{EzZo%9vv!K1@Wdbef}c?&Nz|!FwzpQX*m0q%=2rURB8d6b=Vm>9pZ+3DccKzW!Cvf4=_z&(@@)$91=&-P5;6rkK zIItL!(YV_CPsC8{ks7NfuUNPoUV(ufj5W_JeBV>-92jbR9rT14!VP%Tg1*89`(3<9bX_k5Fus zbIlqGdg!*K??$*`s(fgUZL8T6V8q+E-N z8$Dnp6+!Kue1?S^&+JXgmq6nygY5(StZhoL;xqIptPF#8CB+k?Aq>q5`noavW&_zm zAj!tZL)g3`{{DQ}oKbhY>j>~uj0c8?i_k2j-M3o4H*-!Xh-Y5ZKg&Xj%A?SiCnZiO z6uge-yT3WXNvLqP`Nu8&t|xjFXK%Jlgm=zt*3Ck|oiMMUpq?kH^Pr|4DK1o?s-$Eu zN8#tDOIClwu6p9cic)yH!4t!v>M@EkHwr&%O8tkOGj{H~4PKfQeo7m=zgI>rRQGoi zxn`a9C^)V#>>!fZSs<#qc7ZtOeAtV`xrDLaUQV6;xQ|9#WB3ec{UFyV3VWM7b_>Yp zMf>WS)ZqE>o=4_F_th8FI6Cy7_YdXxRJ2$~gGs`y1$%1c#SddTX9|CM9%<@#eFl*l zw&C31xw-k;*=CzoI=sWl%0_TU>mlu&Ke@7UTSvc(@9ys(%~ufhJlOI~dXo3` zwks59xn?&^$IyD4hsR4vNhv%Irkp>_IgdgFa+G_?)p}B-c)>TlSdk@&Jj_;v$U;#( z;-gUyUb9U*9p2e_ytuXfyD>sm*D(w~i|Fu_tv>7=*ozxv(BU~*yimg^@KpaE+c~)2 z#7Py^Gndrg6QKfh<)bXLMttn*Rm(!pMtV$wVNeh3KQv6A$D)ivnv!kt#AV;^9DHK< z`Irbdu)?}#rYtI8u=Y0k_4%-Hc%F^fIXTsgQJn?o-(5QgYZ3;#baT>vj51`lx+GS4a76LHnOR$+&@Z&GvU*qrB=h}LJIYE^V;g(>4MeBjtsp|Vdi%f+ z9Qj+_u*bOtA)AumDPKSO-V?B!(3%D9LOU{i>3${o6@%$^ZVeDn)s5MY?!{_F4|OT^ zUt7YyBz3p{mfwlfXManJ53!P>9>$=5je&#WCzmLoF?`J|(#lf5OQl+yqc&9fi%(1R znKAj%Lg1kXLUg)T7j~m7gRh$C@I0n>j4R6v2IbweS=vOy@$ex3MKU<^)X27 zQ|OY<71wpq^WTDoO=aHoE*$lPMndA0H4~NPsP- z#VyephJIhAcJT|&jk)8URjkqACIL2Hge0;A`ch}Ff@Lp!JC2&n?~7nd^oJ(Scvc4M zTRc1=))p4O^}tV+*&ZOq^+DqgpnMX4vv@(e$*q zfgJI!u(*)9>tTwHu13d~|89uSo46)UJ5vjCYMyN0sC)Q9j$y`cOqI^D*>BD@5L^{X z-3Z&HSeTm`0sSL}5Cu?zk*$YvT5{^~+Z=O#$7^E7AjBTlL>vB_?Tm|eur56lM&UUq ztH_E}CAe4dqoe&E+@qx@(gznUDE!_$5lfi2&}=4Tmx>bM8b`X^XOOpF*+0W7`@T5! zJdqR!a%hLk#3nLfpmXgmi9AAt%_XoZk|LfkmCzpl;C(8?O?(`DIH9AAe0%#Maf#au zxc8)QdlIzb>dR)1RA_Uwdd*RHm%%|wc;WeJf)v=CNZMoLUgzY!^rd@~v6969wP;OY zOTb!j{f2&!Q26pBiJc1U`aGAjHiS_c1t*$9ifBsv12hil7))*MCW0@3ysPn4(%y23cvcspRN%FazBqnJuF9+r~0JYB%`k9HZ*OvZpU zeib?h@le9blOV#)b7sb@95Jr!AI7vqGX)fV3ZSyNa;CCvq-qcA%hw!83c7UD=JVSf z!5*#p0p~iWDqZRipSBbCuGVXFWc37?v#Fq#78g}Pzas`FqFmtG*FpC}04mJks1ed( zAsyB+2$8@vLv9{C747qWU)Wlrdo-s=*S(+2?jOpuL=$Wo>rrf<^L_N;B$JZ} z_v?>FNv1FMU&}IY@b_$-B?`-E;v8_-g~$2u6YDhma3$9)tsX@p3xh&e{GE-@J||8; z%q==i&|G|nusQ4J?(Y(YzWhPudeytyaQ;Yh~6O_{j*R#d0XFxqlL zN__7{TkFSl6lD{RB;{6-W>EW9?hh`3m~?Um;y{BBZ3k(k3l-cU{WLQ zi#i5HuQvA~k?F7&aOvj(ZAV~n*n`4Nkth__%%`3MBE5CVhYL!h>dJZClMzj^@UW~Y z{Jc=UkDjgVufYLe4VB`e&BMHnCBFM{5?-l{YJ%)iL777f zd>baem_Q-ZcpmGAm0ToyK5K}!)-lPcf;Jw?82778ee1!9Uey?FU*#lCI0c?GFWXBfH$m{ ztnH6YCqzh$OaEzCazQS?rgLH*KV9bEp-eO@cJ; ziw7S74w!TiTo0jZohLU7DA~%cxFzxkM0HY!wHpj^wM=9jJyq1w+BbufUi}~`1d!}& zcRhan$P`WCln}Q{g6D*Rw z3+iN{irfC{jwv=h3LzTYcW6L*tk^hPJhF}oz%Vx@{^aOa!@PcRdgrJYeTz>#Pn3Z~ zHtx1%4uF%XA<`-S^ZPo@oP_3%)UjN%qcCRukmfKwEXM&7L7Ic+G4}m-r$%uE^5tQ;XYqD({${ z((wvsfQ?L**fVFnXpvpsHX`2=9kQiOc0<1_>Y7TEIh4RDlLF@Lp6Py#ydBu!o?xdQ zQu?K+;+zK6r|;0qpSvCpvz#i>PQI(5*GN(Ba~r!};NfO^!T#ozAbPI(M+KyV2K7=c zR9}1SWXTbwmBDm&C8X3!5I(HSEEl`^)fZX+h_$U2zdBrHxC!=6>}FPYcW z9Jto9<>_Tft)Tg3#b8gJ_C}hl3iq&XC|xDFl$t?WnQhCQ6;U#JUXsQi2i#vQAMOlA z9&d}>!PM=le&?*Afq{8aBTovy8vENfTMX>0wU0QYzI;fWtIxEAloN8=#Z9Y{dRViD zO`H}GB57%Z-HygQ=wiy!$v{fEAg;W{YS>mj!uU8}t6Kd!$OcsaPY1NIF>vS2c$U(_ zh7lQXpTf@>Mr?e{|3yRiHkN)@H@H8hF_j6?AC0bqyP}{kYkMQ;VV~ACQ(WgvOAaZx zJRylUP5ZJE&eXkz*%VNX?m@PQ%!)}a9bMgNnXDESoR?e&O`OUX8o{OJBjfAYsH+{9 zQ*dusTVrN$4`^c{uI}8ZBZ!NO8}75$%2W>2%W*i@m$PMY+r7m9w}GYp_z3^2Cef51 z9zYF2&3;dPR-t|44cMh~;Er~JFQbqI4NzLSQ*I%Aha1oLj8^)ODLTA>xMvP(znSzX za?_7e5a_>1sUwh5f0O#%2Yq7V>QY6PF0ixuVcYh+H$l#fvFsTxxy;a^#S=T{ zIV_gFBwY-icHg{F-~tL~)+Mi<>tkzbYR({TSk-ci9>pT*>?uA8%^LAIecdLlz3Jz`&*H_idHzy*#*FbjVNi1(z*7f-=k7VASuc!6LR{lBL*UiauWueirYq9g+f{QJxxwHc%`Yiu zdtUx1nr;K9g*6-=FBPjbA&3^W3gwYIHD?y3P+B@=7l!`g0^H8HS-Fg*`Xzha^XMZd zp^8ldz&|jZhOI0tJjAj(_cs?dzyc}ARml`%>-atZ*}BnT;jQBn4gEvUbFmYcksIF@@j0TVj+VJCc%oSn~gn9C9E5T@R%4B=P$aBSJK< zSt_4VoWY&V?^|`V#pFYAW8wJuFiXByO|RW)(kWS#aU{ftbLvTPeGYZg%M|Gk3@BHfOU4uwN z!w0&$McjoXdtNo|trR!73B|}Nrg?7PUbK7m)gGnG(?T`CUFa~j|Ng6kofhkWV`jrz z-lN6x26?Te*;j#JE}WC7SISuDoTB)q=vUo6ov)u=rw+i_Z|2l4i;%Xu`s4*Z z_iYF(jHCw$(}&8#gw_jF?6lw9bNE54QjmG(obP9^!E{iuYZQk$;tss4&b;1;{@3yZ zRdv+gme580xnIE&Nm)8E-e{Pf2`tQ<*Q~QAr{vkQs6Ew{l+q~eXJ3=t>twz-quCcH zU!H^!O;NaK?eNJRSR|erX5$&}v#hCea&qvYoOgbl=PZA@84p+h8F2YKEMNj>)fC8C zrMn)7;gxgq-^?8jjD?cah%294;a(E*`1SduKg4jc0K>!cSL=Y*4Mp+Bo6 z-`xO8ehk>mQSw3RZm<=N-j&QkTk+NhY2(P) z-~&s?7rsKGQo~nfH(Wh8@K57Dmce2TvRuTY!f9vh<(6=9F%~p;r3&!885npEz&v@{ zf&BgeY_jkRj1d+oKV#t-9+yu^&EXasIr|u&m{^!W|M%0 zo_F)}KZnD58RSrzLCa5n-w~rn@q_~RogJ&VXcPnlAl!$3rvprmW z$P#O}-@Z!(P1R=bCasA$^B6EQP5fUCN6B19{0G<}sd|r){y=Ory?8Ik6dNEb9BA*2 zp^duJWAgMHEU_Hk-${@@Gm!`bHROXS!1kNCrK9;mfi|CBo2B#@RR$)Wy@s?i`zm}% zsX#R)Ao3zO;4d2lU7WU)p^;D$shmLJzz5xNr0Dg*NU?bhSjgzxjXL97Z$(qyrkTWl zB=rHeT}GYo$AB!RE@S|09POd*2CDtKQXP3*xY7EWeE8W72PwhHgN z-JJ&KNoo8~(86oDzw92f2-BrNkc{ViAZbkud8#iKt~f;WuyIMGlUXnjW58e0tE+)X zfb|JU)VD~URE%&eL`+OOZhOj+Au&3KKVx)QKD$Wp5QTR+0!Cl;ahPb;Pm!B2lIS)H zZ(%d|j8(=Zh~3eOLulkUc$n^o+?e~H8~-yrf1ecIGH4edEp#Hm?Ss9oz-LFG>}t>v z!OHEpsC*F$^W{SxZ0UOvncwLvh@yzTe%kLfucL6FSVWZq&u6R$VjEiSE55;C!e}5A z>(YH6($_D82w=PN$B*_OPrCzX8Uv0XD+bc>ih?M(M3Kb8@p0Xwyduj(YmKDR5rZ~3uSvQO2;V%a5Em@ z0aTUyff7bYyHT7aGn6ddHU=HG!2HTFGsEY>|85H%hWJF*9XxS~VSGTZw_7d2dvP*aF z(R!96>?!#>GZ9JYQiiKYwO^0|aAtRu(yRJm%LPUsgw#24+HPX|B+~Wju-5%(B7g+l zk=!w$WLyQPFFM|)3BMGiN;)8$o(U}2P{>{^sxa3yq`YI74hfiopj4RD4$7~~0|oNb z*2V8m*+B)%PK4TmkWvt_hEkwdNhb+;YO*^6+a|6n_Lj_R9Vd1i|3MccpYveZO3l6LT<73ezHmfbX2k2tMS)|>zWGtzc+f2 z8nmFjsCABY`31I29PExEKxJ?jIEjnpvq&^wNNQFgm-V>l%~uq=8N}Uc;@uW=Qu}j2 zK_w-!2I2G|)q3w9{z^l*MXDFbH4KRFtd#dJN0g`%IJ&7G#eX!K0lrlPlu!PYJAr+g z>XG3(P{JY*xtPL+Ju`qDqJMv*JqiWlS&@n)u%Z;SX2zjxeL?xc%^x6xZ205zyA2RQi9L9vN#QllpQ9jaADX3}dCmV4? zv)60p8MJo$P4y#%3rH803seuBAZdNb(IcUN)dLDTBDyXY>XTF#9XzLj@Uj{1RF0GL zGYg%oH1YwIC^gSe-F@=gL!G1gJIMkFLr}SV_Sx{v>>pzDWvkH~wa_vhXf(gdhe2|5 z88A8*ZM5N}c%O)crr0O#!^U%vO(sFV>EiAjk)!cJMl?U8R+e&)Q=h_~aohjJ85DYP7Le3>{`(L(K)QXpjolrty$`wz^< zRZnKg#Tnf_8g4w?3OCOo{YiNWEDa1;8n0#hdj^Q%=`4{i2MIhv_;9X3}9NK!Z*Y(yeT~WVp z!AR#sj#7I~*bH!as^XL#0`?(ozM|IOu`EE|@CZ`ytNQyiMFzI7$i*7;n7Y$pa`p#P znu(;Y!OE@3$@+HxiXuMiz)Ok{fuH`7w3W|W*c@_KX1VF0uYWl~Uyl?Amgw|oZKDr-8` zd8&~T!r5V+o-wt_u2LZHF=Fl?%_Mul%6kqL!>Lna_R8qTrfhlR@~lDt1%7wPZo4(18j6~+6k+KM)aM!+N?q6wxdaF{+x z#44*Pxo{5m6)Yjyhw=-=xL18vrBhaa4W3q6x=T&1Ioh94!{+zlmS3_iC(xKa0gdU6 zJS;asvG=EaI7ncpa4ON@(87ZEQvS<(!l+ujLg^@aj0#StC4{sBfM&w(_li>F?KK>P za|9%#j?;+gv;kYsMKU5O7Q_U4&+rFL3He4YET4g6F4C<(xkzwv@dT078RSOgzig%d z-1xuI@c5*XW@a{XEtmkkhzmcG6P|kn@#jufL;S4T1$yuTV$A;}7tzuAl5(St0V>j& z3o&+la=51f3UL} z+mFJf>y>~#mi(RVMZ}5X2FuwH=bHnVC7ST(@;cKqI7Cv{Vb#}HXU!4$pM+NzOc|u$ zeQfv!+{auZE16cYTFimwjPL&`N6JA~m>u#aD})_jVE+XsHBto7=`9o)wv;Gs&y;*mgaVexQc-%lqXlH!I}?V}miMBd&q zu+K!5id-e~e(Qm3IVX|PGJzKU5fV)fgfZao{l<;>TZYh^PTZCS=uJ5?%&z^HaOpxH zLJQpN6?*822;kM#KJid^9|yhxUy4D;Tlf|9`+hfvCp7DC4&N*z0Ff-nXo-tK3;k{s z!1wE1_9k^Ariy~`CSnN(-;tS9{y7XYfR>V-aYN9sO=v-XoV(juA9Yyu`eDqz;3Ja& zM^RRoWB~{Fl`Oonb6Nm*58UAN-V6&O0$e&yTG$LkU>_2uy96z~8E*l9fml6vN7 z^X+&iXpo=Ig@MYE=1IVK?*ksuL#e-b;j-V@Q;4KoPU`VmdSdNQgxuxJr1!Aj z!vL!iF;{^L$|eS!nzB^w%HQiCk3=|G3X9d?Dtw?D3HzTH=&3C^ zsA=LPyi4f&=*}DtGad3}f1A6EfB_uG!uOx7v&5zw#va1^e_JvI&^51Kin4@5?|Yv( zIg#H`PJ&VLY$=DA4nE*|UtDsXI$@a=>Pjj{E^G%T5|$4M%p4})uQ%bjx#0k?*nYbXXZ(3hxAKbK+p<9QwRRZur3!4rufsX^y z3rd&7o&4<@MV22du?`tYQ*Z|{95IZi~NwgTwzel@V2qc(=6OT-e0rCVzF z<*NbSdxU0E!TsUO1s|Y2>=bIT(qDo>!eHsj6T+4hA^a-6_&_ZGTRe9Nezr;0AYq9hsrq_~h6T&Psa12El5-<(j3!(pDPxHpD94g$AzduGMV>LsH1-#-^f= z!1qwGnt{{l#WEvr@ZhKmg`(__n|E_&dQA4(0;Bv5~?eKJkusx19S;3 z$Sb}&b+Bf&p=GWyA?}7D6wRqD%^Z9OWtLn4_^@6(V~70=}e$^NR8hSCIw!>D;k z6k{dV^(d*ID`};v6}CarTO#=*TOm1IX9^LQ+UUBmva7kvzxw9eGU+-b5ph5mp(OHM z@L4v@;KjHJGO&@rJeW6n=#RpgWCo9I0%o2C#_9#r>*96L%wo3#j7aNUzuYAxKMIl7 z+Aag)o-J)YNjcfKq%*RpAqKNJ#AX0?3njR!l|HFAxVC??|T6tl(eDFS8hD z!?0N*31bJ#A9<$B?Q+qhpSaw&E%+_-ZO;Il;BY3TB~z){k|*AzR)k_oAa$0J z^}?L{aivNeRVzqXjSZ$7BW&_PuOzaGSe^?rr7LDV8t;fwT`w=)?vuHGUrz3&1uP2$ z=ox4G3IcdnwCD%YB5q;yTZ1D3snPwpTUQ6HQ7H34Ug4xLt^q;M8AzwC#6c7@M{*Ns z*j%+ND3Z=NckF%z(K zCTGOV1o3tQbN(y%Zb9y+UeMwY&>`;cWV7Zw%9|#kmJ-9K76+ZSzNNwtBzB?FLX zUh6(_{nYUoa*xc3uLIEF`s>ScE%(&gs1V+-c&>-LbCy6aV;x}qR#U^L0ScU&YdfFr z(Q1SZz6s%5WYKaRxD{r34tSTB+7R?>t5u4=@gc0ae`DSVAX2!XTkQ{%~Ew17j6=7*mF?1jbV)Q%egs3faLpTxW}J(an%t?Rc!o0JbS zdo})L{s3yvMvu9Y;P5IT*AsH_zC(gnIZ4J6Uf|EHd51BTtXGaZHtW6ij?L|m!)Q26 zytrw(KSz2Y!zLqAwY2A^GBFj1y(UZzCM{%=k~ITB!IMJD^S)dm?@8vl@}bFIwj8$L zOGz{}+lpCPj#+l&Po?!lz3$9k0N;fkOjaLkpJyc55u}UuhYqcUs6o(^5~95}>FF__ z@_dX<*ZG`hXB)&?3kW3<4tF!kl5}M~zKMlfni7W784SkBl-3F&n`mLC3>%Tj0aTLe zdB>VJZ|q0(E(>0|gdR!zWeUj&EIwd};aryY5vIb2JpoVyf=>x`HRjGDtz|tz<~%X; z!3Mz?#2KdtcVP*9gy9?F9$-HMB%ntgH&c2N@xL$q^Sxu+I@jSMTAitQ;sV&q6!4eF zEY-xg6G+e}@*Eg79zi6&ium9&NnONlh)2J+sfnWj$33oE5;fUH@Bn;01}XY9u(uH}7jZto^&kZI z;je4Oe_rCD+vxsvC(a+x&%dvwyf*8FMB*7eOD`Jwm=Qd+aH5J9HiHWcM-?-3b?vw zxm)6`g4V^qFGGr%={?WfO;_7F$=}GGxq$uTGwZCL!N$89`gZoPOs zA2Uzd`xfRu%k#f(TF1-N<`rNJXA%g5lH=(@J7=P2Y#GkuV*3~ne-32Q*iGlb2dt6# za+u2EsXxzDR!HH_^uX%%@Q4cTu^ z(w9W#^+aEw3pD~GHnvP*Isq0LUtBB=6rEmv@cZUjpZ8!JoKJepM{y7Cpej>6h=w%t z8<{8Z(h;n7cDdi#7{04JGxOdFF_b&$-Iro?>wvet&x$_V0!SuBYre`|qd%!0rhtNG z-r3)r)PN(REN9`<+t4PO4+`J@)0O``mH*`gd&7b`0_P4&Ge%V%DQ`qWX#x*G1WF-B ztX38iFuf1L(yvrhH6#$(?SSc87qRqWGm~lv+S7sg(Ts(2mc&K`1#b4ki(HSNA+Gl8 zUMSM>FQp6>CJ-U6YDc6=zzwn+UBMNhgG8j)f;$ss%jUK2?-2FZ#)B1W!>4C% - za1lhS-zuMgWai_;*e2YY0PWJn)!GJX8;>P8InXY13CJC1}cLm9j z_ZtH4t1vRgdERazG91SQhIyg&>Q{4yxC5 z0(}*!wh)dK6B2vS7p?MJ8Bqu}MkH*O>u=6JNR!k^8N6Er1)px)kI|AzCRD1#s1Wx@ zBPuZP5CV_=enbT(HITz>EiXwIRHuJ}Gu;jX9WwxuRe36Z84${wmrD}T0f5b!9n-Kj z4#b5o$8|LFOZ<*CbpYfVHCNNNm4FhGhmSuf73qSwjHSRmYR8Bf5dN{&Bpx(JvN;Pr z`H?yi(2|Q`;UpllmVwA76nsa;53&+jF4~TRDwU#H=uGq*0C?0{-JmRy1bg6KH4UIC zd4x2;gV?r@%vO@WBXO)R1ipL0;Y&)M!V2ohTxzG0cZX@{Y+sf9rb&35KS2daa7UZn%+2K11Bn%% z(=^2@A3+^O8RS@g4>^@DW|N5-X7*(>s0k=v2BHBol-sC`)QbF2qTf0e0%?YpC)M(v zx&=?&W2$z^7S1(sGE6Yg5|T=J+L-?g*9RA(dFLZ!YhF>|L`F1$j;>6SO!Es2Fbj->%B=J1mKMz?aW%W^5$nT%M$o>6FQ=U?Hjh|wc%NFmqpc@vEKMmLpmei2NX>+$cxZq8hFVK1vrv_FRC>z4w;CeYB3>!u;>sVa~-%VhK$gG&M@<`GK!Qy%77I7mNSo18qsy38R`2$9+gFx?D1j(6IKrms(v8xQx) zYcGm9&r}MQf6a)zL6*Ks!zMEpEVNm(!q-qZrN*Q{`ywsG(-gARb0_5Ec}up|xe3h0 zXrHF7&vPtpgR0R@qsZy)=N(z9YL53DZ8hsx?$ii9$WUN^O|6s1P}roNbAmOW^gbd6 z;sD`518wBT2Sb}qI&OrDoh=zG0bqDYgoOHeI!Rus`)rJH3-hcrZUCvOFT)OUG$5a` z`15G+Ul!8;CE}9>cCkFMEe>uf826Gr0%xx=U~Jn+xJ2n1;GJKy!ENV} z2)B)0?WbGm#gsqZkV4=W$iO444DtvE8sU?-rbwi7p4DKG#CsnF*7fuRv8ylG-}v%Y zJTjz1V&JWwoCkFAjEgp~ z@EoLJL`aFRAR$~Sz0Iy~y$ooI=U0gtalazmdFxew0nj&U!o5;OsUwD}#SW1{)&sOR zf#EAIo;Y|TL5Z$Zn&PN$p-hjT346dh>mRBAM|;;97S*+`feaBQ3WE+9Y=9!tL@-8C z83jZ^RLZ~%MT$lc2N4x1p{b}8OQguah(j-90X0%YFlaCoflvel1w;iyQHp{fHRoMu zo+szI=jVOS{c-b8oISJmUVHCvul0U!iCn?M(&A;Ocj`f-z3W~cRl&7T0m5iuz!wVY z#x`}|g>N~J)yN%#3$!r8@+i8u>;r`?RQRp#o^$?xTqHnn!z=55STw^(FYJg=#sF4{ z4VKK!J|pG60X3(m{Fs&hS!m!FH35eEhEOs#0iY0w(?w;a{-NIB;r@qu^WUT1&g4rQ?L95bR#`@ck8VK_BT)N(`p8+7F(Y8{Lmv%utV<|;I)hQkM zXyZYp*^jQAmgm(z^9_)gL0HrA*za&DxjfU?by|J-LYJ@Jw;?}NO*)#EBtnAL2W8u7 zmPBX^=Djo{C@wTvJsH`wBZ(&mCVcnpY&-RvnZKDbJ*0DJ>~Pz_94YLM7AA?!Hr-pw z6iYh=+=iiVpuuT>mZEqkK~wtCNfT_s0FM1mxO}b_Fr{pfK=z!y6<7BOoJgN|( zLC)fU>kiY^i0vr6LP(~Td?815X~T*+3blbEMz2g|^G<|$jf$5|NEq$C zKV&!zQ!!v&uKUB(8Y$1BZ zV+dVI=T}cj5eDAb?_N=AbtoIq{93K?xsMQZ6&KZfo`4}1jax-sm`OEFX7Y;D>Yc?5 z2;59tyGt+05+iag?TObCChukd#>ik7K8e%r(@Ub@6Y&VRtI5?(Z zH|P#vi$pzkatj`SooXKI!8{XfJ+{3Ui|8+$K!%7#=5tx`>_=u2I)l2;umpbtUOX3Z zRaQhjGGovSZOzYIVi;Twu7En6n<625cuc^ZTk#uxZq8)LL8G!g*(~DwCOeCZj1g;D z%{?b!&^yZmuv?|=!K~#Zk96vp$;LiKuor$>dzN)zj!LG8r8}x%4knhevk9bNmp%x- zO^%14IOEhP*z1+R=2S_@s5Iy+0p^5Dv*UhpvflJy=;m^8Gt_1zC7{K4V3|#bJDFzv zxlIlqTH2@C6386$1(KGjy9vP#2rAyQ9yY>+{U1v#M(Pwiay zVC*Ln80vlQQ`L7h(dn@cwj)Rz^LL%->3H8!Rtb8Gk1Ti-QA=m{Q_mDQ8NOX3gs^3{>J);2$Gg&rYvduhmZa$E_N=S#~3iFPD#FfjvKLhmLuU;ERPd96l@4dHyo0%dA zy{XlZ*fX4cQ_FyA@oC2vC_sbUaTbL?MJ&`!`anjM2!-q*V`n#8ibyhs%?dMa!$3?X znmtVNz6*u73WCmuvghA|=F0rqyY9#}TU8p~dTsC{bc*oXbsfLXl8Z)gtHn&(Ed*)j z>Fnc19)@^xh~nKsSG=rI8jj(r9StPdWE#xXyjR?=XeVr#xHBYk5s%Z?yL;+)EiLH) zo*4FWY4tQ0sHOn3Y?h`rL?HT3kgx(w;SkLlF5<$YLTPd z;&P$%9ECK^^s|B%T38s?d{PJEf^^qo*gOuTciE+BGVWyvXx-u{DyC+FU1FXDGY$K) zq=q>UAr2D(iSB&yVaRnRLO)8aDw(D4qct3*F#%%AJO9X!dJPOO*s_$2_#k($U-Jx< zRYu20vJ-#5>t7&v-H5JKLYip{%?JmqIkr9{R7C8II~663_jR2kf-D zr>7cj4>mLI-zc?i?FTday7##g3Lt@F-?@xWJ2B9`Rv_fHZqFkRj!!vd|GqYRz*eJ( zZQ9YWF8$2j0|Lj74utiTMK6MGaU{+q!FStn==)j>-(Yg&-;SX1;-W`3?NKS4+d%|V z|0dq!1tfybD2925x(j27Zze(G`x0~K1fDs)~Bh3HQG-xe*M1(mN-f zy3CVlSN;Hl?sFzuH)aFksmn_(&S=a7xXQ+n`){;wxlHd3WEl}X-59XatmvM%LxiYT z0r$gqEoRl5CfsBhemVT3rLxFp)*M5$-r)gcNtO})>fsxgRb4l14Fu=1`Pj#)a?+Cl zX|CNkx#*xxOY?!$pE^-nE`=`fGXk4XV&hUvo$tK^%kGq>s+(+{@>IJ9OLhL6Z1gy6 z%`GoKolr06P8k_cy%Ou-$0;$CVOk$eYXt%S07ME-+B4Wvlzv}t{?U$3B8F>xfCfx8 z`$f*3kC38H8Bl!y>Z*AcJWKg8CvlSlkKU`+J?!NT|E9Z31tNaPk}n6F(Q%zUBXB%lL#b3jT;+CSnRPVmOt|EEK_(i9z1^uA% zr3~z0a|qkB&t<$ohr5Mq%dHw=UcEDU-f^-x;YQPabcfhctO!gS>}-Ja_qo^}ZETwC zd0u7w;JBoU=U^;1LOwzsPx`5-?N(7+lH!lGZ`0)UkPOQt~=Q1iH zixEc7bie<8TU~FOR_S!AbU7ko?kTFc?G9?_&8TQ2JlIELgdVFJzo9X{rYo!bnrE-4 z`_Wk+k$tH^h?`koyXM}Ss;k>}i9qtIDGBWk)Rxjz7Rx!civZrMT^p2J9=z5%_Q%fk zpz^9W880!~yPV^(3bULqF4?ohEiI@pI(1ibDUcbIJn`vt{MyFUK)9{jvGQbKBlk-^ z=M_?Hs}nLB@4}<|g^3(GLet(AY=NKGxb+)sr=}9@cQ~to!#V;}*t=Q>q)i3KSX3V% z_=O|4`%1r!*JqE_AHUlkXa}9^Le=1cjN5%TrYs9$NyG3kQ;)iM(s{Wee5tTBO>%m| z?WA4JpsS`6ZZmkke-h5+vW~LwRW?+wf;E>OmlFl^tvc6K_u5*Ht$mH)&!>yw9;xbN zd#FLhs;xEUimB%^V{}*cHMt6Io^9yqL{p&k=H`Zqc(2g9G_x^ApR3$9nB4el@|MsT^nJjet!3+TPy1DavFz-#@~xl#p=_Yg^<}p28x~hX z&X{j+akajR2(z<3_3ZN=wmJPggWd1xXS3C-MA|A7_xPGT_tkZ6H3iemCMj1@i;|ot zvzXSLlvYVRHvsvZbY`BLm||le-{(0TcF1$9QqO&5NUm*DP2jrU{c&?!Yw{Hv&(Xt% zp=_;>Lke3$EY&E5G3FDu3h&(Tk`HcNS{Vod4q#L8t6s_nRnfDOvQ**W{2hus4n^b*nH_a-^Rgq0bDa6p`hSym zVJSs`lgS6(Z+Tw}2?_1xooLFJ-*{b!x#Wq6$zH!DZ^UTwx+jH%MdXA9gB|L@_!kBL z6(MtkT0f+0NIt>epTx9-m^D`8&G*N!> zuug^4=bxo)5;1vIW<&k_v%2ytU(z$W%rAb~&7jl~>gHBsr$UrvqkUpv*W YdT6n_^F17$G1Nlax0)E-)ZcUJUm+LYc>n+a literal 0 HcmV?d00001 diff --git a/Interpreter/compile/pgen2.png b/Interpreter/compile/pgen2.png new file mode 100644 index 0000000000000000000000000000000000000000..670078f70875243f92eea3c4b902373db93fbfdd GIT binary patch literal 35525 zcmeFZXH=70*Dj1~R8YD~v(P~y6zRPPN(U)I=mI8mkS<+Nk&aTOcMu_9=txs(0--nQ zQbP+My#>w+?q|Qxd&(H+&lzW&?|Xl2_aJw&?p5ZTYnJPpA&=D+NUqRb!NbENQBsuG z!o$Ol2mjd+UIL%I&%(39!(+fxl9$zaVX~G=6nhJ{Tje-J{F>l9+Xc<9FJ*Zj35}ze; zd0)ISX}On{O=;KFP3_69Hu||@|C5caiIoD&_1aj=TjVeC2pI4#5X#`;lPkV_nIJ=Z z{lcHW{ydO_)DZpaIrxN<@gCy5gVF!> zA_fZlU>Fn4J%a!E2oE`b=Uz@bvdTWA^p+-5)tqgS|-GucYONPl(i|q@|_V zr@DCT?Cy4P#wl;?`1&u*pm+B7rw2wxgl&oX)>f96Jr(ry^!#(R4i%Uv^8Z7Cd)e@B zbH(RsS$p(s`&q&L=>j&ayKC5er~QXT_vbQuT5OqnwsmP~XntC@hSO$tZ2F#YpeNYB z^VSt1Q=Dr~==sNswF)L~637mr;K`%@H+u?(Y^Wnxa^b@_2)@m=i~wvME?hp>l3% z+dHV=I4XW)W5eIlV$Z1>DuyO4)GZWlsUcIz?O#ko8($BaVRPzs+!vK4mzX;~Wvj2R zkA{){qp2^ULXhZ+Sl@?Qe39m%3N~@_v9aZ_O-1i^UA<(_cvfTM8OGSy zm^vx(^!QU^#I}Tnevb)yLKH5fl>Wx-MRf7B>wucx>iW7=CrW5rVk6f8u@@%lvY1le zN@q)uhEARHoMP*)IhO3H&DJXL3EH6i$8OQ6zYNbsr_Os$AtRoqxM0m_OtgETNu%5q z23>~@JSLJywJz(0W;CZ2n(D6@s)x7hRypH35}8AC(VlvPHWl7#i4d-{Eg)@d&o(@M>`uuaHgf4Y6GNX$_@AEiMBNm2_=~@G2*rXp7D31FOKe2J*<>3E zjkrzcQ<4{sPeZmBy9_wyCIf;FT_B8BD7IqxQ?oUf6l>Aw* zD``N4@YI3ZTwB!i_w71iar7y6t*qyCxle)KH`j%*cc7X;%mm^)Ej=RYVa&|ivu#qK z!*N+Sc;S#FeN`p*p@>3|*$cUBsCv4TFUA1jo}XAROx%>%#2=rAR@$LTwpczsr2vBA z5_B0t80e8aN^3^rP}~#9ATop!B5vBu-gW6**jnzc5q@n}UDe!=N+W6793V-Tc7%%$ zQJ=zt4*8xPTlB~XGE@bP_OJ{3;iwMvpi~(7iNe!U4v!c2-wcf&RXBlkXsJg z({aSnEh5Y#DbYgI2m)5IP+@=pBKm1&Wr;BGsb0@^T zHL~O<9jM}44H-h~yD1}d7n+@~n~Rp48;;iRi=&5Wx%0snj2gK-)AHA5vYyN!f??zY zlpS&3c~9(KLGJ(+*-_5j%49^I=o{0$ZT@{IV!rG-)d!YYkZJbYHb{Q!Isfk#fj-crpl;y!!evaQg;4HhUT(Q`bc7$)|L;c@>0A$lUYYb_nVhu|f4Bn|v!E=k>G zS67<;*I$1fdw6(k2=>!mnBMm&j9RijmYUw*Cv195M9!*A>e79C%`|3{b z1jZtvLigea^3)8GwYA3#{Ni3yb)Kt{^wNIEGv)ldF5SKYLE2&qt> z*vHzYxC{WB<$ScWTzL1DHN5Su*$Y^h`5_k|(p|qWCmAh)f*_5Fgs&V7>BG#PRNeqgjp66<60HPWRrbqlebC@J!wnQ*Ow@`$`t za9(OcV^-Nj*Vt5h`F9XlEY|eP@p>(qqe-NnE}*sfM=vSlvMxtls&a0B{@a}0t5>NY z)wUDWPH&S&KT_PX|2rp#&$>H`$8h8-K;jb9JTQ{V0pR~F3`M%5u?y_G6m)Zl<3>I%; zx0S)Ta(Xl>k^d~=SxxN4bKmoj33cquLDba=7Tuys?ggbXyPs{Qd~15PLi1Ah^No1d$4b z?h09;jEj(ljZsQAU%KDX@>O_O((cxCq|qb&u!z05&IMp}SAC~V3mfiQZ_T%J7S(Na zINJE6x|}j4nuJkw?m)G#{kanv^a%3Qk}KhQdLxr?cO#l0uZyMDcTTrDc}gzkV!i&F z+$1Hbf1d5QWN)8jLsg#z<)JFjE%b=*gdy&Z%=R9+yO$((0N+F-#bqC;hNDIzA8Y}b z!b4K7(A!BC1=xJnm)=hbhtNQ}9e{5z{rTrkes@hH_{gg8Yi^vNkMH-L<$;6&zX5QQ zj+F2ubWXc=tbrtil6oGizwf$ z$j@g7UK@29dYQ{>TM+HMK2c-pxB2a|=?}TO)-Msk3s8lZM~r{MBvA%lSVyc=VNq#^ z7*FHL)|?aifV0-KM{-}{{#Z?jEcp^E!`Kv$*AwTtOx4BakZWxb0&OlVDJq<{IorFl z?@muoN1cw7UXkbZ%Qy4gKYM&n)_{`O7{2ekiV4S zAQjb_KCKuw;8Yokn9#aqkb9CH*Zf19rGV=N!?R?C~oPKvDRR2PBfv{XL zgF9a0*npsYA%sG4RWt<3M#Xo9P6glE*Q~WPYLMgt;rv^$f$2~;Wt9Ohb*A`KXN4Pe z>EQ8|$oK2Ac=$vVGLUQdO85Wk=l`{J{||}H5&=@;c&*GH7@cy#VJI`B&Gi9wd}~Q| zica@O?@P6r-wjio4fYuCSY3Qat3 z`WSI`Jbk8GdU(3uI87>b@T;;)+~FcR-M;}*JsY|gqT$1|&Wh~T_KzdNwhA{;too>j zYA_(sEatS*Y$=ImI2Gj!f0+k#kd~=86sn#g(ziG5fA+B6^LGoieS)z&lC!v)=~`2F zx9IVbg0zkF>F+4}p(lE3u}6QANjx>huIOPt6&5R(8(ra7!KuD;)r~+I1Je%=zGhtm zR%o1v-K0Eh?Lk;)TS!0suHGCpLXu#!hCKbEh{eO2F_w0YEE#(=o(gETEXp9 znG44wSK>FBxdknLK$CRffOU?Ara8*{LsmG+-UauV4=vQT`JqXGbH#Ls9T!3719HH?}oQ#5O9Lm!(PjkdM;(Y9a||ZxkEHmzdvQ$M(|n-(fj$+qmf3F@(jgjw{iQbhx!k0AC<8vY865Xn$_GUeYU$a-FGznkF*D;jxtpz zQ$$^uYHmthZzw+xOplD}7?7sUHo6K~~KR8qd}}8Vz?2U3w&`iB?||U1M_Z z*itq+J7|-BWKLT}uV>;3TXTuK?YB2-$sD57s`>lcNSE-mL`R1*BuZp9_->eJf2LjD zY{?oT5(Jrw%5KsS5Z56$4$ISGf?;d#o}0%LY4fNr|z% zi`b@Njp=~c1VjxjL# z=vngVWwT~!-eHXRdbLHl)yLnxk1JRnk5(KpGR9;m5xZIa+y^=-*sh1|-8?Zp-J-7j z6?iqPQouoz<=en!4U0!LlpE3bNr85RzgxsYQxaq;_jXJCecwZEmTH_B-{p}hR>s|X z(zu(>SKskjXn>4FuMJa{NA|v^)t!^yr$)c9|Jzd-4n#Ew@&wMC!ns;&i z0+*xp@+A$N6|B6Tw`WpR?ne_8=J&O{s?sMR4O|7&u~w4cDxeC`ZFWAGO>GsjB{bs8 zUCRh+VNHmZCgE3s#ND&I{)Ij5#dnkaFC!26w!dHHk$1Vt8ui7*yZ|+02rSvdCyLF( zhK`cQ9eNFvahx@F5>kil8jtXQiZqtcGHMIyG|keL7SneyeWJHTR1DiTJ6mIi+@?=dn!CukBrJf1XY2SD=onlt5_!Ju z+^xi(dcDhR)S(tbC8!^hBv>_jh)$1cI8n~EwD&JV{z@LEhC_}XrGo3>l(1X{!s^!X z)aHH^UvdYYGAXMLNC;AWTAE%hM6nuC-tP(-tW$xl#m)?DZi18>4OhSBBMldZw_yt) zALlrI*zJ+EW;NFr4z&?y>=M@Tj^lb#>D-9jD+AXPuh*2)>)rh?5OClI#5t(qpaa&r zt-!*P1~G%8G8SZP&b`7yOLU#*_S(nn$WSWg3T=pB9e06Fk?YAE{aNthR~y2HG~_Mr z_@f0G34vVM`>}Yd3HaFlOwS5~x?Svse`5j9Bd`$@A-P&TU+xL$$riX^*%1xglfZ@f@oiTR?xJ09v#eB>zmaM`~MtGIe~z^+z=9-n+k z6(2*XBKcRG+Ti0-ssbx3!z?C>TS^eYDh;{84&9X+M%p2M9lpHq^q>&I97up>V#mDF zL9E$L?sz(;k(KS4rn#=*+@Lpt>{`(|^T9!1;%>yL4wJ!XEKwgQh#V!o#kBl|N1w%5 zrE7#F7|9g=j2qIX($30rC+UGILo1#tgu!AzzMlxu5O2}yu?{I?F~B~l)FaK7ieQNk zeNV$#cnEZnCrPhRG|?ve#Yc&j&kZBi6OK@vD1_wl#U&Mex@l^fca%B(d}rf`q)3WL zlzXWtEx&!Z4!=OJPhQgN~40xx$T|SC5)5ruqQeu>7ob=Qcihu*TDJU~(?O z7FgJw6pG4u6?%H#@1+hBe&9=>yI|CxX)C?;K1#j`)kWOMT_DjO(=6hk^(^O9d2q*Q zu;V$`yS~glYwo$tA{z^FovPP5C;bvS`9g6cC&RGY%4~w&zC(uw1i4Z?)<1moVR^eL zs5mHxVZIJlaoJQYe5k89&XO6^nES+S%tWR!(b^=mS%`j@+1tc=Nx#w9 zY76OiwZGXwO=p<8G|}b8Jbdq_w(qXo_Pw3)v1FiSOX=lW8rNcXZyL;HPCsaoYy9>J z)3nd4ov32_>X}jFLI}b^7rU5;VH3EXH4Tx*E^8?nc5aU`=q3V0`yD1czv;*l))@&MAGodW1`$eRU2`Z$QEE?aqF=u ze&dkQ8hfZH+^u-*I8=iDPTfGR-`M}-h)coRCAFmMiJ*tPA-N(`oLBr0C6NkDAltDG zt1&-%xaxjz?eqsW?$yVJ<$|vlGnRTE2ldY?zal#$$wQtoW6bjWAoe}{_G+1@Hh!U{ zS#(VAQfycMipvi#s0?}mV)Sf#$ZSgC3{BUhW>I{zx6*NT#NK6D;0X3rMy-O|vYY9# z01{=hBal*JA5pGsqOZdGV28fV_FprfdQ%DMZO{-CX#4Dx9AIBL$`*aMeR>mH75iw! z=hEbhu_hI7YirWCIhttO1|{FfJieFF;xKl%6JWb5!gv})l3t9XYP!~ibsI@yX$NnG zdr8O14$5O%;~bN`Gci|I+CMa$bjYZ@K~6c6RV?90c_ z=bGoYMAv2Ue!}{$!CUzQ;|(vpohuxOi2=rtK?#c6Nv5B+1$FNGkd?tIWI1OAh)tv` z$7~9%8WBggNY#jXKZzqly^9I__3ISI=n-)|mSDGa$9_}*yNU)$1abCZ&t>aBy1BRB zZytA~yxjWK=3Zlv-m3X%b&{HS-i$GfJ?{NLX6oS+6Y-YPQEclVH%vkBHxz3nA#hS6 zS@>uy(bVO^?icoug-uCR{7_JJ>CbTJig9`8tYrVG6~ae!;OKjK|D$4%MG|`}!yb~W z3*)@dSH0|smKT$jR9h8I+r=dQg}4p$5wuvh9*?37@Hdt$7{AIsEq<829=pAQ!boM^@L+41GC|}6mj2xKf^bE#Moof zN?eTVXi&2U%JDnvV#(N}62B$42<0NHh6caiBjb+cwV@qD0!2sN^c_&;m7N-Q*1kux zUaa#V8mNWh?QqE3E1n`8eL0WzSBq=8zoN3$eL437$B2Qk3-y7T3rlBWvA2h) zJURx88&8k=@HMff+6_AHSnN#FQ683G(4gSG0;?X2K3!#rBTYD5FuGL9by zcJR4m?9o%hU3;G8-iBcbM@7}ECYsJlP9td}PC`Z_yC9r*5pLs?me#ehPQnFMIiu_= zfuLxkl5qn$=*q1$muQ(r8=~zS1tWKQ$uG{0hAVEwo$Urgz< zz;||~p{o#q)Ri-A;~6zV<6W$^v?5VbB#1G&qSe&O`n^9@sDu{xrFHMheb0~hv8!%- zdn{F+&wE(k@}c2@5=X^ZY2}3pSb}ku=Lb+5>_Z#SXYjF>L_exOk@xKt5XQVQV_=#o6dacW^&i%O5EbTGSTh!wy!qK(k4RqLw%V^O-j0Xb zVBZM68S!Nh8Vh~w8|eaW6M4v-{3{nekSyR)U6k#WA(UabMqqG5r9M@)KO>vl-OD$V z&)q9KiSOkuHQdT6KhJX+{nQ8Vz2ll@ro)pe&6CD8%-+RflDkwD{o8NW{Zfo zHhn+7o&K>K4)eWGVv?1$_L;BFDe^odNwIpazIYyzND$J2)ac zcv*-oI#bgApEDxn1*NR_J1B?Alp^_}j)X}nY^3K}A2J;o(Q0A@vg9!DtXAypcIBd3 zX9_#>O)?=w!*}|3<#mEpA3=J=g5sySu^%NN2W-6yYGB5Q>uJzaJGzj z-Vtnbwg_r9EmY*z2gcrpBQ2%iU*Q2uOeVrzX_oZ^-S^=vBc$0vR-uqEzRdK~o&4;CU`5gj?NHMCNyq80+^GPo}{z81q1kTN9s&T{slFm5#uD*hLT-|vG1%kyG*<>H(*x; z+q9bU9eq~~vmxnJO;+kzd|{L-^`mNM#hJR8{UW>E;yxpFm|#Uk>Y^{l!0-zJX8n%v z6`!uS!QRg~T5e0z0%SUl12M0yk)fm{?^VKw8a=lcA8spDd{rKVD+4suB~ULYmCrCXFOX8sV+k@qa4ipvkF1o4Ib83=1tFBw?csdSY)k6h1xhsW z*=YwPtU!M26S1W)r$qfbdCEe&ajO?qg4$_>K@_niYtK>1DfPH$G%q87lPl^eiPhh3sY;}MTSSNUae_J>VOg&CJ{xn@-bjl6+}xHN))8wM$JR&*ECDHhH3 z%KcpWvSSdJC<^Pk(539%_UZPyejr16ciEJ2BV@@blz1v{-@hTCbpCYo*;5h8_5n`0ibEYN#UCxvt-d;iVq8iX_kV_DvrBUx;!zG?Z*CY|(<|%!IheR33 zTWJ{dC;?C(f*d!g>-bcupzJiJj)$}pH|Ma5mcczOZU6e*OX%F%!8fdL0KY>J6pDtK z9(ecT>M#?wZy0b+F8Svr0^sDjgJ9b@x{9 z1X~WF_%)i4YtVAU1W%F=g*bL75d13&;vpCzb^;jr{Qnr zdnKExbUy4mG4Qe5JeOWDv@)Fc5TCqrK2eM5ye2vy1rD?E17kdGIIVf&w~Stv^MMq> zIVOs2#dFF-3?F^)xeyH7QoToUUJl(-05WTeBJU(_B}Ss2KDPRUqsjr|s(RbA^9EBq z7qe;uUNfI(UhJQG=^;3`MIJav=5|q@Nh#55sUvz^#S& ziW<-^u<3)KC|khnSo5H{6!yBE8enaEVkyrns|@})d)R_o0&Xpr-mn1)1M0j2J|28u zWyEMc%J+T#sthE?QaR+$E=q%aKQ+fK0k@X_I*$L7$C3L>?bEc&#SQrS7rg?V1KQNu zkA1&bz-cP=tL8)eta6)b3Jl0Q^PW37~Sa5h^1>klZL|7kExXijThmoa`cl-oQJ@uD{g31mC+_Ho~^YO8bk{Md`z z=A)0QuS+rkg);S+kFIq}2sBR?=%NgmhFmO_BlEwl>opY4`860;IV)@18i{8v>b|C6 z$Zsxc;A~$lH&^^B<^zdO2k?pJqz?^&lu)(|fJiYYY~&=}+h^ znc}S<=S50@Y{ND=YtVOode&yXZAK2GzbHEG-dsnbbS131egd^@i^N*lvRVAU^Nw8I zW`Mo2haz<8@0XpTJYp}wgTRg?K9(nug_PYOGvIdz5`(mm9!qNfb3Qi_Q1vtk&o@JQ zrr3+dk$o*tpakql%-1m=G4oOQ*X!vw!JiHfDn4f7 z4CHVq4&kMS&=ofa*ypn=fxmQnw!5Eq`%a=vEa3@K*qwoVRFdH8f^&^ep3Ax;eD5NE z@~r378bHCkIyySyc#vi5J3Wo4s`7|Dof;S@Lu?#-i=erGOKjZg*%or@p4{-9x(z1A zPur{*lf(cZ$`?4_Xj61vXV8Ag4UA|F;edIBJh(v0s9Lrz@E=>z1o3w)Y;AYf7@~X9 z8>c}5wJ~txSTAX`9gOmcfzXdx^cD@xi*%N9BW_1@O05WS(=Mtg&(_p)Aua;mopNZ( z2;eHU#|{1&Xis{h&riQ8Pfkvfd8Snjfpk55(*F$W!XNyeO;8s2JNUX+@|oiA$>fC^ z0ZDYBU~A@EHB;7t0BGz5v{L!qY8XHUp-fq5uk<`cX!ZQf}izb#{mS(;S!9-L6P&UGt zEN3;`Cb6pi&$$lFJouzjoyz8plvU$lwg?WdyA_e(=Ii zB)xqXNV2t8{Qe?<(_r5Q-NM~rVR=UjkGo=*absR2`d^I67;kSU^$`6IH)h8Fd`z+C z(un6*jaT z8*3-)d*W1P>>+ry$*#hd2qBA;Y`VlhTT7$|q=Hx=WR|>><*vI4?e1}_sAXE!f!?_2 z{ztT@FxS0gQ5&Sh8gJQ6M}gI4T7uI-Z8#{H?X_zprMhal2X1ybCaI-ZKIa9>?8*0?B z>GWEfH)`0#d##CqN;^Mk(m8CD&NkfF+q@hP8Ga!|TPzT4W+N{%@DoQj8M}yu-m@)) z%SeXRytZ4+nwkK`Y9YKBmb&sMvQ z`YxTyvGL~rLDbLv+$+5~tq{1yrLy1CfbilXd0Po$iQ*miaVhgZX|ij%arupA(}JT{ z%;=C_@@>!gU(ah6#T!sT;}Lw@tD_RdU6ffhN_$# zUQ4n?35_|lOsdE=_yA%%iSpEjQuPSu%f{T^JYYbep~`PM1zX4|ePM*Qbk* z&1=SNUX2Ld>2O{VOVu`g42rq}Q{EeemddAWsx+}*wXC1-9-yU!4{G>6P(C5bJKE|r zB^@@Fjzykq_+Kt7rBrDzlYi3Y(O@CuvY7Ev$cZ6d?d$B|0}wN8Q=8zzqU;uOn)hE7 zT_6e{3=g%5U=;>KHoqS#sF>d~iw$1x{j@n!zdjU5%`G6l5GzX&6MHZ01v>Rr(?BPe z@CS_duK>NCgl21z^Gxa zx@luIxuy!}DOI}8PJTz3VymW4TGza%`DGOZ!DOTo_f2i$NZRF@Bau7FphXOX7A0 zw;E?8S_t+wtYnF2?m`w-Z8l%K%!(oNr@2KnvbpKCnuuNZcx7IY>CkR~eY~fo#dg7W zZ}eMHeo(z2+NtgKW&W%$>Tf&xc`FySI4lZErS_05qgF2rnpOd9ry8nkvhihg$baDR z$$$nKoF;BYr*iA6Db0z|>|Had)uL~nG12qWr+Y)TyN=O|Zo{&WLx%?pX5dEpE~9;y z6sdZF?}-cp34Rk_JU?JVgj7<0(k&#psTMgAT^X|Q?J^nZtMuoAqhE0%a0c?{Kgv@Im+%X8+tChZ`taV>zX><`=+}199eg~{%tK= z_meHuh*lZKQgLMTc3$ghu&d%TK@?)fJ6IH;$oqi9(#p~rX_#xM`rjC3h1sFA$7Qs zgF@>yihW>JTLxi0zM5bnF4Z9=Ut-OGOG)&Z6SAmhWH<9Ud9_mqp9k*SN;o4mfs5OL zkz#NHbDdQ*|tT+Wbxg%+D!@>jucsyp9UHDvw(z@88z=zZUxc!4q{us@6TdVizKlt2JZk zszOjBvVjw{hwtbO{#}6Cw16@I>UR76a{-q7Bfu93AptVR?BL{;ON8gj9sakRg8&O~z-bZGjEr~3y1{2SmZ(dEys8l&bjHgaiNy!hri_)40P8S7Z)I zmOc$9itU8uv*~c$@T-h)f_#)ZBLFO(XZ+(`+jSb=X?mab?{;lagPlAMrf>Lr>0-PV zq5wGS_T|f$N z{>EbpAYjSzM_XY-fNG~}|E}GhuE(Q05$#!UIvWJ#<}@EYzJ)}Ys9FJpJFhbS!*1x_ z&W;`C_|yY1q_ckaFlSx~%&>u%b*(kZr8@#(6vwWfauB?6oV>HQcgh|S6h0W)>ILYmv4Gn45#Y4QJ3(Ns<~s!#uN^v% z-txul%F%YrTsBW^os69p1M1Tn883&2-$Xe75XXWw>#lhv*|VMMBD}l5pKe4?$rY!} ze%Ns4$DjNZ-nc8VaSTfSXAVL*(rmtZ>X(x%oJE^H2;JjqwCC{~vueXvuIqp*DAZk( z9Sb0ffK_#9++C9%WLEtRpu4{qczEpV!z;nr@c{m;DIo5l*YwNa^$;WgEM=lSy}i?_ z9s<_>c}DMq_Yb z$dWH;OMoiaodAhoSbN>IC`>JELkT1&ne3Zcz_qnjqWDvYVSJw`(`nz51Nf{QxYq z4W%0s4*0xbDK2GzJn96fvz!_qcxSGlCl2MBYX1{kotjN8Y0wf*PuTRl^>NVJ1ZX7C z4!C=I;Bd%3j3xl7Z2A7?YA48nC5WS?D1&Bps>HwYC9%S`Wy<1%TWtiLyHa z%ui{4US3`YK!TU%FEh3Fvn40+-;!`#1aH<@T3In@*~f0Pq?ysAWdh2p0P$H^Yi&bg zW1};Uba#g!;OJNrX?495;Vo_S@Ig-`^JG*I3&fdwNgW?In7`=6zoX zIqN5Ou#EGCmXddB%G?Z70m;-1bsQwvkZ@iWBtNSsw=?LVA-9Hbeh8 z8^le|H$b-10^Sp3_7MdDGfFXRk~5xD`k)oUjZN(TGW!J+?OwC2! z_kaXFvD(BdA!DvzIMe`=$o{28$uPwwsTI$uIWawFG)TQ>+AY-Jh}BMjtZ=jBsH?~u z@bl+@Z9iQ|(SGEd3rH$W2&V3aJnYZB$;dK3{ z1+R=sRJ&hhdem@+0n@8mHRAXFoT)~+A19~=2>SjY8=Aa2`g0G2k-CMG6O)r%O7(`n z9Yp+xz_+8iKHO&xHLHyZvdg2|2#)cafw~Sp!s?*dxU{<=OklXvkKd;wPNMmtjyk1>w!G$7YB~n6rD3JkhgDv2;0Vqx^?@O=@w!{ zEn34rbH}T6D3XwbNyFgYfL$NaK^*w&Imw(*aIUVoX=YEX=S^w9la(aqPbh29u|Wt} zf=2!_Osb2ab(;Cy^9?|EI{5ETJ@x<>&98URQwVWW)zE4pAn+XFm}jS)v?D3~3-N~P+cJ8fT0n!I*ack` zhCo+^$LPW$99dZnXw`n3Ra>y!j4V0owt3(9a}Cv9U(<2OT0XKyK?LP!i)3WAWYK1}; zis5_U?py?YAi7=)20@E4DYd{b`P&nXu_fD;t^?}Wz6Wgl5oKrQ8!2Bo&N4yBG_L7O zw~L!&oH2e*mtV*pRT;RE1_Z-}86!P(3Myw0|69KvVj z4K=9`KuV*@?6KPwz)9#f(?{JuJSFRdt2?AL@UoF)^{axs6aVcybO013Ajd#vUU29K zj0<(rXm@vwzqJUsI^`+?+{p>(h579<+rcglVAYXAWh�@p6HJouVEOXo94}nd9YX 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 9364497..a776061 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,6 @@ Trying to illustrate every detail of cpython implementation # based on version 3.8.0a0 cd cpython git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 - ``` The following contents are suitable for those who have python programming experience and interested in internal of python interpreter, for those who needs beginner or advanced material please refer to [awesome-python-books](https://github.com/Junnplus/awesome-python-books) From ce16197e347e70024a9714b36c616f3de85cf540 Mon Sep 17 00:00:00 2001 From: zpoint Date: Sat, 18 Jul 2020 20:53:39 +0800 Subject: [PATCH 17/90] compile pgmain --- Interpreter/compile/compile.md | 68 +++++++++++++++++++-- Interpreter/compile/compile_3.10.md | 43 +++++++++++++ Interpreter/compile/gen/ExampleGrammar | 3 + Interpreter/compile/gen/example_grammar.sh | 10 +++ Interpreter/compile/gen/examplegrammar.c | 65 ++++++++++++++++++++ Interpreter/compile/pgmain.png | Bin 0 -> 26438 bytes 6 files changed, 183 insertions(+), 6 deletions(-) create mode 100644 Interpreter/compile/compile_3.10.md create mode 100644 Interpreter/compile/gen/ExampleGrammar create mode 100644 Interpreter/compile/gen/example_grammar.sh create mode 100644 Interpreter/compile/gen/examplegrammar.c create mode 100644 Interpreter/compile/pgmain.png diff --git a/Interpreter/compile/compile.md b/Interpreter/compile/compile.md index cfea3ad..7b3eecd 100644 --- a/Interpreter/compile/compile.md +++ b/Interpreter/compile/compile.md @@ -5,12 +5,6 @@ * [related file](#related-file) * [tokenizer](#tokenizer) -The following contents are based on version 3.10.0 alpha 0 - -```bash -git reset --hard 38d3864efe914fda64553e2ec75c9ec15574483f -``` - # related file * Python/pythonrun.c @@ -52,6 +46,65 @@ The built-in `Parser/metagrammar.c` and `Include/metagrammar.h` will be used as ![pgen2](./pgen2.png) +The `Parser/metagrammar.c` and `Include/metagrammar.h` is also generated by the same program, with grammar + +>```bash +>MSTART: (NEWLINE | RULE)* ENDMARKER +>RULE: NAME ':' RHS NEWLINE +>RHS: ALT ('|' ALT)* +>ALT: ITEM+ +>ITEM: '[' RHS ']' | ATOM ['*' | '+'] +>ATOM: NAME | STRING | '(' RHS ')' +>``` + +It's like a compiler which can compile itself, For more detail please refer to [python compiler from grammar to dfa](https://aoik.me/blog/posts/python-compiler-from-grammar-to-dfa) + +Let's focus how `pgen` work with a simple example + +```bash +% cat Grammar/ExampleGrammar +START: (NEWLINE | RULE)* ENDMARKER +RULE: NUMBER (ADD NUMBER)* +ADD: '+' | '-' +``` + +We can use the default `pgen` to generate code for our `ExampleGrammar` + +```bash +make regen-grammar +Parser/pgen ./Grammar/ExampleGrammar \ + ./Include/examplegrammar.h \ + ./Parser/examplegrammar.c +``` + +With a little manual edition to make the following compile command work, the final [examplegrammar.c](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/examplegrammar.c) + +And compile the edited generated grammar code and compile a new `pgen2` program [example_grammar.sh](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/example_grammar.sh) + +```bash +sh example_grammar.sh +``` + +After get `Parser/pgen2`, we can verify that if our grammar works correctly + +```bash +% cat my_file.txt +1 + 3 + 4 +2 - 5 +# run the following command will fail, our purpose is to see the dfa state +# if you set the Parser/parser.c's marco to '#define D(x) x' and rerun the above compile command +# int Py_DebugFlag = 1; +# you can see the output of DFA state is in the ACCEPT state +# means our grammar works correctly +Parser/pgen2 ./my_file.txt \ + ./Include/my_file.h \ + ./Parser/my_file.c +``` + +The call stack of `Parser/pgenmain.c` + +![pgmain](./pgmain.png) + # tokenizer @@ -73,3 +126,6 @@ Token parser will scan the input and prase your input string according to the fu * [What's the Difference Between BNF, EBNF, ABNF?](http://xahlee.info/parser/bnf_ebnf_abnf.html#:~:text=BNF syntax can only represent,excluding alternatives%2C comments%2C etc.) +* [A Meta-Grammar for PEG Parsers](https://medium.com/@gvanrossum_83706/a-meta-grammar-for-peg-parsers-3d3d502ea332) +* [Python's compiler - from grammar to dfa](https://aoik.me/blog/posts/python-compiler-from-grammar-to-dfa) + diff --git a/Interpreter/compile/compile_3.10.md b/Interpreter/compile/compile_3.10.md new file mode 100644 index 0000000..e1e7b76 --- /dev/null +++ b/Interpreter/compile/compile_3.10.md @@ -0,0 +1,43 @@ +# compile + +# contents + +* [related file](#related-file) +* [tokenizer](#tokenizer) + +The following contents are based on version 3.10.0 alpha 0 + +```bash +git reset --hard 38d3864efe914fda64553e2ec75c9ec15574483f +``` + +# related file + +* Python/pythonrun.c +* Parser/tokenizer.c +* Parser/tokenizer.h +* Parser/parsetok.c + +```bash +% make regen-pegen +PYTHONPATH=./Tools/peg_generator python3 -m pegen -q c \ + ./Grammar/python.gram \ + ./Grammar/Tokens \ + -o ./Parser/parser.new.c +python3 ./Tools/scripts/update_file.py ./Parser/parser.c ./Parser/parser.new.c +% make regen-keyword +\# Regenerate Lib/keyword.py from Grammar/python.gram and Grammar/Tokens +# using Tools/peg_generator/pegen +PYTHONPATH=./Tools/peg_generator python3 -m pegen.keywordgen \ + ./Grammar/python.gram \ + ./Grammar/Tokens \ + ./Lib/keyword.py.new +python3 ./Tools/scripts/update_file.py ./Lib/keyword.py ./Lib/keyword.py.new +``` + + + +# read more + +* [parsing expression grammar](https://en.wikipedia.org/wiki/Parsing_expression_grammar) + diff --git a/Interpreter/compile/gen/ExampleGrammar b/Interpreter/compile/gen/ExampleGrammar new file mode 100644 index 0000000..1263e06 --- /dev/null +++ b/Interpreter/compile/gen/ExampleGrammar @@ -0,0 +1,3 @@ +START: NUMBER (ADD NUMBER)* ENDMARKER +ADD: '+' | '-' + diff --git a/Interpreter/compile/gen/example_grammar.sh b/Interpreter/compile/gen/example_grammar.sh new file mode 100644 index 0000000..a12ccfd --- /dev/null +++ b/Interpreter/compile/gen/example_grammar.sh @@ -0,0 +1,10 @@ +gcc -c -Wno-unused-result -Wsign-compare -g -O0 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/opt/llvm/include -DPy_BUILD_CORE -o Parser/examplegrammar.o Parser/examplegrammar.c + +gcc -c -Wno-unused-result -Wsign-compare -g -O0 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/opt/llvm/include -DPy_BUILD_CORE -o Parser/parsetok_pgen.o Parser/parsetok_pgen.c + +gcc -c -Wno-unused-result -Wsign-compare -g -O0 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/opt/llvm/include -DPy_BUILD_CORE -o Parser/parser.o Parser/parser.c + +gcc -c -Wno-unused-result -Wsign-compare -g -O0 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/opt/llvm/include -DPy_BUILD_CORE -o Parser/token.o Parser/token.c + +gcc -c -Wno-unused-result -Wsign-compare -g -O0 -Wall -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Wstrict-prototypes -Werror=implicit-function-declaration -I./Include/internal -I. -I./Include -I/usr/local/opt/llvm/include -DPy_BUILD_CORE -o Parser/pgenmain.o Parser/pgenmain.c +gcc -g -O0 -Wall -L/usr/local/opt/llvm/lib Parser/acceler.o Parser/grammar1.o Parser/listnode.o Parser/node.o Parser/parser.o Parser/bitset.o Parser/examplegrammar.o Parser/firstsets.o Parser/grammar.o Parser/token.o Parser/pgen.o Objects/obmalloc.o Python/dynamic_annotations.o Python/mysnprintf.o Python/pyctype.o Parser/tokenizer_pgen.o Parser/printgrammar.o Parser/parsetok_pgen.o Parser/pgenmain.o -ldl -framework CoreFoundation -o Parser/pgen2 diff --git a/Interpreter/compile/gen/examplegrammar.c b/Interpreter/compile/gen/examplegrammar.c new file mode 100644 index 0000000..70a31a5 --- /dev/null +++ b/Interpreter/compile/gen/examplegrammar.c @@ -0,0 +1,65 @@ +/* Generated by Parser/pgen */ + +#include "pgenheaders.h" +#include "grammar.h" + +static arc arcs_0_0[1] = { + {2, 1}, +}; +static arc arcs_0_1[2] = { + {3, 0}, + {4, 2}, +}; +static arc arcs_0_2[1] = { + {0, 2}, +}; +static state states_0[3] = { + {1, arcs_0_0}, + {2, arcs_0_1}, + {1, arcs_0_2}, +}; +static arc arcs_1_0[2] = { + {5, 1}, + {6, 1}, +}; +static arc arcs_1_1[1] = { + {0, 1}, +}; +static state states_1[2] = { + {2, arcs_1_0}, + {1, arcs_1_1}, +}; +static dfa dfas[2] = { + {256, "START", 0, 3, states_0, + "\004"}, + {257, "ADD", 0, 2, states_1, + "\140"}, +}; +static label labels[7] = { + {0, "EMPTY"}, + {256, 0}, + {2, 0}, + {257, 0}, + {0, 0}, + {14, 0}, + {15, 0}, +}; + +grammar _PyParser_Grammar = { + 2, + dfas, + {7, labels}, + 256 +}; + +grammar * +meta_grammar(void) +{ + return &_PyParser_Grammar; +} + +grammar * +Py_meta_grammar(void) +{ + return meta_grammar(); +} diff --git a/Interpreter/compile/pgmain.png b/Interpreter/compile/pgmain.png new file mode 100644 index 0000000000000000000000000000000000000000..e6a07e7d407898de0cb054b48bcdf97b5882492e GIT binary patch literal 26438 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 Date: Sun, 19 Jul 2020 23:36:49 +0800 Subject: [PATCH 18/90] compile pgmain 0.2 --- Interpreter/compile/compile.md | 16 ++++++++++++++-- Interpreter/compile/dfa_example_grammar.png | Bin 0 -> 25179 bytes Interpreter/compile/gen/BuiltInGrammar | 6 ++++++ 3 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 Interpreter/compile/dfa_example_grammar.png create mode 100644 Interpreter/compile/gen/BuiltInGrammar diff --git a/Interpreter/compile/compile.md b/Interpreter/compile/compile.md index 7b3eecd..addfd0e 100644 --- a/Interpreter/compile/compile.md +++ b/Interpreter/compile/compile.md @@ -77,9 +77,9 @@ Parser/pgen ./Grammar/ExampleGrammar \ ./Parser/examplegrammar.c ``` -With a little manual edition to make the following compile command work, the final [examplegrammar.c](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/examplegrammar.c) +With a little manual edition to make the following compile command work, the final [examplegrammar.c](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/gen/examplegrammar.c) -And compile the edited generated grammar code and compile a new `pgen2` program [example_grammar.sh](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/example_grammar.sh) +And compile the edited generated grammar code and compile a new `pgen2` program [example_grammar.sh](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/gen/example_grammar.sh) ```bash sh example_grammar.sh @@ -101,6 +101,18 @@ Parser/pgen2 ./my_file.txt \ ./Parser/my_file.c ``` +## the dfa of `ExampleGrammar` + +![dfa_example_grammar](./dfa_example_grammar.png) + +This is the dfa due to [examplegrammar.c](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/gen/examplegrammar.c) or [ExampleGrammar](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/gen/ExampleGrammar) + +## how to make dfa + +Let's make the above example dfa + +The first step is parse the Grammar file according to the [BuiltInGrammar](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/gen/BuiltInGrammar) and build a CST tree + The call stack of `Parser/pgenmain.c` ![pgmain](./pgmain.png) diff --git a/Interpreter/compile/dfa_example_grammar.png b/Interpreter/compile/dfa_example_grammar.png new file mode 100644 index 0000000000000000000000000000000000000000..2c0d9595e1dc09dbac615115f11f27bf6f714704 GIT binary patch literal 25179 zcmeFYcTkjH(=7^!G6>255+s8n3{fO!7?KW2M{*QU0ZEc`PJ<*-az-4GEHLDxk|anP zlpG}^AUVU`_?_>2eSdGAI#s9cfA>~VWjPGbvv=>_-K$rx4tuDkbnPn5RU90gYY*EYnu5<{+lPbOB{4RLUoa309ZYPcEwN+WQiYaMBy8hOj5{prf%Ys1q|pz%(1 z?-Kf$gCUP1+NHj{|YSFH2-THCITiLH6{*40oH zY(J=St@700nOf{OQx+EA?%7E5wmZXWL3yA!xc~SuCWII}$~|Yo!TZM#epayJe|#uK z?$@_8As z`wyJR=AR$od)>jwn&*G`l;EGMhU!^d`o~6?rulIp+!_8X;{Vt>)UOXt`yU3$Ae6B< zB)&1?|L<$|!wI4s{pUxJ0~H*2mwD#b>;G6Y*h}A)f8Pea%qMd^sGig%1($y=5GN~G z=>IqMUmo%Q4O274<2xDJk-@DklNTaO3vnW@{B?!y3*bVE66>l;OYIeyTaJo~ig*{b z(Rq26wCF)`8ylPOYt6%r4>h^Fj^wczpAl;pdwu;eB{iC!s+^qX7|UednhoV#tT?p4 zE>GjdGnN;2mX?R_A2x=V{Cb+a5H269nu|?&RzAXeM>TmTSbS}%KU=$`sED2gZEa&~ zYorYmtbb^fV=1L1-+7v3LR|&zF9-kYJhV!#jM%P0uF&>i;~GO&?UEPD4-Z#s8~t-E zjVmx1ujWH1Cnv9iv*V3ko+qJcO0LBGN!^2q!mNoTe_hq-Ti`}AnuNq?ilt3H#$wuI zkp#-Hjb8FwQ_%j(_-EePmZR3_!5};#Ddr#@WmrW~tb_TYqv2351>68*(f>~Kj(WPp z+w*j_+)%4zq3>mdS;;wunXyN*2zPs7IOo{pq*Sazc=75@<{%;0_3>-DswtJj5A3Mh z?5#5_lL@Fp?72xx?>Z6P7SD^_g0Pesu)LH}RaGs3nl{A8$Gh}opq`V)*szfn@dW9} z!JLa?w?dr68t8_m1iqn1>rAM7Ine8|NU7K5+qba-#=RwP--4Z@W21v+d}9g!+9*^N zT>1W;aPtBOxRnIyZpZWTl!}T9?`5)khCy1)S)VOwX=#;mk$LAYl7$k3iO#>>C8nf3 z4O^nY3T(_YE!X;BptBIHK-E(djaPlM$H7qE#2j}I61Y{AWir)`0xz*NDFaA9J6b}} zTw4+5jJWgGy_L1CTCE6pM6d=2`h-kxf{*JtzZAh=zO`fs;*;sR9i<)|^*9!}f0gZSyxNbKLbjUjG!E6UFP8T8}F50YAPz2;Do4e_U6Uo(n{iTxmjbNThX za+eD|{8#vc@&ohmIqEdlMD@Kv+7_)IwTu^%@;2)uEJ*vM4)^urcaeAACYe#UNu!o% z(;p2ud%H5XFo#oei)9rT7po#fBiPK};|h%!!7K zMG;({q}B$*W%V4Grt47u@nfu5p2i9fRzTSKtWEiBoL}$Tw{P{9X&es?Y2247Fk90agzl$9|2q>6guk! zo2Lvh8UGOb2H830WaygYF!?#&ZO2WzPlH~*II z#Q*D1QFlPVusCWh*R;)Q6&4f}T+2Y9dv3t33u9;J{nA2Bb}&sJ8XJ9{7#dD=w}w-d z7-(yoS5{Towddk51oe}^A-6&6Z6OW8@@5f7xYGmk@4|yV_3zL&jFXaymtDPw#Q#O8~Q$m z@J$MQYpG}Y6t{K)h>q$#PL-WGQD&sL?f+I+0$a&>SG`#C>#6&Fe z7y%>cC0ACa4|!y4Ed3trqHd(zoFq}o`{>>HugNg352>C?QFJxk_qw>Y8=mRXZaUlt zfmWLMF5|y)IEy?EoD<%|-X05w7i49bytJ|5W_;VTQTxIn%9U4$HhWbpW41jPPwFO8= z88Y$)^@)p#wQVue)E1M>qu~dDuqgHQNSN_b zmtF^{p8SrS|4QTYS z?_+6cLi*<=^$y!h$YY*Uw-w0mR47|;$1yIZeS7X&%4OwYW3$$U>^wRVn_~=_DLXbs zp;l2NsIMx*66R@;zC~n zhza*ZUG~q($%*9ZNxWYbRZ72_FH|t`7d9&KzU39 z;EY(-7^we&N1;j}zS-~4SpS{b0pk3Bb@_ZHH$$>mo+GWh`Bcf*M1>{;vi`Np*VcGT ziHhA#P`!C^e0YJEOEvjlOaEjH)_1m5C?c$6AuHgfMEHDCmznjiJDv;-B{$~1rJst<|GnrrC)p)y(8aaX3h=@;xPS2|^{q+VW9q@+FTil|qsE{`? zvKDbs#IAn`p`VjvX>#xd^l{MNT>l%ALlVJ(e)3cP#sDwSFoo)&$-(QV z#rNNJj7axX>M z>unH%`L23bzMT2unyZqu6}TZN7XtPY#?&`Bh>3*GmaE+1pU})Y8Lp6l2`V5C)9MD6 zojmwevGFraF!X4cMRM$$pR`6DZ&5!;4Op2l0cQGIJzz~{m&yl{X0Ahjzm*Y7Gg8B1 zMi6;~sU=W2J6e&5SpYq#1Dh`ZPf}-YfgwAKw!3~fd-u<_hKKGiW6firvjnhb`LDfe zB+k_2d#MgiuEOS@O0Ndj1J8ORn+ej5AzC8^xuOf3Uso&IGNU5pR+e8S?H5kYq5lqc zPni4NSyE2E9A%LMeaA~$gpQ?w%eNz7=V`=<4+>D=nE{!4vgy!k=;r@fryo|g!X93Bi)oaS{L}lerUe=oDqx8nzT}*=3IM)# zfm!Q=g5!}Zu_|}AU&-YFbKg?MrVj|%6ae%D>tG2PJx~CJ5$_wR`Ahu|#qQtbOuIN% zX+ozV-G1lOA$g~i*ez|So)4MQ#S4uH2Zx6C^9l-%4X_w+=fyN3d|d+Hls(DxPLhgO zB^;$>5u#bI`(_0~Oj3(t_4E-Pc-N^QT;Ls?rjdB>vYbNwbeFqd5YXE?+E?2+lUTJAnpV2v6p;EKq_S~9m}BRebH zeKlPJ>xY+G-&re^wepO1}zxn>yBIo4bt1^qLq?f}b_0`kTNv z0!O?~4A-i9lFC9b3w+fHJ*bE5B=>;o(Y{D_sj^J2FCqHhZS$cy8YHHoR5*ad^7p)985S_nz;2$ zw!s$cX&i}hJ>VkyW#D^=5S#I$2bb#$bHHOYz+($7M-klI+*9K7i}=H*IhH)_hX6b+ z-voPaNC6jQ0o`^Dk*7pY28T#}-w^|86O;^34_gLL0=*O?X#_1k`Qb8}gKdnCj&`pH z#TT#kLYR&2s%|Gws?tSvXL9wU529s!;>;&XC<#I(}x-SYMk5>4brmP6j-^b zi6==H@W5 zyT4p}R)c)e3w*k`?n;P>M1HKtW0-S_zJ;K$@Q_~ocX|1ttvVc4tVH}q7rEX$uw6Hf zxTA8Y=}(1lO2O@ppwip;*_YTrMiH4^C%Q}gQ;$WgCXo=4SNA?v>4x%RE} zLpD4!bY3{Qc$GhFsS4S-PuxtM7kiWoHFZP}=E6}GamfAd6k)qx7)$Iz?Vbns?yL!V zaMNokILDHtZZE)@)_PLdUBK0&{FqD4i^UX zmEJLjte-x|a&mUO9j*-F3qXy=Az{q;O@#-d%q^F}DG@an!4T2+KsJRoH0MrPB;Scc zo&@xwx$Mtub$=KE$J~UfMmqIF^gW#`~n%g6QJ-Tx?7(unEoprJYWSI zFEe+{zO6bD#x2xaR`@wd<+<9|9K}jENYU5YDU%bR;eLEv4qZ13^@LiHaQz|pLf z^60%Wp*|@teCAlLSAu|5@pzDv{gXwLzqlDe2Jcpn(%`6O$2&7RuF;L3BjS}F-oNr! zN%~L_gfLAx!}?6{@`@ZwUPnY%*~>yt`=>5fA>7fKuZjP*|Ak5OLq_#wYl}J6VCW#b zdgj2st*?X~f0JAJN=z|n?&cxc9@LNCr1)7TYuach_QQ`a`5QlX`OHFx_dUvUW{?aW zAY+fW6i8uy8_gME$9^ONqT$VuiM531`NT!*Yo$}u4hrCmppQCg0x7k zD}+9EkJk`ik27ao$Mc^iWTL#>Tb)Y=4gWHqVeIiPSW8)18Drszc|KY1E@08e6rGp- zwy>sVL?~yJ1cU>pQ5-J9XuoZ`7QyvkrQ)(T&96M;bR+9znMCkV3ZF~YVCF6FURG0a zQoswSnZ4GNWOTrv#hX(xn*a36;vB*XL0pY_a-DBMqcg10mt^m811 zU8F)GkLh75j_D(NMcMZ3;&PbX8c3lvdG}1rMyh_>roXMfAqo$ zoM7-z+W$2AbBshCgpge2&zEVn#))z(*(vZ}k;`y#^su9DpcG^u7D=c>iaKwygwpwc zWN?6R3&=u04SfDMDx+i1TX^)&0Lre21CBB4iIfu8)etLm4cH(M?~`Ag7ta@>fE@#Z;FOnP}~aYl_UobZIAfB@)R90 zYAsp_=X$WFaV!yDD=;O+tsC8oz#m^031~x#5QMX5YIr7+bAZhb0%@1x|MYF2KlJMSqk*vPh_Wd zLt*NqHZ9y^UcYFyZT5i~%%+ByR>ZtTZ$7!v+Ijh@fyj59b+~k9q z385YMnw zj=2<;_lOw|P=yD^)k+suYv)Z=GvWuZOuKTebg1#3a<2a*W|T_3Lc%c4${9rq%G!_T zZQhmNwT&m%1MR!FJSbL`ytg{oT)gzmA_dvg)LfToJ-C~##9CNN-sh+Ecv|Hb8&bqA zw9B0>Wk(MHN=2cz7z@Y=Igp(zRfh~+>63CE0Q=US9+OC)$T0dGFx!;2Ql<%IIRDTc zZ1VLzc0JpYp7y)+ORcS9$Y?C-A`)VDf9PZFe2>R^np9JSB4d$GN6Wd7A3r8HbejoI z%P3tkWv-lk#X0Ib_Vlf)MS`Kray&Lw)Nu(ID%bdQMcYMbem=oCC!Du&xR}KFEt`4{ ze~(BYI6+SFK9yvFu(PxMChS$t!iPe~7dNq}%rJ!ZmLij}g}ubr^MMW9%C6|@#kNOW ziksU#_VbO$>)HBt4bHGPblK@XN0#{o1=%*0BW(;jFeiHk@b)Bn>{iLGXo-O+&j~{b zCg-!mMQnEx|C(AiXGuNWbG?R*-r+0r9(U_(CgVB@a7YvJEgXL)$N_zLZF#@d`HQoY z!<`ZHjFHn6BA#l$kZZKh&E2Q{2?ky>%UK-GC$KT-EaEybBuXu&I$HdU6y|xAqa*$5 zIEMU=O6FSSSkJnnebet(oW&3oYi3FcXI*weCd}0*i!lb2Ou|!M{DMM4E;%B*gOArp zNqrz`;o>A*nd>!+=>ga47m}?$sAov+0K<*ZzsZsd9bHaUi?}tNn!@PyTULDSbbo4! zwQ1^f-PLK>B(y(X-*!1KD}qrv9o(Abxwq<-SY_B6PP4mXd*r2V#%bn_;}9cXUYwuqSDm+&pS8|DDLrZMin_Ss z_pvDu4P}eC(I$^yrR_^m;_I184DK!KjP}w?7_3^k`D9u+L7KYg{EeeU>2u58fL*8E z!RXnfqtm^yXa=`w+`6fDzLOSm_4mMeE81nZ5Tk^qk63pC>V#wHu?R*72G)5}owGL! ztj;~H**TAM)z(;CJjnFc*4FkSD55QXlSHS|dGGYQxJ)>kx>ZJ)m!-SShVdBjYFeyS z|BTv6XgWbVUJ2*_c~gKgS|YNi+}f^TH-18NCVaIuyWOsSQ*or|8!M)>C;JU8GlnB8 z)Ki)Dp+%B$o_lOcW1mXGTdLj_Vj6)D~M8ud6ZR#UMqtZcRG_%1+DZ zgi&~KuD9>$sxcPu>hXw)w|%pr5$3PY_Ntotl^DIBMyE;~&b{6H;FP6Cyz#htvyFC* z*OpRpz2HVxD=sQw=H(&Rdg?0bR@6uHR=1<065rDT$^4%N0E?HIR~dP2D(Jb4JnMQ9 z%-mx!vX`85vxQhrm+R%@EyC)c_zeDPh1^&oRAF>1@^L<2b{u0iXb%WaIFYBl{6c6* zbBzRVvoj!_C+aN$z0+&%52>pmw6>WUzGq2i2kp{()C5%%F8anaFfrlAC-Qd)Ssq@? z(tL5=`MK+qFDk44U9NamtG=KP(}eqC+Jr|ib_Y0#rkdko4=V$)1J7htCugSHJQ7M} z`UtAQ*-H*DAPC`-a^s~8=aH%o2!?EAI55)m1AD}fPx4MX;a!(HctRuYQg}MQ0pVuj zO;`A-I+hy0kE|iVJ|R~o)vIqy6epE%nC%J8ZPpbidoqU>lMq~Qbkm&$hxwGZ2DbP` z&gi<}IJq{S?5}ITY~#6%4Pa=!V5sXB?#-SVY9CkI`WE)4pdTR6sioL8x+mm(@~rET z*zRUXA?WSi#)UFbICABLYo>;+NF;Q(-c(}0UdTBeu9+~81b}JPx(Nogq z6lS7t7Msnz$4xrFMU;ut91x^><1jP6{olsC}Q(*Q1uXX}`#uQ?aDF_(o3s z3VXI?X({V_7Byx!HXaYVPI)g+ou9cT z_`@ilNSL0i6qJkxB4i1R3Q8JBqgo~OHw@b8T~iz0JXuV0UFW;L(6s(;TnJUI%_BOV zpn>Pp{?1Eney`*pXue@@v`b1ddEdf?4U;NMv$!(=_n8fJ^;l5?zp--a;;wQMWsmgD z5VX=txb*$R`VvaPXJChy7gB`Br3m2QnvkFM)r?wQo*SapWE#4l{*dw){R zJz#s+I<9od3`tL+&Ak`^3f_PQ5T3oT=_4i`PSE5kpbZ+=o$e<{x1R;Rc?OfB4pdS; zM7#88-nZDie}#zV>`iae0Y8K4%*_HgJY0cRJs6ZVQtF1stbR(l zn>PRY#E5XR`BS+Q7mFzLrOeCcE1j0QZeP2yLOf>?OpvTNwcKbX7D^pQ#Qd!5Vvcwg zh@%HiJn7dKW!V|(XIT3r`sRL_J8!|9zFzP3*!*>taki5iz^fv?@*&%zJCRTFU80En zJNmH$deQpBRPlT3xW(zSPx2y&&`RUmfh=41$v||8Nl}HJa=LcU*xcaq8t;nGwJ5Eg z{cJ(`vc4j4%DwYcg5d+q1whM9nZ9cKpTDH2n;hc^`X}b8x|#-iNy8DWT4_5_Jq3|% z_V%hNAFC#A2?Q0vWy<@(JlCN;rE94n3h$10WcMW{I=?6rrm+Ua4U&?$v+lgK8;9V7 zBx(YEy4V(ONM~Nn|GBhm`2NR)lT?BF@!Y;vPvbNP5r(bIN3Qm@I&@sE=_eSJXIx)% z!-LyU7p|>vSjKcW?>!!;8ucumAJMZ?w|n;%866f9($u7Y8}*#r_=caC8Ju~XHn(ig2#?|8L}QoOrC;E`VZog3miUsM z->5xMXn9lz4S%-~b3Sq@i$b-jWq?CsuGEP(g6AzLiIb+uTxe&FzRSY;wAZ~ zG3=o3o~b7P_oCh}bex~#wh9hdF1|>ACA5CxR&-&RHz+(^h!aXj~FjOhlx1Ump1gbDJE4 zQ~9!}uf*KUmeTTfX29am_t?WO+w=0I2c*f8%P?|Td|3(%R<6bjki#$tIcU+~qt$wa z@au)R{!7qLCty%C;(YJf)5SvR1Br9WA;M_l3LNYeZ92+O}vCRaj`06 zEROQI4htI;$A1g(G;zJxT}>4^DQ$2_+_}c_Z^`2D>q%AOwn#FXuyBI!lwEu$^13ki z4#UNFBu?--WiM83gY(Z-hu!>pN!=EQ!&jjDUO{1n7dyMtM{5>Sys8REftE>qsrAe1 zQhmJPY>LvhnR#Zw&w|!=rAp&6khHh}k<%E^Ypm+UYqFuOopUX%t?8J8hCftP?9N~G z0IgoUAYKGC`hGYSZ~8s=t+~Tu&li9m_vv`U>M-#B!4xI@8FgDcJw5$YWo4z$ud{m4 zyrN}pF$Y|=hmX&?6CBk63hxYYU$eTP|LP~&=h8}g?5qIUPWJm)UQi1bPghQ)*#b4j zh8j>~uvOOOIu?JW#p6li6OZ}6RXFuORc-uH# zT>~hSD0}IJ)>cwD>I~?*7)9(KK{ibRkLf8D5pzrF2X}e*J-V?;D@)6yw~XdxBfrdn z-ivYf#&&8iSJ%<)w;d|qq8AZ)c3Wny>}s-EOnpRz8r0#h$hv$dgQ1W0_4K6d_x%M_ z_4(g+)a$eJ^V)N{X7o8XJc3n_k~XAtJgt`gP`lhd0hjMh&N;N`X&lM1^wD9r0m_&o zpcQ*P!^ly1%aVU5*%@ehC65jSen`fEa*U-RFXFcipYx# zf?ku~nG3i~q;?E=j|I?Xn-@?`QI)Ss&T+SHELwIt(uPCUHBJ-|?(y5AM3Vp00_~Yf zJBdY-AK2A6DE&`!RkThm25Gxi=IO){=b;DTgQ!%O@n`$oZ<8Q>n>* zZxyzE)XPdVAXL^)t!)+f_H&$~&-v7cWj4{3zg-nQ2m=j|xOxF|vi_H_`As@s0aefL zvO>9gN!{LucbyES^&p$-EJu;gbnO;ryKU6kLr{u@%<*eWOCp686`Bj}_4Oy|uaQzn zru343DaRht1;Ax96UaW?rgWFpns%=;3qh{X!RDJB_?Ccttco)>qg|vj3py*yaxct+ zgVg4}ycH)psyo_O0>>Df3Q)L26C^n7?Y>18>&qmfoeVSX1SJB|U=ASH^xq@%nv!xx z=33OygP)OzsJgTS6Y2{Y9oOVZ(0zIdx8K*`D4!h5D0}B8&v^{0U+%=h9{YS<%{1T*5>bIUm+ONj zp_CD%R0rlPKzb9|S#l`FCXE%S!-zNEJ^N&dj`e8lyGNX@3)_W|(%(X#xbiSk>KR(Q zj?JS}Q8n}nEwB9&%mqWfUu~U3=+w5TC_?OuFO(~B?2j!b@?vLYIT;Ao9d3qv&i-OW z){h(2*BNaNoZ+b|R!CUY@qFF%krACC0!K(lXloj2C6r<~11Ofo&pZa83#G~Q@B!DB zsZrJ$ZSMi-=>*0)U>GlSL5o~n9;|OW4AzHR>>ofjJz?`=?x*PHU}z+=^YP(^HDd_} z;0&ih=PyFM$b{OHynju8$3*zwC3`Dx<8NaSrT;Q1y6Nj$-oy#-hN*G4J4theynqsH zmy_k_KEj>U*GR=;et`Hs8ku30oa5@`)cq}T*oZsm;IqKDu2hHQloWUT=dX|}ge=Kx zkfNibBPnNRXRmX`_-AQA)bK2M0qte%ns(iA$QN9R2Qc4xN3Q5@1c2)gLZ24s8G*|B2sh#JQlcsM~r2=UD=IiT|q1Hs8S?i!^q zkZi@uXTH&yLuUf;e5~qyym$Hl!k3?&-P|Wo^zJ6N;ZVkH78qJ$suVUPEdCJTUc!IS zlW{X-Qx80bu-<9(La@X_DtI5}+P$jZm=o)v4Jp-S&T1_M4b~FqEDmh`dQXH-9={%X zcq7<-*pdnJWltsv9*$z5fU7u6fmY;k{X&L0M#rL}s>)dV@#E&l?Z*#bQ`;;U2a?eg zph02}atjUC0{&2tle3`7+%nqJco}%)efeA5UCF#bAL%Y|`+qk45B)g@mo5GX2F!5x z^JBNJDgo(XtNc#&Gu^TIjiF9-O^~?w`Vl9(4B5%n5c|IZ3FL@KG~|A#Pz_o9`r^dh z2y7Ti9M@Bm1>-iT1u5n1MTo|M9v~rlP!f*9j)Q%;lyfOtCbv!Hs-Dy#S3sN5s#p{E zc&@pWYZVPtCu~hWzmJc1cU@6OA|jucY6)qKLqI;i=Z`RrN%#U3g0Uvl?d)itE}PZi z3S?H?Snl}^(#^@EP@t@2aPGY;>LMg4So9WwUN`NZd*vvREvN?DCFv^LbHdjtE@>N+ zQd>M2O6!}oVXQ4yzX7j*l6+@hLAN_jAbbA14{v?;>nm{1t41$JrstV^i?ZhD-NxO- zd6`?}faZ4*!i^Q+1tuEhi$fT)1zFhI*%?dPMQeSYcdZGXv+XKNH_K`*x2i3cE{^qJ zud9&(=Cb_N-|UMi9CF1D;t`q{lCDucAB3xrPVGjLD zKGu0JijaBX_l^MR_r#o^r>=6E<`==H z4y;_;SF}Wg8uDXn&Ne$*WO2n-lFPNy2@OZ>bF4!_o@d9p>Nv>R-v_pR3Y1Vd*ZV+9WH5+6GRW#(8~vgEt&ErQPzptGReyx1C~<>5PjC6!Ax?u%;->T)F&q9g-5+cphcttW*9kXvSpWoVrXAWe;GFeGEAt6`Nxqm*I z4Xbato3O8{9M3f}Tvlkey0Vh~^RfGQsQnGGyUlBgy#F0o>Lm*J3bokpXn(nP?!K6a z)Ym^&6iS(ph(l~z*EmwQjlogMD%iQ0$sQ19mE(|?(6MZFW{h~JPa>K^Ar1K>w$u1 zPaTakzsfB1+SSxPnB^^zC0CXZW$?lOpuV= z|H9gOycz_XQr+_BMGarBat_vr6NZ>zbmN`tp|khUgK_nb2DmW;%L2TMRu2)9D}(nT zF)Z&^1ypJK`}c^sNGg!Litc3h*jjNX@8EOodA!)81~U` zpHj@z&A`|;twiM^VzYD-`#$z${^4(taRX0|qr#(yMMg0StZ6CmOPnDlbOo_uDv-?z zqkepExwa=X+n#GxPX5%r@4?V+S_6c;=i!jERE={8P_-xYZMFLF7G}Qzv4j=R5ynC6o3D;{CVQ$yfiR3Xr%avbJ!Z@6(p0O4Lt?&L#2UPJL8=u}|m!~X~UEsDm zt{S#eas1iNK>d`#iQen>Jr6XYj^;p5Y9J=GK47y}JtW5f_$+#j0@86+<`&;rO zwKxm4N@^O&;w9OFdaGHJ|{*p(PJ?mg^-Ftoz(-K^!MZ4)dUVDi}}tZbnIyA{={B#h~KLK znXi9bUxoLFFXtUheG8xAkh|#ieU@1{cefP6jY~gSgIw9sKj!=uC$GQJFFw!%1o8e$ zkX;DOehWo^b5Kr`B;xkz)dHgBjKSJ_>JFQm>pmkJ!Oj{NQKglf^(r@W3xs853$BXR zAPD~ehjZ??e(SP0pmsi%)Jx8hRFRj4p#>(V-p3~24ysO65*P9IA$UIg(d0DbI(?^- zixE4zUMiuDQm>|>E@6A~{bjNDb)@}q@y~2VRdeOA&S_JGZMQx(U!|Xz93Hj+0F~-c zfS1A0-ny4JTsW2kZOf~5o$)#u-%xYvRY>d+!rw{EJ0i!@oLdiL(a`ahjdywB>qI2L z-UuwFNKa2M2WU{IGg+#%25OeoEasoTcaz3z%2-%1Af{srss>t3ZOG?ixka6LXHzgO zkQi=ms3u?o5*FxrZHDEJKd|7uU`M@+SGZ?xx^9+sh=#8+v#c2OEY5XthJckc_B%JUi^S`$D zU{TKXI~yL8?b04QOL3s7=bn>6P*Z1c2)zGH#r9mBajmCZBR!ZhSD4t0&F7|rZBxQ2 z*&JeR|BEOBz?^q;k>`R4E~QtA>QB@#gt6NQe}j*{>8LyRVQfzO^XAlTKucPIjy+MU z=Ala0JRenv)7|>ivjUoD;b3&9CD&o*k6b84CeG{;>!4&Sa2DOghf zcA8#~_VKA5t`}M?Guw(mIA8;^*gz*T77m!<;oc#To!0(#w zo++M@5$xg8<>`|i*8fy87IX!he{WJGh(9ZpR|8;u{zBQ2LBGy*p#V1JzC_~QLWk$b zqMDhieN}`4pr<>aD$lVzs{m~!r9q&F1VThAu%u+Xzm|kj0D@(-FrdsPMKrl77`F1W z6lDpS9}4_L?~U@_dygJUNFN$37kqe8>& zYe5Lj<<<Bs&#)k63Bpr)ijlZL+f9Bc=WKFaL%ZDX*mv0eoo3LWlGs8 z)H1nB1mdRH<^C)H$-x>loj@VouH;{Z!EkW}T?KT?HON2d6x|D1bc@~TciG-A3NXLfTJ?f&dEum>wT5vvE_h@fTPsMMn@@cbTMWGg0esj z$M~x}$`f5hJB|ysEREa3a-PJZq&uVom!6C(5{vjioFj&rfGU8FN50JxzfYsQvxP2zRbz1y^gEX3IE$|H=RX z%jE!yBrSiib=INxJYQ`CdxZgkqNllZZqxn(&MSkqt(4{mot!0o z0GuFt#>%)%XIkHNks8~Q?oGJXcYa(&$07k*VRUhFs<+ntQ2%VQ)-ZQ5oLkWwS5%KmJnwDd$2Ls*rvGhfGc6d-eN^t`WDV*z-c6d?usL?G@ znC$_J$e})bjw}K_puxVrC*d@PLwTj8{YG2bk>TbkE@L)Tw&7wxSg{P6ro|yJmz(tx zrA0-NDp*YG(D6o-dN`%?L>oHx1qFP(Ahwq3UBQcDSy|FsPy(>`#iD+ub@!h^8cYv? zK8wX}4z%0tUp>y3Cn{Q4Sa=qPBp4hVqyx-bV^}%e>x7xjbT%cOqN+&`4WNTbp7PnR zn;QAj)}Y;WDBbG@bjKV5V`U>;-Ul)Zl1WghuI!(HTN~f8GzjJH1pyhXcOx@ zy%33)(=wxA%a))&m~%~NIJ59nLsoRPgDvAdkPp1f^VS1>t$V7eB77fAyE+s0y@CG8 zbI135-xp{Hc>7Ndx6{1hp`^5)z2h~GY-(T(%U<{L^c^UQ(4U=k6tmJ z7gDdwt3c}Y^d zE6rszta8f7b7d-H>L%T()p)i2&PqYygI}!fd$QC&+oN-VKIqO-8+kuq2$x!^jNhAQ zc*jrr9IvUR93Ft#gb6sx>LMS9DLi{}8{);24rIydNzZ6qGg-3_X>zWy&h@A|O-Og1C(r%ePst7wr8qEc3fniiQ7Q-24!Jcsu6a3CcjktKQP^dpLWp6Zo@c8}AF(Ta=npw_+&tKteInYllcg18a~-o4_}cw+42D+@kma&_7|k!yW$c ztq6c2AZR%rN4{B$xuFLJOl0K~$R2$|k=`1-Ol82N7|pPjr0?ihzKFTMB<&v`PuZIU zItK&bcbQV>Cyut^fGT9e3Y2W7;*tf(+{Zt;Fch=sK&~n2z87AYH5~M9ZqyQS+yke@ z;?+1s2g{1nCphtgnl6HwL>;ztw|8v>h5#hL;b3shny1?^LZWZQR>y{>ep?XE*hY2$ zZOVvV+0!tCt>yJ}BjPm;xI0Nfs>uoQTB zPOPYSF}#Awu~dil(}0kl<2>O!WC_#?9=d`qL0WnAXJuE3rtcWZ(Y8xk#5rV0d5cBT z3il-QnOzAl>IKA-i=CBK$_*UTr-XPEoey3>xf#*F%cCou#G0;loTiJIExj-UxSAT`v9L`G9S~!Vi0b^{T-F>lG>Nx>)fY-0lUXID7Cf$ zSB<#)nix*5S6j^ZwIrMj-p86?z~VCLZa&4a`whs0WZ3}f-gk5*;PIgWgptdu}&>qgp?Oya<~o{dpclQSTG<15t%vo%7pOAq6y z$=DSx4AJ+QK~-^l8*;USMHW1e%ofrDX?Z8}Q7hF_GdTVaQGe_7X!kLR%iErgu@*j)A9}x2ONC8C!+ciLBPX%KiQtfMkz!<_ffVOdsv)Bp{LBgTR{W2Ui)# zMQeaS_Y!v%O=QuHuMMm=71fOHb20e<`i%8G%CX!+Y8Ws*bjCBf$gJNdkh^%K`}t9H zm*asIJ`h{*)m;V)y-uX@yE>l>jK8ZuN*6%hR?@dFRmc>`|2~XYBu~s=Lb>bw@ zN!wno$EXZbYK2m$sNvv}T=)a750BR6mIfeNaL2#66rTuXQ$U;&nAzGYd37;CH!2;6 zkgRT_vFgi?mO`AY7c!N+5UgZcg|^ohw5CnvRrE?7_eI>~r^ZeKl9*D-=%eT){;LZd z;&wb#u#56EdcbU`1DefWSd1qeNW=5H#;hzqbEKzIgqZx!x?C4QFCKqg`s8IvWn5aZ zUSyH=C2|il!I~-ic6ukE(7o5uu8JM!%)0-m2tv+&fiqctNieDc{T=C@va3PBuuM9) z5@4o}<_t_}HLhh{(Cuu@Eqe|I|U-w&^mVZ)MUB&3QE4b8xpn@>b{hJ0V ziAYRRFR+5w6`Gk}K(ex&`T|nq2nGr_fSTRuhpxG1Fua0RUz39(5T5_-6ac-7{Sz3v z=MB<`^pgBtK3V)%5MWdM!`j?@ruAJirFKkmZSgJ2)j1d(z(pz6|IgLC^;7jyW#nO>`!$01AfDhESD9;C5PQA{u zE>Th@wP9MSrHu77s!s|zW07L0OseR4Q5d=Ml)Ndji)ZtMA;?pmff z|0q>g#c+k69Z#LRtY&Cx=>{uCQ1>4mwln&wfaW>|fJx_?+=_}gN-mwgLt!J+j%Ol& z5dHSTH%=Y3^RrXX5Z)hFtXAPMJK9+m0PG2m`*x&36TrODPKLRFm3=juk}=*uJu9|w zI)&_{uOAN-V49}#XW`c?jqhb{KG6i|hdX6WeuIs$s@U-v|~+gnfE_CUZHap7t@*=jB0Saxh_c=M9kK8~=Z zfn?!wLc$qEdmvEor)e3v&-1VuJ5F8Hhn3+ojr6`f%ZOzXZiDK+b){2)qA>l6wEYOq zqQO?{vs4?dAI96rq4WWe1Q2%npy*Z5u0aVMpZr|y^Oc}8mw05gd3BsU<0 z`~cv`wv<$#$=BD+X~t($KF8eOQbpfh=w**Th5~RO+;}icBrZuL)zeIBb#nK7hQxO% z9v1!?2rs94qSw6V6_qCANZ|0Z^I55cipctio9NyC6rC(4=`i4b^U7MYfszD zrB9dD_cGPa=I1uYrp{dQdPO#X0KHf#VUui@ko?Z@vd;J>(;$Vmfr)Fp&)K2*1^NYZ z7`E>&bbXaTV=O&Bl|=C0cgM+4U4@Gys12z6FKQBSEF-2UZ5^BX%{CVoP$^U?43zln za(d#V9Y5h}jFLLC5PweLN#Fm!#u=(MjBRV?m;To@Lp6VoYSO*db^fi)y+D#Jypn02 zmUq*`T5lYuF96I&n1%a#_p#)gVZ&B%P+%%$BWzm?==Q|IYeB7yQdjo^dd0dM=XF!3 zJ?lGmpmAPIeh6UxQp-q zTcb}S=Ja7AYbLQRP+wxWRcabH2NYC47(TtK13;$Wz2JVM=g)D1?b#yav39-Ka_nQZ zEZ?*33<0l$m--f>!(hG@Z zVqIpBh6V?p5{XtCV+Hh8+Uym>Ip+_+pu{JFYn?XH)x1gg25?R!#g6z7N;185>Q;Mh zm8@1zL1VX>%SRw`O)e9pfA#=!c-#rGIl~HTgp`St%tEZ zmXRfEjis!G5;aJnsUAC1LLp2cONa?AG-D~6i0?T)-}imL??3SV^g0}l`@G%{x}kxzREk+1o<#DyypP>#(IvK9?TQrU=6(YDsBFj6 z7u43@ZrJdkS3X?hy*1R`axtrwiZMCB5d0g;L3Abp(wfT^2}ObrUs3Zkd&=TxMdH4VE-U#ld zXB$b!f@jPF9UZQ-qQPsiz%|C4C0?LCM@7^i`?&yOY7$l!)11!e0#f~jVUUegKQhyZ zI8`eBB*LR(G(t0WGukDjSM4hTg=5UOS_-=8MD^4{{@nn&9I?~wOM|r`9S%O4XypT? z7G=Kb_9Fp7+MGX3CFuD6J(oBVqORD*a8*qJuUJ7`l(0Z{;$v|U{7mrP=WjY}zUAplSPL(P4XFL`^aSWa>X>td z?^InTE)b@F;grfER>vt5U>c>U+8>))yXUw!G-kysQSb2>Ipd8P4As3m@X^3x+l=ySx(5lzmbk^7PJr zdV=Ce%%pR#KVhQWTX3(7PWQ96WZN42*^Sx$loJ7e4>?-FOux7zqa)JBTTke2v@Z$! zKIHU{@Gv5@V`B8&dgSgqAsu0+#16%p5=YAkG)bpk{97Q5*Fl_Ux$L% zor*ZtD9#c~yI)Q8`r!4Iv%5y*RM$Ymrc?1%G_h08Xk{9uBg6<$v#6wEl$Md++fgok zr@JEU2Q+g#3VmnGmyLYzpQDZC&^M;9VQ-Dn+>Il5OQM?!HSkh<#B}NhUc$nnEfy_6 zpmQ$wJ)x(MC8>ke4*m8xq{XhL7OXh0>M0LgdZ{9=-CsVvIQgLbR#Z2xRVciq1Cuph zmZN258EL{)-W7f+j>1k8U0b$@xNJ8rJiTVW6s)Tk=e@cxTKhB#bWW+Zeqmk=;(i9M zFAW(U5YZ(`R1`Cud&CSi#9>FMi#=CpcVEF>&s=|SK(|h&L#nRE^6S~91%3*eXnTGx zo1=m8w0!3rw{nK~IK{mr42B$I@%2GrAbz#;J}QDKf%cwhMKV&ttN)4p*U~{HLtwOG z2dH`>C7RjZ;&%p2GH`pJqh03Ghjdii(a5=Lr}WOb4Ok!hip`BK>9AsB`kWUVn#%WR zL~o{L%6{}rZBDGAin!4q2FX2BegpGy<^TuJq(GngVlti{y-3WTa604tB*H=lO@8I| zxEF|%UTR~=ZnkY`)@(F$DTk-ghHZjUk~r``ZWlwSc4nwH^R|7iczEtZhRr6?K+|Sf zPf73IeQMJN&+~^X^v^Uy68=Nys1+(QL7g!ijJ`2P$d-b7q**84`~#mkRw?+4z2#Q- zWlfzEeFWVGMko2HaKPM18)N#zd(AzJ^p7JQ7gb{-$@xTEftl<=&CSJwk@fwvlkUZ= zRdI$CW)J2Z>fmQFib9B{+Rzks}5QXbqIRl zeJJUW#dGT|yV8S|xh@gHYZq~K+3|=quhbNfAGcr4E-dP4BbBe z7>zx=8V>WJUoooy70iakuI!FBJt+4?42fCjIoYyKZ>piF$zMIKw(s;*t^$@Vb1$m# zdWf2HQ&07QaJ}utnU}!*1RTZW1N3i4^SzY2J+DQ(W!p<@<3`KqSsdD;kw%-(s=tD2 z^!QKtciey{p>w#(Z|FoGaRp`0PW>6-b!c5JtFAF^+NFx)f9AM4unOp=y{}I;FJugN za3KQ7LjeJLOi9G3eYSS-m*)&k>C&6l1JUXTHoMEl2!nB}9POqm9vY6Z7*gba*;&Aw z5m~pN{8IbAUm1_%QoWy>P^W;DNXPv73AvLy?MD67Yb6#k{cjD?`pk~4EXYq53l8VK zAuO1VTea38*0LBMWCr=j^1E>h4SxW<{0$Ekef4|_mn2iOeJk#VN07i*dTQ%eS;9VJq;ezV9O557+~*l4)r)12_9grCU;Dg@zHuiO6anc~T%()ofrM=>*mAeIl zwYjF%=Ld1fl}DwTbS-&4D}b7Q;MtIXOZ3kvIwn;PD*C|$UOo9MEycIbcntXj%#P*F ztY4bzGtAkk6vvZuTjx$F-?f66EX-pszG2vG*N49WF zX_P61uNnM{Sf799{Qmo!`a7ncojrk~aXJ=|B` zy_K0o$*kS4ZoEQoV(4{#zsFZvLLzyd&l)LF={gVxLv2aXWryo59tgYH?QIchreee& zZ2WaHtfZstOJl17qD3;13X;C#EEK%E#xPzxVS~0ZL{0QW3ar7tnx@h)vv)Gz^Hkp7 zhW`Hdj|*wpm!tR~Y|66XYJVP<8RjC(-9!52;q{}b|~#I*tsx&7*aYMPoygs zsH9~$7zTx3Rsz$d>@JT5U*$6rVEUCxz<+b;SC^*C_LsMmn8GDlIpSt_^rA=s)lC%G ztU}-nG`qE~PJH$KDXKP?)P0oNUEB$W=ZE;#_R_rDTM{)Mm%WGzs!AYWxP%fI}zw@zQ zVkC`S-QA^KFMc078nHO_=rVI?q+9)V{^Tc)H3ntt7NAOItUC7O#*NfJ4qLB~aaRO} zYz~3b8w@;k77z;!a=z0xvb^vfK-LOk(h{lNm#a)kgT|8W4<(I~D*%u-O%u~?RPqBH z_YoI;_LxI=3*ZGNc?GK88NhMUq*HRSHuPC%yI<`5hj@12(Q}(7SHG@nATB5*o=6c5PSu!BBW%c>6)FhmMwL^n^Uv%q*U*ejl@?7uJtdJ2nUNkzNa>228pc3f;CpcV{KzG_YxVO$%Ic`MxE3u{ z+9yfSu|iBXXJ+3vy#-qByFaC4^c@KV?T^}E<3j}Y``^Yn->W1%*tZ{+g|j&M;`=#u zSi7Rf_W30`=jfnWjhXUmNS8l=u5Prj;A z(f{xnJLyH}Mh>u=MC|-g*AC>XV*TP!rH&aeC24xV1J?L@`V4--X1jNIG``0EsJg3^nw^$<8Y71 zqw~P2Xg#j6-JX|yyBu|7B()x;;mOzuxFir$y5N=

z*Cn)HZgsF9H_Dt8Oc3xTz7 z$;PHE$zFdm0C0%MJ5l|iRg}%2ufG|*s)_>G+n3gUd6nm_t$tYRs-Gl6*VLH*_<+Yy z(w#APy7zT)Xpj;l8$hxovna1#$vTH+9ydGlDJyw(kjy>qPESwYfxS04snnS2qb-@( zDPG+$S5P}e6Bk85%SqwtH>l4`erKN|KcGRYp`ew6MU(5leEJmeq^jzIp(knTPcTQS zVTV*HOHqG64aZyv@@B9)q|G%5BG?~!@4n3M@}~yey$4xFc)$QtY81KI?;Hxfy;1$o zp#{mj;&i!z_Sx^B%ZtGWwxqUJef?~HJq^XP5|31>J}~v|X?ug1;1#%Ubz_T?>p$|E z&AcH1orn2>&@L6Lk(_H)nv}QC&j^0N-txTVy@Vt_*9>{lqdr%G=G2Bbd&exZHuEYY zeHh&Md_f*GI5y_D<#9w?xsP)S8$(OsscExMJ_OLQ1+pZf} zbd`&}TQ<&lCSBC++A$lv<&b}3UXKE1`1^OT`P?n3E{F*z%Mp=H{N!PG@}$vxb(0DN z;Fu~dx^xL-0nY8_B(-!mC3 zMj8#an6ka|WIE3%8*y-i+w*?<>-5pO0jwyf2^H&|f2zj8-y@zo`=ykxm6= zE#NBnCbHW^V4kxOKG{+(u6~VMl_UWBkToZmzM&yl0MYg}NA!ZFuGX zA`Yjd>9?8Ztryq-x}t)_{hNf76%)}wdm6tr5WXRnC~K9+XDgk*yaLsC7~*7fplv?Z z4;YmD!BZDFcz_vyk43k(fl(fHo)aK%t^7M}5`3(7{C&N89|!A!AMb~9u&Wdd=jN%Q$oNMu0uqkDtS70R?XHzd-W!Dc3oXguVA{LlF$_BqS4m zWfLfapB_j{0S5`A6{Ui{jcAtXH}j7@W6mg z)-wYB-^KnvjYI!09vINH6-fERmyL~0D47|q%b%bYL@i2V+qRvZlTX4R4h}Fq9RGF5 zdhHN5XO-}v=zqL{Ju#2>-|zkXPv?+)E~*up|1$zRC&)AZ8SI}?pDIZ_@j4Om-yZ=7 aoUaUi)g0`se+%D)&BDaSxEgcr(!T&)I~kGy literal 0 HcmV?d00001 diff --git a/Interpreter/compile/gen/BuiltInGrammar b/Interpreter/compile/gen/BuiltInGrammar new file mode 100644 index 0000000..d174033 --- /dev/null +++ b/Interpreter/compile/gen/BuiltInGrammar @@ -0,0 +1,6 @@ +MSTART: (NEWLINE | RULE)* ENDMARKER +RULE: NAME ':' RHS NEWLINE +RHS: ALT ('|' ALT)* +ALT: ITEM+ +ITEM: '[' RHS ']' | ATOM ['*' | '+'] +ATOM: NAME | STRING | '(' RHS ')' \ No newline at end of file From 77110d7a6a38586284141717eae0fc586a27f9e5 Mon Sep 17 00:00:00 2001 From: zpoint Date: Mon, 20 Jul 2020 22:13:37 +0800 Subject: [PATCH 19/90] compile pgmain 0.6 --- Interpreter/compile/compile.md | 112 +++++++++++++++++++++++++++------ Interpreter/compile/parse1.png | Bin 0 -> 30786 bytes Interpreter/compile/parse2.png | Bin 0 -> 35676 bytes Interpreter/compile/parse3.png | Bin 0 -> 38240 bytes Interpreter/compile/parse4.png | Bin 0 -> 43522 bytes Interpreter/compile/parse5.png | Bin 0 -> 39092 bytes Interpreter/compile/parse6.png | Bin 0 -> 42515 bytes Interpreter/compile/parse7.png | Bin 0 -> 43354 bytes Interpreter/compile/parser.png | Bin 0 -> 46375 bytes 9 files changed, 94 insertions(+), 18 deletions(-) create mode 100644 Interpreter/compile/parse1.png create mode 100644 Interpreter/compile/parse2.png create mode 100644 Interpreter/compile/parse3.png create mode 100644 Interpreter/compile/parse4.png create mode 100644 Interpreter/compile/parse5.png create mode 100644 Interpreter/compile/parse6.png create mode 100644 Interpreter/compile/parse7.png create mode 100644 Interpreter/compile/parser.png diff --git a/Interpreter/compile/compile.md b/Interpreter/compile/compile.md index addfd0e..37e256d 100644 --- a/Interpreter/compile/compile.md +++ b/Interpreter/compile/compile.md @@ -3,7 +3,12 @@ # contents * [related file](#related-file) -* [tokenizer](#tokenizer) +* [pgen](#pgen) + * [the dfa of `ExampleGrammar`](#the-dfa-of-ExampleGrammar) + * [parse](#parse) + * [make dfa](#make-dfa) + +* [read more](#read-more) # related file @@ -14,6 +19,7 @@ * Include/grammar.h * Parser/metagrammar.c * Include/metagrammar.h +* Parser/pgen.c # pgen @@ -36,7 +42,7 @@ python3 ./Tools/scripts/update_file.py ./Include/graminit.h ./Include/graminit.h python3 ./Tools/scripts/update_file.py ./Python/graminit.c ./Python/graminit.c.new ``` -There's a program inside the `Parser/` directory, the above compile and run command will compile the `Parser/pgenmain.o` and output a program named `Parser/pgen`, which takes a **grammar file** as input and generate `grammar` structure, `dfa` tables and etc...(above diagram) as outpout(two c files, `graminit.c` and `graminit.h`) +There's a program inside the `Parser/` directory, the above command will compile and run the `Parser/pgenmain.o` and output a program named `Parser/pgen`, which takes a **grammar file** as input and generate `grammar` structure, `dfa` tables and etc...(above diagram) as outpout(two c files, `graminit.c` and `graminit.h`) ![pgen](./pgen.png) @@ -59,7 +65,7 @@ The `Parser/metagrammar.c` and `Include/metagrammar.h` is also generated by the It's like a compiler which can compile itself, For more detail please refer to [python compiler from grammar to dfa](https://aoik.me/blog/posts/python-compiler-from-grammar-to-dfa) -Let's focus how `pgen` work with a simple example +Let's focus on how `pgen` work with a simple example ```bash % cat Grammar/ExampleGrammar @@ -92,10 +98,9 @@ After get `Parser/pgen2`, we can verify that if our grammar works correctly 1 + 3 + 4 2 - 5 # run the following command will fail, our purpose is to see the dfa state -# if you set the Parser/parser.c's marco to '#define D(x) x' and rerun the above compile command -# int Py_DebugFlag = 1; +# if you comment `Parser/parser.c`'s marco and set the `Parser/parser.c`'s marco to '#define D(x) x' and rerun the above compile command # you can see the output of DFA state is in the ACCEPT state -# means our grammar works correctly +# it means our grammar works correctly Parser/pgen2 ./my_file.txt \ ./Include/my_file.h \ ./Parser/my_file.c @@ -103,15 +108,15 @@ Parser/pgen2 ./my_file.txt \ ## the dfa of `ExampleGrammar` + + ![dfa_example_grammar](./dfa_example_grammar.png) This is the dfa due to [examplegrammar.c](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/gen/examplegrammar.c) or [ExampleGrammar](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/gen/ExampleGrammar) -## how to make dfa - -Let's make the above example dfa +## parse -The first step is parse the Grammar file according to the [BuiltInGrammar](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/gen/BuiltInGrammar) and build a CST tree +The first step is to parse the Grammar file according to the [BuiltInGrammar](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/gen/BuiltInGrammar) and build a CST tree The call stack of `Parser/pgenmain.c` @@ -119,24 +124,95 @@ The call stack of `Parser/pgenmain.c` -# tokenizer +`parsetok` will call `PyTokenizer_Get->tok_get` to get tokens, for each token, `PyParser_AddToken` will be called -Let's begin with the python Interactive loop, and execute a simple line +`tokens` are predefined in `Parser/token.c` and `Include/token.h`, which is also auto generated from `Grammar/Tokens` by command `make regen-token` -```pythoon3 -./python.exe ->>> a1 = 10 + 2 -``` +This is the helper structure when parsing + +![parser](./parser.png) + +There're too much detail, I am not going to show every element's value is every structure, Let's go through our `ExampleGrammar` with `my_file.txt` token by token + +After `push` + +![parse1](./parse1.png) + +After `shift` + +![parse2](./parse2.png) + +After `push` + +![parse3](./parse3.png) + +After `shift` -Token parser will scan the input and prase your input string according to the function written in `Parser/tokenizer.c->tok_get` +![parse4](./parse4.png) +Because `ADD_1` is the accept state, `POP` will be called, after `POP` + +![parse5](./parse5.png) + +After `push` and `shift` + + + +![parse6](./parse6.png) + +And so on ... + +![parse7](./parse7.png) + + + +## make dfa + +The function defined in `Parser/pgen.c` will take the above tree as input, and a `grammar` structure as output + +```c +grammar * +pgen(node *n) +{ + nfagrammar *gr; + grammar *g; + + gr = metacompile(n); + g = maketables(gr); + translatelabels(g); + addfirstsets(g); + freenfagrammar(gr); + return g; +} +``` +The comment in `Parser/pgen.c` + +> ```c +> /* +> Input is a grammar in extended BNF (using * for repetition, + for +> at-least-once repetition, [] for optional parts, | for alternatives and +> () for grouping). This has already been parsed and turned into a parse +> tree. +> +> Each rule is considered as a regular expression in its own right. +> It is turned into a Non-deterministic Finite Automaton (NFA), which +> is then turned into a Deterministic Finite Automaton (DFA), which is then +> optimized to reduce the number of states. See [Aho&Ullman 77] chapter 3, +> or similar compiler books (this technique is more often used for lexical +> analyzers). +> +> The DFA's are used by the parser as parsing tables in a special way +> that's probably unique. Before they are usable, the FIRST sets of all +> non-terminals are computed. +> */ +> ``` # read more * [what-is-the-difference-between-an-abstract-syntax-tree-and-a-concrete-syntax-tree](https://stackoverflow.com/questions/1888854/what-is-the-difference-between-an-abstract-syntax-tree-and-a-concrete-syntax-tre) -* [What's the Difference Between BNF, EBNF, ABNF?](http://xahlee.info/parser/bnf_ebnf_abnf.html#:~:text=BNF syntax can only represent,excluding alternatives%2C comments%2C etc.) +* [What's the Difference Between BNF, EBNF, ABNF?](http://xahlee.info/parser/bnf_ebnf_abnf.html) * [A Meta-Grammar for PEG Parsers](https://medium.com/@gvanrossum_83706/a-meta-grammar-for-peg-parsers-3d3d502ea332) * [Python's compiler - from grammar to dfa](https://aoik.me/blog/posts/python-compiler-from-grammar-to-dfa) diff --git a/Interpreter/compile/parse1.png b/Interpreter/compile/parse1.png new file mode 100644 index 0000000000000000000000000000000000000000..ecf6ff6061d4fb5261abfb09748030bdfeb27ba7 GIT binary patch literal 30786 zcmeFZWn7e9*EUW`7^HyGjnbv$5YmmLv`T}3Gz<+2(j{FgLzmKwgbGM0F-QwYGjt3f z{omuI_jO(O^S)pHAKp*T2Y=%XXRN)?wbnk?I*xrtXlW>3yG(T%0|VolvXY!O1_m|+ z0|Rps9~b;GyNYVVz+k{omXp!-Hd}AL(x9t%^z&l#qd0@N;+Hi|RzZ(`>4FrOfyxX@ z9>d}v<}&Ka)eSFvdY>VLcwqsxI4XozuhJtgFXiJ1eQo*l<*ur{ko3ljjLVnJ9vxix z2;0QA&0+{vZ~6Kk?4h15uQ!iCrMAQb_tI+*-gD0eVc;-eVB$+-U=gGL8~+GPKg@zz z=s!RF^|ufdAHhEl!w6O*lZFapn}vk_>->1SrGI^Ah_}O1(kvKKefsO_|G5#OjppAs z7Es4PcDq9f2>&wU_kq&TH0*z!C|y9n07=*2{V4O>-oFl1B69oJcj7J~Oc?tRl2zp2 z<3K(l{4>zMPE2PDLRpG601K3-5DV~g4@)*e3=gr4NpB99nNfyg( zJoKJEv=8?3Fe~wzgqa|ICSlT_@pWO#RlPh(nAo_MT=0ocH$|SlYC4#3cr1V&_t z@(hrIKoz!gH4zz@HF|MgLJwiCPIn10-)%2xn_<@Xi;^D!hvMi%%Pxbr{H0pBz~ zOYM^8Ai;e6vf%HJPE>z;d#(!@;;(!E{gJd2*YwN=j0|n@-^b%2`OgITcWkmS{_FTq zl;tTi?`*mT#(y0z168|FQ#-v0X8OO)x_Qy1>iz$A80>UNpJQa<;zs>UN@d{LS_G7n z>bG0Dj$5U62Vr89-l;3X#m1hdE}fz7UEH;cofitfb5Zt|s=yRq`iCHvay;Frht=ly z#>D<*tGt-IkrI%m#)!jNYqU$^(VTgG>+DJ9Tr4ikNz^OV?@nz!wHkj?{q+r92p>`6 z9^>+SoK(u=cen89{hk&q2Vd^@YCSP+-0Kr(j&t*;{d`uxJ#%qxaDIN++M8nRg#3y* zO*xlN=h7E?=?X=cv2$~+!VfX}mY*HG3YYVCr(dAtBD4D#hzWxm@|V8~&%880ouk~{ zZX@c=i<9J-f_q$HAK0&VIy~F0PgF4$axkW} z1FU0)NSz@yt&UMh0q5x^rR5+`ihYS25NJ)7YtQZJR7qvgH`ZFT^(}N+f#*lAKZ5ak zmNK0;zXspWQ&661@n`NJV-HorR$uX*KWx45ALMO=du>hM{WRq{sUAi|Pj{OR#;*O{ z9XI$XLHlh;6eVwpDo>*vszY6BfeA9Z1obcPybZC*_DH!(eOHZ8bb;9Ug&2`j!z^y& z;j}OFrBC5mD^lBDFCUt^=&$56apJp)tL_nUBsGLiV42RlQeI3cXWg(yGZ z8Hi#X_N~dY>1JPQZpg8WbEacmgq3()Ur_^0v9ZoDOO`*?zueezEG`)woeN z8IrwDZOctS?>d)*=OXBh%uij|?d46)bb@!ESkF95raPk^AUf75)JX2j7O($`aHwq7 z2YHOwXXSPH0(jc>ev6#u2}7Dvrk)dag##Bna~XK_{-}hkr=JLR!5!;1r~|UGDb2iJ zOYC+rzwR`hk}e$5|Y#kH0CEGCx~2@bB9^=FtT6+psK?bydIY z!K|Zc<6Idk-DnE2KNrQ@vp;Ii3xT5Icjh~L zDU6@YI-XrVdErJ^6X*CPjeojsS(Ue0X#MS|t&}pbx2dGM;l@gH_Oblfqi|X_=cb*o znwlE#JOnS+!MIJXk_!VQVXiL%n4t?2zWg525shuD^xV?a%bxi5RIoC#O-2keFl9KC;F<^-c~@RJG{h=lD=X|g^z^E7WA&K7kmc%bk8Tw)#?s)>+z5%rP&d>hZ_Xfbs$;d0A@Jw&@|s(V1DTB;#zPC;NzIY! z_od#mR0#iM`5MZ?r$txb=sc7rb-FDpy30z7=ivvOlZB5@4=S{o zd%D1GhDp>MJSm493{PD3l=K&I*-ue8t9Lqy+*RtCx%ZO4ev4BB*QhRFu03MfH>5>) zz4hXJdhdHpkKIc=1R1O2afoymP9hV8F}!hlY2NQqoZ#ka%lyln9ud@6b%TI60Xn6q zehH<|lo&1->g}RLs4Ey#t0lwV=OjSVv-v*k-^OsW5^t;Jq{6Fp4Xi3Rd%sCTAAi&+ zB*qU1;4+%>;AxeyZ>e&8&V(X$U%Fq{th0=b{`WoUEl07RKSJBm7w*(i35QaJ-(0oh zdvW2+_zh=tOa!6Bd`lx#nhHSMrnhSn^3XIq<)0sNpN*Fdn( z3;*pIsviZJm%S;~q1ygnM~Gzyz|Al0g=_BfbxxMB63=gJaX)A@v|qC09U`efvnHAx zi<$u(#E6HSl_jKimGpfLpp`oMUs)3q1H>;nOgapG_m9lK{wZnhPg2cwo?y+@AM;`% zy9e;h?ge8Y+A^vCfR*Z{Wz6=tLj_oPe;0Ar4S?GyJ^w~Hb{9LiI~Muu7W6&@o$mjQ ziTWpU@yDmFj|(m5`mg^_T-5yy&m<&R+V{UtBSN$lTH>QYJR02n4X^-UI>tuV9RC9^ z{nWks3(Wr$bpZ^PqZarB)E@u72KrlWBqO>a`X2}mNz?>tkiUob8^_J+@Z+E>qkqFX z8K}TnFsMcTCrb0<2m=+8E+~CuoESvVV4o|Aq^843;7XE3r5eVK7auTij}Jdc1j+1& zhqyNSWz36wedMq8gG}jxr5z=f9@=qTT0XXqdm-5Jy1CS1X^}_kya_%Z!cAc|`!m>q zS8|(q7$C|gHJ`j0;_qP{`2`sCR#7xoyf4z_*vR=rd_&+rm5*&21}EfN-uyj$7}{}j zO!&3`6k{O(VB++@q+pB}0SRMH`%}=L^5{i827-+72|PsF1XNrNT|>NouBQx!%ffgi z8WW2Vfa!ap;cA0J*7pYgYOdGk6?(SbxgSBml_SY;wn97=utZlI*db|1M`=VS~elu&{86rJ+}q z1Q_rAt~cL;TM#8-|Bv5))qD>HFkzhw>ty1822qBt1Rr96UxQf4nEw6i{~r6-?ELRM z{O>&c)m8c5dHDZ555Z+hah$F%UOX{O?!A=K)th|bDKE*(#L1nITC%qh=}wk##+}ev z+PA^ObS7uXOybi{YFN_hW^i$M@qme_E?2OkD}ZS?hqY>K;Ye=%uS^?UL-H`6-SMVH z6R~ZObQr9YBtcl-QkgT%tjfqXz%t@=ki5}MF2#t+Vp6$Zh6(W`!f%?qJEBXD1j)=4 z7tv+SZpL5HG-T!x6@Do^I zp7p2EF%XLfN2~U;RT-JN58Jq3K&monrwmUnK0rqJj|gD=wKhpV z1^52(06~gFs>)D`n2&TPP1t(T)h}m>N7Cpiix`4ex#hpeVr24)=$c{@=p{8AKNfEu zT{a~-vc@AgYpEc8*UbG+Cp-AJA!00GA>e0-=f|pZ^y*)9J$~&U8ombCQOQTVy_S;} zPi8{WTv%9Dl~-vl-n*I`Q!jU}-Fr}{a;rj#h(xqyKhT^wA=7wKd5c6lpx%@CU{r2_ z4aUw$7V_x#8fOn~@C`q5h#{U0ti~+wukdI=Sge_@-NVspR2{F77AJQQRHwzt>9q z=U_>`tWWh^x(VmWB;Cv2#Z4De11^URslA^5UeK6up)tL!+%d=jakwsE%P!m|zd)0m z=_zG!bJZ&1s;j(0WEX=ftawUP)~LP-S$B66soW9$F#fksO@MW{)@61u9nKUE27L_#Z3vjT1FWcYbFp$LrWb85w{y2AQI=CGV_iSg>f3{1vRU7Fk^rW-qi1`BEW{8h%Bt#-q8;qnViB;(hS$}@g8?Z0i^2fe{Gdg88I zn3HuICOiiAtsUj|4wInkv~pRAjmW@KoMdo$tI58cN4|Mvwt^ySGeyZ5xvKVw;nrW? z6*LRFdTs0&vo@KaD{F3PI8s3?Z^)Bc?@FU+a8Kk92nza7mpfhKmDVj2UM6M^8jezl ziZw|cj%0TSO1wYFfw)ToRET@G*`$*Q#_F1lc~XtXWXS7vlS}T3hPM;`4yd3&ETy=> zuo{eDIkK+hy;v(lyrQ2guUX56^h?ABgKqw(TO9$yhDB2TDlyhM{`Je3{CU3emgxIx z83t+n^WM|(ocAjl7$tLoB-g0?{%&)zLmjB z=5|UZ8+uRz4V7`l0u~43kPeKRlOQvD7c)#oX)O))^ZFGs&3IC6qPnt#AX;LVi_AusNz9_!*hbO-Sl^IxQ*qkwxuS$uWdS72OCUobHa(@nF4L6@u z$YF#lUD!G2OSZT{3YQ_GC1%OBQKHW!OWs4c?-DWJ3k-yXRu#dp30AZ3;dH;pRA58J ziE^=! zsPo)jp7&}?U($8#?$tNNycv_plWXMpd$2*MpNes)pEgQYzylY-F{-atr$~^QX#4Ro z)Cx4KX5A^IOF@fnzplAfKhU?pW4M#xm0d=Vv^@at#p<-!nxp_>2i}dRySQqHiA9W` zBfaKX=Ua1Hqi;bi?pbC~#DEM>X&uqa1%28TEsyt;N}VnlNs>;V@q*uieDo+G-!u<= zo)5+RG2$(b5&dQvC(D$(_~g%>d1?-E+VvuPXZ8B`roJ1sj?W2u7G0$}T~LgLG{k(d z;Q5>M5Qtnwhh52Ep@)f&qxi~0HS_W(Ob&^9(4Kf2qxd~BvcJY|2$j=)s9$b0JnBMI z2ba&nhDYUsj2lRJLk1UZMAC~tM)2Y2dW(6i3Uzu+o#}bAsb{d5zW2OVu#;vqSnhOe zLf_6_fHUB@4t!=z=L1HSGzM}fS02_WC2Is8a|ol>t?QeEZ!Q^<KrcrRGiMTv|qoREhqp`Iky7xt} zc@DQ?O{`*V6(Xs6R@b{vtb`3>>zd)?XmlR=sY!yE&t>EW4u6ghLKZX@)IlS@THFr7 zQfg3Xc21@CV|b(8Mx|JnD&@l?0Tz55aAyLV+t)Ib&=z?7#{v?Nv#!(%)lOdsJp6zW z7{mH=H6?`tIn&xI{K>Vk>HWM&6sd$s7;dmMn6BW5Fp?qQ2In>ye{LUx9)gAZLRF1{ zeQC0E{+rA-c(rQ2_Ab4IuEWDDykHMd)1^@n;|GCL=$Za=8i_5pW_c;?6q{Naga0wg zuI%-7)BMTrpgAjI*y7h%aj<=wbA2)P^<4!Fq+K+%fy~2e;DKKd1pj$n7C4umf7)jf zc%ya8d$CwuRCl}PK`6zYTgfUuI&*9qg1}7crR*YXz(M}Ri~Mue8CYefxl?<&zj1?P+`TllTEU=&5vL24kSTjFAa)eiH%Gw3bw` zpX5b_mEn}S$zt(9iP1*4c+({ct7AHyKe3HI=@_t<EYo3F{jnof5SEGVnryJW9T~H3Azeof%NAJoz}+L7$^j>OYTnm09by4#a!=;Y~qn zHGfK*m36~vYoDF>72<&YxMOuo=w7fiHQG>&|2C8!7;0X{)jMJ{f?BiL%(JiY^UxWx z9|aVqv1n{{jbvihwcrJ?o+RcnE2M$eWZVS{hQ`TU+U` zt|5kG8N|9wB(WU?8uVS%&P|MQ61y*==^#c=CQ|^dp_~(V?lW$k>DaV`bb!(Eww_j* z_$($@J)ONb?(}}c^5^z!@RP4Y{HU!N^L!h-V%>=zN@AWcX)NHK1ZtOMRp`;VwC_(Y zEy_j@!qHHF1`riWxsv|&t#3mG&An$YiOxq0E*Q@or$pc2zbARLK-ReZ>B{1dP@)tv zO^HF@6=d!?ioJ0u!@&{|af!xGjq)kH<~*q;t`VnzKs!7)&LtDF>>@@^)RsomitD2} zrK5xTR&M9!{glyz%7A@NpD0^?aN;&M0P@O=y5n&| ze|U=>LK=b3SDchW@;ONb{nTsz`P50Ur$&ZB0-E482}fo5?RM`D$P#teO**Y*?|jqI z?0$J$N5aq$?q2+)s++Bb7S z!Z77fs(A^t;Zd++TXb|#a5V@)VtW^Xv3cMG~{&a;=Gbwk^CLvitZaU zi`BSVQtH=vU+>GS+{?O;1{mmK-p= zcRDDodb#US2YzeyA#h&5u}xoNB}LldQ&WOs=^81% z5mW=RuY0tYd$Hc^v<8~?r)^{;rpkyDC)EDF@61Wg;c?k+p796=VsEvy5<2+}_0)9K z_v;MEY|R$|8?~cNF(p>gDiNj)6}4KrZq1x3ZxulJBn~cVgmkNzp99 zQ`Z|tP<$Z{NU{y{3f}pFF&Phhh3WS7%hNed{$bBH_eO;KR_6iHMczzs2w1I@p0-7v z)>Bu}B*OUwh6#cw`@?$PSL#s=w~bD!Hfx~h4@mM#fZIX z?((adhxXKHGT1AxoDRyoiDq8>k;m_$gs?(7qpT~K_&*u7ZX1-Fb9~Jb9n#d9u04J} zH1Jxsd35DbTbNJB<%*VL`*FbfH0L6lCE=u~d|v{6tLp@- zHULZP%Ht2YidlacK;1p$W_}PtPy=^yW0c~iPfIxYT2H37MjjWF?jEmI`p!t`!xVEr znEGRHogVEqXFl~fX%D9lSZV%P;k*`JH{KGHY6k5l%Tc8Fui2pPHzJKfeY+Ro2Cyju zKmk*rdbCDTstzA^3Qg3h#6?C2D8mlFHytfyPNxWR^S$C+gKouAaE{p(W;cyKYPL~q zU0JowSM1c{NL~n|cG}kW)J;Sg-h;#QE-pZ7feufiYRwE5YE`l#HHpKg>4jY8RpH3vu+o{!tHL2`iFE#gbQ0cg>*e$ABL^KR!f8Fz>gi1l67375{*|->@)Zqq0sw;zJ?vU(n>|&EOA+)3{N>`Z z)P)aqFW~TfW~5gyYt^D?d=?U>>l2_w+ePaub$7Vm8I4aD%;?rhxkrUL)jPBz@{A{S zf4J8w)(;N56`@Y&Gy@Y&rH+eodPOL)$gymUm|Ai1aO@e03sBz>f!h5t(8P?JpUH86 zPvA$^Jdy}zfEAkXL`}<;91ayV2*D9~L?4D!q>MQ9S}%ReeCVOss83$9epXS2TG`^% z3qn~xC})5%<>`fRAch8IPx{2xxST8DIio0O?+FOkn@c7 z*({C3$|W71U^@R9dDIc^y#N$1NLsBk>L>h4_cWHXSdR!Zbgh>ql8a&F64laua& za3`xFM{8(cEQQQ~BSm4hXNIlE>wUmLUUmljZCNzEl$qzGV?BHedEW)mQp*q`nfWFs z)EBz?x}%XCYjbrtTM)?G4HpKM2|+7`=xD-!hK6YP(+tWDKgCO?w)eP9;RijO167U)m!FRh~edV3u zj{PFF>rwKRCbbnyEBz(;ijxC9(#K_Z{)nF-=~~2f9K#e15^L1UIbfwi&`M3_;mI2M zW?m)w_QK)k_K^4-BV`w}I{=d%4crQ5$Q>G5xsm8e+mBQ>Qn;ZR56TY)J4DJmFimvH zG|9Bw7UdU}oipbL!bju%0c`N+YEk$rk&!JjNI^!FEidHabXlr-Sz%>WEB}FvFLJP| z1b`S9<7vr@qy8ug;Q`P^&?|D9f|n;7OnDYgE{Sm%ma{wTH=G?z_9vAY5y1-ewX?zj zu@V9pqB3<7B*A0rK?Q9v3(8-w&a03IE94g@Fo0FUbnBznF$y$pMwQ4SnsAZImPVvf zxAdW;xo_GD`EvWkQ>oOxJEkD#&q z0*za^IPJga8f`t_XUM!(UJg_%zK)bp@{;sn3h80CtL)^VoMTZKWx*0Q?yvGbHIvS!KzUPLiJf=hjnMGw$*J+OkLGWc0q5(YnIcqQqvye3RqX6!O!~dQeDhx!@Va z6+GY?IsAet^|pZmi-ZLKyprur@X$4!M9@Fm$-RaK`eeq^P_-{mKK{wSYPk_^QzJ~l zm3gp???ra`Z8(_k>HF4wcU9e*5#Oju@@icI>*l83@VDhEyTJ?q*i_I!6pabx=`Wu> z=k@z2?i>d>AojnT;UxYZ2v`QHYaiQ9ZX1_#^1Cg4At)I1EU%fFEZ;EeOT4vOi@<-Y7S@|r?SN{H5XVO45};wD z5V|DF7{fwXJRS*+YSjKBU3y=??&YP?g8{WOC`m(n%pM0Oh)(h{Wd``OJ5n+E%C5dyv~pBiaVg62;x_{2iHQG8x62m z(E$6;usTd`UH=@}Wp&JFL;mtrTr5m+Yku6mw7jVz;PCy7&*56psV<>E*GDwE*=pL0 z&GJ7O-vvv9;oS*a=B?3Vw`NV-`YF#V?nTF4*tDfqFF79ry8ZL3jm9SGAwBvT4rI!okTY z1#f}2$eHbVEmn9bPXbW{N#>*kVkwtg_~_mpzgZ|r(ZsVtUs$` zAQlAc$r8?h|6Mfh-9vXY{@nHM(!JNO`ty(l#-E`F>o;xZH6i;iPeD#N%qjH*xU-BE zGBF-XB)OtzJ86|_YPr~x?AlJE=slO$d4;!$fzs4H!JynRN&RjDz<~w|F;t6s&#vqa zlstup=<=lQ#m*HR(Z>|2l#jaJ|-$v9!G-ziKN(+5ON9 zAh!!~Z2CL``Z28N!UMH3nAgTR?LB{O9J*HCte5jD?qu_Qf7GPMR7bw{?J<8h8KRT} zh999IY_aK5@4W)kyCX&U&xiThqB*}840bGdzTc!}f3`TPzXu-ucryc(8h zhIY2^=o;mZv&A)P-CFVIVul`Wa+9%ZTx|(`R#&w6?vB~0NAB%p70-L&-ESF)@xh3Q zqlF#=;b-T?Rj>#N3cb4o>ufK>qpxnF2ZlnV}OR~0*(_kPsNnAN|PfUUlwaK4;<44YmKX;iIQP&T zO>7#W8c5qe`vv~-K$_AVC+Sjp7umcvzmI1N*(IXuwQaGeVymeU&k;kL?kL`tqQhM^ zFcoc&sV-05W6%bT30MP?tMr#S^8YZ0+AaTCt>hI&=iUCqpEYDTHYTHvpxd6S(~cSZ z1@s04avx(whoE~!|Fqx~xWuV@Zx!z98H7U;-DPVX!iS20ShEC5ylFunlhIm|9Q;>9 z@{fT-M<`#yRt6s48F=uI2S3|cHvFBdHv_a*F%3y_-&u4*`x!x-aI4a!an}L( z2wwK;fJCS4aeTv18y$~==#JIzc#OLXvVdc66^bs`w6-DGiEM4O(!3_r_Er7S-m7=(qwj5GXHBm=Ez$5dnMff?8;cwX$`$_wP?)RRUEd)* z0WG(9tKJl(aN^0AOyRBP-ioqYc0iy3W7QeIVe?w+#%-q70bBR?nH4aWVpy${%@Duc z^SY7wFwmAy;cy&J3zVCU1BS)X8_0fO20d%o+zQ-2`Kr&Jx=*VPdpi8=K$*5cmbu+FVQM-xh;@|)^uRd**eb@r#Kv!6 zdLPkskHqjv`MEG2jsQ?3b<0udP`ASu3X6-ojWI7_HTmo{UFemsGl&;w%U_k? z0MVffL*ila1E~7=ndazg@OiI8b^Z?Nic$bdyZoSFa#}Y?_Zih~uku6W3Pg-U)NQ#h zdDJ}6Kj!|sDjkbNk+0q$OYP`jV6cITO0BCZou3IbFCpFc0UYS6Dg$&c%&J11s#Ha5 zv8aVosaLIZVdeG3$f^S^O|Qvl_6EFSx>7Kk>5_8JwP8slK`YUTUH{0=C>O^O;|;rLiq%(;uc~iDzP=2Vwg4x7Zg3&T(FU6ml=a{@ zp3s6{#2&iXKL*uhIjOFw!h&m~%&)d|ELlQ+d8<}y@u@h!g$)C-5|~8x@^p*u#6=)m z>)>%|sFQ6tDjt-pPeEkNKF!y|X918bsmPr#4Fd!n z<|kP31Mru34-0j$!FOD??D(&sv6+_Yro*HFRqJ;5oR@=EWg0W7Qh$GETw(afVbFpt#w0EL)%(@NAhyH8Qbx0P5ZUO;``}`E3k^IVIp@GE zLtHG;m)pNeMvo(hgM36~nGC)Tf5{-DL|AB4L>5Kn6S!MsVu#imkQ9D<9+gCfZizkAzM;(qrZZiQQ%2^Y zI*?QeGJ#y4Q)WGq)eukT=Bf_c0mjTNYHks~cm~)J0&B4dAQvRVc86bm2|jOWP=$UF z16NQZ#J>TihM%E3EbIm9M#j&p&tp)Qx6+>_+JYOu8EX5%KztQEha0gqi4x$KUDr=9 zR>1@O))`gJIB*N7#O}MA;00d?$w>PpSD4Xn-B^}1I2J4EQ@nsO2suk5g3DMAz@Rh| zLohIa`TG8j{iqwwvXp99RZOv*~d0f**p({`eG@ynxP&sbmVepb=XrX$E@Q z3SgWuiSuIkFf=lLW6A#w4vzJhom;>GHj$=X4|}N$%w-!=(IS431Vok5T^wM@rRjIr zd0?GcCS-O^z!>kNA#ofg@WkXo(ls7~MYtU!n}?bWutbEere5(cP(?zI4M#4>5-Q;p zCy6g429Ng)04cf!DxffNpz4!G(;Y-)emy@sb+2 z6>ucFB|My~z|0%*ma?*P(5vcxk!^L3z7Kd(Gr!-*Cns?=Jxtdwwk#A;3nL6}M}w_F(lM17p~E@8s`-g2wM&4r`*U4}cwKOwwqRSs?`Fes1AfiSoI>$xgMdtH0T`KDw~z}J zh(ms{vvfi_^iDcK+APOOPo7lH+Fu8%6=wf<49slD&#ho2MkhWF1d0q4@$B|$PMqKm;Dli2 z{EyFoIi!jBVS~hAqP>7Xdf*wR3^#v_ElllQ9A^^fbfGEy zc(>symI62_T0`n%Ca3}US%;Q7BEYh+2UC19c`%^gZCAymnr~B{r**65tV}ak((xik zDzK&L;{0Sfu=VF$RF&V+Zf%8!saLU;VYM-BALV*22- z>?g7*8PHKvZjImZM?DnvE0@5|0eN)6z;RbyT^&(v(+^KC#`&6YM-?ap*wM>5t7=M( zb6%qfPn;W#&HbquH%y$XAPL`i`Q+XmkhUzGHmm7G(F+B;cuTCMqJay#Z_uq#Y1WKI z^eR8UBZ)rw6(H$!>*G#wG%|6kL2sa2`)*Zc)&XW(n|*Vh#GxaA`;IC?`Z*^pC-#MD`j^fEoHNKzI_9?>y5YVA&O~ zWK{@hi#+|3ai`bx-Q(v0b;kNUso|orf{=}-n^HI-z;GP-L{EnJhhR2BlG+CRK*ama z&d-UV^&w2Dy{46^fD$khaQfb$RrhvSw5)Du|8L#FQM!{4wfwtKg$P&E6kvv758FHG z-=3%s3^n}vq-xF{pfE!@Tx1t65gnJs=V;{-hEfGVfM1;_jUD#uZHx^3Z+T>oMf1PC z1uk)4tAGf<9k2@#qL}XVR3Ng1YJ|S4yz&sAgct=FmA;Fi6(8Z$jYrA$ny;1ghg<^X zIef|y1|-w28t^#RkFgyz^D?m{l=W?6La^neIVnVIiM$k8#zoEe3 zU-DBe^R7BqFVuOsM9-hL^HHfWgQXpdID(c<6S2AE`Lw_`I?SNm}3vVT3>&^la za)@Ts_24rJNDQf(EP+-VD z>HMh?kQ6=lt+AESe^yAk2kL6hD$i&H;_ znn5Nx55O26>m>CAkN-~vLUFW(f2b3?e`Y%Vu4u7A8u?Yxp5N!k`n4H~AeFaVmVpFJnH(%w<{5w@ z1ehhS)hRANf5+r%IKf#voYA5pFFfjDld6)xAmv>&@{mPfmb@QJoP-^5fVh3kNCW`Fof2oEe;V3A8B z|9t&-|Nj18+4}jtkDQv0J+DIwJE&@kWQuirGD(G9G5`?a7u=F_1hq@&+h^3*dC;;Y z*~`Oq8&iPgzUO#;ezKLC1Mv;}rX!FE_8nSSbtkgIC*07x2D)ij^Fsdb33Ei@UlN2q z5rM-guUyLdHFy+|K5l--WO!%+V&*d}Ls}iIglSo4PdZ~!mg24VUcYReliPB*pOqiQSJGhKbJtggHs4H2j~?y9Z)i=1Ycgc8~nJ ztGJAF4Tmao8{7A**kG>YGVakf*hcwz*o z%Ya@&<0ma!Q#c?@bs{^M^uCkku!oI`V8Wc4vhMuR0u;JlK(oX4T&m}42upa1l$r_KTS`@=) zNdT8`FKg!m(plUU63+;f9DZg66F}~Ak>Wbpj1Y%HGGzC+>+ETsXejawR4?5Ja?;SM zZ1bc%S*TiH!2COd9=*erL0Rj*tnsI^swrFvfO<9Z9D9W4zZCbRY3H+tV^V|En7-fF?*qB~5l_wd{vrgF- zqujoePpZ{T-^I{DCOBtIc~VXN|`4U=oFvVE%6fM8dl>@sp>5uvY&zaHmiWTs0uq(K*t385j5xqBa0!`in zt{)+;Nkk5F>xa~r_eb%-mCkolTf2Y)Vxn)*d=*;<^vOAaye-wMLgi&$zAGw^{!Ga% z;K=G|!#Qwrqz{`&f|&mJl-Y;5x znS+$xZ#y`e>W)44OAbxY@@`_k<=lE!SA?NQn4D8#`o3p-wrw(?VAuT%e`i+*r8yVC zKMpm8$)j|Er!IrZFa#;{$e8`$grFEE%%HpOsshWl)B$O(bF?zPdM4@`dY z{B~cldp4ZDrLSsq%@}!q@CYa#xK6fOTeG~TecrI0%FVU{}T)?5IRrQJS**LI+v-<`x>UyeEjw|@!v#cwBDagxVMKxeox z<(7Bp+5~+WN=TBv0fAOC-t?J%_)@7Kmn8of2gW{(wAfw)1tcGYiczb0x^6yJyeImm z;HuNyl-Eo$5LeacX%FGjbnfT}0u96Jos#NuRp{qfT29_(RH7eJ)qMAO^uz-tQw#=N zxc;t_&cV@H2MGvm#f1!qiUc4lXmF%9vD%hVA{w4t&ADvyyLmvq1X_4}$j>u(|B^|H z07rV-kTFn_yNoKLS!os@mdAZLzL;vhsb@2^Jf#~8o>YAa5+cg17;7S%1;}uDwR(8@ zS`HmI^i}daq2$jWcM#W~p|-Q=$gEo$L1$}eDIlgRA?JxE80F;A9Z@m#Hm;MXsW_DF zN6chW@(dMa#Isbbw;YHuxr;JFMgHUW0Jk?Pm84aR+or*>L&!CXg@f(>l zkzKHHy62kkcj5+=E#oEA=N!LPab|2;M8PZ|AQQ8)@jJsnDijZ^_^UdldN$cJ%ji@(loKPuQeV&vUpDO!2R*uKn1WW{DWzU;D&R@-F+e9mPmg zdu}M7BFIh3sde+{a#LAq${$o-$P}w=jtMIn_E?%?+rQzjGB67H&lqD zg?A2R8vS0K&=u0Ox`sO*JF0r@C+*Tj75$Cq_{KsL@BFzT`V zQYC-*pbaxP8k8&oDFX^^GEgek)Y!H79QTEY`y-$(F3!Da;0G4>U$6!h{0b;3`6y!k zuxd@y4~TJcz&29wVjW}Or%IX|We9IJMAGLn{v{)TOlq~}vi3=U==E44!|8A)uobmF zKBV-Zlh!M%>HK&NUdz2D5^KSN6VmtB?tuz!X;|T14Liscq_V@(jYIT4U23NGEn&Go zAWrIM9JR2MY@yBOq2AU-lxjZ0Dg8=(5W@hd`5tk217H4ksNj+L=0|4MSq(_i(J42%YEF+^`<2uy6bsZ&{LIQg2DFEkNi+;QF z7>#==E7#!tFI8A4(>@Sv3)P#kfOeI^?-%7094RYI0V6LuY4pDnC0VOBg!SRvAQ;9A!;qJW^>n9g^d|LC)D3(43@Le2**wkk##dxG5~EldC!v4WJy z9EgivzTHIRM|mX$rnDDkZ%fR>os#B7j$JV~6aSG%qj7ap(fKc_T{ z2UOdG&6X1<^9^0|XcSJEK*BXfNQByz(957!BEyi&co6j;RcotaN1?-LMfxjuAXV&M zAFuX!t{8Q93}2HCp+bBIlqU8#et+jrZa+ui}oIa0#-3+QQ! z4f=Mz2=-qGyCodl(~VD#fue&|r$8-X%F}pnwgVg&IXVMgV!;a#U5pp=!cHeWFOb9) zOPryGcEOikLh3dW`SoOzh2(qUk}6r)iiEj_;;@kqU8`wJ4VR^)omxo&^N>y2Q~S&4|b9M2=O)i57Bjo640o?ao) zUNjH`6J7XvaL@Xc4@_hdSqt zl4jeAwhJR7DN=~P3%x<&n)G~P20=|^oc`Ulg1J0%KETjcFRjf>-j@!C zB!5byjLt$Uo3zw(B*ssixs@A1%dQugx^U)0;K|?(apxLwb{{sK45>?V6ju`{M{*l>IeGi zC?EhkpY14cL_#2--?a1jZosMcAf<&A9%4S+Y`0SWmy~@B)a!-(P9}QjPWInaZNQ_6 zO7qqU>KDi_e^IqlO#h&2JB4WA&!yLKw3#84CQpOEgB0iZ!JS;ez$V9gj$q3M?xB83 zeo?VL9~l`fspo^1XdjHGfETJ5j{`_2w>a0u9EXa$Vw-?zDuXDuOm6cqb?#7PRW`77 zH_mnvG#-6DQ?hb-2$Tdr9J7bSe!_<}>icR_>Bwt5Von-?%CGg}Y-?IrXd|v?HMv5l zxXg}v*uu$DpAizHrP_Z7uwSknN^8G~7;5GLXq;v>5PwmCy-0H#_{#Rdp~X6d(A;3u zUep>K>_@qAxGj|8ThT)p{7orNC87elq7p?1Uv(MQGl)2Uv{rYQ9H%+e8pQlzyJE*L z=_tT}foA~ZKIxqZJl~_=3ZOPk@B#9MCSPw|{g%V#Eg$19Aam0oa#YhnK;zI;^YU9WAAY z7w}a*!)$v?DAWIGaA)Y1nOS~;aw2l`?LhKNmgJg|egQGIsihg{cP*aOPVM}!=F^R0 z)aYj=8%~%!+ZOJ-`>K>0>KrxQnkS`mG+6F9bGGT#d}11Kwr1{YJeiT1DgH7i)465* zq|vOj^Gmv5bGaK_U2UslklV?~PnyWoZg9hn1FbBCT%dJ3n^#tc3gf(*ou2CuXxr($ z(-Ivzd4_s0(;#)&*x&sj7`xdGHO*>Dj;QMg%2;QKVb)TQ%p9lr_dvc+m6QB`ia}Cy zuutnfvZNn#LThWfxmho_=cJ|bGj&q~XdRzmHMnlYzTg6T$l!3n=8tTRSHXUecq-%| z(Gk4o&Ecf&^Sb7PiQbd=%Bs9lP7Z8nYa9j9z=l1vzaMl8!QeoGA1!q+D3yR;QkPe* z|A0J$z&+OAMDgry=8an>sW(NsaEQa>>M4+epRnMcV3XrDJy~X6XZxeR7nSoPCr?qc zZ-68!lgqg7N%s8t9A)b*P01se!9FO|>-IJmMc3c9H4PUX3{UD}>EYgSBF|F*`fL(= zWFrs?YF6B^`%Ptf^5Ga=p;;-3JFhf0*&PaAU-7KF4fa5-#!@`|0Vo?I0+1;XsbKV*`lICv_UP8s(MhVuy8d}Yn4H$XEbP3}-U@G= z;BIYAiVRk9QqI*S1`E5C$Q%D9S$eog~IunzEIi@1?r$e)sbn$N&HGdGWld;~3_;F6VV_-_Lf^K=g;< z2Zvjl(PGyvQ~%)jp4+ch{-OU9|EB*N0)Ny0R~Ch{g**;h@$>vuoaM=Q4^_bZ8^bM+ z$~1XdHF{aySYIRdo_{!Iw3#+)%_jRt`u3h{2a(BV$IAt75(3sX0@@Q1jYjW8+=}=r z%OW$i2a&Je+r1!Yi-7V1$%yfI3G>oF3vDHi5`OeR6aVSokf8c;3<5=#cm5 z&|txI_dlxs);RHu!&d)3&0{jF_|Cte<@Qtkng*e9T8ARw_XXt8o%B(OxEa&NP9`GL zPOo)Dm&COF$~p~jxJ-gpgQ3rD0iUv=5<%~10m$~2z;B>fVxROcfn+9>ED`z!oN0Gfn@)9|)`b6Ko)eEy4!?DeY$0i~=K;tp5xV?blKW5q2Jad(R~@95t&ww~xpXr<{Cbbq$UU_W z5xwd4@2eMm8{Lw2$WgEd-FgA9GARB$r`&%w9~o+yZ_WVfPOP6?tS&N5IymLNCJ6@B zE|!D*p~}CcUpgPMFjzhfF1xT_!Z!@mR>4n5!YCw?r}~N+m56&;(MgCzT#TALvMbw= zJ%EB*;5Z2!F5~**0Z6&PEOzek*pXKE1Jh5a84~eQz*N{#u;0suKDV{C5(XnQ1F*O8 z@_}aYik0ST@Eov@(0Z&Cc)R6vZtYv3G@!6ZAn);4<6tw{#3x|&A^mX#LmV}?4pq> z()wd0UHBLG{`1;z?wuZ7+B_$IW5IzOQli`SZ~0*d;214RP){8J z$5p_7jPn}qD|>8u#5>wi+>?5nDm-AQ09N$^9~8L>i(~v~QX6;Hc?gLM8;CWg48f>0 zpZ1xvE}tGflb?O1P!^u~m-0u~!%)-UL0RPl41Erp1~w9mr)&wAJLcIxm}RujN{H~F zjzT}Mtjo9KBx&hAVrM@@>_SN&)!qi5Zr8dP&bjxA(@@)#d(JnD;X`Lzg9E_Zj38IJ zMQ5{xybc#QJl8a^dU`@u9VzM#M&gUqq5c*tJ>t;!P7HouAV3+Zv_JLdKDvVFmLB;% z(KHxoddhPUK1~p~eZgDvcUr(Bf31A`kGrTbfJO#WOFOmlq3xPYZ%nFVXD43|kN~pF z7Bacx=>)HM2|yKQV}HY=_YR+JRSQu5H4<_Q&9Wisqrl~vrooM8C*;v^2l9v8vEI7K z6G56R3*%b0=@I8$Lhv#UK;JuIY1k)BjIU1Uk+R+jT1rJQ7ewbHj|k#!x|sE%7_a4+ z9;p}^qdE#-LWsF13Wh`M#Q4GP9!b~iJVD*m1f(19ihmPRZs|29OvhrDL}ud=EbbWJ4v6^`a`g?$9T0u?CcLacRi*vq0`Nr?4`UpsuoiCZ)bo zJ}g(+ayMSkbCGDHuI#nI{F8KK_*It(S|nYW^SZI|Es<9>R83fZq0u5X9n8H|U~BDY z_ilbSwJhG~mfOd~F^%DAhFc!7t&HkNr#^xOvm;w8??4DfpAMGbwcV>Ms;3?_@nZ)HeLH|+xS2S;_o%2F)X7!A`1%%4aY z*>Axf!G^MMXh1NsiKq7JZg3p-t=M)rG3wwT6!S4O)!?tQ2gL@uJw8p>`N~@(78rE5zw!kH- zRM^u`mIz@M)?CL=6?^q)C`A&SeK<%b^gW1;t*bmJ<^Wx-_LaI7bg}t6QeOJ#8=d-v zRiHt5y7G#v3cmuJl3-|nK8x56%lj2KS0{144_y&3#2vVRB3|_Rg8tXLw-MGrNCC)+ zhmKWKNlw$Vl}COvLyvO5*Fq}qGSE^M&hl(6&6!Hx>VHmlP|nS^{m>LU zDvU${k5s7nLk#Vffw)tHTQp71%YI`G%u@%a!ug|Oz^gsXl#67x&L!fal{QTQ`4NXk z^&2#fA_rn~rh$Wr1O80S8UCD#&0M_{K>%OIrq<_bMH}#(ng&;|GIfd*bHchn#qhD99#o9=Ob-9jGIo^IEN|}DL>>4794}b6#0{N{)lK(fR0jF0h-~# zWcA{vumXah06`bpdG@l?tg+0EB8K-&Z0>T}tk55#OM3#hzrJ`Hp&WgCbjYJzi3#8= z@t`Nq#o@p%+f$=44HnmLZS{cOT`p^tW*U(*iRG%b%{ybM?6P+l)a~lUbKnRUBUP=> z7Syuzl(j3?6sAq5-#iC)&hOu(R;kiYY8s4dGWGEMQ@|??i~IzasCmr(iF|5lPz`8b zseC=dtp?bnAyx>YHo5Br zUg&RaKY(VP1g0yIdxWdcKgSkOp;2$b>qwU35_Hl%<+-<7%DJoO>a;ZEdO3knLBDddcR zWITRlb!M7d)OozRXcC0glVy?;+xF5>_p0(360>@YJjd)e@^~58C7TMY0Wc{%>) z56F#v7wu2ZIwf=*p-THXG_V&9KnolJtK?o&)s*tzB20j_e2Cdv#!10>aYXO;5(q0J zAvqH4#2V0|8U1kqkl1{aqvj^sp071@4CbU|M8zOXRu?fg!A-GZca!e*K638S@H!R% zP27H#v}JZrD{}9KNZ3&(1Wv~y%C*}5v zX@C83qCi7OClUe<#&#F~mX$t!qiu3hU?>~vCLAF+2X*a?GUi^F7qu$1nDYM=#QpemQ-(Wk)F@q_4|V|55{`c6M*T=|U6t=q{(%H>LAe_ql1r)0_aJoAvF zk3RFGwUT)!?og3v!$b<-0B;nbw9|}L#o?O0)xu2fdDDt9!SoQ;p~j4%VY2Kk^O%U~ zmCMIoHFV>YZJ-*;=K`zvRrQK*Va^3zQ{<<6vW1Q=cakH?YOj*dWy1bStz97!%?vqE ztfS!={CHxX^wg;rU4CKZh=gc;{*A361uE|})G=Aa+C}UCq)T@))i@2+Ou1Ku3=Trx zwHR1Y=yE3#2$>ceUr%%Xu4xR9JBHE*AYL>t{^pO{q2l{u9@N0+8g~s|uSBQV@@Vjl>avwhtEzBH= zy~zZY3q%}Zsm-yQ1~OkP%!@Ev`g}7nfMm~IOg*ocaVFQC+v%813+tr`M7$U|<~1Ul zb0+`o|C_S&LV|7%HkUfyu+gjc|ET!rWV4BkRH1hogxn-fp3q5_LNy_>LI*Y{aV|ub zdbo;?q@|U~YBPeYX0dK6B7cRN+?mc~a1vvVG;)*h7re{@yONRN-u-MuLzbfMv^(VN zqgUvj{#GM9iT&zZ}v$p?F<@r@`6Hb9(WysCRQD0wKDkhc@jD(%8{9A}5&5R;;u~rf+ zLl6VcoifCKP}^{#UK?v;k<{b!GMJW_XTbeDToYhK^q$ujkCEHMD8iJxsWIu@pk(XG z06{B@mm}E(f@Jdcm>yQxPtv+TWOYZBix0%z&g`TXR;Tl{fLXKFT7a**#|5-<`y{NT zFULV6ye0HQy8{R9D+mskZ1OaJ(+TD#iTlu^|7b z$rk5ekv?Ufe7JbFjo^DXUNj?B^i%n4p^M|5EMUJ9I^G>I*R)?2qsHaT+3(5N$v|2$ z=ZmywI|3oX-Ny}12!YBz9*4olaN4uo`G6c|087JM+_xi*ZhM-o!%v0tJ!OgsE^T57#(;qq?gBQe(%#Rl8vitCTU-q$7U682-V?d8|E_dER1-xvV- z%=N}&Sn}24KT#0xVj!T07nMxD9BTT8%FSwJ3dWf2n^%%Y6|x(jCU7u`6EEpL>e~fD zV_loW<;DSyL(br3D74B8MsrbBZ>Dpe9JH6?#gU_dXVO`xH5VnY`Y-Z9EGn{PJ=TNG7GejXcKE9knQ(7 z9<}nKz1jrz4fX?K5jN}e7RNH&6+i!dm6MY=d5@=0C{a0)EZ`M>M+8r;*fRCuV^(z1 zF$tShE__jkrvSRzei>5un{w`*gIuRvT`JTkm^VH*ib3uwN$=k5o;Ba%}$mwy4x_+dX=6)hEg#$zgVZ8YFZ)sB2uf3>dF15_|qe6R&A5W=wo5I*NbXP@sTJjQqP*6}NC(*tVkvR1hpBDo* zAfmg8r_BdDGs?Uq)!bes z532OrO_#_slTJtg3$hh0^_nwA7-qev`6H5aq&P+(7cMueGDOB#dEBL+E@7%U zMuBgM_Di1o@nBnkM`^Tc*DROkcZa*H;dEFG=@seES`*Jlmg}KWu)a zrpfyNotw&64||I_i%>vuBW_I^l4RoWeq< z{yvYY)cL`32h4N^_c_oN&Roog)!je^Mdv5r`f}$q1r5RUR!7%++9y|hG0~zDj0T*+ zIA2RyVM>~(A^;B6D70H-h%GtzlnYdjj-HeCp1*JQ%!n#d6zTkWhhYKumd@ZLYdhN% zr998#CE>ztYik~-WQZ|X{-_nDIiqzZr39t?d^_S{Y5nqygZ#Plpbp{7wF;TqAOZyP zsL#MMC{bGYVj%DIt&aFNW=`X&G-&z^Su!IgS~XrhpN1zU{MOP&8bC4eio_f}>e4#W zCI7kJ!gz5y8IWmDwhxu?#_(;!7~B^0;LF3zB!}aEq#q>rD`^;oQ&7I$Wi(`LkS2Gw zx~9CwtD^FO;Eu|jDj9`!11QZz3cS$Su7TCJC@g!W$3%QE7mG~U4Xp=mDLGC zRu(^LqL6K=DV86J;Um4X++Rx?H9U? z`N|C?kVzw9Hv@Gy{7Qo?Bp*n7JWTzm1cV1RQafuO^#k~}9ed8uPWzKHwCcIOd>SK3 znzmnqah`1=wjmUhOe{cNR&%wIk(CI~B&;07OFXkV3znsfK$HNHw!`*auub+ULqYSa@|fD`Lyu8od;-T70>p|}6E zQQ+C`??3Ay`mI&p^=c@F=QOl>=J2;Y#xC$Y*BQ;sXytqSH~kc1>j(Xk1`6+V#E(=> zw=gPOUk|Wnkr@$*^zpL?hO7MUPt!A^F|!?IE@O&ou;_*gewr_9PXalMZ-4NtBG_Y+ zNL_gh8!Kb}8--?~YrrJNQSIELX)M1p zBYi73B#em`2_1%OFRIu*Pi{DMoHGy@xKbD&>h7t4iOyou7(n_I5@@?(Y79yq6VRqq zsl6dwhyh=7Z>kGx=!SMq+~)Ck`hf0T*>YrHC3V{rzUa!%JuYjZ_W$`~Wf>%tZwo6& zh1aD<$V-DImq(vXC>6L260|(M-Xn*55E64j`4%oHxffJiLr&TM#6cwuLG7mayyaJ=igmfW6X6^jK71q5Wq&Z2j!-`r#`uNH?yO#r{>C3KWQ5L>m-w|nRPV{>%wy-O0c_yDSr&M`t$n$M_R9WCVlczJQV z@Nqw+N54Kpa$fuCC->1REt~@{#AigTVZ_EU+bU3_T=g;r>&(+>u7SbDQlx$nTfjMV z)zC_YliSsZ#{)kNsRt#BR@miJjqfFwVgndMFwg5S6K*spW( z3#|G0>6zuJ()mVi&f0{-@|nufLN6m9F_!exZ=)_nw3ZCMI2j$P7m&<##&3CDpc!P_ zt!s(RQ%XBkTzSfcnj?5mF*X^^bZQKdi*AoDAowAjN*R}nADnfg|McNjG8m-ay?NG; z^Ix}|3C-xM-k0x z-B@z-lyrGzWf<`7&tz=d4wz_1TjnYDR$P3&YYku!GHrZo&KWK4^R}uyUn%n$&|{z@ z@7OrDK0N!_tn34#)MAr}k~!dDJj1pigIU*8XHnpA@Po)Gy+hTY%MJBjgYN$U#6&vR zV+pZKq6Jf9i~Xt_VLhA4)+e;w^ueyLueW4fMx)WC7hdgRore#dzxkv5F~lfbo#&MIZh|Ngz7!c3ee!#bVn2(i8!`4Y#M~X1oPu#`ws&8k zlqt4RzehnWG^Eg8qcXPCIW943$l-Q}yYCptHO`S{XNmF(gM=4CpBfIfx;gDb-VE)` z(vnOX5ug=S1U0xu(3O8?x3w0FniHBlv5_KV#A^33h14uouOLa-{KBC0oreKUK9$+0 zlaSQY6ZocTcY_={qK!R>_ZBon18>I2utNLXvcgg+fjS)$C{nz_!4(r55D>7Yf}(co zchiOCyUB8Gxx0G-PVKGH78`D^6{a> zo&cjT9QOIUsZz6NWRN0rnzs;e?a}2+fL&j9b^R19X7E7L&NQ4@;>FlgQBh$-XR&gO z2JIF9c^h(%06G{3OMbY#rPUVV#~thUO*J&azS?fW-Z90zTqkAvTG-B=J56?|e9HV9 zV#q^zj24Bx7+A>V4Hm~t&ViH8NRs4?97Tm=Fqef*pxoADJ2E|dHu)t}TBc)=eA;uN z!`>k%2$W?#3NJFP9A1fcA9YH5_Uh8mS#`A5ZWK&CmB{p+!=!3P!vme57jdlBsDBtU zk5OFA^*Q5cZ&w&yW~VoZFD(557N6o=ofN5is1U*_*xq2Sr-TZU`z1NLVao;Ms6ctj zO{R9vBf0mXUJSViajuvfFT z!3Q=Lq(z=f1!xCR)y`$z)N?tz%64#mX3{YQo*BM-D*$FLVai~xqucqFXC^Snh(Rf5 zCP3;^1K>>{HZM>!7acS`$8H zX%L-V*85X-@X%xK5^8!^JjtA#^s?#Kmm?0yd0sV*9UicAY+E(@MoohrNcnQQ{eH)* z5M+q(+biJ-k z`oTWk>uo16(#VzWPsig9;-|CK=6_vF*^07msl6yTJ!CQ@BmO{l@PYO()lg!x6z0u6 zp!7azt$C~C)oW|`swK_V+o2KQAK$18`vQiiWwE2AG))OQDjK{$SBxm4ui803D&eH?zTitJ~0dpvWaY@TV5-0GDxT=i3 zNVnYjVZg^-DC~nd(tIZkx=o)mg#Xtg!^Kk7;HeH?{OhTZj$^l9^9UI@B)-DX{1akU z3>h^wLyu=Hg%jlr-Oi*^BTe`FY53wyXHpGkwlW*#bG`0K9!_ly5- g%KvrE^GQkZ(dWBeRS`{aHZX;jy1rTw#yar70KZvHF8}}l literal 0 HcmV?d00001 diff --git a/Interpreter/compile/parse2.png b/Interpreter/compile/parse2.png new file mode 100644 index 0000000000000000000000000000000000000000..5f8245988406b52a78648292896421b8d3264ce9 GIT binary patch literal 35676 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 AO8@`> literal 0 HcmV?d00001 diff --git a/Interpreter/compile/parse4.png b/Interpreter/compile/parse4.png new file mode 100644 index 0000000000000000000000000000000000000000..aca7e2156d32254380eac34aa01f9375b3aebaef GIT binary patch literal 43522 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

J6rIVwiH}rEfj@h%(c>1Kk~%znI(D= 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 F{}+kr)N}v< literal 0 HcmV?d00001 diff --git a/Interpreter/compile/parse5.png b/Interpreter/compile/parse5.png new file mode 100644 index 0000000000000000000000000000000000000000..c5d73e798c08ad52f8745bb804f5013e5d573668 GIT binary patch literal 39092 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 Yjl6}shZd3YmMFk$owFyk(utMw7lGHSoB#j- literal 0 HcmV?d00001 diff --git a/Interpreter/compile3/compile.md b/Interpreter/compile3/compile.md new file mode 100644 index 0000000..1e11985 --- /dev/null +++ b/Interpreter/compile3/compile.md @@ -0,0 +1,260 @@ +# AST TO byte code![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/compile3) + +# contents + +* [related file](#related-file) +* [optimize](#optimize) +* [symtable](#symtable) +* [CodeObject](#CodeObject) +* [read more](#read-more) + +# related file + +* Python/compile.c + +* Python/pythonrun.c + +* Python/symtable.c + +* Include/symtable.h + +* Python/ast_opt.c + + + +Let's generate the python code object from previous [AST tree](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile2/compile.md) + +The aforementioned `pythonrun` call stack + +![pythonrun](./pythonrun.png) + +We will foucus on `PyAST_CompileObject` this time + +```c +PyCodeObject * +PyAST_CompileObject(mod_ty mod, PyObject *filename, PyCompilerFlags *flags, + int optimize, PyArena *arena) +{ + struct compiler c; + PyCodeObject *co = NULL; + PyCompilerFlags local_flags; + int merged; + // ... omit ... + + if (!_PyAST_Optimize(mod, arena, c.c_optimize)) { + goto finally; + } + + c.c_st = PySymtable_BuildObject(mod, filename, c.c_future); + if (c.c_st == NULL) { + if (!PyErr_Occurred()) + PyErr_SetString(PyExc_SystemError, "no symtable"); + goto finally; + } + + co = compiler_mod(&c, mod); + + finally: + compiler_free(&c); + assert(co || PyErr_Occurred()); + return co; +} +``` + +# optimize + +`_PyAST_Optimize` will do some optimize such as constant folding + +```c +static int +fold_binop(expr_ty node, PyArena *arena, int optimize) +{ + expr_ty lhs, rhs; + lhs = node->v.BinOp.left; + rhs = node->v.BinOp.right; + if (lhs->kind != Constant_kind || rhs->kind != Constant_kind) { + return 1; + } + + PyObject *lv = lhs->v.Constant.value; + PyObject *rv = rhs->v.Constant.value; + PyObject *newval; + + switch (node->v.BinOp.op) { + case Add: + newval = PyNumber_Add(lv, rv); + break; + case Sub: + newval = PyNumber_Subtract(lv, rv); + break; + case Mult: + newval = safe_multiply(lv, rv); + break; + case Div: + newval = PyNumber_TrueDivide(lv, rv); + break; + case FloorDiv: + newval = PyNumber_FloorDivide(lv, rv); + break; + case Mod: + newval = safe_mod(lv, rv); + break; + case Pow: + newval = safe_power(lv, rv); + break; + case LShift: + newval = safe_lshift(lv, rv); + break; + case RShift: + newval = PyNumber_Rshift(lv, rv); + break; + case BitOr: + newval = PyNumber_Or(lv, rv); + break; + case BitXor: + newval = PyNumber_Xor(lv, rv); + break; + case BitAnd: + newval = PyNumber_And(lv, rv); + break; + default: // Unknown operator + return 1; + } + return make_const(node, newval, arena); +} +``` + +For example + +```python3 +a = 3 + 4 +``` + +The AST is + +![ast_before](./ast_before.png) + +After `fold_binop`, it becomes + +![ast_after](./ast_after.png) + +The constant folding will also + +* expand binary op(as above) + +* expand your unary op(`not/is/isnot`) +* change you list literal to tuple +* fetch the constant sub index +* etc ... + +# symtable + +After `_PyAST_Optimize`, the `PySymtable_BuildObject` will traverse the AST and add stores the the function/class/name definition to a Python dict object + +![symtable](./symtable.png) + +#CodeObject + +`compiler_mod` will traverse the AST, generate the appropriate byte code instruction and helper data, finally generate and return a`PyCodeObject` + +```c +static int +compiler_visit_expr1(struct compiler *c, expr_ty e) +{ + // ... + case Constant_kind: + ADDOP_LOAD_CONST(c, e->v.Constant.value); + break; + // ... +} + +static int +compiler_addop_load_const(struct compiler *c, PyObject *o) +{ + // add the constant value to a dictionary object: c->u->u_consts, returns the index after converted to list(offset of arg list) + Py_ssize_t arg = compiler_add_const(c, o); + if (arg < 0) + return 0; + // add the `LOAD_CONST arg` to the next instruction + return compiler_addop_i(c, LOAD_CONST, arg); +} + +// Below functions can be found in Python/compile.c +static int +compiler_addop_i(struct compiler *c, int opcode, Py_ssize_t oparg) +{ + struct instr *i; + int off; + + // ... + + off = compiler_next_instr(c, c->u->u_curblock); + if (off < 0) + return 0; + i = &c->u->u_curblock->b_instr[off]; + i->i_opcode = opcode; + i->i_oparg = Py_SAFE_DOWNCAST(oparg, Py_ssize_t, int); + compiler_set_lineno(c, off); + return 1; +} + +static Py_ssize_t +compiler_add_const(struct compiler *c, PyObject *o) +{ + PyObject *key = merge_consts_recursive(c, o); + if (key == NULL) { + return -1; + } + + Py_ssize_t arg = compiler_add_o(c, c->u->u_consts, key); + Py_DECREF(key); + return arg; +} + +static Py_ssize_t +compiler_add_o(struct compiler *c, PyObject *dict, PyObject *o) +{ + PyObject *v; + Py_ssize_t arg; + + v = PyDict_GetItemWithError(dict, o); + if (!v) { + if (PyErr_Occurred()) { + return -1; + } + arg = PyDict_GET_SIZE(dict); + v = PyLong_FromSsize_t(arg); + if (!v) { + return -1; + } + if (PyDict_SetItem(dict, o, v) < 0) { + Py_DECREF(v); + return -1; + } + Py_DECREF(v); + } + else + arg = PyLong_AsLong(v); + return arg; +} +``` + +The constants are stored in dict format, key represent the constant `PyObject`, value is the offset `{'a': 0}` + +It will be converted to a list object in the order of value in `Python/compile.c->consts_dict_keys_inorder` + +Finally, the `Python/compile.c->makecode` converts the compiled instrcutions and helper data to a newly create `PyCodeObject` + +```shell + 1 0 LOAD_CONST 0 (7) + 2 STORE_NAME 0 (a) + 4 LOAD_CONST 1 (None) + 6 RETURN_VALUE +``` + + + +# read more + +* [Python's compiler - from AST to code object](https://aoik.me/blog/posts/python-compiler-from-ast-to-code-object) + diff --git a/Interpreter/compile3/compile_cn.md b/Interpreter/compile3/compile_cn.md new file mode 100644 index 0000000..fb08cbc --- /dev/null +++ b/Interpreter/compile3/compile_cn.md @@ -0,0 +1,259 @@ +# AST 到 byte code![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/compile3_cn) + +# 目录 + +* [related file](#related-file) +* [optimize](#optimize) +* [symtable](#symtable) +* [CodeObject](#CodeObject) +* [read more](#read-more) + +# 相关位置文件 + +* Python/compile.c + +* Python/pythonrun.c + +* Python/symtable.c + +* Include/symtable.h + +* Python/ast_opt.c + + + +我们来尝试从之前的 [语法树](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile2/compile_cn.md) 中生成对应的字节码 + +前面提到过的 `pythonrun` 的调用栈如下 + +![pythonrun](./pythonrun.png) + +这次关注的是 `PyAST_CompileObject` 这个函数 + +```c +PyCodeObject * +PyAST_CompileObject(mod_ty mod, PyObject *filename, PyCompilerFlags *flags, + int optimize, PyArena *arena) +{ + struct compiler c; + PyCodeObject *co = NULL; + PyCompilerFlags local_flags; + int merged; + // ... 忽略 ... + + if (!_PyAST_Optimize(mod, arena, c.c_optimize)) { + goto finally; + } + + c.c_st = PySymtable_BuildObject(mod, filename, c.c_future); + if (c.c_st == NULL) { + if (!PyErr_Occurred()) + PyErr_SetString(PyExc_SystemError, "no symtable"); + goto finally; + } + + co = compiler_mod(&c, mod); + + finally: + compiler_free(&c); + assert(co || PyErr_Occurred()); + return co; +} +``` + +# optimize + +`_PyAST_Optimize` 会针对AST做一些优化, 比如常量折叠 + +```c +static int +fold_binop(expr_ty node, PyArena *arena, int optimize) +{ + expr_ty lhs, rhs; + lhs = node->v.BinOp.left; + rhs = node->v.BinOp.right; + if (lhs->kind != Constant_kind || rhs->kind != Constant_kind) { + return 1; + } + + PyObject *lv = lhs->v.Constant.value; + PyObject *rv = rhs->v.Constant.value; + PyObject *newval; + + switch (node->v.BinOp.op) { + case Add: + newval = PyNumber_Add(lv, rv); + break; + case Sub: + newval = PyNumber_Subtract(lv, rv); + break; + case Mult: + newval = safe_multiply(lv, rv); + break; + case Div: + newval = PyNumber_TrueDivide(lv, rv); + break; + case FloorDiv: + newval = PyNumber_FloorDivide(lv, rv); + break; + case Mod: + newval = safe_mod(lv, rv); + break; + case Pow: + newval = safe_power(lv, rv); + break; + case LShift: + newval = safe_lshift(lv, rv); + break; + case RShift: + newval = PyNumber_Rshift(lv, rv); + break; + case BitOr: + newval = PyNumber_Or(lv, rv); + break; + case BitXor: + newval = PyNumber_Xor(lv, rv); + break; + case BitAnd: + newval = PyNumber_And(lv, rv); + break; + default: // Unknown operator + return 1; + } + return make_const(node, newval, arena); +} +``` + +比如 + +```python3 +a = 3 + 4 +``` + +AST 表示如下 + +![ast_before](./ast_before.png) + +在 `fold_binop` 之后, 变成了 + +![ast_after](./ast_after.png) + +这个常量折叠的方法同样会做如下操作 + +* 展开二元操作(如上图) + +* 展开一元操作(`not/is/isnot`) + +* 把你的手写 list 转换成 tuple +* 展开常量可迭代对象的常量下标 `[]` +* 等待 ... + +# symtable + +在 `_PyAST_Optimize` 之后, `PySymtable_BuildObject` 会遍历 AST 并把 function/class/name 等定义/声明的变量加到一个 Python 字典对象中 + +![symtable](./symtable.png) + +#CodeObject + +`compiler_mod` 会遍历这个 AST, 并且生成对应的指令集和所需要的数据, 之后生成对应的 `PyCodeObject` 对象 + +```c +static int +compiler_visit_expr1(struct compiler *c, expr_ty e) +{ + // ... + case Constant_kind: + ADDOP_LOAD_CONST(c, e->v.Constant.value); + break; + // ... +} + +static int +compiler_addop_load_const(struct compiler *c, PyObject *o) +{ + // 把对应的常量加到字典对象 c->u->u_consts 中, 并把对应常量的最后的位移位置返回 + Py_ssize_t arg = compiler_add_const(c, o); + if (arg < 0) + return 0; + // 把 `LOAD_CONST arg` 加到下一个指令中 + return compiler_addop_i(c, LOAD_CONST, arg); +} + +// 下列的函数在 Python/compile.c 中可以找到 +static int +compiler_addop_i(struct compiler *c, int opcode, Py_ssize_t oparg) +{ + struct instr *i; + int off; + + // ... + + off = compiler_next_instr(c, c->u->u_curblock); + if (off < 0) + return 0; + i = &c->u->u_curblock->b_instr[off]; + i->i_opcode = opcode; + i->i_oparg = Py_SAFE_DOWNCAST(oparg, Py_ssize_t, int); + compiler_set_lineno(c, off); + return 1; +} + +static Py_ssize_t +compiler_add_const(struct compiler *c, PyObject *o) +{ + PyObject *key = merge_consts_recursive(c, o); + if (key == NULL) { + return -1; + } + + Py_ssize_t arg = compiler_add_o(c, c->u->u_consts, key); + Py_DECREF(key); + return arg; +} + +static Py_ssize_t +compiler_add_o(struct compiler *c, PyObject *dict, PyObject *o) +{ + PyObject *v; + Py_ssize_t arg; + + v = PyDict_GetItemWithError(dict, o); + if (!v) { + if (PyErr_Occurred()) { + return -1; + } + arg = PyDict_GET_SIZE(dict); + v = PyLong_FromSsize_t(arg); + if (!v) { + return -1; + } + if (PyDict_SetItem(dict, o, v) < 0) { + Py_DECREF(v); + return -1; + } + Py_DECREF(v); + } + else + arg = PyLong_AsLong(v); + return arg; +} +``` + +常量在上述操作时是以字典形式存储的, `{'a': 0}` 键表示对应常量的 `PyObject`, 值表示参数位移 + +它最终会被 `Python/compile.c->consts_dict_keys_inorder` 这个函数按照值里的位移顺序被转换成对应的列表对象, + +最终, `Python/compile.c->makecode` 会把上述的指令和对应的数据结构存储到新建的 `PyCodeObject ` 上 + +```shell + 1 0 LOAD_CONST 0 (7) + 2 STORE_NAME 0 (a) + 4 LOAD_CONST 1 (None) + 6 RETURN_VALUE +``` + +# read more + +* [Python's compiler - from AST to code object](https://aoik.me/blog/posts/python-compiler-from-ast-to-code-object) + diff --git a/Interpreter/compile3/pythonrun.png b/Interpreter/compile3/pythonrun.png new file mode 100644 index 0000000000000000000000000000000000000000..5cf15fdf7bfd6a42246356ac8ffbbdbaceb810cd GIT binary patch literal 63445 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±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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 22a41b8..1295f43 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,7 @@ The following contents are suitable for those who have python programming experi - [x] [Compile Phase](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) - [x] [Grammar/MetaGrammar to DFA](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) - [x] [CST to AST](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile2/compile.md) - - [ ] [AST to python byte code](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) + - [x] [AST to python byte code](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile3/compile.md) # Learning material diff --git a/README_CN.md b/README_CN.md index 4bfd952..b471bd9 100644 --- a/README_CN.md +++ b/README_CN.md @@ -88,7 +88,7 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 * [x] [从语法/元语法到DFA](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile_cn.md) * [x] [从 CST 到 AST](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile2/compile_cn.md) -* [ ] [从 AST 到 python 字节码](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) +* [x] [从 AST 到 python 字节码](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile3/compile_cn.md) # 参与贡献学习资料 From 65cb3f10823230195af75f9970ef56fd45c3a085 Mon Sep 17 00:00:00 2001 From: zpoint Date: Thu, 23 Jul 2020 18:06:00 +0800 Subject: [PATCH 26/90] readme indent --- Interpreter/compile3/compile.md | 2 +- Interpreter/compile3/compile_cn.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Interpreter/compile3/compile.md b/Interpreter/compile3/compile.md index 1e11985..1288bc6 100644 --- a/Interpreter/compile3/compile.md +++ b/Interpreter/compile3/compile.md @@ -153,7 +153,7 @@ After `_PyAST_Optimize`, the `PySymtable_BuildObject` will traverse the AST and ![symtable](./symtable.png) -#CodeObject +# CodeObject `compiler_mod` will traverse the AST, generate the appropriate byte code instruction and helper data, finally generate and return a`PyCodeObject` diff --git a/Interpreter/compile3/compile_cn.md b/Interpreter/compile3/compile_cn.md index fb08cbc..ad41206 100644 --- a/Interpreter/compile3/compile_cn.md +++ b/Interpreter/compile3/compile_cn.md @@ -154,7 +154,7 @@ AST 表示如下 ![symtable](./symtable.png) -#CodeObject +# CodeObject `compiler_mod` 会遍历这个 AST, 并且生成对应的指令集和所需要的数据, 之后生成对应的 `PyCodeObject` 对象 From 2fdc85027b3f815b94748ddb37c85bd3194d1da7 Mon Sep 17 00:00:00 2001 From: zpoint Date: Thu, 23 Jul 2020 18:08:35 +0800 Subject: [PATCH 27/90] readme code indent --- Interpreter/compile3/compile.md | 10 +++++----- Interpreter/compile3/compile_cn.md | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Interpreter/compile3/compile.md b/Interpreter/compile3/compile.md index 1288bc6..2bd356a 100644 --- a/Interpreter/compile3/compile.md +++ b/Interpreter/compile3/compile.md @@ -161,21 +161,21 @@ After `_PyAST_Optimize`, the `PySymtable_BuildObject` will traverse the AST and static int compiler_visit_expr1(struct compiler *c, expr_ty e) { - // ... + // ... case Constant_kind: ADDOP_LOAD_CONST(c, e->v.Constant.value); break; - // ... + // ... } static int compiler_addop_load_const(struct compiler *c, PyObject *o) { - // add the constant value to a dictionary object: c->u->u_consts, returns the index after converted to list(offset of arg list) + // add the constant value to a dictionary object: c->u->u_consts, returns the index after converted to list(offset of arg list) Py_ssize_t arg = compiler_add_const(c, o); if (arg < 0) return 0; - // add the `LOAD_CONST arg` to the next instruction + // add the `LOAD_CONST arg` to the next instruction return compiler_addop_i(c, LOAD_CONST, arg); } @@ -186,7 +186,7 @@ compiler_addop_i(struct compiler *c, int opcode, Py_ssize_t oparg) struct instr *i; int off; - // ... + // ... off = compiler_next_instr(c, c->u->u_curblock); if (off < 0) diff --git a/Interpreter/compile3/compile_cn.md b/Interpreter/compile3/compile_cn.md index ad41206..80eec9b 100644 --- a/Interpreter/compile3/compile_cn.md +++ b/Interpreter/compile3/compile_cn.md @@ -39,7 +39,7 @@ PyAST_CompileObject(mod_ty mod, PyObject *filename, PyCompilerFlags *flags, PyCodeObject *co = NULL; PyCompilerFlags local_flags; int merged; - // ... 忽略 ... + // ... 忽略 ... if (!_PyAST_Optimize(mod, arena, c.c_optimize)) { goto finally; @@ -162,21 +162,21 @@ AST 表示如下 static int compiler_visit_expr1(struct compiler *c, expr_ty e) { - // ... + // ... case Constant_kind: ADDOP_LOAD_CONST(c, e->v.Constant.value); break; - // ... + // ... } static int compiler_addop_load_const(struct compiler *c, PyObject *o) { - // 把对应的常量加到字典对象 c->u->u_consts 中, 并把对应常量的最后的位移位置返回 + // 把对应的常量加到字典对象 c->u->u_consts 中, 并把对应常量的最后的位移位置返回 Py_ssize_t arg = compiler_add_const(c, o); if (arg < 0) return 0; - // 把 `LOAD_CONST arg` 加到下一个指令中 + // 把 `LOAD_CONST arg` 加到下一个指令中 return compiler_addop_i(c, LOAD_CONST, arg); } @@ -187,7 +187,7 @@ compiler_addop_i(struct compiler *c, int opcode, Py_ssize_t oparg) struct instr *i; int off; - // ... + // ... off = compiler_next_instr(c, c->u->u_curblock); if (off < 0) From d91de629187223621136d95145086a42f68edd12 Mon Sep 17 00:00:00 2001 From: zpoint Date: Thu, 23 Jul 2020 18:21:20 +0800 Subject: [PATCH 28/90] readme cn translate --- Interpreter/compile3/compile_cn.md | 2 +- README_CN.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Interpreter/compile3/compile_cn.md b/Interpreter/compile3/compile_cn.md index 80eec9b..81ad508 100644 --- a/Interpreter/compile3/compile_cn.md +++ b/Interpreter/compile3/compile_cn.md @@ -1,4 +1,4 @@ -# AST 到 byte code![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/compile3_cn) +# AST 到 字节码![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/compile3_cn) # 目录 diff --git a/README_CN.md b/README_CN.md index b471bd9..41132da 100644 --- a/README_CN.md +++ b/README_CN.md @@ -88,7 +88,7 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 * [x] [从语法/元语法到DFA](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile_cn.md) * [x] [从 CST 到 AST](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile2/compile_cn.md) -* [x] [从 AST 到 python 字节码](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile3/compile_cn.md) +* [x] [从 AST 到 字节码](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile3/compile_cn.md) # 参与贡献学习资料 From 348ad7b125d74d6d6e95d64fdfdfed26bf27b6f8 Mon Sep 17 00:00:00 2001 From: zpoint Date: Fri, 4 Sep 2020 17:18:41 +0800 Subject: [PATCH 29/90] gc condition for finalizer --- Interpreter/gc/gc.md | 2 +- Interpreter/gc/gc_cn.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Interpreter/gc/gc.md b/Interpreter/gc/gc.md index f2b4ba6..f6b7dcb 100644 --- a/Interpreter/gc/gc.md +++ b/Interpreter/gc/gc.md @@ -400,7 +400,7 @@ all objects survive this round of garbage collections will be moved to the elder ### finalizer -what if the object needed to be garbage collected has defined it's own finalizer ? +what if an unusual object(which contains cyclic reference) needed to be garbage collected has defined it's own finalizer ? before python3.4, those objects won't be collected, they will be moved to `gc.garbage` and you need to call `__del__` and collect them manually diff --git a/Interpreter/gc/gc_cn.md b/Interpreter/gc/gc_cn.md index 508531a..146ec57 100644 --- a/Interpreter/gc/gc_cn.md +++ b/Interpreter/gc/gc_cn.md @@ -408,7 +408,7 @@ CPython 总共使用了 3 代, 新创建的对象都会被存储到第一代中( ### finalizer -如果一个需要被垃圾回收的对象定义了自己的 `__del__` 怎么办呢? 毕竟有可能在 `__del__` 中增加了新的引用 +如果一个存在引用循环等非常规的对象, 需要被垃圾回收, 并且定义了自己的 `__del__` 怎么办呢? 毕竟有可能在 `__del__` 中增加了新的引用 在 python3.4 之前, 这部分对象会被移动到 `gc.garbage` 中, 你需要手动调用他们的 `__del__` 方法并且对他们进行回收 From bee07a19c3f56c39f097a378dfe404a0b994f4e9 Mon Sep 17 00:00:00 2001 From: zpoint Date: Tue, 8 Sep 2020 17:38:45 +0800 Subject: [PATCH 30/90] =?UTF-8?q?@browncrane=20=E7=AB=A5=E9=9E=8B=E5=8F=91?= =?UTF-8?q?=E7=8E=B0=E7=9A=84=E9=97=AE=E9=A2=98,=20=E6=AD=A4=E7=AF=87=20?= =?UTF-8?q?=E6=96=87=E7=AB=A0=E7=9A=84=E5=87=A0=E5=B9=85=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E5=B0=91=E7=94=BB=E4=BA=86=E4=B8=80=E6=A0=BC=20=E9=93=BE?= =?UTF-8?q?=E6=8E=A5:=20https://github.com/zpoint/CPython-Internals/commit?= =?UTF-8?q?/ce8493180b0a820d819f041336ed15c2fa4afd20#commitcomment-4211693?= =?UTF-8?q?2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BasicObject/dict/after_py36.png | Bin 18853 -> 19723 bytes BasicObject/dict/after_py36_search.png | Bin 25396 -> 26428 bytes BasicObject/dict/after_py36_space.png | Bin 57527 -> 57027 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/BasicObject/dict/after_py36.png b/BasicObject/dict/after_py36.png index 377e748ed99ae820f77a82e95887134fa2c15e4d..62a9591dc0b69f5e35cd64925a9302dbae33f9ac 100644 GIT binary patch literal 19723 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 literal 18853 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

    bZBU($u^HvV_x3v{fRq8 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 LSeK}MF6w^)IbIj} literal 57527 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 From 032e6f4d4e5c205b60c1de088efbe401dd83b645 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9D=9E=E6=B3=95=E6=93=8D=E4=BD=9C?= Date: Wed, 9 Sep 2020 10:23:52 +0800 Subject: [PATCH 31/90] fix spell mistake --- BasicObject/long/long_cn.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/BasicObject/long/long_cn.md b/BasicObject/long/long_cn.md index a74cbc0..64658bc 100644 --- a/BasicObject/long/long_cn.md +++ b/BasicObject/long/long_cn.md @@ -149,7 +149,7 @@ k = i + j ![temp_add](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/temp_add.png) -第一步, 把两个数 **ob_digit** 里的第一个坑位里的 **digit** 加起来, 并加到 **carray** 里 +第一步, 把两个数 **ob_digit** 里的第一个坑位里的 **digit** 加起来, 并加到 **carry** 里 ![step_1](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/step_1.png) @@ -157,11 +157,11 @@ k = i + j ![step_2](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/step_2.png) -第三步, 右移 carray, 值保留下最左边的一位(这一位其实就是之前两个数相加的进位) +第三步, 右移 carry, 值保留下最左边的一位(这一位其实就是之前两个数相加的进位) ![step_3_rshift](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/step_3_rshift.png) -第四步, 把两边下一个 **ob_digit** 的对应位置的值加起来, 并把结果与 **carray** 相加 +第四步, 把两边下一个 **ob_digit** 的对应位置的值加起来, 并把结果与 **carry** 相加 ![step_4](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/step_4.png) @@ -173,7 +173,7 @@ k = i + j ![step_3_rshift](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/step_3_rshift.png) -回到步骤四, 直到两边都没有剩余的 **digit** 可以相加为止, 把最后的 carray 存储到 temp 最后一格 +回到步骤四, 直到两边都没有剩余的 **digit** 可以相加为止, 把最后的 carry 存储到 temp 最后一格 ![step_final](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/step_final.png) @@ -212,4 +212,4 @@ print(id(f), id(g)) # 4484604176 4484604016 ``` -![small_ints](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/small_ints.png) \ No newline at end of file +![small_ints](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/small_ints.png) From 5ddccaafd7f7c3a7c7600804525d448ae2673cd1 Mon Sep 17 00:00:00 2001 From: sandrincai <873217631@qq.com> Date: Thu, 10 Sep 2020 09:55:09 +0800 Subject: [PATCH 32/90] =?UTF-8?q?minor:=20gc=E6=96=87=E6=9C=AC=E7=9F=AB?= =?UTF-8?q?=E6=AD=A3=20imporr=20->=20import?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Interpreter/gc/gc.md | 2 +- Interpreter/gc/gc_cn.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Interpreter/gc/gc.md b/Interpreter/gc/gc.md index f6b7dcb..f6a3e3d 100644 --- a/Interpreter/gc/gc.md +++ b/Interpreter/gc/gc.md @@ -494,7 +494,7 @@ gc.set_threshold(100, 20) one way is to call `gc.collect()` manually, it will collect the highest collection directly ```python3 ->>> imporr gc +>>> import gc >>> gc.collect() ``` diff --git a/Interpreter/gc/gc_cn.md b/Interpreter/gc/gc_cn.md index 146ec57..ab05fa6 100644 --- a/Interpreter/gc/gc_cn.md +++ b/Interpreter/gc/gc_cn.md @@ -504,7 +504,7 @@ CPython 中一共有 3 代, 对应了 3 个 **threshold**, 每一代对应一个 一个方式是直接调用 `gc.collect()`, 不传参数的情况下直接从最老年代开始回收 ```python3 ->>> imporr gc +>>> import gc >>> gc.collect() ``` From efd47a051cfc8887e358d06cdfbfe7e327d9039f Mon Sep 17 00:00:00 2001 From: zpoint Date: Fri, 11 Sep 2020 12:54:20 +0800 Subject: [PATCH 33/90] metaclass example code update --- BasicObject/type/type.md | 5 ++++- BasicObject/type/type_cn.md | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/BasicObject/type/type.md b/BasicObject/type/type.md index c13b7ab..ead06cb 100644 --- a/BasicObject/type/type.md +++ b/BasicObject/type/type.md @@ -256,6 +256,9 @@ in the above procedures, we can learn that **metaclass** controls the creation o we can change the behaviour of a class on the fly by manually define a **metaclass** ```python3 +class F(object): + pass + class MyMeta(type): def __new__(mcs, name, bases, attrs, **kwargs): @@ -282,7 +285,7 @@ class AnotherF(F, metaclass=MyMeta): pass -print(Animal1.leg) # 4 +print(Animal1.leg) # 4 print(Normal.leg) # 0 print(AnotherF) # diff --git a/BasicObject/type/type_cn.md b/BasicObject/type/type_cn.md index 4226813..b77e3c7 100644 --- a/BasicObject/type/type_cn.md +++ b/BasicObject/type/type_cn.md @@ -267,6 +267,9 @@ f = F() 根据以上发现, 我们可以自己定义一个 **metaclass** 在代码运行过程中个性化定制最终的 class ```python3 +class F(object): + pass + class MyMeta(type): def __new__(mcs, name, bases, attrs, **kwargs): @@ -293,7 +296,7 @@ class AnotherF(F, metaclass=MyMeta): pass -print(Animal1.leg) # 4 +print(Animal1.leg) # 4 print(Normal.leg) # 0 print(AnotherF) # From 9ccae61dd81dbe7582add82c9ae658f75b6b579e Mon Sep 17 00:00:00 2001 From: zpoint Date: Mon, 14 Sep 2020 13:48:55 +0800 Subject: [PATCH 34/90] C++ extension title --- README.md | 3 +++ README_CN.md | 3 +++ 2 files changed, 6 insertions(+) diff --git a/README.md b/README.md index 1295f43..e4ba98d 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,9 @@ The following contents are suitable for those who have python programming experi - [x] [C API(profile python code and write pure C extension)](https://github.com/zpoint/CPython-Internals/blob/master/Extension/C/c.md) - [ ] Cython(C extension) - [x] [Boost C++ libaries (C\+\+ extension)](https://github.com/zpoint/Boost-Python-Examples) + - [ ] [C++ extension](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/cpp.md) + - [ ] integrate with NumPy + - [ ] bypass the GIL # Grammar diff --git a/README_CN.md b/README_CN.md index 41132da..a92844b 100644 --- a/README_CN.md +++ b/README_CN.md @@ -81,6 +81,9 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 - [x] [C API(python 性能分析和 C 扩展)](https://github.com/zpoint/CPython-Internals/blob/master/Extension/C/c_cn.md) - [ ] Cython(C extension) - [x] [Boost C++ libaries (C\+\+ extension)](https://github.com/zpoint/Boost-Python-Examples) + - [ ] [C++ 扩展](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/cpp.md) + - [ ] 写 NumPy 扩展 + - [ ] 解锁 GIL # 语法 From 5a0476295a114436078b722cd4d6b4e496a85ff8 Mon Sep 17 00:00:00 2001 From: zpoint Date: Mon, 14 Sep 2020 23:36:06 +0800 Subject: [PATCH 35/90] C++ extension --- Extension/CPP/cpp.md | 58 +++++++++++++++++++++++++++++++ Extension/CPP/example/example.cpp | 50 ++++++++++++++++++++++++++ Extension/CPP/example/setup.py | 8 +++++ README_CN.md | 4 +-- 4 files changed, 118 insertions(+), 2 deletions(-) create mode 100644 Extension/CPP/cpp.md create mode 100644 Extension/CPP/example/example.cpp create mode 100644 Extension/CPP/example/setup.py diff --git a/Extension/CPP/cpp.md b/Extension/CPP/cpp.md new file mode 100644 index 0000000..86c5ac6 --- /dev/null +++ b/Extension/CPP/cpp.md @@ -0,0 +1,58 @@ +# C++ extension![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/cpp_ext) + +# contents + +* [overview](#overview) +* [example](#example) +* [integrate with NumPy](#integrate-with-NumPy) +* [bypass the GIL](#bypass-the-GIL) +* [read more](#read-more) + +# overview + +We've written [C extension](https://github.com/zpoint/CPython-Internals/blob/master/Extension/C/c.md) before to help performance penalty + +Now we want to take a further step to develop a complex module in C++ and expose to python API + +The C++ compiler is compatible with C and I want to use the power of STL in C++11(or newer) standard + +# example + +```python3 +# setup.py +from distutils.core import setup, Extension + +my_module = Extension('m_example', sources=['./example.cpp'], extra_compile_args=['-std=c++11']) + +setup(name='m_example', + version='1.0', + description='my module to use C++ STL', + ext_modules=[my_module]) +``` + +and the [example.cpp](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/example/example.cpp) + +Run the example + +```bash +cd Cpython-Internals/Extension/CPP/example +python3 setup.py build +mv build/lib.macosx-10.15-x86_64-3.8/m_example.cpython-38-darwin.so ./ +zpoint@zpoints-MacBook-Pro example % python3 +Python 3.8.4 (default, Jul 14 2020, 02:58:48) +[Clang 11.0.3 (clang-1103.0.32.62)] on darwin +Type "help", "copyright", "credits" or "license" for more information. +>>> import m_example +>>> m_example.example([6,4,3]) +3 +>>> +``` + + + +# read more + +* [python2.7-capi](https://docs.python.org/2.7/c-api/index.html) +* [python3.7-capi](https://docs.python.org/3.7/c-api/index.html) +* [python line profiler without magic](https://lothiraldan.github.io/2018-02-18-python-line-profiler-without-magic/) +* [Writing a C Extension Module for Python](http://madrury.github.io/jekyll/update/programming/2016/06/20/python-extension-modules.html) diff --git a/Extension/CPP/example/example.cpp b/Extension/CPP/example/example.cpp new file mode 100644 index 0000000..cefe5c4 --- /dev/null +++ b/Extension/CPP/example/example.cpp @@ -0,0 +1,50 @@ +/* check your system path, sometimes it's */ +/* only for illustration purpose, not good code for production */ +#include +#include +#include + +static PyObject* example(PyObject *self, PyObject *args) { + /* def example(arr: typing.List[int]) -> int: */ + PyObject *py_arr; + std::vector i_vec; + long res; + if (!PyArg_ParseTuple(args, "O!", &PyList_Type, &py_arr)) { + PyErr_SetString(PyExc_ValueError, "expected one list parameter"); + return nullptr; + } + Py_ssize_t list_len = PyList_GET_SIZE(py_arr); + i_vec.reserve(list_len); + for (Py_ssize_t i = 0; i < list_len; ++i) { + PyObject *py_int = PyList_GET_ITEM(py_arr, i); + res = PyLong_AsLong(py_int); + if (res == -1 && PyErr_Occurred()) { + return nullptr; + } + i_vec.push_back(res); + } + std::sort(i_vec.begin(), i_vec.end()); + return PyLong_FromLong(i_vec[0]); +} + +static PyMethodDef MyMethods[] = { + {"example", example, METH_VARARGS, "example function"}, + {NULL, NULL, 0, NULL} /* Sentinel */ +}; + +static struct PyModuleDef m_example = { + PyModuleDef_HEAD_INIT, + "example", + "example module to provide python api", + -1, + MyMethods +}; + +PyMODINIT_FUNC PyInit_m_example(void) { + PyObject *m; + + m = PyModule_Create(&m_example); + if (m == NULL) + return NULL; + return m; +} \ No newline at end of file diff --git a/Extension/CPP/example/setup.py b/Extension/CPP/example/setup.py new file mode 100644 index 0000000..de6b058 --- /dev/null +++ b/Extension/CPP/example/setup.py @@ -0,0 +1,8 @@ +from distutils.core import setup, Extension + +my_module = Extension('m_example', sources=['./example.cpp'], extra_compile_args=['-std=c++11']) + +setup(name='m_example', + version='1.0', + description='my module to use C++ STL', + ext_modules=[my_module]) diff --git a/README_CN.md b/README_CN.md index a92844b..6d33198 100644 --- a/README_CN.md +++ b/README_CN.md @@ -82,8 +82,8 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 - [ ] Cython(C extension) - [x] [Boost C++ libaries (C\+\+ extension)](https://github.com/zpoint/Boost-Python-Examples) - [ ] [C++ 扩展](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/cpp.md) - - [ ] 写 NumPy 扩展 - - [ ] 解锁 GIL + - [ ] 写 NumPy 扩展 + - [ ] 解锁 GIL # 语法 From 24650ed3cfd2a9a246892124c5005b1fa23f2747 Mon Sep 17 00:00:00 2001 From: zpoint Date: Mon, 14 Sep 2020 23:38:22 +0800 Subject: [PATCH 36/90] indent cpp extension --- README_CN.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README_CN.md b/README_CN.md index 6d33198..ebef15f 100644 --- a/README_CN.md +++ b/README_CN.md @@ -82,8 +82,8 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 - [ ] Cython(C extension) - [x] [Boost C++ libaries (C\+\+ extension)](https://github.com/zpoint/Boost-Python-Examples) - [ ] [C++ 扩展](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/cpp.md) - - [ ] 写 NumPy 扩展 - - [ ] 解锁 GIL + - [ ] 写 NumPy 扩展 + - [ ] 解锁 GIL # 语法 From a103d683fdbcdce880635a429b1ded3f1dd7ca44 Mon Sep 17 00:00:00 2001 From: zpoint Date: Mon, 14 Sep 2020 23:39:05 +0800 Subject: [PATCH 37/90] indent cpp extension --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e4ba98d..c8c8125 100644 --- a/README.md +++ b/README.md @@ -80,8 +80,8 @@ The following contents are suitable for those who have python programming experi - [ ] Cython(C extension) - [x] [Boost C++ libaries (C\+\+ extension)](https://github.com/zpoint/Boost-Python-Examples) - [ ] [C++ extension](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/cpp.md) - - [ ] integrate with NumPy - - [ ] bypass the GIL + - [ ] integrate with NumPy + - [ ] bypass the GIL # Grammar @@ -121,4 +121,4 @@ All kinds of contributions are welcome * correct mistakes * anything else -# [License](https://creativecommons.org/licenses/by-nc-sa/4.0/) \ No newline at end of file +# [License](https://creativecommons.org/licenses/by-nc-sa/4.0/) From f30e37b71182a9e8eecf1fe1d38a58b607fd0764 Mon Sep 17 00:00:00 2001 From: zpoint Date: Tue, 15 Sep 2020 23:11:21 +0800 Subject: [PATCH 38/90] C++ extension v0.1 --- Extension/CPP/cpp.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/Extension/CPP/cpp.md b/Extension/CPP/cpp.md index 86c5ac6..c73881b 100644 --- a/Extension/CPP/cpp.md +++ b/Extension/CPP/cpp.md @@ -30,7 +30,7 @@ setup(name='m_example', ext_modules=[my_module]) ``` -and the [example.cpp](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/example/example.cpp) +and the [example.cpp](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/example/example.cpp) get elements from the Python array and stores all integer to a C++ vectors and use `std::sort` from`` to sort the vector, finally returns the first element as Python object to the caller Run the example @@ -48,7 +48,25 @@ Type "help", "copyright", "credits" or "license" for more information. >>> ``` +# integrate with NumPy +Sometimes we need to work with NumPy, let's begin with an example + +We take a two dimension numpy array, a one dimension numpy array as input and a double value, do some computation and write the result back to the one dimension array + +```python3 +import numpy as np +def compute(two_dim: np.array, one_dim: np.array, val: np.float) -> None + # do some computation and store result to one_dim + one_dim[0] = (two_dim[0][0] + two_dim[1][0]) *val + # ... +``` + +We are going to write the above function as extension module in C++ + + + +# bypass the GIL # read more From ef31c5df2c30513108181d83e68bf9408d5af3ed Mon Sep 17 00:00:00 2001 From: zpoint Date: Wed, 16 Sep 2020 23:09:09 +0800 Subject: [PATCH 39/90] C++ numpy support --- Extension/CPP/cpp.md | 32 ++++++++++++++-- Extension/CPP/m_numpy/example.cpp | 62 +++++++++++++++++++++++++++++++ Extension/CPP/m_numpy/setup.py | 9 +++++ 3 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 Extension/CPP/m_numpy/example.cpp create mode 100644 Extension/CPP/m_numpy/setup.py diff --git a/Extension/CPP/cpp.md b/Extension/CPP/cpp.md index c73881b..d3f9ae1 100644 --- a/Extension/CPP/cpp.md +++ b/Extension/CPP/cpp.md @@ -54,20 +54,46 @@ Sometimes we need to work with NumPy, let's begin with an example We take a two dimension numpy array, a one dimension numpy array as input and a double value, do some computation and write the result back to the one dimension array +The numpy array should have dtype float64 + +two_dim is `3*N` array + +one_dim is `N` array + ```python3 import numpy as np -def compute(two_dim: np.array, one_dim: np.array, val: np.float) -> None +def compute(two_dim: np.array, one_dim: np.array, val: np.float) -> None: # do some computation and store result to one_dim - one_dim[0] = (two_dim[0][0] + two_dim[1][0]) *val + for index in range(len(one_dim)): + one_dim[index] = (two_dim[0][index] + two_dim[1][index] + two_dim[2][index]) * val # ... ``` -We are going to write the above function as extension module in C++ +We are going to write the above function as extension module in C++ +[example.cpp](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/m_numpy/example.cpp) +```bash +cd Cpython-Internals/Extension/CPP/m_numpy +python3 setup.py build +mv build/lib.macosx-10.15-x86_64-3.8/m_example.cpython-38-darwin.so ./ +zpoint@zpoints-MacBook-Pro m_numpy % python3 +Python 3.8.4 (default, Jul 14 2020, 02:58:48) +[Clang 11.0.3 (clang-1103.0.32.62)] on darwin +Type "help", "copyright", "credits" or "license" for more information. +>>> import numpy as np +>>> import m_example +>>> one_dim = np.zeros([2], dtype=np.float) +>>> two_dim = np.array([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]], dtype=np.float) +>>> m_example.example(two_dim, one_dim, 0.5) +>>> one_dim +array([4.5, 6. ]) +``` # bypass the GIL + + # read more * [python2.7-capi](https://docs.python.org/2.7/c-api/index.html) diff --git a/Extension/CPP/m_numpy/example.cpp b/Extension/CPP/m_numpy/example.cpp new file mode 100644 index 0000000..95ea2f1 --- /dev/null +++ b/Extension/CPP/m_numpy/example.cpp @@ -0,0 +1,62 @@ +#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION +#include +#include + +PyObject* failure(PyObject *type, const char *message) { + PyErr_SetString(type, message); + return NULL; +} + +static PyObject* example(PyObject *self, PyObject *args) { + /* def example(arr: typing.List[int]) -> int: */ + PyArrayObject *two_dim, *one_dim; + double val; + if (!PyArg_ParseTuple(args, "O!O!d", &PyArray_Type, &two_dim, &PyArray_Type, &one_dim, &val)) + return failure(PyExc_KeyError, "expected one two dimension array, one one dimension array and one double value"); + + if (PyArray_DESCR(two_dim)->type_num != NPY_FLOAT64) + return failure(PyExc_TypeError, "Type np.float expected for two_dim array."); + + if (PyArray_DESCR(one_dim)->type_num != NPY_FLOAT64) + return failure(PyExc_TypeError, "Type np.float expected for one_dim array."); + + if (PyArray_NDIM(two_dim) != 2 || PyArray_DIM(two_dim, 0) != 3) + return failure(PyExc_TypeError, "two_dim dimension error."); + + if (PyArray_NDIM(one_dim) != 1) + return failure(PyExc_TypeError, "one_dim dimension error."); + + npy_intp size_one_dim = PyArray_SIZE(one_dim); + double* d_one_dim = (double*)PyArray_GETPTR1(one_dim, 0); + double* d_two_dim_0 = (double*)PyArray_GETPTR1(two_dim, 0); + double* d_two_dim_1 = (double*)PyArray_GETPTR1(two_dim, 1); + double* d_two_dim_2 = (double*)PyArray_GETPTR1(two_dim, 2); + for (npy_intp i = 0; i < size_one_dim; ++i) { + d_one_dim[i] = (d_two_dim_0[i] + d_two_dim_1[i] + d_two_dim_2[i]) * val; + } + return Py_None; + +} + +static PyMethodDef MyMethods[] = { + {"example", example, METH_VARARGS, "example function"}, + {NULL, NULL, 0, NULL} /* Sentinel */ +}; + +static struct PyModuleDef m_example = { + PyModuleDef_HEAD_INIT, + "example", + "example module to provide numpy python api", + -1, + MyMethods +}; + +PyMODINIT_FUNC PyInit_m_example(void) { + PyObject *m; + + m = PyModule_Create(&m_example); + if (m == NULL) + return NULL; + import_array(); + return m; +} diff --git a/Extension/CPP/m_numpy/setup.py b/Extension/CPP/m_numpy/setup.py new file mode 100644 index 0000000..a8fca98 --- /dev/null +++ b/Extension/CPP/m_numpy/setup.py @@ -0,0 +1,9 @@ +import numpy +from distutils.core import setup, Extension + +my_module = Extension('m_example', sources=['./example.cpp'], extra_compile_args=['-std=c++11'], include_dirs=[numpy.get_include()]) + +setup(name='m_example', + version='1.0', + description='my module to use C++ for numpy', + ext_modules=[my_module]) From 8d904c6ac8a1d95e118364cc2d56658473d59463 Mon Sep 17 00:00:00 2001 From: zpoint Date: Sun, 20 Sep 2020 12:27:37 +0800 Subject: [PATCH 40/90] c++ done --- Extension/CPP/cpp.md | 49 +++++++++++-- Extension/CPP/m_numpy/example.cpp | 2 +- Extension/CPP/m_parallel/example.cpp | 101 +++++++++++++++++++++++++++ Extension/CPP/m_parallel/setup.py | 9 +++ README.md | 4 +- 5 files changed, 158 insertions(+), 7 deletions(-) create mode 100644 Extension/CPP/m_parallel/example.cpp create mode 100644 Extension/CPP/m_parallel/setup.py diff --git a/Extension/CPP/cpp.md b/Extension/CPP/cpp.md index d3f9ae1..d25207d 100644 --- a/Extension/CPP/cpp.md +++ b/Extension/CPP/cpp.md @@ -92,11 +92,52 @@ array([4.5, 6. ]) # bypass the GIL +What if we want to schedule a parallel task to utilize the run time of our task ? + +two_dim becomes `X * 3 * N` array + +one_dim is `X * N` array + +```python3 +import numpy as np +def compute(two_dim: np.array, one_dim: np.array, val: np.float) -> None: + # do some computation and store result to one_dim + for task_index in range(len(one_dim)): + curr_one_dim = one_dim[task_index] + curr_two_dim = two_dim[task_index] + for index in range(len(one_dim)): + curr_one_dim[index] = (curr_two_dim[0][index] + curr_two_dim[1][index] + curr_two_dim[2][index]) * val + # ... +``` + +I want to seperate these tasks to several different threads, and let os schedule them to work together + +We've learned [GIL](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/gil.md) before, we know that the interpreter in different thread will accquire the mutex before executing every python byte code, so as long as our code in different thread not executing by the python interpreter, everything will be find + +```bash +cd Cpython-Internals/Extension/CPP/m_parallel +python3 setup.py build +mv build/lib.macosx-10.15-x86_64-3.8/m_example.cpython-38-darwin.so ./ +zpoint@zpoints-MacBook-Pro m_parallel % python3 +Python 3.8.4 (default, Jul 14 2020, 02:58:48) +[Clang 11.0.3 (clang-1103.0.32.62)] on darwin +Type "help", "copyright", "credits" or "license" for more information. +>>> import os +>>> import numpy as np +>>> import m_example +>>> os.putenv("CONCURRENCY_NUM", "2") +>>> one_dim = np.zeros([4, 2], dtype=np.float) +>>> two_dim = np.array([[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]], [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]], [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]], [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]], dtype=np.float) +>>> m_example.example(two_dim, one_dim, 0.5) +>>> print(one_dim) +[[4.5 6. ] + [4.5 6. ] + [4.5 6. ] + [4.5 6. ]] +``` + # read more -* [python2.7-capi](https://docs.python.org/2.7/c-api/index.html) -* [python3.7-capi](https://docs.python.org/3.7/c-api/index.html) -* [python line profiler without magic](https://lothiraldan.github.io/2018-02-18-python-line-profiler-without-magic/) -* [Writing a C Extension Module for Python](http://madrury.github.io/jekyll/update/programming/2016/06/20/python-extension-modules.html) +* [numpy-api](https://numpy.org/doc/stable/reference/c-api/array.html?highlight=array%20api) diff --git a/Extension/CPP/m_numpy/example.cpp b/Extension/CPP/m_numpy/example.cpp index 95ea2f1..3a6e013 100644 --- a/Extension/CPP/m_numpy/example.cpp +++ b/Extension/CPP/m_numpy/example.cpp @@ -8,7 +8,7 @@ PyObject* failure(PyObject *type, const char *message) { } static PyObject* example(PyObject *self, PyObject *args) { - /* def example(arr: typing.List[int]) -> int: */ + /* def example(two_dim: np.array, one_dim: np.array, val: np.float) -> None */ PyArrayObject *two_dim, *one_dim; double val; if (!PyArg_ParseTuple(args, "O!O!d", &PyArray_Type, &two_dim, &PyArray_Type, &one_dim, &val)) diff --git a/Extension/CPP/m_parallel/example.cpp b/Extension/CPP/m_parallel/example.cpp new file mode 100644 index 0000000..5616b8f --- /dev/null +++ b/Extension/CPP/m_parallel/example.cpp @@ -0,0 +1,101 @@ +#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION +#include +#include +#include +#include +#include + +PyObject* failure(PyObject *type, const char *message) { + PyErr_SetString(type, message); + return NULL; +} + +int load_thread_num() { + int ret = -1; + char* num; + num = getenv("CONCURRENCY_NUM"); + if (num != nullptr) { + ret = std::stoi(num); + } + // printf("load_thread_num return: %d\n", ret); + return ret > 1 ? ret : 1; +} + +void parallel_run(PyArrayObject *origin_one_dim, PyArrayObject *origin_two_dim, int start, int end, double val) { + npy_intp size_one_dim = PyArray_DIM(origin_one_dim, 1); + for (int curr_start = 0; curr_start < end; ++ curr_start) { + double* d_one_dim = (double*)PyArray_GETPTR2(origin_one_dim, curr_start, 0); + double* d_two_dim_0 = (double*)PyArray_GETPTR2(origin_two_dim, curr_start, 0); + double* d_two_dim_1 = (double*)PyArray_GETPTR2(origin_two_dim, curr_start, 1); + double* d_two_dim_2 = (double*)PyArray_GETPTR2(origin_two_dim, curr_start, 2); + for (npy_intp i = 0; i < size_one_dim; ++i) { + d_one_dim[i] = (d_two_dim_0[i] + d_two_dim_1[i] + d_two_dim_2[i]) * val; + } + } +} + +static PyObject* example(PyObject *self, PyObject *args) { + /* def example(two_dim: np.array, one_dim: np.array, val: np.float) -> None */ + PyArrayObject *two_dim, *one_dim; + double val; + if (!PyArg_ParseTuple(args, "O!O!d", &PyArray_Type, &two_dim, &PyArray_Type, &one_dim, &val)) + return failure(PyExc_KeyError, "expected one three dimension array, one two dimension array and one double value"); + + if (PyArray_DESCR(two_dim)->type_num != NPY_FLOAT64) + return failure(PyExc_TypeError, "Type np.float expected for two_dim array."); + + if (PyArray_DESCR(one_dim)->type_num != NPY_FLOAT64) + return failure(PyExc_TypeError, "Type np.float expected for one_dim array."); + + if (PyArray_NDIM(two_dim) != 3 || PyArray_DIM(two_dim, 1) != 3) + return failure(PyExc_TypeError, "two_dim dimension error."); + + if (PyArray_NDIM(one_dim) != 2) + return failure(PyExc_TypeError, "one_dim dimension error."); + + npy_intp dim1_one = PyArray_DIM(one_dim, 0); + + int right, steps; + int thread_num = load_thread_num(); + if (thread_num > dim1_one) + thread_num = dim1_one; + std::vector> future_vector; + future_vector.reserve(thread_num); + steps = dim1_one / thread_num; + for (int i = 0; i < dim1_one; ) { + // [i, i+steps) + right = i + steps; + if (right > dim1_one) { + right = dim1_one; + } + future_vector.push_back(std::async(std::launch::async, parallel_run, one_dim, two_dim, i, right, val)); + i = right; + } + for (auto &future : future_vector) { + future.get(); + } + return Py_None; +} + +static PyMethodDef MyMethods[] = { + {"example", example, METH_VARARGS, "example function"}, + {NULL, NULL, 0, NULL} /* Sentinel */ +}; + +static struct PyModuleDef m_example = { + PyModuleDef_HEAD_INIT, + "example", + "example module to provide numpy python api", + -1, + MyMethods +}; + +PyMODINIT_FUNC PyInit_m_example(void) { + PyObject *m; + + m = PyModule_Create(&m_example); + if (m == NULL) + return NULL; + import_array(); + return m; +} diff --git a/Extension/CPP/m_parallel/setup.py b/Extension/CPP/m_parallel/setup.py new file mode 100644 index 0000000..1ab824a --- /dev/null +++ b/Extension/CPP/m_parallel/setup.py @@ -0,0 +1,9 @@ +import numpy +from distutils.core import setup, Extension + +my_module = Extension('m_example', sources=['./example.cpp'], extra_compile_args=['-std=c++11', '-pthread'], include_dirs=[numpy.get_include()]) + +setup(name='m_example', + version='1.0', + description='my module to use C++ for numpy, in parallel', + ext_modules=[my_module]) diff --git a/README.md b/README.md index c8c8125..da3809e 100644 --- a/README.md +++ b/README.md @@ -80,8 +80,8 @@ The following contents are suitable for those who have python programming experi - [ ] Cython(C extension) - [x] [Boost C++ libaries (C\+\+ extension)](https://github.com/zpoint/Boost-Python-Examples) - [ ] [C++ extension](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/cpp.md) - - [ ] integrate with NumPy - - [ ] bypass the GIL + - [x] integrate with NumPy + - [x] bypass the GIL # Grammar From 52aa2be32c2d596f0a1cbbd1547256e49576cbae Mon Sep 17 00:00:00 2001 From: zpoint Date: Sun, 20 Sep 2020 17:09:30 +0800 Subject: [PATCH 41/90] c++ cn done --- Extension/CPP/cpp.md | 6 +- Extension/CPP/cpp_cn.md | 142 ++++++++++++++++++++++++++++++++++++++++ README_CN.md | 6 +- 3 files changed, 149 insertions(+), 5 deletions(-) create mode 100644 Extension/CPP/cpp_cn.md diff --git a/Extension/CPP/cpp.md b/Extension/CPP/cpp.md index d25207d..3a57313 100644 --- a/Extension/CPP/cpp.md +++ b/Extension/CPP/cpp.md @@ -14,7 +14,7 @@ We've written [C extension](https://github.com/zpoint/CPython-Internals/blob/mas Now we want to take a further step to develop a complex module in C++ and expose to python API -The C++ compiler is compatible with C and I want to use the power of STL in C++11(or newer) standard +The C++ compiler is compatible with C and I want to use the power of `STL` in `C++11`(or newer) standard # example @@ -30,7 +30,7 @@ setup(name='m_example', ext_modules=[my_module]) ``` -and the [example.cpp](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/example/example.cpp) get elements from the Python array and stores all integer to a C++ vectors and use `std::sort` from`` to sort the vector, finally returns the first element as Python object to the caller +and the [example.cpp](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/example/example.cpp) get elements from the Python array and stores all integer to a C++ vectors and use `std::sort` from `` to sort the vector, finally returns the first element as Python object to the caller Run the example @@ -114,6 +114,8 @@ I want to seperate these tasks to several different threads, and let os schedule We've learned [GIL](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/gil.md) before, we know that the interpreter in different thread will accquire the mutex before executing every python byte code, so as long as our code in different thread not executing by the python interpreter, everything will be find +We use the `std::future` from `C++ STL` to schedule our thread according to the environment variable `CONCURRENCY_NUM` + ```bash cd Cpython-Internals/Extension/CPP/m_parallel python3 setup.py build diff --git a/Extension/CPP/cpp_cn.md b/Extension/CPP/cpp_cn.md new file mode 100644 index 0000000..864ac3a --- /dev/null +++ b/Extension/CPP/cpp_cn.md @@ -0,0 +1,142 @@ +# C++ extension![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/cpp_ext) + +# 目录 + +* [介绍](#介绍) +* [示例](#示例) +* [和 NumPy 结合](#和-NumPy-结合) +* [bypass the GIL](#bypass-the-GIL) +* [read more](#read-more) + +# 介绍 + +我们在之前已经尝试过使用 [C 扩展](https://github.com/zpoint/CPython-Internals/blob/master/Extension/C/c_cn.md) 来提高性能了, 现在我们尝试更进一步, 在 C++ 下编写一个扩展, 并同样的利用 python API 暴露给 python 调用 + +C++ 的编译器是兼容 C 语言的, 我们将会借助 `C++11`(或以上) 的标准的 `STL` 来实现一些功能 + +# 示例 + +```python3 +# setup.py +from distutils.core import setup, Extension + +my_module = Extension('m_example', sources=['./example.cpp'], extra_compile_args=['-std=c++11']) + +setup(name='m_example', + version='1.0', + description='my module to use C++ STL', + ext_modules=[my_module]) +``` + +并且 [example.cpp](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/example/example.cpp) 从 Python 数组中获取元素, 之后把它作为整数类型存储在了 `C++` 的 `vector` 中, 然后用 `` 中的 `std::sort` 方法对其进行排序, 最后把排好序的第一个值作为 Python 对象返回给调用者 + +运行这个示例 + +```bash +cd Cpython-Internals/Extension/CPP/example +python3 setup.py build +mv build/lib.macosx-10.15-x86_64-3.8/m_example.cpython-38-darwin.so ./ +zpoint@zpoints-MacBook-Pro example % python3 +Python 3.8.4 (default, Jul 14 2020, 02:58:48) +[Clang 11.0.3 (clang-1103.0.32.62)] on darwin +Type "help", "copyright", "credits" or "license" for more information. +>>> import m_example +>>> m_example.example([6,4,3]) +3 +>>> +``` + +# 和 NumPy 结合 + +有些时候我们需要和 NumPy 结合使用, 让我们从一个新的示例开始 + +我们以一个二维数组, 一个一位数组, 和一个双精度浮点数作为输入, 对输入进行一些运算, 之后把结果写回一维数组中 + +numpy 数组中的元素类型我们先指定为 float64 + +two_dim 维度是 `3*N` + +one_dim 维度是 `N` + +```python3 +import numpy as np +def compute(two_dim: np.array, one_dim: np.array, val: np.float) -> None: + # do some computation and store result to one_dim + for index in range(len(one_dim)): + one_dim[index] = (two_dim[0][index] + two_dim[1][index] + two_dim[2][index]) * val + # ... +``` + +我们会把上面的示例函数用 C++ 扩展的方式进行重写 + +[example.cpp](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/m_numpy/example.cpp) + +```bash +cd Cpython-Internals/Extension/CPP/m_numpy +python3 setup.py build +mv build/lib.macosx-10.15-x86_64-3.8/m_example.cpython-38-darwin.so ./ +zpoint@zpoints-MacBook-Pro m_numpy % python3 +Python 3.8.4 (default, Jul 14 2020, 02:58:48) +[Clang 11.0.3 (clang-1103.0.32.62)] on darwin +Type "help", "copyright", "credits" or "license" for more information. +>>> import numpy as np +>>> import m_example +>>> one_dim = np.zeros([2], dtype=np.float) +>>> two_dim = np.array([[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]], dtype=np.float) +>>> m_example.example(two_dim, one_dim, 0.5) +>>> one_dim +array([4.5, 6. ]) +``` + +# 绕过 GIL + +如果我们想要通过并行任务的方式, 来缩小我们任务的执行时间呢 ? + +two_dim 的维度变成了 `X * 3 * N` + +one_dim 的维度变成了 `X * N` + +```python3 +import numpy as np +def compute(two_dim: np.array, one_dim: np.array, val: np.float) -> None: + # do some computation and store result to one_dim + for task_index in range(len(one_dim)): + curr_one_dim = one_dim[task_index] + curr_two_dim = two_dim[task_index] + for index in range(len(one_dim)): + curr_one_dim[index] = (curr_two_dim[0][index] + curr_two_dim[1][index] + curr_two_dim[2][index]) * val + # ... +``` + +我想要把这些任务均匀地分布到不同的线程中, 并让操作系统对这些任务进行调度 + +我们先前已经学过了 [GIL](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/gil_cn.md) 相关的知识了, 我们知道不同线程中的解释器会在执行 python 字节码之前获取同一个互斥锁, 所以只要我们在不同线程中的代码不通过解释器去执行即可 + +我们这里会使用到 `C++ STL` 中的 `std::future` 来让我们不同的线程执行任务(具体起多少个 `future` 根据环境变量 `CONCURRENCY_NUM` 来判断) + +```bash +cd Cpython-Internals/Extension/CPP/m_parallel +python3 setup.py build +mv build/lib.macosx-10.15-x86_64-3.8/m_example.cpython-38-darwin.so ./ +zpoint@zpoints-MacBook-Pro m_parallel % python3 +Python 3.8.4 (default, Jul 14 2020, 02:58:48) +[Clang 11.0.3 (clang-1103.0.32.62)] on darwin +Type "help", "copyright", "credits" or "license" for more information. +>>> import os +>>> import numpy as np +>>> import m_example +>>> os.putenv("CONCURRENCY_NUM", "2") +>>> one_dim = np.zeros([4, 2], dtype=np.float) +>>> two_dim = np.array([[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]], [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]], [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]], [[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]], dtype=np.float) +>>> m_example.example(two_dim, one_dim, 0.5) +>>> print(one_dim) +[[4.5 6. ] + [4.5 6. ] + [4.5 6. ] + [4.5 6. ]] +``` + + +# 更多资料 + +* [numpy-api](https://numpy.org/doc/stable/reference/c-api/array.html?highlight=array%20api) diff --git a/README_CN.md b/README_CN.md index ebef15f..16ca7e3 100644 --- a/README_CN.md +++ b/README_CN.md @@ -81,9 +81,9 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 - [x] [C API(python 性能分析和 C 扩展)](https://github.com/zpoint/CPython-Internals/blob/master/Extension/C/c_cn.md) - [ ] Cython(C extension) - [x] [Boost C++ libaries (C\+\+ extension)](https://github.com/zpoint/Boost-Python-Examples) - - [ ] [C++ 扩展](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/cpp.md) - - [ ] 写 NumPy 扩展 - - [ ] 解锁 GIL + - [x] [C++ 扩展](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/cpp.md) + - [x] 写 NumPy 扩展 + - [x] 绕过 GIL # 语法 From 0bc5adcdcd28ca5ff9f72094f994d06306e7aa4e Mon Sep 17 00:00:00 2001 From: zpoint Date: Sun, 20 Sep 2020 17:16:10 +0800 Subject: [PATCH 42/90] c++ cn fix --- README_CN.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README_CN.md b/README_CN.md index 16ca7e3..390c18d 100644 --- a/README_CN.md +++ b/README_CN.md @@ -81,7 +81,7 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 - [x] [C API(python 性能分析和 C 扩展)](https://github.com/zpoint/CPython-Internals/blob/master/Extension/C/c_cn.md) - [ ] Cython(C extension) - [x] [Boost C++ libaries (C\+\+ extension)](https://github.com/zpoint/Boost-Python-Examples) - - [x] [C++ 扩展](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/cpp.md) + - [x] [C++ 扩展](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/cpp_cn.md) - [x] 写 NumPy 扩展 - [x] 绕过 GIL From 8a3ddc12e21533b29e264037f3620175e9f89b84 Mon Sep 17 00:00:00 2001 From: zpoint Date: Mon, 21 Sep 2020 09:58:52 +0800 Subject: [PATCH 43/90] c++ cn typo fix --- Extension/CPP/cpp_cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Extension/CPP/cpp_cn.md b/Extension/CPP/cpp_cn.md index 864ac3a..17aa0e5 100644 --- a/Extension/CPP/cpp_cn.md +++ b/Extension/CPP/cpp_cn.md @@ -28,7 +28,7 @@ setup(name='m_example', ext_modules=[my_module]) ``` -并且 [example.cpp](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/example/example.cpp) 从 Python 数组中获取元素, 之后把它作为整数类型存储在了 `C++` 的 `vector` 中, 然后用 `` 中的 `std::sort` 方法对其进行排序, 最后把排好序的第一个值作为 Python 对象返回给调用者 +[example.cpp](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/example/example.cpp) 从 Python 数组中获取元素, 之后把它作为整数类型存储在了 `C++` 的 `vector` 中, 然后用 `` 中的 `std::sort` 方法对其进行排序, 最后把排好序的第一个值作为 Python 对象返回给调用者 运行这个示例 From 4feb303832de3ba9230016875f7ddd8e4926945b Mon Sep 17 00:00:00 2001 From: zpoint Date: Sat, 26 Sep 2020 12:38:45 +0800 Subject: [PATCH 44/90] remove ; --- Extension/CPP/example/example.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Extension/CPP/example/example.cpp b/Extension/CPP/example/example.cpp index cefe5c4..169c8c4 100644 --- a/Extension/CPP/example/example.cpp +++ b/Extension/CPP/example/example.cpp @@ -30,7 +30,7 @@ static PyObject* example(PyObject *self, PyObject *args) { static PyMethodDef MyMethods[] = { {"example", example, METH_VARARGS, "example function"}, {NULL, NULL, 0, NULL} /* Sentinel */ -}; +} static struct PyModuleDef m_example = { PyModuleDef_HEAD_INIT, @@ -38,7 +38,7 @@ static struct PyModuleDef m_example = { "example module to provide python api", -1, MyMethods -}; +} PyMODINIT_FUNC PyInit_m_example(void) { PyObject *m; @@ -47,4 +47,4 @@ PyMODINIT_FUNC PyInit_m_example(void) { if (m == NULL) return NULL; return m; -} \ No newline at end of file +} From cd17d225ac7e2a85a3fa50c95bbfacd28facc395 Mon Sep 17 00:00:00 2001 From: zpoint Date: Sat, 26 Sep 2020 12:41:53 +0800 Subject: [PATCH 45/90] typo fix --- Extension/CPP/cpp_cn.md | 2 +- Extension/CPP/example/example.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Extension/CPP/cpp_cn.md b/Extension/CPP/cpp_cn.md index 17aa0e5..b0be1c9 100644 --- a/Extension/CPP/cpp_cn.md +++ b/Extension/CPP/cpp_cn.md @@ -50,7 +50,7 @@ Type "help", "copyright", "credits" or "license" for more information. 有些时候我们需要和 NumPy 结合使用, 让我们从一个新的示例开始 -我们以一个二维数组, 一个一位数组, 和一个双精度浮点数作为输入, 对输入进行一些运算, 之后把结果写回一维数组中 +我们以一个二维数组, 一个一维数组, 和一个双精度浮点数作为输入, 对输入进行一些运算, 之后把结果写回一维数组中 numpy 数组中的元素类型我们先指定为 float64 diff --git a/Extension/CPP/example/example.cpp b/Extension/CPP/example/example.cpp index 169c8c4..a82906f 100644 --- a/Extension/CPP/example/example.cpp +++ b/Extension/CPP/example/example.cpp @@ -30,7 +30,7 @@ static PyObject* example(PyObject *self, PyObject *args) { static PyMethodDef MyMethods[] = { {"example", example, METH_VARARGS, "example function"}, {NULL, NULL, 0, NULL} /* Sentinel */ -} +}; static struct PyModuleDef m_example = { PyModuleDef_HEAD_INIT, @@ -38,7 +38,7 @@ static struct PyModuleDef m_example = { "example module to provide python api", -1, MyMethods -} +}; PyMODINIT_FUNC PyInit_m_example(void) { PyObject *m; From 481f0ab1a0412a7d6cb12e6aebb180c5c4075110 Mon Sep 17 00:00:00 2001 From: zpoint Date: Wed, 30 Sep 2020 18:09:29 +0800 Subject: [PATCH 46/90] c++ extension cn translate fix --- Extension/CPP/cpp_cn.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Extension/CPP/cpp_cn.md b/Extension/CPP/cpp_cn.md index b0be1c9..9d17878 100644 --- a/Extension/CPP/cpp_cn.md +++ b/Extension/CPP/cpp_cn.md @@ -5,8 +5,8 @@ * [介绍](#介绍) * [示例](#示例) * [和 NumPy 结合](#和-NumPy-结合) -* [bypass the GIL](#bypass-the-GIL) -* [read more](#read-more) +* [绕过 GIL](#绕过-GIL) +* [更多资料](#更多资料) # 介绍 From 67b04aceeb22d4894be1f60d61ce4cd84d899803 Mon Sep 17 00:00:00 2001 From: h5jam Date: Tue, 6 Oct 2020 02:06:26 +0900 Subject: [PATCH 47/90] update README_KR.md --- README_KR.md | 42 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/README_KR.md b/README_KR.md index 04101b3..29d9703 100644 --- a/README_KR.md +++ b/README_KR.md @@ -1,4 +1,6 @@ -# Cpython 내부![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals-KR) +# Cpython Internals!![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals-KR) + +![cpython logo](https://docs.google.com/drawings/d/e/2PACX-1vQKKPvv9xI22zZcRtElIMx_-G22qYcLUvl-gbngubjf76dr80ZjsYQZCCKVqEvJnmBnwZyDXqG9GPlu/pub?w=300&h=200) * [English](https://github.com/zpoint/CPython-Internals/blob/master/README.md) * [简体中文](https://github.com/zpoint/CPython-Internals/blob/master/README_CN.md) @@ -24,7 +26,10 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 * [라이브러리(Lib)](#라이브러리(Lib)) * [인터프리터(Interpreter)](#인터프리터(Interpreter)) * [확장(Extension)](#확장(Extension)) -* [공부할 자료](#공부할-자료) +* [공부할 자료(Learning material)](#공부할-자료) +* [기여(Contribution)](#Contribution) +* [라이센스(License)](#License) + # 객체들(Objects) @@ -76,14 +81,19 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 - [x] [C API(profile python code and write pure C extension)](https://github.com/zpoint/CPython-Internals/blob/master/Extension/C/c.md) - [ ] Cython(C extension) - [x] [Boost C++ libaries (C\+\+ extension)](https://github.com/zpoint/Boost-Python-Examples) + - [ ] [C++ extension](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/cpp.md) + - [x] integrate with NumPy + - [x] bypass the GIL -# 문법(Grammar) -[< < Compilers > >](https://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811) 와 [< < SICP > >](https://www.amazon.com/Structure-Interpretation-Computer-Programs-Engineering/dp/0262510871) 를 읽어 본 후 이런 종류의 것들에 대한 이해가 높아지면, 이 부분을 업데이트 할 것 입니다. +# 문법(Grammar) -그 동안, 내 일상적인 작업의 우선 순위가 더 높으므로, 이 부분의 업데이트를 보려면 몇 달이 필요할 수 있습니다. +- [x] [Compile Phase](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) + - [x] [Grammar/MetaGrammar to DFA](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) + - [x] [CST to AST](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile2/compile.md) + - [x] [AST to python byte code](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile3/compile.md) -# 공부할 자료 +# 공부할 자료(Learning material) 읽어본 자료들만 추천할 것 입니다. @@ -94,3 +104,23 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 * [YET ANOTHER PYTHON INTERNALS BLOG(blog/eng)](https://pythoninternal.wordpress.com/) * [Junnplus(blog/cn)](https://github.com/Junnplus/blog/issues) * [manjusaka(blog/cn)](https://manjusaka.itscoder.com/) +* [aoik-Python's compiler series(blog/eng)](https://aoik.me/blog/posts/python-compiler-from-grammar-to-dfa) + +# 기여(Contribution) + +모든 기여는 환영입니다! + +* pull request 제출하기 + * 당신이 공유하기를 원하는 지식 + * 새로운 내용 추가 + * 기술적 결함 교정 + * 영어 문법 교정 + * 번역 + * 그밖에 다른 무엇이든지 +* issue 열기 + * 제안 + * 질문 + * 실수 교정 + * 그밖에 다른 무엇이든지 + +# [라이센스(License)](https://creativecommons.org/licenses/by-nc-sa/4.0/) From baa4d74fdcb8dcc02d83327b597ab2f03b06059f Mon Sep 17 00:00:00 2001 From: xueguanwen Date: Wed, 6 Jan 2021 21:39:17 +0800 Subject: [PATCH 48/90] Update setup.py fix error which happened in centos7 default environment: ''' error: 'for' loop initial declarations are only allowed in C99 mode ''' --- Extension/C/profile_py2/my_mod/setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Extension/C/profile_py2/my_mod/setup.py b/Extension/C/profile_py2/my_mod/setup.py index ce18b23..39944c8 100644 --- a/Extension/C/profile_py2/my_mod/setup.py +++ b/Extension/C/profile_py2/my_mod/setup.py @@ -1,6 +1,6 @@ from distutils.core import setup, Extension -my_module = Extension('my_module', sources=['my_module.c']) +my_module = Extension('my_module', sources=['my_module.c'], extra_compile_args=["-std=c99"]) setup(name='my_module', version='1.0', From 7712a872dcfc8185e59110835b0e67b4cbfb1674 Mon Sep 17 00:00:00 2001 From: Hitesh Joshi Date: Mon, 18 Jan 2021 01:03:31 +0530 Subject: [PATCH 49/90] Removed same URL and some grammatical mistakes --- BasicObject/dict/dict.md | 65 +++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 35 deletions(-) diff --git a/BasicObject/dict/dict.md b/BasicObject/dict/dict.md index f10bf75..f16971c 100644 --- a/BasicObject/dict/dict.md +++ b/BasicObject/dict/dict.md @@ -1,8 +1,8 @@ -# dict![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/dict) +# dict ![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/dict) -# contents +# Contents -[related file](#related-file) +[Related File](#related-file) [evolvement and implementation](#evolvement-and-implementation) @@ -19,48 +19,44 @@ * [end](#end) * [read more](#read-more) -# related file -* cpython/Objects/dictobject.c -* cpython/Objects/clinic/dictobject.c.h -* cpython/Include/dictobject.h -* cpython/Include/cpython/dictobject.h +# Related File +* cpython/Objects/dictobject.c ([File URL](https://github.com/python/cpython/blob/master/Objects/dictobject.c)) +* cpython/Objects/clinic/dictobject.c.h ([File URL](https://github.com/python/cpython/blob/master/Objects/clinic/dictobject.c.h)) +* cpython/Include/dictobject.h ([File URL](https://github.com/python/cpython/blob/master/Include/dictobject.h)) # evolution and implementation -before we dive into the memory layout of python dictionary, let's imagine what normal dictionary object looks like - -usually, we implement a dictionary as a hash table, it takes O(1) time to look up an element, that's how exactly CPython does - +Before we dive into the memory layout of python dictionary, let's imagine what a normal dictionary object looks like +usually, we implement a dictionary as a hash table, it takes **O(1)** time to lookup an element, that's how exactly CPython does this is an entry, which points to a hash table inside the python dictionary object before python3.6 ![before_py36](./before_py36.png) -If you have many large sparse hash tables, it will waste lots of memory. In order to represent the hash table in a more compact way, you can split indices and real key-value object inside the hashtable(After python3.6) +If you have many large sparse hash tables, it will waste lots of memory. In order to represent the hash table more compactly, you can split indices and real key-value object inside the hashtable(After python3.6) ![after_py36](./after_py36.png) -`indices` points to an array of index, `entries` points to where the origin content stores - -You can think `indices` as a simpler version hash table, and `entries` as an array, which stores each origin hash value, key, and value as an element +`Indices` points to an array of the index, `entries` points to where the original content stores -Whenever you search for an element or insert a new element, according to the value of hash reslut mod the size of `indices`, you are able to get an index in the `indices` array, and get the result you want from the `entries` according to the newly get index, For example, result of `hash("key2") % 8` is `3`, and the value in `indices[3]` is `1`, so we can go to `entries` and find what we need in `entries[1]` +You can think of `indices` as a simpler version hash table, and `entries` as an array, which stores each origin hash value, key, and value as an element +Whenever you search for an element or insert a new element, according to the value of hash result mod the size of `indices`, you can get an index in the `indices` array, and get the result you want from the `entries` according to the newly get index, For example, the result of `hash("key2") % 8` is `3`, and the value in `indices[3]` is `1`, so we can go to `entries` and find what we need in `entries[1]` ![after_py36_search](./after_py36_search.png) -We can benefit more compact space from the above approach, For example, in 64 word size operating system, every pointer takes 8 bytes, we need `8 * 3 * 8` which is `192` originally, while we only need `8 * 3 * 3 + 1 * 8` which is `80`, it saves about 58% of memory usage +We can benefit from more compact space from the above approach, For example, in a 64-word size operating system, every pointer takes 8 bytes, we need `8 * 3 * 8` which is `192` originally, while we only need `8 * 3 * 3 + 1 * 8` which is `80`, it saves about 58% of memory usage. -Because `entries` store elements in the insertion order, we can traverse the hash table in the same order as we insert items. In the old version implementation, the hash table stores elements in the order of hash key, it appears **unordered** when you traverse the hash table. That's why dict before python3.6 is **unordered** and after python3.6 is **ordered** +Because `entries` store elements in the insertion order, we can traverse the hash table in the same order as we insert items. In the old version implementation, the hash table stores elements in the order of the hash key, it appears **unordered** when you traverse the hash table. That's why dict before python3.6 is **unordered** and after python3.6 is **ordered**. ![after_py36_space](./after_py36_space.png) -[PyPy](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html) implement the compact and ordered dict firstly, and CPython implement it in [pep 468](https://www.python.org/dev/peps/pep-0468/]) and release after python3.6 +[PyPy](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html) implement the compact and ordered dict firstly, and CPython implement it in [pep 468](https://www.python.org/dev/peps/pep-0468/]) and release after python3.6. # memory layout -Now, let's see the memory layout +Now, let's see the memory layout. ![PyDictObject](./PyDictObject.png) @@ -88,7 +84,7 @@ Or: ``` -In what situation will different dict object shares same keys but different values, only contain unicode keys and no dummy keys(no deleted object), and preserve same insertion order? Let's try. +In what situation, will different dict object shares same keys but different values, only contain Unicode keys and no dummy keys(no deleted object) and preserve same insertion order? Let's try. ```c # I've altered the source code to print some state information @@ -127,7 +123,7 @@ in lookdict_split, address of PyDictObject: 0x10bdbbc00, address of PyDictKeysOb ``` -The split table implementation can save lots of memory if you have many instances of same class. For more detail, please refer to [PEP 412 -- Key-Sharing Dictionary](https://www.python.org/dev/peps/pep-0412/) +The splittable implementation can save lots of memory if you have many instances of the same class. For more detail, please refer to [PEP 412 -- Key-Sharing Dictionary](https://www.python.org/dev/peps/pep-0412/) ![key_shares](./key_shares.png) @@ -198,7 +194,7 @@ now, the overview is clear # hash collisions and delete -how CPython handle hash collisions in dict object? Instead of depending on a good hash function, python uses "perturb" strategy, let's read some source code and have a try +How CPython handle hash collisions in dict object? Instead of depending on a good hash function, python uses the "perturb" strategy, let's read some source code and have a try. ```python3 @@ -210,7 +206,7 @@ use j % 2**i as the next table index; ``` -I've altered the source code to print some information +I've altered the source code to print some information. ```python3 @@ -234,7 +230,7 @@ index: 7 ix: -1 DKIX_EMPTY ``` -`indices` is the index, value **-1(DKIX_EMPTY)** means the current location is empty, now I set `d[1] = "value1"` in the code, `hash(1) & mask == 1` will find the location 1 in the `indices`, it's `-1(DKIX_EMPTY)` originally, means it's free to use, we take the position and change `-1` to the next free index in `entries`, which is `0`, so we store `0` to `indices[1]` +`indices` is the index, value **-1(DKIX_EMPTY)** means the current location is empty, now I set `d[1] = "value1"` in the code, `hash(1) & mask == 1` will find the location 1 in the `indices`, it's `-1(DKIX_EMPTY)` originally, means it's free to use, we take the position and change `-1` to the next free index in `entries`, which is `0`, so we store `0` to `indices[1]`. ![hh_1](./hh_1.png) @@ -267,7 +263,7 @@ d[0] = "value0" If we insert an element with hash key result 16, `hash (16) & mask == 0`, but `0` is already taken, we encounter hash collision -There're various different way to handle hash collision, `Redis` use open hashing(linked list) to solve the problem, CPython `set` object implements a close hashing(linear probing algorithm), while `set` implements a more sporadic algorithm(go to read the source code if you're interested with it) +There's a various different way to handle hash collision, `Redis` use open hashing(linked list) to solve the problem, CPython `set` object implements a close hashing(linear probing algorithm), while `set` implements a more sporadic algorithm(go to read the source code if you're interested with it). ![dict_prob](./dict_prob.png) @@ -305,7 +301,8 @@ d[5] = 5 ``` # variable size indices -Notice, the indices array is variable size. when the size of your hash table is <= 128, type of each item is int_8, int16, int32 and int64 for bigger table. The variable size indices array can save memory usage. + +Notice, the indices array is variable size. when the size of your hash table is <= 128, the type of each item is int_8, int16, int32, and int64 for a bigger table. The variable size of the indices array can save memory usage. ![indices](./indices.png) @@ -318,9 +315,9 @@ Notice, the indices array is variable size. when the size of your hash table is static PyDictObject *free_list[PyDict_MAXFREELIST]; ``` -CPython also use free_list to reuse the deleted hash table, to avoid memory fragment and improve performance +CPython also uses free_list to reuse the deleted hash table, to avoid memory fragment and improve performance. - There exists per process global variable named **free_list** + There exists per process global variable named **free_list**. ![free_list0](./free_list0.png) @@ -356,9 +353,9 @@ the [lazy deletion](https://en.wikipedia.org/wiki/Lazy_deletion) strategy is use ## why mark as DKIX_DUMMY -why mark as **DKIX_DUMMY** in the indices? +Why mark as **DKIX_DUMMY** in the indices? -there're totally three kinds of value for each slot in indices, **DKIX_EMPTY**(-1), **DKIX_DUMMY**(-2) and **Active/Pending**(>=0), if you mark as **DKIX_EMPTY** instead of **DKIX_DUMMY**, the "perturb" strategy for inserting and finding key/values will fail. Imagine you have a hash table in size 8, this is the indices in hash table +There're three kinds of value for each slot in indices, **DKIX_EMPTY**(-1), **DKIX_DUMMY**(-2) and **Active/Pending**(>=0), if you mark as **DKIX_EMPTY** instead of **DKIX_DUMMY**, the "perturb" strategy for inserting and finding key/values will fail. Imagine you have a hash table in size 8, this is the indices in hash table. ```python3 indices: [0] [1] [DKIX_EMPTY] [2] [DKIX_EMPTY] [DKIX_EMPTY] [3] [4] @@ -366,9 +363,7 @@ index: 0 1 2 3 4 5 6 7 ``` -when you search for an item with hash value 0, and real position is in entries[4] - -this is the searching process according to the "perturb" strategy +When you search for an item with hash value 0, and the real position is in entries[4], this is the searching process according to the "perturb" strategy. ```python3 0 -> 1 -> 6 -> 7(found, no need to go on) From 297d717e844ad7df18c4324f580c4d749339aef7 Mon Sep 17 00:00:00 2001 From: evoxtorm Date: Mon, 18 Jan 2021 01:10:30 +0530 Subject: [PATCH 50/90] changes --- BasicObject/dict/dict.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BasicObject/dict/dict.md b/BasicObject/dict/dict.md index f16971c..f9a8439 100644 --- a/BasicObject/dict/dict.md +++ b/BasicObject/dict/dict.md @@ -4,7 +4,7 @@ [Related File](#related-file) -[evolvement and implementation](#evolvement-and-implementation) +[Evolvement and Implementation](#evolvement-and-implementation) * [memory layout](#memory-layout) * [combined table and split table](#combined-table-and-split-table) @@ -25,7 +25,7 @@ * cpython/Include/dictobject.h ([File URL](https://github.com/python/cpython/blob/master/Include/dictobject.h)) -# evolution and implementation +# Evolvement and Implementation Before we dive into the memory layout of python dictionary, let's imagine what a normal dictionary object looks like usually, we implement a dictionary as a hash table, it takes **O(1)** time to lookup an element, that's how exactly CPython does From db0e271efb91118ad5f974725edb1fe258dce7d5 Mon Sep 17 00:00:00 2001 From: evoxtorm Date: Fri, 22 Jan 2021 21:55:48 +0530 Subject: [PATCH 51/90] Fixed a url path --- BasicObject/dict/dict.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BasicObject/dict/dict.md b/BasicObject/dict/dict.md index f9a8439..2925836 100644 --- a/BasicObject/dict/dict.md +++ b/BasicObject/dict/dict.md @@ -52,7 +52,7 @@ Because `entries` store elements in the insertion order, we can traverse the has ![after_py36_space](./after_py36_space.png) -[PyPy](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html) implement the compact and ordered dict firstly, and CPython implement it in [pep 468](https://www.python.org/dev/peps/pep-0468/]) and release after python3.6. +[PyPy](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html) implement the compact and ordered dict firstly, and CPython implement it in [pep 468](https://www.python.org/dev/peps/pep-0468/) and release after python3.6. # memory layout From bc7c8a58c98e30e256ac95d3889bd74e0e019de3 Mon Sep 17 00:00:00 2001 From: zpoint Date: Mon, 19 Apr 2021 09:55:35 +0800 Subject: [PATCH 52/90] pickle begin --- Modules/pickle/pickle.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 Modules/pickle/pickle.md diff --git a/Modules/pickle/pickle.md b/Modules/pickle/pickle.md new file mode 100644 index 0000000..fffebda --- /dev/null +++ b/Modules/pickle/pickle.md @@ -0,0 +1,36 @@ +# Pickle + +# contents + +* [related file](#related-file) +* [introduction](#introduction) +* [read more](#read-more) + +# related file + +* Lib/pickle.py +* Modules/_pickle.c +* Modules/clinic/_pickle.c.h + +# introduction + +The `pickle` module will use the faster `_pickle` implemented `C`(`Modules/_pickle.c`) if possible, if the `_pickle` module not found, the `python` implemented `pickle`(`Lib/pickle.py`) will be used + +| Type | Implementation | +| :----------: | :------------: | +| None | save_none | +| bool | save_bool | +| int | save_long | +| float | save_float | +| bytes | save_bytes | +| str | save_str | +| tuple | save_tuple | +| list | save_list | +| dict | save_dict | +| set | save_set | +| frozenset | save_frozenset | +| FunctionType | save_global | +| | save_reduce | + +# read more + From 230718720aaa6748058672b986623e4e2d181c39 Mon Sep 17 00:00:00 2001 From: zpoint Date: Tue, 20 Apr 2021 23:20:06 +0800 Subject: [PATCH 53/90] pickle v0.1 --- Modules/pickle/pickle.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/Modules/pickle/pickle.md b/Modules/pickle/pickle.md index fffebda..0594ea5 100644 --- a/Modules/pickle/pickle.md +++ b/Modules/pickle/pickle.md @@ -4,6 +4,7 @@ * [related file](#related-file) * [introduction](#introduction) +* [implementation](#implementation) * [read more](#read-more) # related file @@ -14,7 +15,7 @@ # introduction -The `pickle` module will use the faster `_pickle` implemented `C`(`Modules/_pickle.c`) if possible, if the `_pickle` module not found, the `python` implemented `pickle`(`Lib/pickle.py`) will be used +The `pickle` module will use the faster `_pickle` implemented in `C`(`Modules/_pickle.c`) if possible, if the `_pickle` module not found, the `python` implemented `pickle`(`Lib/pickle.py`) will be used | Type | Implementation | | :----------: | :------------: | @@ -32,5 +33,18 @@ The `pickle` module will use the faster `_pickle` implemented `C`(`Modules/_pic | FunctionType | save_global | | | save_reduce | +# implementation + +## None + +```python3 +NONE = b'N' # push None + +def save_none(self, obj): + self.write(NONE) +``` + +It's obvious + # read more From 51a1603e5bbbcd3f6a879aa5b6f9cc5ecb348f41 Mon Sep 17 00:00:00 2001 From: zpoint Date: Thu, 22 Apr 2021 00:24:03 +0800 Subject: [PATCH 54/90] pickle v0.2 --- Modules/pickle/pickle.md | 14 ++++++++++++++ Modules/pickle/pickle_head.png | Bin 0 -> 11165 bytes 2 files changed, 14 insertions(+) create mode 100644 Modules/pickle/pickle_head.png diff --git a/Modules/pickle/pickle.md b/Modules/pickle/pickle.md index 0594ea5..8fcb6ed 100644 --- a/Modules/pickle/pickle.md +++ b/Modules/pickle/pickle.md @@ -35,6 +35,18 @@ The `pickle` module will use the faster `_pickle` implemented in `C`(`Modules/_ # implementation +Whenever you call dump, some extra information will be added to the result + +The first byte is an identifier indicate that the following binary content is encoded in "pickle protocol" + +The second byte is the protocol version + +The final byte is a stop symbol indicate that it's the end of the binary content + +![pickle_head](pickle_head.png) + + + ## None ```python3 @@ -46,5 +58,7 @@ def save_none(self, obj): It's obvious + + # read more diff --git a/Modules/pickle/pickle_head.png b/Modules/pickle/pickle_head.png new file mode 100644 index 0000000000000000000000000000000000000000..8ac37c8198453bb59bc0d1f52919dfe1740d7e10 GIT binary patch literal 11165 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 Date: Sun, 25 Apr 2021 23:33:26 +0800 Subject: [PATCH 55/90] pickle v0.3 --- Modules/pickle/pickle.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Modules/pickle/pickle.md b/Modules/pickle/pickle.md index 8fcb6ed..539842d 100644 --- a/Modules/pickle/pickle.md +++ b/Modules/pickle/pickle.md @@ -56,7 +56,13 @@ def save_none(self, obj): self.write(NONE) ``` -It's obvious +The `data` is `N` here, with the aforementioned information added + +```python3 +>>> import pickle +>>> pickle.dumps(None) +b'\x80\x04N.' +``` From f675496700ae16c813e32efbd1744d61546a921c Mon Sep 17 00:00:00 2001 From: zpoint Date: Tue, 4 May 2021 23:07:38 +0800 Subject: [PATCH 56/90] pickle v0.35 --- Modules/pickle/int.png | Bin 0 -> 15459 bytes Modules/pickle/pickle.md | 30 +++++++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 Modules/pickle/int.png diff --git a/Modules/pickle/int.png b/Modules/pickle/int.png new file mode 100644 index 0000000000000000000000000000000000000000..6890ab92e7f4532baed07a38a1c5fa23bd1acd60 GIT binary patch literal 15459 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 import pickle @@ -64,7 +67,32 @@ The `data` is `N` here, with the aforementioned information added b'\x80\x04N.' ``` +## bool +`bool` is simiiar to `None` + +```python3 +NEWTRUE = b'\x88' # push True +NEWFALSE = b'\x89' # push False + +def save_bool(self, obj): + if self.proto >= 2: + self.write(NEWTRUE if obj else NEWFALSE) +``` + +The `data` here is `b'\x88'(True)` and `b'\x89'(False)` + +```python3 +>>> import pickle +>>> pickle.dumps(True) +b'\x80\x04\x88.' +>>> pickle.dumps(False) +b'\x80\x04\x89.' +``` + +## int + +![int](int.png) # read more From 48fdac23f7c3a4e20fc9834ce7d2d29d644b54f3 Mon Sep 17 00:00:00 2001 From: zpoint Date: Sun, 9 May 2021 21:50:12 +0800 Subject: [PATCH 57/90] pickle v0.4 --- Modules/pickle/bytes.png | Bin 0 -> 42965 bytes Modules/pickle/float.png | Bin 0 -> 11366 bytes Modules/pickle/int.png | Bin 15459 -> 25479 bytes Modules/pickle/int2.png | Bin 0 -> 40487 bytes Modules/pickle/pickle.md | 40 ++++++++++++++++++++++++++++++++++++++ Modules/pickle/str.png | Bin 0 -> 56328 bytes Modules/pickle/tuple0.png | Bin 0 -> 3616 bytes 7 files changed, 40 insertions(+) create mode 100644 Modules/pickle/bytes.png create mode 100644 Modules/pickle/float.png create mode 100644 Modules/pickle/int2.png create mode 100644 Modules/pickle/str.png create mode 100644 Modules/pickle/tuple0.png diff --git a/Modules/pickle/bytes.png b/Modules/pickle/bytes.png new file mode 100644 index 0000000000000000000000000000000000000000..1dc0f2858d6538c1c3eb1c8a177d63a9a407427a GIT binary patch literal 42965 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

    8lE5ik@a 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 Avj6}9 literal 0 HcmV?d00001 diff --git a/Modules/pickle/int.png b/Modules/pickle/int.png index 6890ab92e7f4532baed07a38a1c5fa23bd1acd60..e922852fc9921dc6d47f8c8170488ec7845ccbab 100644 GIT binary patch literal 25479 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 literal 0 HcmV?d00001 diff --git a/Modules/pickle/pickle.md b/Modules/pickle/pickle.md index e34c44f..2864d34 100644 --- a/Modules/pickle/pickle.md +++ b/Modules/pickle/pickle.md @@ -8,6 +8,10 @@ * [None](#None) * [bool](#bool) * [int](#int) + * [float](#float) + * [bytes](#bytes) + * [str](#str) + * [tuple](#tuple) * [read more](#read-more) # related file @@ -92,7 +96,43 @@ b'\x80\x04\x89.' ## int +The integer will be saved in various format according to it's value + ![int](int.png) +![int2](int2.png) + + + +## float + +The float is saved in [IEEE_754](https://en.wikipedia.org/wiki/IEEE_754-1985) standard + +![float](float.png) + +## bytes + +``bytes` object is save directly as the `data` part below + +The `head` part various according to the data size + +![bytes](bytes.png) + +## str + +`str` is similar to [bytes](#bytes), except that `str` is encoded in `utf-8` format before dump + +![str](str.png) + +## tuple + +`tuple` is more complicated than other basic type + +If the `tuple` is empty + +![tuple0](tuple0.png) + +If + # read more diff --git a/Modules/pickle/str.png b/Modules/pickle/str.png new file mode 100644 index 0000000000000000000000000000000000000000..ff8cc2e55cf02866f37eddc9e4b51aea3957a2a8 GIT binary patch literal 56328 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 literal 0 HcmV?d00001 From 59889143a00af5e0f1683cccf7afa453b2a6898b Mon Sep 17 00:00:00 2001 From: zpoint Date: Mon, 10 May 2021 23:34:02 +0800 Subject: [PATCH 58/90] pickle v0.5 --- Modules/pickle/pickle.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Modules/pickle/pickle.md b/Modules/pickle/pickle.md index 2864d34..287f447 100644 --- a/Modules/pickle/pickle.md +++ b/Modules/pickle/pickle.md @@ -132,7 +132,11 @@ If the `tuple` is empty ![tuple0](tuple0.png) -If +If the tuple does not contain itself + + + + # read more From 8c408c85ab32e3d0911c91ad541cd19710373b59 Mon Sep 17 00:00:00 2001 From: zpoint Date: Wed, 12 May 2021 21:04:11 +0800 Subject: [PATCH 59/90] pickle v0.6 --- Modules/pickle/list1.png | Bin 0 -> 39612 bytes Modules/pickle/pickle.md | 42 +++++++++++++++++++++++++++++++++++++- Modules/pickle/tuple1.png | Bin 0 -> 32912 bytes 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 Modules/pickle/list1.png create mode 100644 Modules/pickle/tuple1.png diff --git a/Modules/pickle/list1.png b/Modules/pickle/list1.png new file mode 100644 index 0000000000000000000000000000000000000000..2f451b5d29ca0d3f759175fb4be3eb502da4f52a GIT binary patch literal 39612 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 gK$O78K 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 Date: Thu, 13 May 2021 23:37:23 +0800 Subject: [PATCH 60/90] pickle v0.7 --- Modules/pickle/pickle.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/Modules/pickle/pickle.md b/Modules/pickle/pickle.md index 84c353f..39a0992 100644 --- a/Modules/pickle/pickle.md +++ b/Modules/pickle/pickle.md @@ -13,7 +13,7 @@ * [str](#str) * [tuple](#tuple) * [list](#list) - * [object](#object) + * [type](#type) * [read more](#read-more) # related file @@ -174,7 +174,21 @@ List will be dumped batch by batch(default batch size `1000`) `dict` and `set` are similar to `list` and `tuple`, begin and end with `type` symbol inidicate the type, and iter through each object and recursive call `dump` for each object -## Object +## type + +If what's to be saved is a type + +```python3 +class A(object): + a = "a" + b = "b" + + def run(self): + print(self.a, self.b) + +pickle.dumps(A) +b'\x80\x04\x95\x12\x00\x00\x00\x00\x00\x00\x00\x8c\x08__main__\x94\x8c\x01A\x94\x93\x94.' +``` From 1c4a440d599c10aeaabcc182a0d39abdf677192b Mon Sep 17 00:00:00 2001 From: zpoint Date: Sat, 15 May 2021 00:11:14 +0800 Subject: [PATCH 61/90] pickle v0.8 --- Modules/pickle/pickle.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Modules/pickle/pickle.md b/Modules/pickle/pickle.md index 39a0992..f932a5a 100644 --- a/Modules/pickle/pickle.md +++ b/Modules/pickle/pickle.md @@ -190,7 +190,9 @@ pickle.dumps(A) b'\x80\x04\x95\x12\x00\x00\x00\x00\x00\x00\x00\x8c\x08__main__\x94\x8c\x01A\x94\x93\x94.' ``` - + The data part is `\x8c\x08__main__\x94\x8c\x01A\x94\x93\x94` + + # read more From b691315176b02409935bfb1f444d93c73b45648b Mon Sep 17 00:00:00 2001 From: zpoint Date: Sat, 15 May 2021 22:56:29 +0800 Subject: [PATCH 62/90] pickle v0.9 --- Modules/pickle/object1.png | Bin 0 -> 38535 bytes Modules/pickle/pickle.md | 26 +++++++++++++++++++++++--- Modules/pickle/type1.png | Bin 0 -> 31020 bytes 3 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 Modules/pickle/object1.png create mode 100644 Modules/pickle/type1.png diff --git a/Modules/pickle/object1.png b/Modules/pickle/object1.png new file mode 100644 index 0000000000000000000000000000000000000000..16959d4635b281803a0d1f5865d53b6dcebb2841 GIT binary patch literal 38535 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 EAM6N{rT_o{ literal 0 HcmV?d00001 diff --git a/Modules/pickle/pickle.md b/Modules/pickle/pickle.md index f932a5a..b2f169f 100644 --- a/Modules/pickle/pickle.md +++ b/Modules/pickle/pickle.md @@ -1,4 +1,4 @@ -# Pickle +# pickle # contents @@ -14,7 +14,7 @@ * [tuple](#tuple) * [list](#list) * [type](#type) -* [read more](#read-more) + * [object](#object) # related file @@ -192,7 +192,27 @@ b'\x80\x04\x95\x12\x00\x00\x00\x00\x00\x00\x00\x8c\x08__main__\x94\x8c\x01A\x94\ The data part is `\x8c\x08__main__\x94\x8c\x01A\x94\x93\x94` +![type1](./type1.png) +`dumps(A)` saves the `module_name` (`__main__`) and the `object` name(`A`) in [str](#str) formart -# read more +## object + +If what's to be saved is an instance + +```python3 +a = A() +pickle.dumps(a) +b'\x80\x04\x95\x15\x00\x00\x00\x00\x00\x00\x00\x8c\x08__main__\x94\x8c\x01A\x94\x93\x94)\x81\x94.' +``` + +The data part is `\x8c\x08__main__\x94\x8c\x01A\x94\x93\x94)\x81\x94` + +The only difference is that there're some extra information appended after the previous dumped result + +A `TUPLE` indicate the `args` needed for instance call, in the current case `a = A()` the args is empty, so it's an `EMPTY_TUPLE` + +A `NEWOBJ` tuple indicate that it needs to call `cls.__new__(cls, *args)` after load the dumped result + +![object1](./object1.png) diff --git a/Modules/pickle/type1.png b/Modules/pickle/type1.png new file mode 100644 index 0000000000000000000000000000000000000000..57ac3403e26bbd7438447fc2104653a98fec90a9 GIT binary patch literal 31020 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 literal 0 HcmV?d00001 From 42a60a93e69164d6dfc54c1e3f172cfcfdefc1a6 Mon Sep 17 00:00:00 2001 From: zpoint Date: Sat, 15 May 2021 23:29:55 +0800 Subject: [PATCH 63/90] pickle done --- Modules/pickle/pickle.md | 10 +- Modules/pickle/pickle_cn.md | 220 ++++++++++++++++++++++++++++++++++++ README.md | 4 +- README_CN.md | 2 +- 4 files changed, 229 insertions(+), 7 deletions(-) create mode 100644 Modules/pickle/pickle_cn.md diff --git a/Modules/pickle/pickle.md b/Modules/pickle/pickle.md index b2f169f..56f1c35 100644 --- a/Modules/pickle/pickle.md +++ b/Modules/pickle/pickle.md @@ -24,7 +24,9 @@ # introduction -The `pickle` module will use the faster `_pickle` implemented in `C`(`Modules/_pickle.c`) if possible, if the `_pickle` module not found, the `python` implemented `pickle`(`Lib/pickle.py`) will be used +We use `pickle` module to serialize and unserialize our python object, There're several protocol version for `pickle`, The current version is `4` + + The `pickle` module will use the faster `_pickle` implemented in `C`(`Modules/_pickle.c`) if possible, if the `_pickle` module not found, the `python` implemented `pickle`(`Lib/pickle.py`) will be used | Type | Implementation | | :----------: | :------------: | @@ -114,7 +116,7 @@ The float is saved in [IEEE_754](https://en.wikipedia.org/wiki/IEEE_754-1985) st ## bytes -``bytes` object is save directly as the `data` part below +`bytes` object is save directly as the `data` part below The `head` part various according to the data size @@ -168,7 +170,7 @@ The last byte is `STOP` symbol The data can be described as (`]\x94(\x8c\x01a\x94\x8c\x01b\x94K\x02\x85\x94e`) -List will be dumped batch by batch(default batch size `1000`) +`list` will be dumped batch by batch(default batch size `1000`) ![list1](/Users/zpoint/Desktop/Cpython-Internals/Modules/pickle/list1.png) @@ -212,7 +214,7 @@ The only difference is that there're some extra information appended after the p A `TUPLE` indicate the `args` needed for instance call, in the current case `a = A()` the args is empty, so it's an `EMPTY_TUPLE` -A `NEWOBJ` tuple indicate that it needs to call `cls.__new__(cls, *args)` after load the dumped result +A `NEWOBJ` symbol indicate that it needs to call `cls.__new__(cls, *args)` after load the dumped result ![object1](./object1.png) diff --git a/Modules/pickle/pickle_cn.md b/Modules/pickle/pickle_cn.md new file mode 100644 index 0000000..f1d8de7 --- /dev/null +++ b/Modules/pickle/pickle_cn.md @@ -0,0 +1,220 @@ +# pickle + +# 目录 + +* [相关位置文件](#相关位置文件) +* [简介](#简介) +* [实现](#实现) + * [None](#None) + * [bool](#bool) + * [int](#int) + * [float](#float) + * [bytes](#bytes) + * [str](#str) + * [tuple](#tuple) + * [list](#list) + * [type](#type) + * [object](#object) + +# 相关位置文件 + +* Lib/pickle.py +* Modules/_pickle.c +* Modules/clinic/_pickle.c.h + +# 简介 + +我们用 `pickle` 来对 `python ` 中的对象进行序列化和反序列化, `pickle` 总共有好几个版本, 当前的版本号是 4 + + `pickle` 模块会在可能的情况运行 `C(Modules/_pickle.c)` 实现的代码, 这样效率更高, 但是如果无法加载, 还有一个纯 `python` 实现的 `pickle`(`Lib/pickle.py`) 作为备选 + +| 类型 | 实现 | +| :----------: | :------------: | +| None | save_none | +| bool | save_bool | +| int | save_long | +| float | save_float | +| bytes | save_bytes | +| str | save_str | +| tuple | save_tuple | +| list | save_list | +| dict | save_dict | +| set | save_set | +| frozenset | save_frozenset | +| FunctionType | save_global | +| | save_reduce | + +# 实现 + +每当你调用 `dump` 时, 结果数据除了对象本身, 还会包含一些额外的信息 + +第一个字节是一个标识符, 表示接下来的内容都是用 `pickle` 序列化的内容 + +第二个字节表示 `pickle` 版本号 + +最后一个字节是一个结束标识符, 表示看到这个字符时, 当前这一段 `pickle` 序s列化的结构信息已经结束了 + +![pickle_head](pickle_head.png) + + + +## None + +```python3 +NONE = b'N' # push None + +def save_none(self, obj): + self.write(NONE) +``` + +这里的 `data` 是 `N` , 除了 `N` 以外, 前面提到的额外的信息分别加到了头部和尾部 + +```python3 +>>> import pickle +>>> pickle.dumps(None) +b'\x80\x04N.' +``` + +## bool + +`bool` 和 `None` 表示方式类似 + +```python3 +NEWTRUE = b'\x88' # push True +NEWFALSE = b'\x89' # push False + +def save_bool(self, obj): + if self.proto >= 2: + self.write(NEWTRUE if obj else NEWFALSE) +``` + +这里的 `data` 是 `b'\x88'(True)` 和 `b'\x89'(False)` + +```python3 +>>> import pickle +>>> pickle.dumps(True) +b'\x80\x04\x88.' +>>> pickle.dumps(False) +b'\x80\x04\x89.' +``` + +## int + +整数类型会根据值的范围不同, 以好几种格式保存 + +![int](int.png) + +![int2](int2.png) + + + +## float + +浮点数以 [IEEE_754](https://en.wikipedia.org/wiki/IEEE_754-1985) 标准的格式存储 + +![float](float.png) + +## bytes + +`bytes` 类型表示的就是二进制内容了, 就直接按下图所示存储在 `data` 部分里 + +根据这个 `bytes` 的大小范围不同, 头部信息会有好几种存储格式 + +![bytes](bytes.png) + +## str + +`str` 和 [bytes](#bytes) 类似, 不同点是 `str` 会在序列化之前, 以 `utf-8` 方式进行编码, 之后再存储 + +![str](str.png) + +## tuple + +`tuple` 比其他几种基础类型稍微复杂一点 + +如果 `tuple` 是空的 + +![tuple0](tuple0.png) + +我们再来看一个例子 + +```python3 +dumps(("a", "b", (2, ))) +b'\x80\x04\x95\x0f\x00\x00\x00\x00\x00\x00\x00\x8c\x01a\x94\x8c\x01b\x94K\x02\x85\x94\x87\x94.' +``` + +`\x80\x04` 是 `pickle` 协议标识符和版本号 + +`\x95\x0f\x00\x00\x00\x00\x00\x00\x00` 是 frame 标志(`\x95`) 以为 frame 的大小(8 字节) (以小端存储), 这里以 frame 作为基本单位进行分块写入 + +最后一个字节的 `.` 表示 `STOP` 标志 + +其余的部分则为对应的元素数据 + + ![tuple1](tuple1.png) + +这里我还发现了 dumps 方法不支持包含了自己/有引用循环的元组(如何构造这种元组参考 [Build Self-Referencing Tuples](https://stackoverflow.com/questions/11873448/building-self-referencing-tuples)) + +## list + +我们再来看一个例子 + +```python3 +dumps(["a", "b", (2, )]) +b'\x80\x04\x95\x11\x00\x00\x00\x00\x00\x00\x00]\x94(\x8c\x01a\x94\x8c\x01b\x94K\x02\x85\x94e.' +``` + +前几个字节是`pickle` 协议标识符和版本号, 还有 frame 大小 + +最后一个字节是 `STOP` 标志 + +中间的数据部分则是 `]\x94(\x8c\x01a\x94\x8c\x01b\x94K\x02\x85\x94e` + +`list` 会分批进行序列化(默认批大小为1000) + +![list1](/Users/zpoint/Desktop/Cpython-Internals/Modules/pickle/list1.png) + +`dict` 和 `set` 和 `list` 还有 `tuple ` 相似, 头尾分别用对应的标志表示类型, 之后遍历对象对于每个对象再递归调用 `save` 方法进行序列化存储 + +## type + +如果序列化的是一个自定义类型 + +```python3 +class A(object): + a = "a" + b = "b" + + def run(self): + print(self.a, self.b) + +pickle.dumps(A) +b'\x80\x04\x95\x12\x00\x00\x00\x00\x00\x00\x00\x8c\x08__main__\x94\x8c\x01A\x94\x93\x94.' +``` + +data 部分是 `\x8c\x08__main__\x94\x8c\x01A\x94\x93\x94` + +![type1](./type1.png) + +`dumps(A)` 仅序列化了 `module_name` (`__main__`) 和具体的对象的名称(`A`) (以 [str](#str) 格式序列化) + +## object + +如果序列化的是自定义类型的实例呢 + +```python3 +a = A() +pickle.dumps(a) +b'\x80\x04\x95\x15\x00\x00\x00\x00\x00\x00\x00\x8c\x08__main__\x94\x8c\x01A\x94\x93\x94)\x81\x94.' +``` + +data 部分是 `\x8c\x08__main__\x94\x8c\x01A\x94\x93\x94)\x81\x94` + +和上面唯一的不同点是在上面的基础上, 尾部又增加了一些额外的信息 + +一个 `tuple` 对象, 表示实例化的时候需要的参数(`args`), 在这个示例里, `a = A()` 实例化需要的参数为空, 所以就是 `EMPTY_TUPLE` + +一个 `NEWOBJ` 标识符, 表示在加载到这里的时候, 需要调用 `cls.__new__(cls, *args)` 进行反序列化操作 + +![object1](./object1.png) + diff --git a/README.md b/README.md index da3809e..db2ccd8 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ The following contents are suitable for those who have python programming experi - [ ] io - [x] [fileio](https://github.com/zpoint/CPython-Internals/blob/master/Modules/io/fileio/fileio.md) - - [ ] [pickle](https://github.com/zpoint/CPython-Internals/blob/master/Modules/pickle/pickle.md) + - [x] [pickle](https://github.com/zpoint/CPython-Internals/blob/master/Modules/pickle/pickle.md) # Lib @@ -121,4 +121,4 @@ All kinds of contributions are welcome * correct mistakes * anything else -# [License](https://creativecommons.org/licenses/by-nc-sa/4.0/) +# [License](https://creativecommons.org/licenses/by-nc-sa/4.0/) \ No newline at end of file diff --git a/README_CN.md b/README_CN.md index 390c18d..38b873c 100644 --- a/README_CN.md +++ b/README_CN.md @@ -55,7 +55,7 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 - [ ] io - [x] [fileio](https://github.com/zpoint/CPython-Internals/blob/master/Modules/io/fileio/fileio_cn.md) - - [ ] [pickle](https://github.com/zpoint/CPython-Internals/blob/master/Modules/pickle/pickle_cn.md) + - [x] [pickle](https://github.com/zpoint/CPython-Internals/blob/master/Modules/pickle/pickle_cn.md) # 库 From 014bb80927bd2849d8ecc3051d86deff2b558882 Mon Sep 17 00:00:00 2001 From: zpoint Date: Sat, 15 May 2021 23:37:44 +0800 Subject: [PATCH 64/90] pickle img location fix --- Modules/pickle/pickle.md | 2 +- Modules/pickle/pickle_cn.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/pickle/pickle.md b/Modules/pickle/pickle.md index 56f1c35..e9e868b 100644 --- a/Modules/pickle/pickle.md +++ b/Modules/pickle/pickle.md @@ -172,7 +172,7 @@ The data can be described as (`]\x94(\x8c\x01a\x94\x8c\x01b\x94K\x02\x85\x94e`) `list` will be dumped batch by batch(default batch size `1000`) -![list1](/Users/zpoint/Desktop/Cpython-Internals/Modules/pickle/list1.png) +![list1](./list1.png) `dict` and `set` are similar to `list` and `tuple`, begin and end with `type` symbol inidicate the type, and iter through each object and recursive call `dump` for each object diff --git a/Modules/pickle/pickle_cn.md b/Modules/pickle/pickle_cn.md index f1d8de7..12b31b0 100644 --- a/Modules/pickle/pickle_cn.md +++ b/Modules/pickle/pickle_cn.md @@ -172,7 +172,7 @@ b'\x80\x04\x95\x11\x00\x00\x00\x00\x00\x00\x00]\x94(\x8c\x01a\x94\x8c\x01b\x94K\ `list` 会分批进行序列化(默认批大小为1000) -![list1](/Users/zpoint/Desktop/Cpython-Internals/Modules/pickle/list1.png) +![list1](./list1.png) `dict` 和 `set` 和 `list` 还有 `tuple ` 相似, 头尾分别用对应的标志表示类型, 之后遍历对象对于每个对象再递归调用 `save` 方法进行序列化存储 From 55b16aa48e168509edb1304940e9e3f93e1f9100 Mon Sep 17 00:00:00 2001 From: zpoint Date: Sat, 15 May 2021 23:40:17 +0800 Subject: [PATCH 65/90] pickle image title --- Modules/pickle/pickle.md | 2 +- Modules/pickle/pickle_cn.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/pickle/pickle.md b/Modules/pickle/pickle.md index e9e868b..0fff6ea 100644 --- a/Modules/pickle/pickle.md +++ b/Modules/pickle/pickle.md @@ -1,4 +1,4 @@ -# pickle +# pickle![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/pickle) # contents diff --git a/Modules/pickle/pickle_cn.md b/Modules/pickle/pickle_cn.md index 12b31b0..8ca1ed5 100644 --- a/Modules/pickle/pickle_cn.md +++ b/Modules/pickle/pickle_cn.md @@ -1,4 +1,4 @@ -# pickle +# pickle![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/pickle_cn) # 目录 From d11a8a13ae02de6447eaa3cd0698a6b0daafafc0 Mon Sep 17 00:00:00 2001 From: zpoint Date: Fri, 13 Aug 2021 12:04:47 +0800 Subject: [PATCH 66/90] resolve #44 --- BasicObject/dict/dict.md | 2 +- BasicObject/dict/dict_cn.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/BasicObject/dict/dict.md b/BasicObject/dict/dict.md index 2925836..975afb1 100644 --- a/BasicObject/dict/dict.md +++ b/BasicObject/dict/dict.md @@ -256,7 +256,7 @@ del d[4] ```python3 # notice, dk_usable and dk_nentries now change -d[0] = "value0" +d[0] = "value3" ``` ![hh_5](./hh_5.png) diff --git a/BasicObject/dict/dict_cn.md b/BasicObject/dict/dict_cn.md index 78bdc5c..d3a18b4 100644 --- a/BasicObject/dict/dict_cn.md +++ b/BasicObject/dict/dict_cn.md @@ -261,7 +261,7 @@ del d[4] ```python3 # 注意, dk_usable 和 dk_nentries 现在变了 -d[0] = "value0" +d[0] = "value3" ``` ![hh_5](./hh_5.png) From 8c48f4209debea7b65dffc3bf44f840ee9b53d24 Mon Sep 17 00:00:00 2001 From: zpoint Date: Wed, 1 Sep 2021 23:38:12 +0800 Subject: [PATCH 67/90] resolve #45 --- Interpreter/frame/frame.md | 46 ++++++++++++++++----------------- Interpreter/frame/frame_cn.md | 48 +++++++++++++++++------------------ 2 files changed, 47 insertions(+), 47 deletions(-) diff --git a/Interpreter/frame/frame.md b/Interpreter/frame/frame.md index 5f7ec41..d6ed4e4 100644 --- a/Interpreter/frame/frame.md +++ b/Interpreter/frame/frame.md @@ -22,7 +22,7 @@ the **PyFrameObject** is the stack frame in python virtual machine, it contains for more information please refer to [stack frame strategy](http://en.citizendium.org/wiki/Memory_management) -![layout](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/layout.png) +![layout](./layout.png) # example @@ -65,7 +65,7 @@ the **ob_size** is the sum of code->co_stacksize, code->co_nlocals, code->co_cel **code->co_cellvars**: a tuple containing the names of all variables in the function that are also used in a nested function -**code->nfrees**: the names of all variables used in the function that is defined in an enclosing function scope +**code->co_freevars**: the names of all variables used in the function that is defined in an enclosing function scope for more information about **PyCodeObject** please refer to [What is a code object in Python?](https://www.quora.com/What-is-a-code-object-in-Python) and [code object](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/code/code.md) @@ -147,7 +147,7 @@ the value(address 0x100a5b538) in **f_valuestack** is the same as the previous s ``` -![example1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example1.png) +![example1](./example1.png) ```python3 >>> next(gg) @@ -158,39 +158,39 @@ the value(address 0x100a5b538) in **f_valuestack** is the same as the previous s the opcode `6 LOAD_GLOBAL 0 (str)` `8 LOAD_FAST 1 (b)` and `10 LOAD_FAST 2 (c)` in line 3 pushes **str**(parameter str is stored in the frame-f_code->co_names field), **b**(int 1) and **c**(int 2) to **f_valuestack**, opcode `12 BINARY_ADD` pops off the top 2 elements in **f_valuestack**(**b** and **c**), sum these two values, store to the top of the **f_valuestack**, this is what the **f_valuestack** looks like after `12 BINARY_ADD` -![example1_2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example1_2.png) +![example1_2](./example1_2.png) the opcode `14 CALL_FUNCTION 1` will pop the function and argument off the stack and delegate the actual function call after the function call, result `'3'` is pushed onto the stack -![example1_2_1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example1_2_1.png) +![example1_2_1](./example1_2_1.png) opcode `16 STORE_FAST 2 (c)` pops off the top element in the **f_valuestack** and stores it into the 2th position of the **f_localsplus** -![example1_2_2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example1_2_2.png) +![example1_2_2](./example1_2_2.png) opcode `18 LOAD_FAST 2 (c)` push the 2th element in the **f_localsplus** onto the **f_valuestack**, and `20 YIELD_VALUE ` pops it and send it to the caller field **f_lasti** is 20, indicate that it's currently executing the opcode `20 YIELD_VALUE` -![example2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example2.png) +![example2](./example2.png) after `24 LOAD_GLOBAL 1 (range)` and `26 LOAD_CONST 1 (3)` -![example1_3_1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example1_3_1.png) +![example1_3_1](./example1_3_1.png) after `28 CALL_FUNCTION 1` -![example1_3_2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example1_3_2.png) +![example1_3_2](./example1_3_2.png) after `30 STORE_FAST 3 (new_g)` -![example1_3_3](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example1_3_3.png) +![example1_3_3](./example1_3_3.png) after `32 LOAD_FAST 3 (new_g)` -![example1_3_4](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example1_3_4.png) +![example1_3_4](./example1_3_4.png) the opcode `34 GET_YIELD_FROM_ITER` makes sure the stack's top is an iterable object @@ -204,7 +204,7 @@ the opcode `34 GET_YIELD_FROM_ITER` makes sure the stack's top is an iterable ob field **f_lasti** is 36, indicate that it's before the `38 YIELD_FROM` -![example3](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example3.png) +![example3](./example3.png) the frame object deallocated after the **StopIteration** raised (the opcode `44 RETURN_VALUE` also executed) @@ -261,7 +261,7 @@ def g3(): ``` -![blockstack0](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/blockstack0.png) +![blockstack0](./blockstack0.png) in the first **yield** statement, the first **try block** is set up @@ -275,7 +275,7 @@ in the first **yield** statement, the first **try block** is set up ``` -![blockstack1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/blockstack1.png) +![blockstack1](./blockstack1.png) **b_type** 257 is the opcode `EXCEPT_HANDLER`, `EXCEPT_HANDLER` has a special meaning @@ -298,7 +298,7 @@ in the first **yield** statement, the first **try block** is set up ``` -![blockstack2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/blockstack2.png) +![blockstack2](./blockstack2.png) **f_iblock** is 3, the second try block comes from `finally:`(opcode position 116), and the third try block comes from `except ModuleNotFoundError:`(opcode position 62) @@ -308,7 +308,7 @@ in the first **yield** statement, the first **try block** is set up ``` -![blockstack3](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/blockstack3.png) +![blockstack3](./blockstack3.png) ```python3 >>> next(gg) @@ -318,7 +318,7 @@ in the first **yield** statement, the first **try block** is set up **b_type** of the third try block becomes 257 and **b_handler** becomes -1, means this block is currently being handling -![blockstack4](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/blockstack4.png) +![blockstack4](./blockstack4.png) the other two try block is handled properly @@ -334,7 +334,7 @@ the other two try block is handled properly ``` -![blockstack5](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/blockstack5.png) +![blockstack5](./blockstack5.png) frame object deallocated @@ -378,7 +378,7 @@ depth 0 ``` -![f_back](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/f_back.png) +![f_back](./f_back.png) # free_list mechanism @@ -452,7 +452,7 @@ def g6(): ``` -![free_list0](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/free_list0.png) +![free_list0](./free_list0.png) the frame attached to variable **gg** is deallocated, because it's the first frame execute the code block, it becomes the "zombie" frame of the **code** object @@ -468,7 +468,7 @@ StopIteration ``` -![free_list1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/free_list1.png) +![free_list1](./free_list1.png) ```python3 >>> next(gg1) @@ -480,7 +480,7 @@ StopIteration ``` -![free_list2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/free_list2.png) +![free_list2](./free_list2.png) ```python3 >>> next(gg2) @@ -492,4 +492,4 @@ StopIteration ``` -![free_list3](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/free_list3.png) +![free_list3](./free_list3.png) diff --git a/Interpreter/frame/frame_cn.md b/Interpreter/frame/frame_cn.md index ad9a713..7796ff7 100644 --- a/Interpreter/frame/frame_cn.md +++ b/Interpreter/frame/frame_cn.md @@ -22,7 +22,7 @@ 需要更多有关栈帧的信息请参考 [stack frame strategy](http://en.citizendium.org/wiki/Memory_management) -![layout](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/layout.png) +![layout](./layout.png) # 示例 @@ -65,7 +65,7 @@ for (i=0; ico_cellvars**: 一个元组, 包含了自己用到并且内嵌函数也用到的所有的变量名称 -**code->nfrees**: 自己是内嵌函数的情况下, 包含了外部函数和自己同时用到的变量名称 +**code->co_freevars**: 自己是内嵌函数的情况下, 包含了外部函数和自己同时用到的变量名称 更多关于 **PyCodeObject** 的信息请参考 [What is a code object in Python?](https://www.quora.com/What-is-a-code-object-in-Python) 和 [code 对象](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/code/code_cn.md) @@ -131,7 +131,7 @@ Disassembly of : ``` -![example0](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example0.png) +![example0](./example0.png) 第一次 **next** 返回时, **opcode** `0 LOAD_FAST 0 (a)` 已经被执行了, 并且当前的执行位置是在 `2 YIELD_VALUE` 中 @@ -147,7 +147,7 @@ Disassembly of : ``` -![example1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example1.png) +![example1](./example1.png) ```python3 >>> next(gg) @@ -158,39 +158,39 @@ Disassembly of : 在第三行代码的 opcode `6 LOAD_GLOBAL 0 (str)` `8 LOAD_FAST 1 (b)` 和 `10 LOAD_FAST 2 (c)` 分别把 **str**(str 存储在了 frame-f_code->co_names 这个字段中), **b**(int 1) 和 **c**(int 2) 推入 **f_valuestack**, opcode `12 BINARY_ADD` 弹出 **f_valuestack**(**b** and **c**) 顶部的两个元素, 相加之后存储回 **f_valuestack** 的顶部, 下图的 **f_valuestack** 为 `12 BINARY_ADD` 执行之后的样子 -![example1_2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example1_2.png) +![example1_2](./example1_2.png) opcode `14 CALL_FUNCTION 1` 会弹出可执行对象和可执行对象对应的参数, 并用这些参数传递给可执行对象, 之后执行 执行完成之后, 执行结果 `'3'` 会被压回堆中 -![example1_2_1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example1_2_1.png) +![example1_2_1](./example1_2_1.png) opcode `16 STORE_FAST 2 (c)` 弹出 **f_valuestack** 顶部的元素, 并把它存储到了 **f_localsplus** 下标为 2 的位置中 -![example1_2_2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example1_2_2.png) +![example1_2_2](./example1_2_2.png) opcode `18 LOAD_FAST 2 (c)` 把 **f_localsplus** 位置下标为 2 的元素推入 **f_valuestack**, 之后 `20 YIELD_VALUE ` 弹出这个元素并把它传递给调用者 字段 **f_lasti** 位置的值为 20, 表明当前正在 opcode `20 YIELD_VALUE` 的位置 -![example2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example2.png) +![example2](./example2.png) 在 `24 LOAD_GLOBAL 1 (range)` 和 `26 LOAD_CONST 1 (3)` 之后 -![example1_3_1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example1_3_1.png) +![example1_3_1](./example1_3_1.png) 在 `28 CALL_FUNCTION 1` 之后 -![example1_3_2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example1_3_2.png) +![example1_3_2](./example1_3_2.png) 在 `30 STORE_FAST 3 (new_g)` 之后 -![example1_3_3](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example1_3_3.png) +![example1_3_3](./example1_3_3.png) 在 `32 LOAD_FAST 3 (new_g)` 之后 -![example1_3_4](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example1_3_4.png) +![example1_3_4](./example1_3_4.png) opcode `34 GET_YIELD_FROM_ITER` 作用是保证堆顶的元素是一个可迭代对象 @@ -204,7 +204,7 @@ opcode `18 LOAD_FAST 2 (c)` 把 **f_localsplus** 位置下标为 字段 **f_lasti** 现在值是 36, 表明他在 `38 YIELD_FROM` 之前 -![example3](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example3.png) +![example3](./example3.png) 栈帧对象在 **StopIteration** 抛出后就进入了释放阶段(opcode `44 RETURN_VALUE` 执行之后) @@ -261,7 +261,7 @@ def g3(): ``` -![blockstack0](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/blockstack0.png) +![blockstack0](./blockstack0.png) 在第一个 **yield** 声明时, 第一个 **try block** 已经设置好了 @@ -275,7 +275,7 @@ def g3(): ``` -![blockstack1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/blockstack1.png) +![blockstack1](./blockstack1.png) **b_type** 257 是 opcode `EXCEPT_HANDLER` 的值, opcode `EXCEPT_HANDLER` 有特殊的含义 @@ -301,7 +301,7 @@ def g3(): ``` -![blockstack2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/blockstack2.png) +![blockstack2](./blockstack2.png) **f_iblock** 值为 3, 第二个 try block 来自 `finally:`(opcode 位置 116), 第三个来自 `except ModuleNotFoundError:`(opcode 位置 62) @@ -311,7 +311,7 @@ def g3(): ``` -![blockstack3](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/blockstack3.png) +![blockstack3](./blockstack3.png) ```python3 >>> next(gg) @@ -321,7 +321,7 @@ def g3(): 第三个 try block 的 **b_type** 变为了 257 并且 **b_handler** 变为 -1, 表明当前的 block 正在处理中 -![blockstack4](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/blockstack4.png) +![blockstack4](./blockstack4.png) 另外两个 try block 也正确的处理完了 @@ -337,7 +337,7 @@ def g3(): ``` -![blockstack5](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/blockstack5.png) +![blockstack5](./blockstack5.png) frame 对象进入释放阶段 @@ -381,7 +381,7 @@ depth 0 ``` -![f_back](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/f_back.png) +![f_back](./f_back.png) # free_list 机制 @@ -455,7 +455,7 @@ def g6(): ``` -![free_list0](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/free_list0.png) +![free_list0](./free_list0.png) 和 **gg** 对象关联的 frame 进入了回收阶段, 因为当前的 **code** 对象 "zombie" frame 字段为空, 所以这个 frame 成为了 **code** 对象的 "zombie" frame @@ -471,7 +471,7 @@ StopIteration ``` -![free_list1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/free_list1.png) +![free_list1](./free_list1.png) ```python3 >>> next(gg1) @@ -483,7 +483,7 @@ StopIteration ``` -![free_list2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/free_list2.png) +![free_list2](./free_list2.png) ```python3 >>> next(gg2) @@ -495,4 +495,4 @@ StopIteration ``` -![free_list3](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/free_list3.png) +![free_list3](./free_list3.png) From 6ca92bc1d931d87d3c8a89fdc85f764debf2ea70 Mon Sep 17 00:00:00 2001 From: zpoint Date: Thu, 9 Sep 2021 13:03:37 +0800 Subject: [PATCH 68/90] resolve #46 --- Interpreter/frame/example3.png | Bin 295525 -> 98732 bytes Interpreter/frame/frame.md | 4 +++- Interpreter/frame/frame_cn.md | 4 +++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Interpreter/frame/example3.png b/Interpreter/frame/example3.png index 52aa182c20a82bd3c8d99a5957e03fd123544269..98a4920b7bcfc89c66bf13afd6f26781890956d8 100644 GIT binary patch literal 98732 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

    0WeBWHVq(Di!MHnw=;oQScMjT|X?-awlt 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

    ;@C-?gVLUcB^ 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ⅈw9M|a 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 -= sizeof(_Py_CODEUNIT);` reset the `f_lasti` to the beginning of `YIELD_FROM` [Thanks to @RyanHe123](https://github.com/zpoint/CPython-Internals/issues/46) ![example3](./example3.png) diff --git a/Interpreter/frame/frame_cn.md b/Interpreter/frame/frame_cn.md index 7796ff7..e15a366 100644 --- a/Interpreter/frame/frame_cn.md +++ b/Interpreter/frame/frame_cn.md @@ -202,7 +202,9 @@ opcode `18 LOAD_FAST 2 (c)` 把 **f_localsplus** 位置下标为 ``` -字段 **f_lasti** 现在值是 36, 表明他在 `38 YIELD_FROM` 之前 +字段 **f_lasti** 现在值是 36, 表明他在 `38 YIELD_FROM` 之后 + +在 `YIELD_FROM` 的末尾这一行代码 `f->f_lasti -= sizeof(_Py_CODEUNIT);` 会把 `f_lasti` 重置为刚进入 `YIELD_FROM` 的位置 [感谢 @RyanHe123 指正](https://github.com/zpoint/CPython-Internals/issues/46) ![example3](./example3.png) From 7611ac1c189dfc35a5a1051bcb30102b7c6cf5fe Mon Sep 17 00:00:00 2001 From: Rui Date: Thu, 7 Oct 2021 23:43:47 +0800 Subject: [PATCH 69/90] Update memory_management_cn.md fix index infer error --- Interpreter/memory_management/memory_management_cn.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Interpreter/memory_management/memory_management_cn.md b/Interpreter/memory_management/memory_management_cn.md index 758ef3b..393d017 100644 --- a/Interpreter/memory_management/memory_management_cn.md +++ b/Interpreter/memory_management/memory_management_cn.md @@ -184,7 +184,7 @@ pool = usedpools[size + size] 如果申请的大小 **nbytes** 为 7, (7 - 1) >> 3 为 0, idxn = 0 + 0, usedpools[0 + 0] 就是被选中的链表, **idx0** 中的第一个 **pool** 既为获取到的 **pool** -如果申请的大小 **nbytes** 为 24, (24 - 1) >> 3 为 2, idxn = 2 + 2, usedpools[0 + 0] 就是被选中的链表, **idx2** 中的第一个 **pool** 既为获取到的 **pool** +如果申请的大小 **nbytes** 为 24, (24 - 1) >> 3 为 2, idxn = 2 + 2, usedpools[2 + 2] 就是被选中的链表, **idx2** 中的第一个 **pool** 既为获取到的 **pool** `usedpools` 的大小为实际需要大小的两倍, 你可以通过以上的位移和加减运算就得到对应的 **idx** 位置, 这样设计极大地缩短了获得对应 **pool** 的入口的时间 @@ -485,4 +485,4 @@ python 的内存管理机制会重新像操作系统申请 256kb 的空闲空间 # 相关阅读 -* [Memory management in Python](https://rushter.com/blog/python-memory-managment/) \ No newline at end of file +* [Memory management in Python](https://rushter.com/blog/python-memory-managment/) From 5f29d18f583323121016b767002ffefc51fb87b9 Mon Sep 17 00:00:00 2001 From: zpoint Date: Mon, 13 Dec 2021 17:27:42 +0800 Subject: [PATCH 70/90] remove a topic --- BasicObject/dict/dict_cn.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/BasicObject/dict/dict_cn.md b/BasicObject/dict/dict_cn.md index d3a18b4..733d7fe 100644 --- a/BasicObject/dict/dict_cn.md +++ b/BasicObject/dict/dict_cn.md @@ -12,7 +12,6 @@ * [删除操作](#删除操作) * [为什么标记成 DKIX_DUMMY](#为什么标记成-DKIX_DUMMY) * [entries 中的删除](#entries-中的删除) -* [结束](#结束) * [更多资料](#更多资料) @@ -414,9 +413,7 @@ index: 0 1 2 3 4 5 6 7 并且通常情况下字典对象的删除操作并不普遍, 只有部分情况下会导致性能变慢 -# 结束 -看似简单的字典对象, 实际上底层实现起来包括了不少的计算机体系的知识, 看似复杂, 但其实大部分都是我们熟悉的算法和数据结构 # 更多资料 From ec7941db93088498a9ebb876bc7f66194a27527e Mon Sep 17 00:00:00 2001 From: zpoint Date: Mon, 20 Dec 2021 10:36:22 +0800 Subject: [PATCH 71/90] readme cn typo fix --- README_CN.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README_CN.md b/README_CN.md index 38b873c..b2406e9 100644 --- a/README_CN.md +++ b/README_CN.md @@ -94,7 +94,7 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 * [x] [从 AST 到 字节码](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile3/compile_cn.md) -# 参与贡献学习资料 +# 学习资料 以下的资料笔者遵循先阅读后推荐的原则 From 84c29012edef906d7e9a102a26e3f904464b9563 Mon Sep 17 00:00:00 2001 From: zpoint Date: Thu, 10 Mar 2022 23:09:13 +0800 Subject: [PATCH 72/90] Update dict.md test rendering --- BasicObject/dict/dict.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/BasicObject/dict/dict.md b/BasicObject/dict/dict.md index 975afb1..76d64dc 100644 --- a/BasicObject/dict/dict.md +++ b/BasicObject/dict/dict.md @@ -1,5 +1,3 @@ -# dict ![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/dict) - # Contents [Related File](#related-file) @@ -418,4 +416,4 @@ now, you understand how python dictionary object works internally. * [pypy-blog](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html) -* [python-dev](https://mail.python.org/pipermail/python-dev/2012-December/123028.html) \ No newline at end of file +* [python-dev](https://mail.python.org/pipermail/python-dev/2012-December/123028.html) From 3370800a46f5bafe366ffac4984d3703a1f22ee0 Mon Sep 17 00:00:00 2001 From: zpoint Date: Thu, 10 Mar 2022 23:09:47 +0800 Subject: [PATCH 73/90] Update dict.md test rendering --- BasicObject/dict/dict.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/BasicObject/dict/dict.md b/BasicObject/dict/dict.md index 76d64dc..7e45515 100644 --- a/BasicObject/dict/dict.md +++ b/BasicObject/dict/dict.md @@ -1,3 +1,5 @@ +# dict ![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/dict) + # Contents [Related File](#related-file) From 0e34ac6912c785158e9db1e1878875b84b2d07dd Mon Sep 17 00:00:00 2001 From: zpoint Date: Sat, 12 Mar 2022 13:45:28 +0800 Subject: [PATCH 74/90] Update thread.md test md rendering --- Interpreter/thread/thread.md | 383 +---------------------------------- 1 file changed, 1 insertion(+), 382 deletions(-) diff --git a/Interpreter/thread/thread.md b/Interpreter/thread/thread.md index b520cd8..f9660ff 100644 --- a/Interpreter/thread/thread.md +++ b/Interpreter/thread/thread.md @@ -1,382 +1 @@ -# thread![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/thread) - -# contents - -* [related file](#related-file) -* [prerequisites](#prerequisites) -* [memory layout](#memory-layout) -* [start_new_thread](#start_new_thread) -* [allocate_lock](#allocate_lock) -* [allocate_rlock](#allocate_rlock) -* [exit_thread](#exit_thread) -* [stack_size](#thread_stack_size) -* [thread local](#thread-local) - -# related file - -* cpython/Modules/_threadmodule.c -* cpython/Python/thread.c -* cpython/Python/thread_nt.h -* cpython/Python/thread_pthread.h -* cpython/Python/pystate.c -* cpython/Include/cpython/pystate.h - -# prerequisites - -the following contents will show you how CPython implements thread related function, you are able to get the answer of "Does posix semaphore or mutex used as a python thread lock ?" - -if you are confused about what **posix thread** is or what **posix semaphore** is, you need to refer to Chapter 11 and Chapter 12 of [APUE](https://www.amazon.com/Advanced-Programming-UNIX-Environment-3rd/dp/0321637739) and [UNP vol 2](https://www.amazon.com/UNIX-Network-Programming-Interprocess-Communications/dp/0130810819) - -if you are interested in how thread/intepreter organized, please refer to [overwview](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/pyobject/pyobject.md#intepreter-and-thread) - -# memory layout - -a bootstate structure stores every informations a new python thread needed - -![bootstate](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/bootstate.png) - -**thread.c** import **thread_nt.h** or **thread_pthread.h**, depending on the compiling machine's operating system - -**thread_nt.h** and **thread_pthread.h** both define the same functionality API, delegate the thread creation or lock procedure to the related system call - -![thread](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/thread.png) - -the following content will only shows the posix part defined in **thread_pthread.h**, for other platform, even if the API of the system call is different, the idea is the same - -notice, you're not encouraged to use module `_thread` directly, use `threading` instead, the following code use `_thread` for illustration - -# example - -```python3 -from threading import Thread, currentThread, activeCount - -def my_func(a, b, c=4): - print(a, b, c, currentThread().ident, activeCount()) - -Thread(target=my_func, args=("hello world", "Who are you")).start() - -``` - -module **threading** is a wrapper for the built-in **_thread** module, **threading** is written in pure python, you can read the source code directly - -# start_new_thread - -**PyEval_InitThreads** will create [gil](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/gil.md) if it's not created before, thread scheduling strategy has changed after python3.2, there's no need to give another thread a chance to run periodly when there's only one python intepreter thread - -```c -/* cpython/Modules/_threadmodule.c */ -static PyObject * -thread_PyThread_start_new_thread(PyObject *self, PyObject *fargs) -{ - PyObject *func, *args, *keyw = NULL; - struct bootstate *boot; - unsigned long ident; - - /* ignore some detail - unpack func, args, keyw form fargs, and check their type - if you are using threading like the above example, these unpacked objects will look like - func: > - args: () - keyw: NULL - */ - boot = PyMem_NEW(struct bootstate, 1); - if (boot == NULL) - return PyErr_NoMemory(); - boot->interp = _PyInterpreterState_Get(); - boot->func = func; - boot->args = args; - boot->keyw = keyw; - boot->tstate = _PyThreadState_Prealloc(boot->interp); - if (boot->tstate == NULL) { - PyMem_DEL(boot); - return PyErr_NoMemory(); - } - Py_INCREF(func); - Py_INCREF(args); - Py_XINCREF(keyw); - /* PyEval_InitThreads will create gil if it's not created before */ - PyEval_InitThreads(); - /* delegate to the system call, in my platform, it's pthread_create */ - ident = PyThread_start_new_thread(t_bootstrap, (void*) boot); - if (ident == PYTHREAD_INVALID_THREAD_ID) { - /* handle error */ - } - return PyLong_FromUnsignedLong(ident); -} - -``` - -# allocate_lock - -this is the normal lock object - -```python3 ->>> r = _thread.allocate_lock() ->>> type(r) -_thread.lock ->>> repr(r) -'' ->>> r.acquire_lock() -True ->>> repr(r) -'' - -``` - -![lock_object](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/lock_object.png) - -in the posix system, the defination and allocation of **lock_lock** - -```c -/* cpython/Include/pythread.h */ -typedef void *PyThread_type_lock; - -/* cpython/Python/thread_pthread.h */ -#ifdef USE_SEMAPHORES -... -PyThread_allocate_lock(void) -{ - sem_t *lock; - int status, error = 0; - - dprintf(("PyThread_allocate_lock called\n")); - if (!initialized) - PyThread_init_thread(); - - lock = (sem_t *)PyMem_RawMalloc(sizeof(sem_t)); - - if (lock) { - status = sem_init(lock,0,1); - CHECK_STATUS("sem_init"); - - if (error) { - PyMem_RawFree((void *)lock); - lock = NULL; - } - } - - dprintf(("PyThread_allocate_lock() -> %p\n", lock)); - return (PyThread_type_lock)lock; -} -... -#else /* USE_SEMAPHORES */ -... -PyThread_type_lock -PyThread_allocate_lock(void) -{ - /* implement with pthread mutex */ -} - -``` - -from the above code we can know that CPython perfer implement the field in **lock_lock** as [posix semaphores](http://www.csc.villanova.edu/~mdamian/threads/posixsem.html) to [posix mutex](http://www.skrenta.com/rt/man/pthread_mutex_init.3.html), below examples use semaphores for illustration - -```python3 ->>> r.acquire_lock() - -``` - -if you try to acquire the lock, several posix system call will be invoked according to the timeout value - -```python3 -/* cpython/Python/thread_pthread.h */ -while (1) { - if (microseconds > 0) { - status = fix_status(sem_timedwait(thelock, &ts)); - } - else if (microseconds == 0) { - status = fix_status(sem_trywait(thelock)); - } - else { - status = fix_status(sem_wait(thelock)); - } - - /* Retry if interrupted by a signal, unless the caller wants to be - notified. */ - if (intr_flag || status != EINTR) { - break; - } - - if (microseconds > 0) { - /* wait interrupted by a signal (EINTR): recompute the timeout */ - } -} - -``` - -if you acquire the lock successfully, field locked will become 1 - -![lock_object_locked](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/lock_object_locked.png) - -# allocate_rlock - -**rlock** is the abbreviation of recursive lock, as [wikipedia](https://en.wikipedia.org/wiki/Reentrant_mutex) says - -> In computer science, the reentrant mutex (recursive mutex, recursive lock) is a particular type of mutual exclusion (mutex) device that may be locked multiple times by the same process/thread, without causing a deadlock. - -![rlock_object](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/rlock_object.png) - -```python3 - ->>> r = _thread.RLock() - -``` - -the procedure of allocation of **lock_lock** in rlock object is the same as the above example - -before acquire the lock, **rlock_owner** and **rlock_count** are all set to 0 - -```python3 ->>> r.acquire() - -``` - -![rlock_object_acquire](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/rlock_object_acquire.png) - -```python3 ->>> r.acquire() - -``` - -![rlock_object_acquire2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/rlock_object_acquire2.png) - -we found that **rlock_owner** is the current thread's ident, and **rlock_count** is a counter of how many times the lock is currently acquired - -the acquire procedure is very clear - -```c -/* cpython/Modules/_threadmodule.c */ -static PyObject * -rlock_acquire(rlockobject *self, PyObject *args, PyObject *kwds) -{ - _PyTime_t timeout; - unsigned long tid; - PyLockStatus r = PY_LOCK_ACQUIRED; - - if (lock_acquire_parse_args(args, kwds, &timeout) < 0) - return NULL; - - tid = PyThread_get_thread_ident(); - if (self->rlock_count > 0 && tid == self->rlock_owner) { - /* acquire before, just increase the rlock_count */ - unsigned long count = self->rlock_count + 1; - if (count <= self->rlock_count) { - PyErr_SetString(PyExc_OverflowError, - "Internal lock count overflowed"); - return NULL; - } - self->rlock_count = count; - Py_RETURN_TRUE; - } - /* delegate the acquire to the posix system call */ - r = acquire_timed(self->rlock_lock, timeout); - if (r == PY_LOCK_ACQUIRED) { - /* if never acquired before, success in acquiring the lock */ - assert(self->rlock_count == 0); - self->rlock_owner = tid; - self->rlock_count = 1; - } - else if (r == PY_LOCK_INTR) { - /* the lock is acquired by another thread, fail in acquiring the lock */ - return NULL; - } - return PyBool_FromLong(r == PY_LOCK_ACQUIRED); -} - - -``` - -the release procedure - -```c -/* cpython/Modules/_threadmodule.c */ -static PyObject * -rlock_release(rlockobject *self, PyObject *Py_UNUSED(ignored)) -{ - unsigned long tid = PyThread_get_thread_ident(); - /* check if the rlock_count reaches 0 or release by other thread */ - if (self->rlock_count == 0 || self->rlock_owner != tid) { - PyErr_SetString(PyExc_RuntimeError, - "cannot release un-acquired lock"); - return NULL; - } - /* decrement the rlock_count - reset rlock_owner to give other thread a chance to acquire the lock if rlock_count reaches 0 */ - if (--self->rlock_count == 0) { - self->rlock_owner = 0; - PyThread_release_lock(self->rlock_lock); - } - Py_RETURN_NONE; -} - -``` - -# exit_thread - -```c -/* cpython/Modules/_threadmodule.c */ -static PyObject * -thread_PyThread_exit_thread(PyObject *self, PyObject *Py_UNUSED(ignored)) -{ - /* just raise SystemExit exception */ - PyErr_SetNone(PyExc_SystemExit); - return NULL; -} - -``` - -# stack_size - -you can set the stack size to 100kb by calling - -```python3 ->>> _thread.stack_size(102400) # threading.stack_size(102400) - -``` - -which will delegate to [`pthread_attr_setstacksize`](http://man7.org/linux/man-pages/man3/pthread_attr_setstacksize.3.html) - -```c -_pythread_pthread_set_stacksize(size_t size) -{ -#if defined(THREAD_STACK_SIZE) - pthread_attr_t attrs; - size_t tss_min; - int rc = 0; -#endif - - /* set to default */ - if (size == 0) { - _PyInterpreterState_GET_UNSAFE()->pythread_stacksize = 0; - return 0; - } - -#if defined(THREAD_STACK_SIZE) -#if defined(PTHREAD_STACK_MIN) - tss_min = PTHREAD_STACK_MIN > THREAD_STACK_MIN ? PTHREAD_STACK_MIN - : THREAD_STACK_MIN; -#else - tss_min = THREAD_STACK_MIN; -#endif - if (size >= tss_min) { - /* validate stack size by setting thread attribute */ - if (pthread_attr_init(&attrs) == 0) { - rc = pthread_attr_setstacksize(&attrs, size); - pthread_attr_destroy(&attrs); - if (rc == 0) { - _PyInterpreterState_GET_UNSAFE()->pythread_stacksize = size; - return 0; - } - } - } - return -1; -#else - return -2; -#endif -} - -``` - -# thread local - -the implementation of thread local storage is a per thread [dict](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/dict.md) object stored inside the **PyThreadState** structure \ No newline at end of file +# test rendering From 36c4af06910dc6fb76722a76fac6c87f0656b111 Mon Sep 17 00:00:00 2001 From: zpoint Date: Sat, 12 Mar 2022 13:45:45 +0800 Subject: [PATCH 75/90] Update thread.md --- Interpreter/thread/thread.md | 383 ++++++++++++++++++++++++++++++++++- 1 file changed, 382 insertions(+), 1 deletion(-) diff --git a/Interpreter/thread/thread.md b/Interpreter/thread/thread.md index f9660ff..582e36e 100644 --- a/Interpreter/thread/thread.md +++ b/Interpreter/thread/thread.md @@ -1 +1,382 @@ -# test rendering +# thread![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/thread) + +# contents + +* [related file](#related-file) +* [prerequisites](#prerequisites) +* [memory layout](#memory-layout) +* [start_new_thread](#start_new_thread) +* [allocate_lock](#allocate_lock) +* [allocate_rlock](#allocate_rlock) +* [exit_thread](#exit_thread) +* [stack_size](#thread_stack_size) +* [thread local](#thread-local) + +# related file + +* cpython/Modules/_threadmodule.c +* cpython/Python/thread.c +* cpython/Python/thread_nt.h +* cpython/Python/thread_pthread.h +* cpython/Python/pystate.c +* cpython/Include/cpython/pystate.h + +# prerequisites + +the following contents will show you how CPython implements thread related function, you are able to get the answer of "Does posix semaphore or mutex used as a python thread lock ?" + +if you are confused about what **posix thread** is or what **posix semaphore** is, you need to refer to Chapter 11 and Chapter 12 of [APUE](https://www.amazon.com/Advanced-Programming-UNIX-Environment-3rd/dp/0321637739) and [UNP vol 2](https://www.amazon.com/UNIX-Network-Programming-Interprocess-Communications/dp/0130810819) + +if you are interested in how thread/intepreter organized, please refer to [overwview](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/pyobject/pyobject.md#intepreter-and-thread) + +# memory layout + +a bootstate structure stores every informations a new python thread needed + +![bootstate](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/bootstate.png) + +**thread.c** import **thread_nt.h** or **thread_pthread.h**, depending on the compiling machine's operating system + +**thread_nt.h** and **thread_pthread.h** both define the same functionality API, delegate the thread creation or lock procedure to the related system call + +![thread](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/thread.png) + +the following content will only shows the posix part defined in **thread_pthread.h**, for other platform, even if the API of the system call is different, the idea is the same + +notice, you're not encouraged to use module `_thread` directly, use `threading` instead, the following code use `_thread` for illustration + +# example + +```python3 +from threading import Thread, currentThread, activeCount + +def my_func(a, b, c=4): + print(a, b, c, currentThread().ident, activeCount()) + +Thread(target=my_func, args=("hello world", "Who are you")).start() + +``` + +module **threading** is a wrapper for the built-in **_thread** module, **threading** is written in pure python, you can read the source code directly + +# start_new_thread + +**PyEval_InitThreads** will create [gil](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/gil.md) if it's not created before, thread scheduling strategy has changed after python3.2, there's no need to give another thread a chance to run periodly when there's only one python intepreter thread + +```c +/* cpython/Modules/_threadmodule.c */ +static PyObject * +thread_PyThread_start_new_thread(PyObject *self, PyObject *fargs) +{ + PyObject *func, *args, *keyw = NULL; + struct bootstate *boot; + unsigned long ident; + + /* ignore some detail + unpack func, args, keyw form fargs, and check their type + if you are using threading like the above example, these unpacked objects will look like + func: > + args: () + keyw: NULL + */ + boot = PyMem_NEW(struct bootstate, 1); + if (boot == NULL) + return PyErr_NoMemory(); + boot->interp = _PyInterpreterState_Get(); + boot->func = func; + boot->args = args; + boot->keyw = keyw; + boot->tstate = _PyThreadState_Prealloc(boot->interp); + if (boot->tstate == NULL) { + PyMem_DEL(boot); + return PyErr_NoMemory(); + } + Py_INCREF(func); + Py_INCREF(args); + Py_XINCREF(keyw); + /* PyEval_InitThreads will create gil if it's not created before */ + PyEval_InitThreads(); + /* delegate to the system call, in my platform, it's pthread_create */ + ident = PyThread_start_new_thread(t_bootstrap, (void*) boot); + if (ident == PYTHREAD_INVALID_THREAD_ID) { + /* handle error */ + } + return PyLong_FromUnsignedLong(ident); +} + +``` + +# allocate_lock + +this is the normal lock object + +```python3 +>>> r = _thread.allocate_lock() +>>> type(r) +_thread.lock +>>> repr(r) +'' +>>> r.acquire_lock() +True +>>> repr(r) +'' + +``` + +![lock_object](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/lock_object.png) + +in the posix system, the defination and allocation of **lock_lock** + +```c +/* cpython/Include/pythread.h */ +typedef void *PyThread_type_lock; + +/* cpython/Python/thread_pthread.h */ +#ifdef USE_SEMAPHORES +... +PyThread_allocate_lock(void) +{ + sem_t *lock; + int status, error = 0; + + dprintf(("PyThread_allocate_lock called\n")); + if (!initialized) + PyThread_init_thread(); + + lock = (sem_t *)PyMem_RawMalloc(sizeof(sem_t)); + + if (lock) { + status = sem_init(lock,0,1); + CHECK_STATUS("sem_init"); + + if (error) { + PyMem_RawFree((void *)lock); + lock = NULL; + } + } + + dprintf(("PyThread_allocate_lock() -> %p\n", lock)); + return (PyThread_type_lock)lock; +} +... +#else /* USE_SEMAPHORES */ +... +PyThread_type_lock +PyThread_allocate_lock(void) +{ + /* implement with pthread mutex */ +} + +``` + +from the above code we can know that CPython perfer implement the field in **lock_lock** as [posix semaphores](http://www.csc.villanova.edu/~mdamian/threads/posixsem.html) to [posix mutex](http://www.skrenta.com/rt/man/pthread_mutex_init.3.html), below examples use semaphores for illustration + +```python3 +>>> r.acquire_lock() + +``` + +if you try to acquire the lock, several posix system call will be invoked according to the timeout value + +```python3 +/* cpython/Python/thread_pthread.h */ +while (1) { + if (microseconds > 0) { + status = fix_status(sem_timedwait(thelock, &ts)); + } + else if (microseconds == 0) { + status = fix_status(sem_trywait(thelock)); + } + else { + status = fix_status(sem_wait(thelock)); + } + + /* Retry if interrupted by a signal, unless the caller wants to be + notified. */ + if (intr_flag || status != EINTR) { + break; + } + + if (microseconds > 0) { + /* wait interrupted by a signal (EINTR): recompute the timeout */ + } +} + +``` + +if you acquire the lock successfully, field locked will become 1 + +![lock_object_locked](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/lock_object_locked.png) + +# allocate_rlock + +**rlock** is the abbreviation of recursive lock, as [wikipedia](https://en.wikipedia.org/wiki/Reentrant_mutex) says + +> In computer science, the reentrant mutex (recursive mutex, recursive lock) is a particular type of mutual exclusion (mutex) device that may be locked multiple times by the same process/thread, without causing a deadlock. + +![rlock_object](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/rlock_object.png) + +```python3 + +>>> r = _thread.RLock() + +``` + +the procedure of allocation of **lock_lock** in rlock object is the same as the above example + +before acquire the lock, **rlock_owner** and **rlock_count** are all set to 0 + +```python3 +>>> r.acquire() + +``` + +![rlock_object_acquire](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/rlock_object_acquire.png) + +```python3 +>>> r.acquire() + +``` + +![rlock_object_acquire2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/rlock_object_acquire2.png) + +we found that **rlock_owner** is the current thread's ident, and **rlock_count** is a counter of how many times the lock is currently acquired + +the acquire procedure is very clear + +```c +/* cpython/Modules/_threadmodule.c */ +static PyObject * +rlock_acquire(rlockobject *self, PyObject *args, PyObject *kwds) +{ + _PyTime_t timeout; + unsigned long tid; + PyLockStatus r = PY_LOCK_ACQUIRED; + + if (lock_acquire_parse_args(args, kwds, &timeout) < 0) + return NULL; + + tid = PyThread_get_thread_ident(); + if (self->rlock_count > 0 && tid == self->rlock_owner) { + /* acquire before, just increase the rlock_count */ + unsigned long count = self->rlock_count + 1; + if (count <= self->rlock_count) { + PyErr_SetString(PyExc_OverflowError, + "Internal lock count overflowed"); + return NULL; + } + self->rlock_count = count; + Py_RETURN_TRUE; + } + /* delegate the acquire to the posix system call */ + r = acquire_timed(self->rlock_lock, timeout); + if (r == PY_LOCK_ACQUIRED) { + /* if never acquired before, success in acquiring the lock */ + assert(self->rlock_count == 0); + self->rlock_owner = tid; + self->rlock_count = 1; + } + else if (r == PY_LOCK_INTR) { + /* the lock is acquired by another thread, fail in acquiring the lock */ + return NULL; + } + return PyBool_FromLong(r == PY_LOCK_ACQUIRED); +} + + +``` + +the release procedure + +```c +/* cpython/Modules/_threadmodule.c */ +static PyObject * +rlock_release(rlockobject *self, PyObject *Py_UNUSED(ignored)) +{ + unsigned long tid = PyThread_get_thread_ident(); + /* check if the rlock_count reaches 0 or release by other thread */ + if (self->rlock_count == 0 || self->rlock_owner != tid) { + PyErr_SetString(PyExc_RuntimeError, + "cannot release un-acquired lock"); + return NULL; + } + /* decrement the rlock_count + reset rlock_owner to give other thread a chance to acquire the lock if rlock_count reaches 0 */ + if (--self->rlock_count == 0) { + self->rlock_owner = 0; + PyThread_release_lock(self->rlock_lock); + } + Py_RETURN_NONE; +} + +``` + +# exit_thread + +```c +/* cpython/Modules/_threadmodule.c */ +static PyObject * +thread_PyThread_exit_thread(PyObject *self, PyObject *Py_UNUSED(ignored)) +{ + /* just raise SystemExit exception */ + PyErr_SetNone(PyExc_SystemExit); + return NULL; +} + +``` + +# stack_size + +you can set the stack size to 100kb by calling + +```python3 +>>> _thread.stack_size(102400) # threading.stack_size(102400) + +``` + +which will delegate to [`pthread_attr_setstacksize`](http://man7.org/linux/man-pages/man3/pthread_attr_setstacksize.3.html) + +```c +_pythread_pthread_set_stacksize(size_t size) +{ +#if defined(THREAD_STACK_SIZE) + pthread_attr_t attrs; + size_t tss_min; + int rc = 0; +#endif + + /* set to default */ + if (size == 0) { + _PyInterpreterState_GET_UNSAFE()->pythread_stacksize = 0; + return 0; + } + +#if defined(THREAD_STACK_SIZE) +#if defined(PTHREAD_STACK_MIN) + tss_min = PTHREAD_STACK_MIN > THREAD_STACK_MIN ? PTHREAD_STACK_MIN + : THREAD_STACK_MIN; +#else + tss_min = THREAD_STACK_MIN; +#endif + if (size >= tss_min) { + /* validate stack size by setting thread attribute */ + if (pthread_attr_init(&attrs) == 0) { + rc = pthread_attr_setstacksize(&attrs, size); + pthread_attr_destroy(&attrs); + if (rc == 0) { + _PyInterpreterState_GET_UNSAFE()->pythread_stacksize = size; + return 0; + } + } + } + return -1; +#else + return -2; +#endif +} + +``` + +# thread local + +the implementation of thread local storage is a per thread [dict](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/dict.md) object stored inside the **PyThreadState** structure From 800f983e3124ecfd2559663a0686c3e287d07082 Mon Sep 17 00:00:00 2001 From: zpoint Date: Sat, 12 Mar 2022 13:55:27 +0800 Subject: [PATCH 76/90] .gitattributes Markdown --- .gitattributes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitattributes b/.gitattributes index afd4cde..d015960 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,4 +2,4 @@ *.less linguist-language=Python *.js linguist-language=Python *.html linguist-language=Python -*.md linguist-language=Python +*.md linguist-language=Markdown From d3b49e77ac05e53ce30de02556da7c7bb8aae8f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=8B=E5=BE=8B?= <81250368+MelodyYuuka@users.noreply.github.com> Date: Mon, 14 Mar 2022 10:06:06 +0800 Subject: [PATCH 77/90] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改文章中pep 468错误链接 --- BasicObject/dict/dict_cn.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/BasicObject/dict/dict_cn.md b/BasicObject/dict/dict_cn.md index 733d7fe..d6b5dd8 100644 --- a/BasicObject/dict/dict_cn.md +++ b/BasicObject/dict/dict_cn.md @@ -30,7 +30,7 @@ 通常情况下,我们会用哈希表来实现一个字典对象,平均情况下你只需要花费 O(1) 的时间复杂度即可以完成对一个元素的查找,这也是 CPython 的实现方式 -下图是在 [python3.6](https://github.com/python/cpython/commit/742da040db28e1284615e88874d5c952da80344e ) 版本之前,一个指向 python 内部字典对象的入口指针 +下图是在 [python3.6](https://github.com/python/cpython/commit/742da040db28e1284615e88874d5c952da80344e) 版本之前,一个指向 python 内部字典对象的入口指针 ![before_py36](./before_py36.png) @@ -56,7 +56,7 @@ ![after_py36_space](./after_py36_space.png) -这个方案最初是由 [PyPy](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html) 提出, 并在 [pep 468](https://www.python.org/dev/peps/pep-0468/]) 中引入到了 CPython, 在 python3.6 版本进行了实现 +这个方案最初是由 [PyPy](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html) 提出, 并在 [pep 468](https://www.python.org/dev/peps/pep-0468/) 中引入到了 CPython, 在 python3.6 版本进行了实现 # 内存构造 @@ -419,4 +419,4 @@ index: 0 1 2 3 4 5 6 7 * [pypy-blog](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html) -* [python-dev](https://mail.python.org/pipermail/python-dev/2012-December/123028.html) \ No newline at end of file +* [python-dev](https://mail.python.org/pipermail/python-dev/2012-December/123028.html) From 3a8de9e744feeac21e2208e64a1b0f917bd979e1 Mon Sep 17 00:00:00 2001 From: Lucas Matheus <49918079+samsepiol1@users.noreply.github.com> Date: Mon, 23 Oct 2023 03:06:08 +0000 Subject: [PATCH 78/90] correction of the reference about stackframe --- Interpreter/frame/frame.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Interpreter/frame/frame.md b/Interpreter/frame/frame.md index 7e40003..c809d8e 100644 --- a/Interpreter/frame/frame.md +++ b/Interpreter/frame/frame.md @@ -20,7 +20,7 @@ the **PyFrameObject** is the stack frame in python virtual machine, it contains space for the currently executing code object, parameters, variables in different scope, try block info and etc -for more information please refer to [stack frame strategy](http://en.citizendium.org/wiki/Memory_management) +for more information please refer to [stack frame strategy](https://en.citizendium.org/wiki/Stack_frame) ![layout](./layout.png) From 35bab7dfa06cec1d1eb03ffb9a5dcf47f82b45c5 Mon Sep 17 00:00:00 2001 From: Nayeon Shin Date: Tue, 12 Dec 2023 11:46:36 -0500 Subject: [PATCH 79/90] docs(gil): fix typo --- Interpreter/gil/gil.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Interpreter/gil/gil.md b/Interpreter/gil/gil.md index 7f6b3ad..49897e4 100644 --- a/Interpreter/gil/gil.md +++ b/Interpreter/gil/gil.md @@ -44,7 +44,7 @@ you can call `sys.setcheckinterval()` to set other **tick** count value instead because the **tick** is not time-based, some thread might run far longer than other threads -in multi-core machine, if two threads both running CPU-bound tasks, the os might schedule the two threads running on different cores, there might be a situation that one thread holding the **gil** executing it's task in it's **100 ticks cycle** in a core, while the thread in the other core wakes up preiodly try to acquire the **gil** but fail, spinning the CPU +in multi-core machine, if two threads both running CPU-bound tasks, the os might schedule the two threads running on different cores, there might be a situation that one thread holding the **gil** executing it's task in it's **100 ticks cycle** in a core, while the thread in the other core wakes up periodically try to acquire the **gil** but fail, spinning the CPU the job(thread) schedule mechanism is fully controlled by the operating system, the thread handling IO-bound task have to wait for other thread to release the **gil**, and other thread might re-acquire the **gil** after it release the **gil**, which makes the current IO-bound task thread wait even longer (actually, the thread that cause os's context-switch by it self will have higher priority than those thread forced by os, programmer can utilize this feature by putting the IO-bound thread to sleep as soon as possible) From 9de9c8b4087f84d2d230298976215f079666f8c1 Mon Sep 17 00:00:00 2001 From: Nayeon Shin Date: Thu, 14 Dec 2023 17:33:17 -0500 Subject: [PATCH 80/90] docs(gil): fix typos, grammar, cap, and punct --- Interpreter/gil/gil.md | 78 +++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/Interpreter/gil/gil.md b/Interpreter/gil/gil.md index 49897e4..e8187fe 100644 --- a/Interpreter/gil/gil.md +++ b/Interpreter/gil/gil.md @@ -1,6 +1,6 @@ -# gil![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/gil) +# GIL ![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/gil) -# contents +# Contents * [related file](#related-file) * [introduction](#introduction) @@ -17,69 +17,69 @@ * [switch_cond and switch_mutex](#switch_cond-and-switch_mutex) * [when will the gil be released](#when-will-the-gil-be-released) -# related file +# Related files * cpython/Python/ceval.c * cpython/Python/ceval_gil.h * cpython/Include/internal/pycore_gil.h -# introduction +# Introduction -this is the defination of the [**Global Interpreter Lock**](https://wiki.python.org/moin/GlobalInterpreterLock) +This is the definition of the [**Global Interpreter Lock**](https://wiki.python.org/moin/GlobalInterpreterLock). > In CPython, the global interpreter lock, or GIL, is a mutex that protects access to Python objects, preventing multiple threads from executing Python bytecodes at once. This lock is necessary mainly because CPython's memory management is not thread-safe. (However, since the GIL exists, other features have grown to depend on the guarantees that it enforces.) -## thread scheduling before python32 +## Thread scheduling before Python 3.2 -basically, the **tick** is a counter for how many opcodes current thread executed continuously without releasing the **gil** +Basically, the **tick** is a counter for how many opcodes current thread executed continuously without releasing the **GIL**. -if the current thread is running a CPU-bound task, it will release the **gil** and offer an opportunity for other thread to run for every 100 **ticks** +If the current thread is running a CPU-bound task, it will release the **gil** and offer an opportunity for another thread to run for every 100 **ticks**. -if the current thread is running an IO-bound task, the **gil** will be relaesed manually if you call `sleep/recv/send(...etc)` even without count to 100 **ticks** +If the current thread is running an IO-bound task, the **GIL** will be released manually if you call `sleep/recv/send(...etc)` even without count to 100 **ticks**. -you can call `sys.setcheckinterval()` to set other **tick** count value instead of 100 +You can call `sys.setcheckinterval()` to set other **tick** count value instead of 100. ![old_gil](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/old_gil.png) (picture from [Understanding the Python GIL(youtube)](https://www.youtube.com/watch?v=Obt-vMVdM8s)) -because the **tick** is not time-based, some thread might run far longer than other threads +Because the **tick** is not time-based, some thread might run far longer than other threads. -in multi-core machine, if two threads both running CPU-bound tasks, the os might schedule the two threads running on different cores, there might be a situation that one thread holding the **gil** executing it's task in it's **100 ticks cycle** in a core, while the thread in the other core wakes up periodically try to acquire the **gil** but fail, spinning the CPU +In multi-core machine, if two threads both running CPU-bound tasks, the OS might schedule the two threads running on different cores, there might be a situation that one thread holding the **GIL** executing its task in its **100 ticks cycle** in a core, while the thread in the other core wakes up periodically try to acquire the **GIL** but fail, spinning the CPU. -the job(thread) schedule mechanism is fully controlled by the operating system, the thread handling IO-bound task have to wait for other thread to release the **gil**, and other thread might re-acquire the **gil** after it release the **gil**, which makes the current IO-bound task thread wait even longer (actually, the thread that cause os's context-switch by it self will have higher priority than those thread forced by os, programmer can utilize this feature by putting the IO-bound thread to sleep as soon as possible) +The job (thread) schedule mechanism is fully controlled by the operating system, the thread handling an IO-bound task have to wait for other thread to release the **GIL**, and other thread might re-acquire the **GIL** after it release the **GIL**, which makes the current IO-bound task thread wait even longer (actually, the thread that cause OS's context-switch by itself will have higher priority than those thread forced by the OS, programmer can utilize this feature by putting the IO-bound thread to sleep as soon as possible). ![gil_battle](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/gil_battle.png) (picture from [Understanding the Python GIL(youtube)](https://www.youtube.com/watch?v=Obt-vMVdM8s)) -## thread scheduling after python32 +## Thread scheduling after Python 3.2 -due to some performance issue in multi-core machine, the implementation of the **gil** has changed a lot after python3.2 +Due to some performance issue in multi-core machine, the implementation of the **GIL** has changed a lot after Python 3.2. -if there's only one thread, it can run forever without check and release **gil** +If there's only one thread, it can run forever without checking and releasing the **GIL**. -if there're more than one threads, the thread currently blocking by the **gil** will wait for a period of timeout and set the **gil_drop_request** to 1, and continue waiting, the thread currently holding the **gil** will release the **gil** and wait for same period of timeout if the **gil_drop_request** is set to 1, thread currently blocking will be signaled and is able to acqure the **gil** +If there're more than one threads, the thread currently blocked by the **GIL** will wait for a period of timeout and set the **gil_drop_request** to 1, and continue waiting, the thread currently holding the **GIL** will release the **GIL** and wait for same period of timeout if the **gil_drop_request** is set to 1, the thread currently blocking will be signaled and is able to acqure the **GIL** ![new_gil](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/new_gil.png) (picture from [Understanding the Python GIL(youtube)](https://www.youtube.com/watch?v=Obt-vMVdM8s)) -the thread set the **gil_drop_request** to 1 might not be the thread acquire the **gil** +The thread set the **gil_drop_request** to 1 might not be the thread acquiring the **GIL**. -if the current thread is waiting for the interval, and owner of the **gil** changed during the waiting **interval**, after wake up, the current thread need to wait, set **gil_drop_request** to 1 and wait again +If the current thread is waiting for the interval, and the owner of the **GIL** changed during the waiting **interval**, after wake up, the current thread need to wait, set **gil_drop_request** to 1, and wait again. ![new_gil2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/new_gil2.png) (picture from [Understanding the Python GIL(youtube)](https://www.youtube.com/watch?v=Obt-vMVdM8s)) -for those who are interested in detail, please refer to [Understanding the Python GIL(article)](http://www.dabeaz.com/GIL/) +For those who are interested in further details, please refer to [Understanding the Python GIL(article)](http://www.dabeaz.com/GIL/). -## memory layout +## Memory layout ![git_layout](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/gil_layout.png) -# fields +# Fields -the python intepreter is a program written in C, every executable program written in C have a `main` function +The python intepreter is a program written in C, every executable program written in C have a `main` function. -those `main` related functions are defined in `cpython/Modules/main.c`, you will find that the `main` related function does some inilialization for the intepreter status before execute the `main loop`, the `_gil_runtime_state` will be created and initialized in the inilialization +Those `main`-related functions are defined in `cpython/Modules/main.c`, you will find that the `main`-related function does some initialization for the intepreter status before executing the `main loop`, the `_gil_runtime_state` will be created and initialized in the initialization. ```python3 ./python.exe @@ -97,17 +97,17 @@ those `main` related functions are defined in `cpython/Modules/main.c`, you will ``` -**interval** is the suspend timeout before set the `gil_drop_request` in microseconds, 5000 microseconds is 0.005 seconds +**interval** is the suspend timeout before setting the `gil_drop_request` in microseconds, 5000 microseconds is 0.005 seconds. -it's stored as microseconds in C and represent as seconds in python +It's stored as microseconds in C and represented as seconds in Python. ## last_holder -**last_holder** stores the C address of the last PyThreadState hloding the **gil**, this helps us know whether anyone else was scheduled after we dropped the **gil** +**last_holder** stores the C address of the last `PyThreadState` holding the **GIL**, this helps us know whether anyone else was scheduled after we dropped the **GIL**. ## locked -**locked** is a field of type **_Py_atomic_int**, -1 indicate uninitialized, 0 means no one is currently holding the **gil**, 1 means someone is holding it. This is atomic because it can be read without any lock taken in ceval.c +**locked** is a field of type **_Py_atomic_int**, -1 indicates uninitialized, 0 means no one is currently holding the **GIL**, 1 means someone is holding it. This is atomic because it can be read without any lock taken in `ceval.c`. ```c /* cpython/Python/ceval_gil.h */ @@ -144,9 +144,9 @@ static void drop_gil(PyThreadState *tstate) ## switch_number -**switch_number** is a counter for number of **gil** switches since the beginning +**switch_number** is a counter for the number of **GIL** switches since the beginning. -it's used in function `take_gil` +It's used in function `take_gil`. ```c static void take_gil(PyThreadState *tstate) @@ -181,17 +181,17 @@ static void take_gil(PyThreadState *tstate) ## mutex -**mutex** is a mutex used for protecting `locked`, `last_holder`, `switch_number` and other variables in `_gil_runtime_state` +**mutex** is a mutex used for protecting `locked`, `last_holder`, `switch_number`, and other variables in `_gil_runtime_state`. ## cond -**cond** is a condition variable, combined with **mutex**, used for signaling release of **gil** +**cond** is a condition variable, combined with **mutex**, used for signaling the release of the **GIL**. ## switch_cond and switch_mutex -**switch_cond** is another condition variable, combined with **switch_mutex** can be used for making sure that the thread acquire the **gil** is not the thread release the **gil**, avoiding waste of time slice +**switch_cond** is another condition variable, combined with **switch_mutex** can be used for making sure that the thread acquiring the **GIL** is not the thread releasing the **GIL**, avoiding a waste of the time slice. -it can be turned off without the defination of `FORCE_SWITCHING` +It can be turned off without the definition of `FORCE_SWITCHING`. ```c static void drop_gil(PyThreadState *tstate) @@ -225,15 +225,15 @@ static void drop_gil(PyThreadState *tstate) ``` -# when will the gil be released +# When the GIL will be released -the `main_loop` in `cpython/Python/ceval.c` is a big `for loop`, and a big `switch statement` +The `main_loop` in `cpython/Python/ceval.c` is a big `for loop`, and a big `switch statement`. -the big `for loop` loads opcode one by one, and the big `switch statement` execute different c code according to the opcode +The big `for loop` loads opcode one by one, and the big `switch statement` executes different C code according to the opcode. -the `for loop` will check the variable `gil_drop_request` and release the `gil` if necessary +The `for loop` will check the variable `gil_drop_request` and release the `gil` if necessary. -not every opcode will check the `gil_drop_request`, some opcode ends with `FAST_DISPATCH()` will go to the next statement directly, while some opcode ends with `DISPATCH()` act as `continue statement` and will go to the beginning of the for loop +Not every opcode will check the `gil_drop_request`, some opcode that ends with `FAST_DISPATCH()` will go to the next statement directly, while some opcode that ends with `DISPATCH()` acts as `continue statement` and will go to the beginning of the for loop. ```c /* cpython/Python/ceval.c */ From 6cf3422a4c4b6eb12c6dbc14bd47a0fe54436fe1 Mon Sep 17 00:00:00 2001 From: Nayeon Shin Date: Thu, 14 Dec 2023 17:35:04 -0500 Subject: [PATCH 81/90] docs(gil): change `releasing` to `that released` --- Interpreter/gil/gil.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Interpreter/gil/gil.md b/Interpreter/gil/gil.md index e8187fe..d6bc373 100644 --- a/Interpreter/gil/gil.md +++ b/Interpreter/gil/gil.md @@ -189,7 +189,7 @@ static void take_gil(PyThreadState *tstate) ## switch_cond and switch_mutex -**switch_cond** is another condition variable, combined with **switch_mutex** can be used for making sure that the thread acquiring the **GIL** is not the thread releasing the **GIL**, avoiding a waste of the time slice. +**switch_cond** is another condition variable, combined with **switch_mutex** can be used for making sure that the thread acquiring the **GIL** is not the thread that released the **GIL**, avoiding a waste of the time slice. It can be turned off without the definition of `FORCE_SWITCHING`. From 866c4301ed680a7b7f8ee8c2025b1d9476472222 Mon Sep 17 00:00:00 2001 From: xueguanwen Date: Sun, 7 Jul 2024 15:38:35 +0800 Subject: [PATCH 82/90] [WIP] Update gc_cn.md: Add file path information to the code snippet Add file path information to the code snippet --- Interpreter/gc/gc_cn.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Interpreter/gc/gc_cn.md b/Interpreter/gc/gc_cn.md index ab05fa6..7cbd120 100644 --- a/Interpreter/gc/gc_cn.md +++ b/Interpreter/gc/gc_cn.md @@ -105,6 +105,7 @@ $ ./python.exe -m dis test.py `2 STORE_NAME 0` ```c +/* cpython/Python/ceval.c */ case TARGET(STORE_NAME): { /* name 是一个 str 对象, 值为 's' ns 是 local namespace @@ -149,6 +150,7 @@ case TARGET(STORE_NAME): { `8 DELETE_NAME 0 (s)` ```c +/* cpython/Python/ceval.c */ case TARGET(DELETE_NAME): { /* name 这里为 's' ns 为 the local namespace From 6235b9461d94b41cbe3b69a4a08e9f84446d78a3 Mon Sep 17 00:00:00 2001 From: zpoint Date: Wed, 30 Jul 2025 14:56:44 +0800 Subject: [PATCH 83/90] Resolve #60 typo on mro --- BasicObject/type/type.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BasicObject/type/type.md b/BasicObject/type/type.md index ead06cb..0e91214 100644 --- a/BasicObject/type/type.md +++ b/BasicObject/type/type.md @@ -106,7 +106,7 @@ E + B + C mro of **F** is computed as ```python3 -F + merge(L(D), L(E), BC) +F + merge(L(D), L(E), DE) F + merge(DAB, EBC, DE) F + D + merge(AB, EBC, E) F + D + A + merge(B, EBC, E) @@ -296,4 +296,4 @@ pretty fun! # read more * [Amit Kumar: Demystifying Python Method Resolution Order - PyCon APAC 2016](https://www.youtube.com/watch?v=cuonAMJjHow&t=400s) * [The Python 2.3 Method Resolution Order(MRO)](https://www.python.org/download/releases/2.3/mro/) -* [understanding-python-metaclasses](https://blog.ionelmc.ro/2015/02/09/understanding-python-metaclasses) \ No newline at end of file +* [understanding-python-metaclasses](https://blog.ionelmc.ro/2015/02/09/understanding-python-metaclasses) From ccf6c8e1341e1e172a8bceafe654a91cf7592ef5 Mon Sep 17 00:00:00 2001 From: zpoint Date: Wed, 30 Jul 2025 14:59:17 +0800 Subject: [PATCH 84/90] update cn --- BasicObject/type/type_cn.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/BasicObject/type/type_cn.md b/BasicObject/type/type_cn.md index b77e3c7..78150b7 100644 --- a/BasicObject/type/type_cn.md +++ b/BasicObject/type/type_cn.md @@ -118,7 +118,7 @@ E + B + C **F** 的 MRO 计算结果如下 ```python3 -F + merge(L(D), L(E), BC) +F + merge(L(D), L(E), DE) F + merge(DAB, EBC, DE) F + D + merge(AB, EBC, E) F + D + A + merge(B, EBC, E) @@ -307,4 +307,4 @@ print(AnotherF) # # 相关阅读 * [Amit Kumar: Demystifying Python Method Resolution Order - PyCon APAC 2016](https://www.youtube.com/watch?v=cuonAMJjHow&t=400s) * [The Python 2.3 Method Resolution Order(MRO)](https://www.python.org/download/releases/2.3/mro/) -* [understanding-python-metaclasses](https://blog.ionelmc.ro/2015/02/09/understanding-python-metaclasses) \ No newline at end of file +* [understanding-python-metaclasses](https://blog.ionelmc.ro/2015/02/09/understanding-python-metaclasses) From b106298829af79ec5512913320837ed219f08b43 Mon Sep 17 00:00:00 2001 From: Xuwz Date: Sat, 25 Oct 2025 22:12:02 +0800 Subject: [PATCH 85/90] Update dict_cn.md for clarity on dictionary behavior MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Clarified the explanation regarding dictionary keys and values in the Chinese documentation. 字段对象->字典对象 --- BasicObject/dict/dict_cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/BasicObject/dict/dict_cn.md b/BasicObject/dict/dict_cn.md index d6b5dd8..0170440 100644 --- a/BasicObject/dict/dict_cn.md +++ b/BasicObject/dict/dict_cn.md @@ -96,7 +96,7 @@ Or: */ ``` -什么意思呢? 在什么情况下字段对象会共享同样的键,但是不共享值呢? 而且键还只能是 unicode 对象,字典对象中的键还不能被删除? 我们来试试看 +什么意思呢? 在什么情况下字典对象会共享同样的键,但是不共享值呢? 而且键还只能是 unicode 对象,字典对象中的键还不能被删除? 我们来试试看 ```python3 # 我更改了部分源代码,解释器执行 split table 查询时会打印出一些信息 From d6a959c9a69ad31c077c72080398d67ead161a56 Mon Sep 17 00:00:00 2001 From: ZePing Guo Date: Thu, 8 Jan 2026 22:27:43 +0800 Subject: [PATCH 86/90] remove xyz link --- BasicObject/bytearray/bytearray.md | 2 +- BasicObject/bytearray/bytearray_cn.md | 2 +- BasicObject/class/class.md | 2 +- BasicObject/class/class_cn.md | 2 +- BasicObject/complex/complex.md | 2 +- BasicObject/complex/complex_cn.md | 2 +- BasicObject/dict/dict.md | 2 +- BasicObject/dict/dict_cn.md | 2 +- BasicObject/enum/enum.md | 2 +- BasicObject/enum/enum_cn.md | 2 +- BasicObject/float/float.md | 2 +- BasicObject/float/float_cn.md | 2 +- BasicObject/func/func.md | 2 +- BasicObject/func/func_cn.md | 2 +- BasicObject/gen/gen.md | 2 +- BasicObject/gen/gen_cn.md | 2 +- BasicObject/iter/iter.md | 2 +- BasicObject/iter/iter_cn.md | 2 +- BasicObject/list/list.md | 2 +- BasicObject/list/list_cn.md | 2 +- BasicObject/long/long.md | 2 +- BasicObject/long/long_cn.md | 2 +- BasicObject/method/method.md | 2 +- BasicObject/method/method_cn.md | 2 +- BasicObject/set/set.md | 2 +- BasicObject/set/set_cn.md | 2 +- BasicObject/str/str.md | 2 +- BasicObject/str/str_cn.md | 2 +- BasicObject/tuple/tuple.md | 2 +- BasicObject/tuple/tuple_cn.md | 2 +- BasicObject/type/type.md | 2 +- BasicObject/type/type_cn.md | 2 +- Extension/C/c.md | 2 +- Extension/C/c_cn.md | 2 +- Extension/CPP/cpp.md | 2 +- Extension/CPP/cpp_cn.md | 2 +- Interpreter/code/code.md | 2 +- Interpreter/code/code_cn.md | 2 +- Interpreter/compile/compile.md | 2 +- Interpreter/compile/compile_cn.md | 2 +- Interpreter/compile2/compile.md | 2 +- Interpreter/compile2/compile_cn.md | 2 +- Interpreter/compile3/compile.md | 2 +- Interpreter/compile3/compile_cn.md | 2 +- Interpreter/descr/descr.md | 2 +- Interpreter/descr/descr_cn.md | 2 +- Interpreter/exception/exception.md | 2 +- Interpreter/exception/exception_cn.md | 2 +- Interpreter/frame/frame.md | 2 +- Interpreter/frame/frame_cn.md | 2 +- Interpreter/gc/gc.md | 2 +- Interpreter/gc/gc_cn.md | 2 +- Interpreter/gil/gil.md | 2 +- Interpreter/gil/gil_cn.md | 2 +- Interpreter/memory_management/memory_management.md | 2 +- Interpreter/memory_management/memory_management_cn.md | 2 +- Interpreter/module/module.md | 2 +- Interpreter/module/module_cn.md | 2 +- Interpreter/pyobject/pyobject.md | 2 +- Interpreter/pyobject/pyobject_cn.md | 2 +- Interpreter/slot/slot.md | 2 +- Interpreter/slot/slot_cn.md | 2 +- Interpreter/thread/thread.md | 2 +- Interpreter/thread/thread_cn.md | 2 +- Modules/io/fileio/fileio.md | 2 +- Modules/io/fileio/fileio_cn.md | 2 +- Modules/pickle/pickle.md | 2 +- Modules/pickle/pickle_cn.md | 2 +- Modules/re/re.md | 2 +- Modules/re/re_cn.md | 2 +- README.md | 2 +- README_CN.md | 2 +- README_KR.md | 2 +- 73 files changed, 73 insertions(+), 73 deletions(-) diff --git a/BasicObject/bytearray/bytearray.md b/BasicObject/bytearray/bytearray.md index f9adcd0..fcdbe56 100644 --- a/BasicObject/bytearray/bytearray.md +++ b/BasicObject/bytearray/bytearray.md @@ -1,4 +1,4 @@ -# bytearray![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/bytearray_cn) +# bytearray # contents diff --git a/BasicObject/bytearray/bytearray_cn.md b/BasicObject/bytearray/bytearray_cn.md index 4895713..a448b48 100644 --- a/BasicObject/bytearray/bytearray_cn.md +++ b/BasicObject/bytearray/bytearray_cn.md @@ -1,4 +1,4 @@ -# bytearray![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/bytearray) +# bytearray # 目录 diff --git a/BasicObject/class/class.md b/BasicObject/class/class.md index f081893..59cc275 100644 --- a/BasicObject/class/class.md +++ b/BasicObject/class/class.md @@ -1,4 +1,4 @@ -# class![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/class) +# class # contents diff --git a/BasicObject/class/class_cn.md b/BasicObject/class/class_cn.md index f850616..842b0fa 100644 --- a/BasicObject/class/class_cn.md +++ b/BasicObject/class/class_cn.md @@ -1,4 +1,4 @@ -# class![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/class_cn) +# class # 目录 diff --git a/BasicObject/complex/complex.md b/BasicObject/complex/complex.md index 34d4079..79f1192 100644 --- a/BasicObject/complex/complex.md +++ b/BasicObject/complex/complex.md @@ -1,4 +1,4 @@ -# complex![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/complex) +# complex # contents diff --git a/BasicObject/complex/complex_cn.md b/BasicObject/complex/complex_cn.md index 1c60802..c3622a3 100644 --- a/BasicObject/complex/complex_cn.md +++ b/BasicObject/complex/complex_cn.md @@ -1,4 +1,4 @@ -# complex![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/complex_cn) +# complex # 目录 diff --git a/BasicObject/dict/dict.md b/BasicObject/dict/dict.md index 7e45515..683f0c4 100644 --- a/BasicObject/dict/dict.md +++ b/BasicObject/dict/dict.md @@ -1,4 +1,4 @@ -# dict ![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/dict) +# dict # Contents diff --git a/BasicObject/dict/dict_cn.md b/BasicObject/dict/dict_cn.md index 0170440..bc8f8ed 100644 --- a/BasicObject/dict/dict_cn.md +++ b/BasicObject/dict/dict_cn.md @@ -1,4 +1,4 @@ -# 字典![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/dict_cn) +# 字典 * [相关位置文件](#相关位置文件) * [演变和实现](#演变和实现) diff --git a/BasicObject/enum/enum.md b/BasicObject/enum/enum.md index dd3f66c..c7ebf74 100644 --- a/BasicObject/enum/enum.md +++ b/BasicObject/enum/enum.md @@ -1,4 +1,4 @@ -# enum![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/enum) +# enum # contents diff --git a/BasicObject/enum/enum_cn.md b/BasicObject/enum/enum_cn.md index 85549ac..3027aec 100644 --- a/BasicObject/enum/enum_cn.md +++ b/BasicObject/enum/enum_cn.md @@ -1,4 +1,4 @@ -# enum![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/enum_cn) +# enum # 目录 diff --git a/BasicObject/float/float.md b/BasicObject/float/float.md index fd02930..f736df3 100644 --- a/BasicObject/float/float.md +++ b/BasicObject/float/float.md @@ -1,4 +1,4 @@ -# float![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/float) +# float # contents diff --git a/BasicObject/float/float_cn.md b/BasicObject/float/float_cn.md index d01187d..1bd9ed8 100644 --- a/BasicObject/float/float_cn.md +++ b/BasicObject/float/float_cn.md @@ -1,4 +1,4 @@ -# float![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/float_cn) +# float # 目录 diff --git a/BasicObject/func/func.md b/BasicObject/func/func.md index 5a0376e..6556db6 100644 --- a/BasicObject/func/func.md +++ b/BasicObject/func/func.md @@ -1,4 +1,4 @@ -# func![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/func) +# func # contents diff --git a/BasicObject/func/func_cn.md b/BasicObject/func/func_cn.md index ac3a3e9..b48cdbd 100644 --- a/BasicObject/func/func_cn.md +++ b/BasicObject/func/func_cn.md @@ -1,4 +1,4 @@ -# func![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/func_cn) +# func # 目录 diff --git a/BasicObject/gen/gen.md b/BasicObject/gen/gen.md index 12b0e95..b57339c 100644 --- a/BasicObject/gen/gen.md +++ b/BasicObject/gen/gen.md @@ -1,4 +1,4 @@ -# gen![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/gen) +# gen # contents diff --git a/BasicObject/gen/gen_cn.md b/BasicObject/gen/gen_cn.md index ca27dec..61c7511 100644 --- a/BasicObject/gen/gen_cn.md +++ b/BasicObject/gen/gen_cn.md @@ -1,4 +1,4 @@ -# gen![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/gen_cn) +# gen # 目录 diff --git a/BasicObject/iter/iter.md b/BasicObject/iter/iter.md index 72bd5a6..f2c6207 100644 --- a/BasicObject/iter/iter.md +++ b/BasicObject/iter/iter.md @@ -1,4 +1,4 @@ -# iter![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/iter) +# iter # contents diff --git a/BasicObject/iter/iter_cn.md b/BasicObject/iter/iter_cn.md index 792c374..6659ac9 100644 --- a/BasicObject/iter/iter_cn.md +++ b/BasicObject/iter/iter_cn.md @@ -1,4 +1,4 @@ -# iter![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/iter_cn) +# iter # 目录 diff --git a/BasicObject/list/list.md b/BasicObject/list/list.md index b71ebab..2610b05 100644 --- a/BasicObject/list/list.md +++ b/BasicObject/list/list.md @@ -1,4 +1,4 @@ -# list![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/list) +# list # contents diff --git a/BasicObject/list/list_cn.md b/BasicObject/list/list_cn.md index 64f356a..1cae3b4 100644 --- a/BasicObject/list/list_cn.md +++ b/BasicObject/list/list_cn.md @@ -1,4 +1,4 @@ -# list![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/list_cn) +# list # 目录 diff --git a/BasicObject/long/long.md b/BasicObject/long/long.md index c7ed966..0eaeffd 100644 --- a/BasicObject/long/long.md +++ b/BasicObject/long/long.md @@ -1,4 +1,4 @@ -# int![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/long) +# int Thanks @MambaWong for pointing out the errors [#22](https://github.com/zpoint/CPython-Internals/issues/22) of this article diff --git a/BasicObject/long/long_cn.md b/BasicObject/long/long_cn.md index 64658bc..a4d86e8 100644 --- a/BasicObject/long/long_cn.md +++ b/BasicObject/long/long_cn.md @@ -1,4 +1,4 @@ -# int![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/long_cn) +# int 感谢 @MambaWong 指出之前本章节存在的问题 [#22](https://github.com/zpoint/CPython-Internals/issues/22) 已改正 diff --git a/BasicObject/method/method.md b/BasicObject/method/method.md index 20cdd31..bad1bd6 100644 --- a/BasicObject/method/method.md +++ b/BasicObject/method/method.md @@ -1,4 +1,4 @@ -# method![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/method) +# method # contents diff --git a/BasicObject/method/method_cn.md b/BasicObject/method/method_cn.md index 09b0b58..fda5862 100644 --- a/BasicObject/method/method_cn.md +++ b/BasicObject/method/method_cn.md @@ -1,4 +1,4 @@ -# method![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/method_cn) +# method # 目录 diff --git a/BasicObject/set/set.md b/BasicObject/set/set.md index b7d02e9..37f4d5d 100644 --- a/BasicObject/set/set.md +++ b/BasicObject/set/set.md @@ -1,4 +1,4 @@ -# set![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/set) +# set # contents diff --git a/BasicObject/set/set_cn.md b/BasicObject/set/set_cn.md index 108fb8d..5459a7f 100644 --- a/BasicObject/set/set_cn.md +++ b/BasicObject/set/set_cn.md @@ -1,4 +1,4 @@ -# set![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/set_cn) +# set # 目录 diff --git a/BasicObject/str/str.md b/BasicObject/str/str.md index e8d5483..d9816c6 100644 --- a/BasicObject/str/str.md +++ b/BasicObject/str/str.md @@ -1,4 +1,4 @@ -# str![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/str) +# str # contents diff --git a/BasicObject/str/str_cn.md b/BasicObject/str/str_cn.md index 427044a..4676a34 100644 --- a/BasicObject/str/str_cn.md +++ b/BasicObject/str/str_cn.md @@ -1,4 +1,4 @@ -# str![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/str_cn) +# str # 目录 diff --git a/BasicObject/tuple/tuple.md b/BasicObject/tuple/tuple.md index 839cae2..1951fcd 100644 --- a/BasicObject/tuple/tuple.md +++ b/BasicObject/tuple/tuple.md @@ -1,4 +1,4 @@ -# tuple![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/tuple) +# tuple # contents diff --git a/BasicObject/tuple/tuple_cn.md b/BasicObject/tuple/tuple_cn.md index 32e0c06..84d465f 100644 --- a/BasicObject/tuple/tuple_cn.md +++ b/BasicObject/tuple/tuple_cn.md @@ -1,4 +1,4 @@ -# tuple![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/tuple_cn) +# tuple # 目录 diff --git a/BasicObject/type/type.md b/BasicObject/type/type.md index 0e91214..eefd518 100644 --- a/BasicObject/type/type.md +++ b/BasicObject/type/type.md @@ -1,4 +1,4 @@ -# type![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/type_cn) +# type # contents diff --git a/BasicObject/type/type_cn.md b/BasicObject/type/type_cn.md index 78150b7..45b2799 100644 --- a/BasicObject/type/type_cn.md +++ b/BasicObject/type/type_cn.md @@ -1,4 +1,4 @@ -# type![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/type_cn) +# type # 目录 diff --git a/Extension/C/c.md b/Extension/C/c.md index e2b5011..8eaca8b 100644 --- a/Extension/C/c.md +++ b/Extension/C/c.md @@ -1,4 +1,4 @@ -# profile python code and write pure C extension![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/c_ext) +# profile python code and write pure C extension # contents diff --git a/Extension/C/c_cn.md b/Extension/C/c_cn.md index 87ba636..f064ce9 100644 --- a/Extension/C/c_cn.md +++ b/Extension/C/c_cn.md @@ -1,4 +1,4 @@ -# python 性能分析和 C 扩展![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/c_ext_cn) +# python 性能分析和 C 扩展 # 目录 diff --git a/Extension/CPP/cpp.md b/Extension/CPP/cpp.md index 3a57313..39d8ed9 100644 --- a/Extension/CPP/cpp.md +++ b/Extension/CPP/cpp.md @@ -1,4 +1,4 @@ -# C++ extension![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/cpp_ext) +# C++ extension # contents diff --git a/Extension/CPP/cpp_cn.md b/Extension/CPP/cpp_cn.md index 9d17878..98504d0 100644 --- a/Extension/CPP/cpp_cn.md +++ b/Extension/CPP/cpp_cn.md @@ -1,4 +1,4 @@ -# C++ extension![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/cpp_ext) +# C++ extension # 目录 diff --git a/Interpreter/code/code.md b/Interpreter/code/code.md index b1e3ae4..abacd0e 100644 --- a/Interpreter/code/code.md +++ b/Interpreter/code/code.md @@ -1,4 +1,4 @@ -# code![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/code) +# code # contents diff --git a/Interpreter/code/code_cn.md b/Interpreter/code/code_cn.md index 4bce89a..b56e5da 100644 --- a/Interpreter/code/code_cn.md +++ b/Interpreter/code/code_cn.md @@ -1,4 +1,4 @@ -# code![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/code_cn) +# code # 目录 diff --git a/Interpreter/compile/compile.md b/Interpreter/compile/compile.md index c63b27d..c686074 100644 --- a/Interpreter/compile/compile.md +++ b/Interpreter/compile/compile.md @@ -1,4 +1,4 @@ -# compile![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/compile) +# compile # contents diff --git a/Interpreter/compile/compile_cn.md b/Interpreter/compile/compile_cn.md index 3391afd..1026461 100644 --- a/Interpreter/compile/compile_cn.md +++ b/Interpreter/compile/compile_cn.md @@ -1,4 +1,4 @@ -# compile![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/compile_cn) +# compile # 目录 diff --git a/Interpreter/compile2/compile.md b/Interpreter/compile2/compile.md index 56f1fa4..1358c5f 100644 --- a/Interpreter/compile2/compile.md +++ b/Interpreter/compile2/compile.md @@ -1,4 +1,4 @@ -# CST TO AST![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/compile2) +# CST TO AST # contents diff --git a/Interpreter/compile2/compile_cn.md b/Interpreter/compile2/compile_cn.md index 6e54f38..e14dfe2 100644 --- a/Interpreter/compile2/compile_cn.md +++ b/Interpreter/compile2/compile_cn.md @@ -1,4 +1,4 @@ -# CST TO AST![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/compile2_cn) +# CST TO AST # 目录 diff --git a/Interpreter/compile3/compile.md b/Interpreter/compile3/compile.md index 2bd356a..8e5159a 100644 --- a/Interpreter/compile3/compile.md +++ b/Interpreter/compile3/compile.md @@ -1,4 +1,4 @@ -# AST TO byte code![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/compile3) +# AST TO byte code # contents diff --git a/Interpreter/compile3/compile_cn.md b/Interpreter/compile3/compile_cn.md index 81ad508..2a7d9ed 100644 --- a/Interpreter/compile3/compile_cn.md +++ b/Interpreter/compile3/compile_cn.md @@ -1,4 +1,4 @@ -# AST 到 字节码![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/compile3_cn) +# AST 到 字节码 # 目录 diff --git a/Interpreter/descr/descr.md b/Interpreter/descr/descr.md index 5e2529b..36a8ab4 100644 --- a/Interpreter/descr/descr.md +++ b/Interpreter/descr/descr.md @@ -1,4 +1,4 @@ -# descr![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/code) +# descr Thanks @Hanaasagi for pointing out the errors [#19](https://github.com/zpoint/CPython-Internals/issues/19) of this article diff --git a/Interpreter/descr/descr_cn.md b/Interpreter/descr/descr_cn.md index 1ef9526..f59c725 100644 --- a/Interpreter/descr/descr_cn.md +++ b/Interpreter/descr/descr_cn.md @@ -1,4 +1,4 @@ -# descr![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/descr_cn) +# descr 感谢 @Hanaasagi 指出之前本章节存在的问题 [#19](https://github.com/zpoint/CPython-Internals/issues/19) 已改正 diff --git a/Interpreter/exception/exception.md b/Interpreter/exception/exception.md index 3b57a22..59468dc 100644 --- a/Interpreter/exception/exception.md +++ b/Interpreter/exception/exception.md @@ -1,4 +1,4 @@ -# exception![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/exception) +# exception # contents diff --git a/Interpreter/exception/exception_cn.md b/Interpreter/exception/exception_cn.md index bb259b6..37ac38a 100644 --- a/Interpreter/exception/exception_cn.md +++ b/Interpreter/exception/exception_cn.md @@ -1,4 +1,4 @@ -# exception![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/exception_cn) +# exception # 目录 diff --git a/Interpreter/frame/frame.md b/Interpreter/frame/frame.md index c809d8e..86825d9 100644 --- a/Interpreter/frame/frame.md +++ b/Interpreter/frame/frame.md @@ -1,4 +1,4 @@ -# frame![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/frame) +# frame # contents diff --git a/Interpreter/frame/frame_cn.md b/Interpreter/frame/frame_cn.md index e15a366..b5980d3 100644 --- a/Interpreter/frame/frame_cn.md +++ b/Interpreter/frame/frame_cn.md @@ -1,4 +1,4 @@ -# frame![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/frame_cn) +# frame # 目录 diff --git a/Interpreter/gc/gc.md b/Interpreter/gc/gc.md index f6a3e3d..faeb439 100644 --- a/Interpreter/gc/gc.md +++ b/Interpreter/gc/gc.md @@ -1,4 +1,4 @@ -# gc![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/gc) +# gc * you may need more than 15 minutes to read this article diff --git a/Interpreter/gc/gc_cn.md b/Interpreter/gc/gc_cn.md index 7cbd120..05721b7 100644 --- a/Interpreter/gc/gc_cn.md +++ b/Interpreter/gc/gc_cn.md @@ -1,4 +1,4 @@ -# gc![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/gc_cn) +# gc * 长文, 预计阅读时间在十五分钟以上 diff --git a/Interpreter/gil/gil.md b/Interpreter/gil/gil.md index d6bc373..6fb1875 100644 --- a/Interpreter/gil/gil.md +++ b/Interpreter/gil/gil.md @@ -1,4 +1,4 @@ -# GIL ![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/gil) +# GIL # Contents diff --git a/Interpreter/gil/gil_cn.md b/Interpreter/gil/gil_cn.md index 0b4fe09..6f93704 100644 --- a/Interpreter/gil/gil_cn.md +++ b/Interpreter/gil/gil_cn.md @@ -1,4 +1,4 @@ -# gil![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/gil_cn) +# gil # 目录 diff --git a/Interpreter/memory_management/memory_management.md b/Interpreter/memory_management/memory_management.md index 540fc4f..95eebb4 100644 --- a/Interpreter/memory_management/memory_management.md +++ b/Interpreter/memory_management/memory_management.md @@ -1,4 +1,4 @@ -# memory management![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/memory-management) +# memory management * you may need more than 20 minutes to read this article diff --git a/Interpreter/memory_management/memory_management_cn.md b/Interpreter/memory_management/memory_management_cn.md index 393d017..8dfec8d 100644 --- a/Interpreter/memory_management/memory_management_cn.md +++ b/Interpreter/memory_management/memory_management_cn.md @@ -1,4 +1,4 @@ -# memory management![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/memory-management_cn) +# memory management * 长文, 预计阅读时间在二十分钟以上 diff --git a/Interpreter/module/module.md b/Interpreter/module/module.md index a0acd04..ebe4b27 100644 --- a/Interpreter/module/module.md +++ b/Interpreter/module/module.md @@ -1,4 +1,4 @@ -# module![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/module) +# module # contents diff --git a/Interpreter/module/module_cn.md b/Interpreter/module/module_cn.md index 2a45361..7c4baab 100644 --- a/Interpreter/module/module_cn.md +++ b/Interpreter/module/module_cn.md @@ -1,4 +1,4 @@ -# module![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/module_cn) +# module # 目录 diff --git a/Interpreter/pyobject/pyobject.md b/Interpreter/pyobject/pyobject.md index 1cffc62..5e3f26d 100644 --- a/Interpreter/pyobject/pyobject.md +++ b/Interpreter/pyobject/pyobject.md @@ -1,4 +1,4 @@ -# PyObject![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/PyObject) +# PyObject # contents diff --git a/Interpreter/pyobject/pyobject_cn.md b/Interpreter/pyobject/pyobject_cn.md index c9aec25..9ccaedb 100644 --- a/Interpreter/pyobject/pyobject_cn.md +++ b/Interpreter/pyobject/pyobject_cn.md @@ -1,4 +1,4 @@ -# PyObject![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/PyObject_cn) +# PyObject # 目录 diff --git a/Interpreter/slot/slot.md b/Interpreter/slot/slot.md index 10ce795..9335ee9 100644 --- a/Interpreter/slot/slot.md +++ b/Interpreter/slot/slot.md @@ -1,4 +1,4 @@ -# slot![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/slot) +# slot # contents diff --git a/Interpreter/slot/slot_cn.md b/Interpreter/slot/slot_cn.md index 0c88572..476dfa6 100644 --- a/Interpreter/slot/slot_cn.md +++ b/Interpreter/slot/slot_cn.md @@ -1,4 +1,4 @@ -# slot![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/slot_cn) +# slot # 目录 diff --git a/Interpreter/thread/thread.md b/Interpreter/thread/thread.md index 582e36e..fa4beb6 100644 --- a/Interpreter/thread/thread.md +++ b/Interpreter/thread/thread.md @@ -1,4 +1,4 @@ -# thread![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/thread) +# thread # contents diff --git a/Interpreter/thread/thread_cn.md b/Interpreter/thread/thread_cn.md index 9144ebe..6111d27 100644 --- a/Interpreter/thread/thread_cn.md +++ b/Interpreter/thread/thread_cn.md @@ -1,4 +1,4 @@ -# thread![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/thread_cn) +# thread # 目录 diff --git a/Modules/io/fileio/fileio.md b/Modules/io/fileio/fileio.md index b96f3ef..7f74791 100644 --- a/Modules/io/fileio/fileio.md +++ b/Modules/io/fileio/fileio.md @@ -1,4 +1,4 @@ -# fileio![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/fileio) +# fileio # contents diff --git a/Modules/io/fileio/fileio_cn.md b/Modules/io/fileio/fileio_cn.md index 7c8e67d..db184b9 100644 --- a/Modules/io/fileio/fileio_cn.md +++ b/Modules/io/fileio/fileio_cn.md @@ -1,4 +1,4 @@ -# fileio![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/fileio_cn) +# fileio # 目录 diff --git a/Modules/pickle/pickle.md b/Modules/pickle/pickle.md index 0fff6ea..e9e868b 100644 --- a/Modules/pickle/pickle.md +++ b/Modules/pickle/pickle.md @@ -1,4 +1,4 @@ -# pickle![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/pickle) +# pickle # contents diff --git a/Modules/pickle/pickle_cn.md b/Modules/pickle/pickle_cn.md index 8ca1ed5..12b31b0 100644 --- a/Modules/pickle/pickle_cn.md +++ b/Modules/pickle/pickle_cn.md @@ -1,4 +1,4 @@ -# pickle![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/pickle_cn) +# pickle # 目录 diff --git a/Modules/re/re.md b/Modules/re/re.md index 992fe2d..22d7076 100644 --- a/Modules/re/re.md +++ b/Modules/re/re.md @@ -1,4 +1,4 @@ -# re![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/re) +# re # contents diff --git a/Modules/re/re_cn.md b/Modules/re/re_cn.md index b9beb31..9a2ecf2 100644 --- a/Modules/re/re_cn.md +++ b/Modules/re/re_cn.md @@ -1,4 +1,4 @@ -# re![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/re_cn) +# re # 目录 diff --git a/README.md b/README.md index db2ccd8..0cca8d9 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Cpython Internals![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals) +# Cpython Internals ![cpython logo](https://docs.google.com/drawings/d/e/2PACX-1vQKKPvv9xI22zZcRtElIMx_-G22qYcLUvl-gbngubjf76dr80ZjsYQZCCKVqEvJnmBnwZyDXqG9GPlu/pub?w=300&h=200) diff --git a/README_CN.md b/README_CN.md index b2406e9..3866ae2 100644 --- a/README_CN.md +++ b/README_CN.md @@ -1,4 +1,4 @@ -# Cpython Internals![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals-CN) +# Cpython Internals * [English](https://github.com/zpoint/CPython-Internals/blob/master/README.md) * [한국어](https://github.com/zpoint/CPython-Internals/blob/master/README_KR.md) diff --git a/README_KR.md b/README_KR.md index 29d9703..32e5da5 100644 --- a/README_KR.md +++ b/README_KR.md @@ -1,4 +1,4 @@ -# Cpython Internals!![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals-KR) +# Cpython Internals! ![cpython logo](https://docs.google.com/drawings/d/e/2PACX-1vQKKPvv9xI22zZcRtElIMx_-G22qYcLUvl-gbngubjf76dr80ZjsYQZCCKVqEvJnmBnwZyDXqG9GPlu/pub?w=300&h=200) From a817e58f6cdb5be0542840ba841237bcd6255c2e Mon Sep 17 00:00:00 2001 From: "Dmitry Cheryasov (default)" Date: Sat, 31 Jan 2026 12:26:19 -0500 Subject: [PATCH 87/90] Use local SVG logo in README. * Fix README.md and README_KR.md which use the logo. * Use a stripped, small (2.8 kiB), local SVG file. * The file is from Wikimedia, license clean. --- Media/Python-logo-notext.svg | 48 ++++++++++++++++++++++++++++++++++++ README.md | 6 ++--- README_KR.md | 2 +- 3 files changed, 52 insertions(+), 4 deletions(-) create mode 100644 Media/Python-logo-notext.svg diff --git a/Media/Python-logo-notext.svg b/Media/Python-logo-notext.svg new file mode 100644 index 0000000..0326792 --- /dev/null +++ b/Media/Python-logo-notext.svg @@ -0,0 +1,48 @@ + + diff --git a/README.md b/README.md index 0cca8d9..3da4cf2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Cpython Internals -![cpython logo](https://docs.google.com/drawings/d/e/2PACX-1vQKKPvv9xI22zZcRtElIMx_-G22qYcLUvl-gbngubjf76dr80ZjsYQZCCKVqEvJnmBnwZyDXqG9GPlu/pub?w=300&h=200) +![cpython logo](Media/Python-logo-notext.svg) * [简体中文](https://github.com/zpoint/CPython-Internals/blob/master/README_CN.md) * [한국어](https://github.com/zpoint/CPython-Internals/blob/master/README_KR.md) @@ -115,10 +115,10 @@ All kinds of contributions are welcome * correct english grammar * translation * anything else -* open an issue +* open an issue * any suggestions * any questions * correct mistakes * anything else -# [License](https://creativecommons.org/licenses/by-nc-sa/4.0/) \ No newline at end of file +# [License](https://creativecommons.org/licenses/by-nc-sa/4.0/) diff --git a/README_KR.md b/README_KR.md index 32e5da5..f6ad351 100644 --- a/README_KR.md +++ b/README_KR.md @@ -1,6 +1,6 @@ # Cpython Internals! -![cpython logo](https://docs.google.com/drawings/d/e/2PACX-1vQKKPvv9xI22zZcRtElIMx_-G22qYcLUvl-gbngubjf76dr80ZjsYQZCCKVqEvJnmBnwZyDXqG9GPlu/pub?w=300&h=200) +![cpython logo](Media/Python-logo-notext.svg) * [English](https://github.com/zpoint/CPython-Internals/blob/master/README.md) * [简体中文](https://github.com/zpoint/CPython-Internals/blob/master/README_CN.md) From a2f8f7dc74e6f24f455defd2a13de317c982879d Mon Sep 17 00:00:00 2001 From: ZePing Guo Date: Sat, 31 Jan 2026 22:49:15 -0800 Subject: [PATCH 88/90] Add Jekyll config for GitHub Pages Enable GitHub Pages with the Cayman theme to publish the documentation as a website. Co-Authored-By: Claude Opus 4.5 --- _config.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 _config.yml diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..e879b3e --- /dev/null +++ b/_config.yml @@ -0,0 +1,5 @@ +title: CPython Internals +description: Dive into CPython internals, trying to illustrate every detail of CPython implementation +remote_theme: pages-themes/cayman@v0.2.0 +plugins: + - jekyll-remote-theme From 85243242a8694de09e3bb8dae31bbc431859aee6 Mon Sep 17 00:00:00 2001 From: ZePing Guo Date: Sat, 31 Jan 2026 23:38:03 -0800 Subject: [PATCH 89/90] Convert absolute GitHub URLs to relative paths in READMEs Update all internal links in README.md, README_CN.md, and README_KR.md to use relative paths instead of absolute GitHub URLs. This allows the links to work correctly on GitHub Pages, pointing to the generated HTML pages rather than redirecting back to the repository. Co-Authored-By: Claude Opus 4.5 --- README.md | 78 +++++++++++++++++++++++++------------------------- README_CN.md | 80 ++++++++++++++++++++++++++-------------------------- README_KR.md | 78 +++++++++++++++++++++++++------------------------- 3 files changed, 118 insertions(+), 118 deletions(-) diff --git a/README.md b/README.md index 0cca8d9..48f5cb7 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ ![cpython logo](https://docs.google.com/drawings/d/e/2PACX-1vQKKPvv9xI22zZcRtElIMx_-G22qYcLUvl-gbngubjf76dr80ZjsYQZCCKVqEvJnmBnwZyDXqG9GPlu/pub?w=300&h=200) -* [简体中文](https://github.com/zpoint/CPython-Internals/blob/master/README_CN.md) -* [한국어](https://github.com/zpoint/CPython-Internals/blob/master/README_KR.md) +* [简体中文](README_CN.md) +* [한국어](README_KR.md) * **Watch** this repo if you need to be notified when there's update This repository is my notes/blog for [cpython](https://github.com/python/cpython) source code @@ -31,64 +31,64 @@ The following contents are suitable for those who have python programming experi # Objects - - [x] [dict](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/dict.md) - - [x] [long/int](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/long.md) - - [x] [unicode/str](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/str/str.md) - - [x] [set](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/set/set.md) - - [x] [list(timsort)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/list.md) - - [x] [tuple](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/tuple/tuple.md) - - [x] [bytes](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/bytes/bytes.md) - - [x] [bytearray(buffer protocol)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/bytearray/bytearray.md) - - [x] [float](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/float/float.md) - - [x] [func(user-defined method)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/func/func.md) - - [x] [method(builtin method)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/method/method.md) - - [x] [iter](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/iter/iter.md) - - [x] [gen(generator/coroutine/async generator)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/gen/gen.md) - - [x] [class(bound method/classmethod/staticmethod)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/class/class.md) - - [x] [complex](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/complex/complex.md) - - [x] [enum](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/enum/enum.md) - - [x] [type(mro/metaclass/creation of class/instance)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/type/type.md) + - [x] [dict](BasicObject/dict/dict.md) + - [x] [long/int](BasicObject/long/long.md) + - [x] [unicode/str](BasicObject/str/str.md) + - [x] [set](BasicObject/set/set.md) + - [x] [list(timsort)](BasicObject/list/list.md) + - [x] [tuple](BasicObject/tuple/tuple.md) + - [x] [bytes](BasicObject/bytes/bytes.md) + - [x] [bytearray(buffer protocol)](BasicObject/bytearray/bytearray.md) + - [x] [float](BasicObject/float/float.md) + - [x] [func(user-defined method)](BasicObject/func/func.md) + - [x] [method(builtin method)](BasicObject/method/method.md) + - [x] [iter](BasicObject/iter/iter.md) + - [x] [gen(generator/coroutine/async generator)](BasicObject/gen/gen.md) + - [x] [class(bound method/classmethod/staticmethod)](BasicObject/class/class.md) + - [x] [complex](BasicObject/complex/complex.md) + - [x] [enum](BasicObject/enum/enum.md) + - [x] [type(mro/metaclass/creation of class/instance)](BasicObject/type/type.md) # Modules - [ ] io - - [x] [fileio](https://github.com/zpoint/CPython-Internals/blob/master/Modules/io/fileio/fileio.md) - - [x] [pickle](https://github.com/zpoint/CPython-Internals/blob/master/Modules/pickle/pickle.md) + - [x] [fileio](Modules/io/fileio/fileio.md) + - [x] [pickle](Modules/pickle/pickle.md) # Lib - - [x] [re(regex)](https://github.com/zpoint/CPython-Internals/blob/master/Modules/re/re.md) + - [x] [re(regex)](Modules/re/re.md) - [ ] asyncio # Interpreter - - [x] [gil(Global Interpreter Lock)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/gil.md) - - [x] [gc(Garbage Collection)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/gc.md) - - [x] [memory management](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/memory_management.md) - - [x] [descr(how does attribute access work/`__get__`/`__getattribute__`/`__getattr__`)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/descr/descr.md) - - [x] [exception(exception handling)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/exception/exception.md) - - [x] [module(how does import work)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/module/module.md) - - [x] [frame](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/frame.md) - - [x] [code](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/code/code.md) - - [x] [slots/`__slots__`(how does attribute initialized in the creation of class/instance)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/slot/slot.md) - - [x] [thread](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/thread.md) - - [x] [PyObject(overview)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/pyobject/pyobject.md) + - [x] [gil(Global Interpreter Lock)](Interpreter/gil/gil.md) + - [x] [gc(Garbage Collection)](Interpreter/gc/gc.md) + - [x] [memory management](Interpreter/memory_management/memory_management.md) + - [x] [descr(how does attribute access work/`__get__`/`__getattribute__`/`__getattr__`)](Interpreter/descr/descr.md) + - [x] [exception(exception handling)](Interpreter/exception/exception.md) + - [x] [module(how does import work)](Interpreter/module/module.md) + - [x] [frame](Interpreter/frame/frame.md) + - [x] [code](Interpreter/code/code.md) + - [x] [slots/`__slots__`(how does attribute initialized in the creation of class/instance)](Interpreter/slot/slot.md) + - [x] [thread](Interpreter/thread/thread.md) + - [x] [PyObject(overview)](Interpreter/pyobject/pyobject.md) # Extension - - [x] [C API(profile python code and write pure C extension)](https://github.com/zpoint/CPython-Internals/blob/master/Extension/C/c.md) + - [x] [C API(profile python code and write pure C extension)](Extension/C/c.md) - [ ] Cython(C extension) - [x] [Boost C++ libaries (C\+\+ extension)](https://github.com/zpoint/Boost-Python-Examples) - - [ ] [C++ extension](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/cpp.md) + - [ ] [C++ extension](Extension/CPP/cpp.md) - [x] integrate with NumPy - [x] bypass the GIL # Grammar - - [x] [Compile Phase](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) - - [x] [Grammar/MetaGrammar to DFA](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) - - [x] [CST to AST](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile2/compile.md) - - [x] [AST to python byte code](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile3/compile.md) + - [x] [Compile Phase](Interpreter/compile/compile.md) + - [x] [Grammar/MetaGrammar to DFA](Interpreter/compile/compile.md) + - [x] [CST to AST](Interpreter/compile2/compile.md) + - [x] [AST to python byte code](Interpreter/compile3/compile.md) # Learning material diff --git a/README_CN.md b/README_CN.md index 3866ae2..bc2cc1e 100644 --- a/README_CN.md +++ b/README_CN.md @@ -1,7 +1,7 @@ # Cpython Internals -* [English](https://github.com/zpoint/CPython-Internals/blob/master/README.md) -* [한국어](https://github.com/zpoint/CPython-Internals/blob/master/README_KR.md) +* [English](README.md) +* [한국어](README_KR.md) * 如果你需要接收更新通知, 点击右上角的 **Watch**, 当有文章更新时会在 issue 发布相关标题和链接 * 如果有任何链接无法打开请自行搭梯子O(∩_∩)O @@ -33,65 +33,65 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 # 基本对象 -- [x] [dict](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/dict_cn.md) -- [x] [long/int](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/long_cn.md) -- [x] [unicode/str](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/str/str_cn.md) -- [x] [set](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/set/set_cn.md) -- [x] [list(timsort)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/list_cn.md) -- [x] [tuple](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/tuple/tuple_cn.md) -- [x] [bytes](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/bytes/bytes_cn.md) -- [x] [bytearray(buffer protocol)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/bytearray/bytearray_cn.md) -- [x] [float](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/float/float_cn.md) -- [x] [func(user-defined method)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/func/func_cn.md) -- [x] [method(builtin method)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/method/method_cn.md) -- [x] [iter](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/iter/iter_cn.md) -- [x] [gen(generator/coroutine/async generator)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/gen/gen_cn.md) -- [x] [class(bound method/classmethod/staticmethod)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/class/class_cn.md) -- [x] [complex](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/complex/complex_cn.md) -- [x] [enum](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/enum/enum_cn.md) -- [x] [type(mro/metaclass/类/实例的创建过程)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/type/type_cn.md) +- [x] [dict](BasicObject/dict/dict_cn.md) +- [x] [long/int](BasicObject/long/long_cn.md) +- [x] [unicode/str](BasicObject/str/str_cn.md) +- [x] [set](BasicObject/set/set_cn.md) +- [x] [list(timsort)](BasicObject/list/list_cn.md) +- [x] [tuple](BasicObject/tuple/tuple_cn.md) +- [x] [bytes](BasicObject/bytes/bytes_cn.md) +- [x] [bytearray(buffer protocol)](BasicObject/bytearray/bytearray_cn.md) +- [x] [float](BasicObject/float/float_cn.md) +- [x] [func(user-defined method)](BasicObject/func/func_cn.md) +- [x] [method(builtin method)](BasicObject/method/method_cn.md) +- [x] [iter](BasicObject/iter/iter_cn.md) +- [x] [gen(generator/coroutine/async generator)](BasicObject/gen/gen_cn.md) +- [x] [class(bound method/classmethod/staticmethod)](BasicObject/class/class_cn.md) +- [x] [complex](BasicObject/complex/complex_cn.md) +- [x] [enum](BasicObject/enum/enum_cn.md) +- [x] [type(mro/metaclass/类/实例的创建过程)](BasicObject/type/type_cn.md) # 模块 - [ ] io - - [x] [fileio](https://github.com/zpoint/CPython-Internals/blob/master/Modules/io/fileio/fileio_cn.md) - - [x] [pickle](https://github.com/zpoint/CPython-Internals/blob/master/Modules/pickle/pickle_cn.md) + - [x] [fileio](Modules/io/fileio/fileio_cn.md) + - [x] [pickle](Modules/pickle/pickle_cn.md) # 库 - - [x] [re(正则)](https://github.com/zpoint/CPython-Internals/blob/master/Modules/re/re_cn.md) + - [x] [re(正则)](Modules/re/re_cn.md) - [ ] asyncio # 解释器相关 - - [x] [gil(全局解释器锁)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/gil_cn.md) - - [x] [gc(垃圾回收机制)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/gc_cn.md) - - [x] [memory management(内存管理机制)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/memory_management_cn.md) - - [x] [descr(访问(类/实例)属性时发生了什么/`__get__`/`__getattribute__`/`__getattr__`)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/descr/descr_cn.md) - - [x] [exception(异常处理机制)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/exception/exception_cn.md) - - [x] [module(import实现机制)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/module/module_cn.md) - - [x] [frame](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/frame_cn.md) - - [x] [code](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/code/code_cn.md) - - [x] [slots/`__slots__`(属性在类/实例创建时是如何初始化的)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/slot/slot_cn.md) - - [x] [thread(线程)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/thread_cn.md) - - [x] [PyObject(基础篇/概述)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/pyobject/pyobject_cn.md) + - [x] [gil(全局解释器锁)](Interpreter/gil/gil_cn.md) + - [x] [gc(垃圾回收机制)](Interpreter/gc/gc_cn.md) + - [x] [memory management(内存管理机制)](Interpreter/memory_management/memory_management_cn.md) + - [x] [descr(访问(类/实例)属性时发生了什么/`__get__`/`__getattribute__`/`__getattr__`)](Interpreter/descr/descr_cn.md) + - [x] [exception(异常处理机制)](Interpreter/exception/exception_cn.md) + - [x] [module(import实现机制)](Interpreter/module/module_cn.md) + - [x] [frame](Interpreter/frame/frame_cn.md) + - [x] [code](Interpreter/code/code_cn.md) + - [x] [slots/`__slots__`(属性在类/实例创建时是如何初始化的)](Interpreter/slot/slot_cn.md) + - [x] [thread(线程)](Interpreter/thread/thread_cn.md) + - [x] [PyObject(基础篇/概述)](Interpreter/pyobject/pyobject_cn.md) # 扩展 - - [x] [C API(python 性能分析和 C 扩展)](https://github.com/zpoint/CPython-Internals/blob/master/Extension/C/c_cn.md) + - [x] [C API(python 性能分析和 C 扩展)](Extension/C/c_cn.md) - [ ] Cython(C extension) - [x] [Boost C++ libaries (C\+\+ extension)](https://github.com/zpoint/Boost-Python-Examples) - - [x] [C++ 扩展](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/cpp_cn.md) + - [x] [C++ 扩展](Extension/CPP/cpp_cn.md) - [x] 写 NumPy 扩展 - [x] 绕过 GIL # 语法 -[编译阶段](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) +[编译阶段](Interpreter/compile/compile.md) -* [x] [从语法/元语法到DFA](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile_cn.md) -* [x] [从 CST 到 AST](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile2/compile_cn.md) -* [x] [从 AST 到 字节码](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile3/compile_cn.md) +* [x] [从语法/元语法到DFA](Interpreter/compile/compile_cn.md) +* [x] [从 CST 到 AST](Interpreter/compile2/compile_cn.md) +* [x] [从 AST 到 字节码](Interpreter/compile3/compile_cn.md) # 学习资料 @@ -118,7 +118,7 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 * 更正语法性错误 * 翻译 * 其他情况, 不限于上述 -* 提交一个 issue +* 提交一个 issue * 任何建议 * 任何问题 * 更正错误 diff --git a/README_KR.md b/README_KR.md index 32e5da5..830ee5f 100644 --- a/README_KR.md +++ b/README_KR.md @@ -2,8 +2,8 @@ ![cpython logo](https://docs.google.com/drawings/d/e/2PACX-1vQKKPvv9xI22zZcRtElIMx_-G22qYcLUvl-gbngubjf76dr80ZjsYQZCCKVqEvJnmBnwZyDXqG9GPlu/pub?w=300&h=200) -* [English](https://github.com/zpoint/CPython-Internals/blob/master/README.md) -* [简体中文](https://github.com/zpoint/CPython-Internals/blob/master/README_CN.md) +* [English](README.md) +* [简体中文](README_CN.md) * 업데이트가 있을 때 알림을 받으려면, **Watch** 하세요. 이 저장소는 [cpython](https://github.com/python/cpython) 소스코드에 대한 나의 노트/블로그 입니다. @@ -33,65 +33,65 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 # 객체들(Objects) - - [x] [dict](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/dict.md) - - [x] [long/int](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/long.md) - - [x] [unicode/str](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/str/str.md) - - [x] [set](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/set/set.md) - - [x] [list(timsort)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/list.md) - - [x] [tuple](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/tuple/tuple.md) - - [x] [bytes](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/bytes/bytes.md) - - [x] [bytearray(buffer protocol)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/bytearray/bytearray.md) - - [x] [float](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/float/float.md) - - [x] [func(user-defined method)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/func/func.md) - - [x] [method(builtin method)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/method/method.md) - - [x] [iter](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/iter/iter.md) - - [x] [gen(generator/coroutine/async generator)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/gen/gen.md) - - [x] [class(bound method/classmethod/staticmethod)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/class/class.md) - - [x] [complex](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/complex/complex.md) - - [x] [enum](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/enum/enum.md) - - [x] [type(mro/metaclass/creation of class/instance)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/type/type.md) + - [x] [dict](BasicObject/dict/dict.md) + - [x] [long/int](BasicObject/long/long.md) + - [x] [unicode/str](BasicObject/str/str.md) + - [x] [set](BasicObject/set/set.md) + - [x] [list(timsort)](BasicObject/list/list.md) + - [x] [tuple](BasicObject/tuple/tuple.md) + - [x] [bytes](BasicObject/bytes/bytes.md) + - [x] [bytearray(buffer protocol)](BasicObject/bytearray/bytearray.md) + - [x] [float](BasicObject/float/float.md) + - [x] [func(user-defined method)](BasicObject/func/func.md) + - [x] [method(builtin method)](BasicObject/method/method.md) + - [x] [iter](BasicObject/iter/iter.md) + - [x] [gen(generator/coroutine/async generator)](BasicObject/gen/gen.md) + - [x] [class(bound method/classmethod/staticmethod)](BasicObject/class/class.md) + - [x] [complex](BasicObject/complex/complex.md) + - [x] [enum](BasicObject/enum/enum.md) + - [x] [type(mro/metaclass/creation of class/instance)](BasicObject/type/type.md) # 모듈들(Modules) - [ ] io - - [x] [fileio](https://github.com/zpoint/CPython-Internals/blob/master/Modules/io/fileio/fileio.md) - - [ ] [pickle](https://github.com/zpoint/CPython-Internals/blob/master/Modules/pickle/pickle.md) + - [x] [fileio](Modules/io/fileio/fileio.md) + - [ ] [pickle](Modules/pickle/pickle.md) # 라이브러리(Lib) - - [x] [re(regex)](https://github.com/zpoint/CPython-Internals/blob/master/Modules/re/re.md) + - [x] [re(regex)](Modules/re/re.md) - [ ] asyncio # 인터프리터(Interpreter) - - [x] [gil(Global Interpreter Lock)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/gil.md) - - [x] [gc(Garbage Collection)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/gc.md) - - [x] [memory management](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/memory_management.md) - - [x] [descr(how does attribute access work/`__get__`/`__getattribute__`/`__getattr__`)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/descr/descr.md) - - [x] [exception(exception handling)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/exception/exception.md) - - [x] [module(how does import work)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/module/module.md) - - [x] [frame](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/frame.md) - - [x] [code](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/code/code.md) - - [x] [slots/`__slots__`(how does attribute initialized in the creation of class/instance)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/slot/slot.md) - - [x] [thread](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/thread.md) - - [x] [PyObject(overview)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/pyobject/pyobject.md) + - [x] [gil(Global Interpreter Lock)](Interpreter/gil/gil.md) + - [x] [gc(Garbage Collection)](Interpreter/gc/gc.md) + - [x] [memory management](Interpreter/memory_management/memory_management.md) + - [x] [descr(how does attribute access work/`__get__`/`__getattribute__`/`__getattr__`)](Interpreter/descr/descr.md) + - [x] [exception(exception handling)](Interpreter/exception/exception.md) + - [x] [module(how does import work)](Interpreter/module/module.md) + - [x] [frame](Interpreter/frame/frame.md) + - [x] [code](Interpreter/code/code.md) + - [x] [slots/`__slots__`(how does attribute initialized in the creation of class/instance)](Interpreter/slot/slot.md) + - [x] [thread](Interpreter/thread/thread.md) + - [x] [PyObject(overview)](Interpreter/pyobject/pyobject.md) # 확장(Extension) - - [x] [C API(profile python code and write pure C extension)](https://github.com/zpoint/CPython-Internals/blob/master/Extension/C/c.md) + - [x] [C API(profile python code and write pure C extension)](Extension/C/c.md) - [ ] Cython(C extension) - [x] [Boost C++ libaries (C\+\+ extension)](https://github.com/zpoint/Boost-Python-Examples) - - [ ] [C++ extension](https://github.com/zpoint/CPython-Internals/blob/master/Extension/CPP/cpp.md) + - [ ] [C++ extension](Extension/CPP/cpp.md) - [x] integrate with NumPy - [x] bypass the GIL # 문법(Grammar) -- [x] [Compile Phase](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) - - [x] [Grammar/MetaGrammar to DFA](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) - - [x] [CST to AST](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile2/compile.md) - - [x] [AST to python byte code](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile3/compile.md) +- [x] [Compile Phase](Interpreter/compile/compile.md) + - [x] [Grammar/MetaGrammar to DFA](Interpreter/compile/compile.md) + - [x] [CST to AST](Interpreter/compile2/compile.md) + - [x] [AST to python byte code](Interpreter/compile3/compile.md) # 공부할 자료(Learning material) From 1c8da8473880c324554bd5db3f86466724944529 Mon Sep 17 00:00:00 2001 From: ZePing Guo Date: Mon, 2 Feb 2026 17:03:26 -0800 Subject: [PATCH 90/90] Improve English grammar and readability across documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fix grammar issues throughout the repository's markdown files: - Correct spelling errors (e.g., defination → definition, intepreter → interpreter) - Fix capitalization at sentence starts - Correct article usage and verb agreement - Fix run-on sentences with proper punctuation - Standardize technical terms (e.g., posix → POSIX, python → Python) - Fix possessive vs contraction errors (it's → its) Addresses issue #59 Co-Authored-By: Claude Opus 4.5 --- BasicObject/bytearray/bytearray.md | 20 +- BasicObject/bytes/bytes.md | 10 +- BasicObject/class/class.md | 34 +-- BasicObject/complex/complex.md | 10 +- BasicObject/dict/dict.md | 68 +++--- BasicObject/enum/enum.md | 36 ++-- BasicObject/float/float.md | 12 +- BasicObject/func/func.md | 29 ++- BasicObject/gen/gen.md | 62 +++--- BasicObject/iter/iter.md | 26 +-- BasicObject/list/list.md | 62 +++--- BasicObject/long/long.md | 58 ++--- BasicObject/method/method.md | 28 +-- BasicObject/set/set.md | 30 +-- BasicObject/str/str.md | 42 ++-- BasicObject/tuple/tuple.md | 14 +- BasicObject/type/type.md | 42 ++-- Extension/C/c.md | 26 +-- Extension/CPP/cpp.md | 12 +- Interpreter/code/code.md | 28 +-- Interpreter/compile/compile.md | 18 +- Interpreter/descr/descr.md | 50 ++--- Interpreter/exception/exception.md | 28 +-- Interpreter/frame/frame.md | 72 +++---- Interpreter/gc/gc.md | 144 ++++++------- Interpreter/gil/gil.md | 24 +-- .../memory_management/memory_management.md | 202 +++++++++--------- Interpreter/module/module.md | 44 ++-- Interpreter/pyobject/pyobject.md | 28 +-- Interpreter/slot/slot.md | 42 ++-- Interpreter/thread/thread.md | 40 ++-- Modules/io/fileio/fileio.md | 4 +- Modules/pickle/pickle.md | 20 +- Modules/re/re.md | 60 +++--- README.md | 12 +- 35 files changed, 715 insertions(+), 722 deletions(-) diff --git a/BasicObject/bytearray/bytearray.md b/BasicObject/bytearray/bytearray.md index fcdbe56..4dae9b2 100644 --- a/BasicObject/bytearray/bytearray.md +++ b/BasicObject/bytearray/bytearray.md @@ -46,7 +46,7 @@ The **ob_alloc** field represents the real allocated size in bytes ## append -after append a charracter 'a', **ob_alloc** becomes 2, **ob_bytes** and **ob_start** all points to same address +After appending a character 'a', **ob_alloc** becomes 2, and **ob_bytes** and **ob_start** both point to the same address ```python3 a.append(ord('a')) @@ -57,7 +57,7 @@ a.append(ord('a')) ## resize -The size grow pattern is shown in the code +The size growth pattern is shown in the code ```python3 /* Need growing, decide on a strategy */ @@ -72,7 +72,7 @@ The size grow pattern is shown in the code ``` -In appending, ob_alloc is 2, and request size is 2, 2 <= 2 * 1.125, so the new allocated size is 2 + (2 >> 3) + 3 ==> 5 +When appending, ob_alloc is 2 and the requested size is 2. Since 2 <= 2 * 1.125, the new allocated size is 2 + (2 >> 3) + 3 ==> 5 ```python3 a.append(ord('b')) @@ -99,7 +99,7 @@ b[0:5] = [1,2] ![after_slice](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/bytearray/after_slice.png) -as long as the slice operation is going to shrink the bytearray, and the **new_size < allocate / 2** is False, the resize operation won't shrink the real malloced size +As long as the slice operation is going to shrink the bytearray and **new_size < allocate / 2** is False, the resize operation won't shrink the actual malloced size ```python3 b[2:6] = [3, 4] @@ -108,7 +108,7 @@ b[2:6] = [3, 4] ![after2_slice](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/bytearray/after2_slice.png) -now, in the shrink operation, the **new_size < allocate / 2** is True, the resize operation will be triggered +Now, in the shrink operation, **new_size < allocate / 2** is True, so the resize operation will be triggered ```python3 b[0:3] = [7,8] @@ -119,7 +119,7 @@ b[0:3] = [7,8] The growing pattern in slice operation is the same as the append operation -request size is 6, 6 < 6 * 1.125, so new allocated size is 6 + (6 >> 3) + 3 ==> 9 +The requested size is 6. Since 6 < 6 * 1.125, the new allocated size is 6 + (6 >> 3) + 3 ==> 9 ```python3 b[0:3] = [1,2,3,4] @@ -130,7 +130,7 @@ b[0:3] = [1,2,3,4] ## ob_exports -what's field **ob_exports** mean ? If you need detail, you can refer to [less-copies-in-python-with-the-buffer-protocol-and-memoryviews](https://eli.thegreenplace.net/2011/11/28/less-copies-in-python-with-the-buffer-protocol-and-memoryviews) and [PEP 3118](https://www.python.org/dev/peps/pep-3118/) +What does the field **ob_exports** mean? If you need details, you can refer to [less-copies-in-python-with-the-buffer-protocol-and-memoryviews](https://eli.thegreenplace.net/2011/11/28/less-copies-in-python-with-the-buffer-protocol-and-memoryviews) and [PEP 3118](https://www.python.org/dev/peps/pep-3118/) ```python3 buf = bytearray(b"abcdefg") @@ -139,9 +139,9 @@ buf = bytearray(b"abcdefg") ![exports](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/bytearray/exports.png) -the **bytearray** implements the **buffer protocol**, and **memoryview** is able to access the internal data block via the **buffer protocol**, **mybuf** and **buf** are all sharing the same internal block +The **bytearray** implements the **buffer protocol**, and **memoryview** is able to access the internal data block via the **buffer protocol**. **mybuf** and **buf** both share the same internal block. -field **ob_exports** becomes 1, which indicate how many objects currently sharing the internal block via **buffer protocol** +The field **ob_exports** becomes 1, which indicates how many objects are currently sharing the internal block via the **buffer protocol** ```python3 mybuf = memoryview(buf) @@ -151,7 +151,7 @@ mybuf[1] = 3 ![exports_1](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/bytearray/exports_1.png) -so does **mybuf2** object(**ob_exports** doesn't change because you need to call the c function defined by **buf** object via the **buffer protocol**, **mybuf2** barely calls the slice function of **mybuf**) +The same applies to the **mybuf2** object (**ob_exports** doesn't change because you need to call the C function defined by the **buf** object via the **buffer protocol**; **mybuf2** only calls the slice function of **mybuf**) ```python3 mybuf2 = mybuf[:4] diff --git a/BasicObject/bytes/bytes.md b/BasicObject/bytes/bytes.md index 2252792..5170087 100644 --- a/BasicObject/bytes/bytes.md +++ b/BasicObject/bytes/bytes.md @@ -39,7 +39,7 @@ s = b"" ## ascii characters -let's initialize a byte object with ascii characters +Let's initialize a bytes object with ASCII characters ```python3 s = b"abcdefg123" @@ -65,17 +65,17 @@ s = "我是帅哥".encode("utf8") The field **ob_shash** should store the hash value of the byte object, value **-1** means not computed yet. -The first time the hash value computed, it will be cached in the **ob_shash** field +The first time the hash value is computed, it will be cached in the **ob_shash** field. -the cached hash value can save recalculation and speeds up dictionary lookups +The cached hash value can save recalculation and speed up dictionary lookups ## ob_size -field **ob_size** is inside every **PyVarObject**, the **PyBytesObject** uses this **field** to store size information to keep O(1) time complexity for **len()** operation and tracks the size of non-ascii string(may be null characters inside) +The field **ob_size** is inside every **PyVarObject**. **PyBytesObject** uses this field to store size information to keep O(1) time complexity for the **len()** operation and to track the size of non-ASCII strings (which may contain null characters inside) ## summary -The **PyBytesObject** is a python wrapper of c style null terminate string, with **ob_shash** for caching hash value and **ob_size** for storing the size information of **PyBytesObject** +The **PyBytesObject** is a Python wrapper of C-style null-terminated strings, with **ob_shash** for caching the hash value and **ob_size** for storing size information The implementation of **PyBytesObject** looks like the **embstr** encoding in redis diff --git a/BasicObject/class/class.md b/BasicObject/class/class.md index 59cc275..26cc4d0 100644 --- a/BasicObject/class/class.md +++ b/BasicObject/class/class.md @@ -18,7 +18,7 @@ # memory layout -the **PyMethodObject** represents the type **method** in c-level +**PyMethodObject** represents the type **method** at the C level ```python3 class C(object): @@ -35,7 +35,7 @@ class C(object): # fields -the layout of **c.f1** +The layout of **c.f1** ![example0](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/class/example0.png) @@ -51,7 +51,7 @@ as you can see from the layout, field **im_func** stores the [function](https:// ## im_self -field **im_self** stores the instance object this method bound to +The field **im_self** stores the instance object this method is bound to ```python3 >>> c @@ -67,7 +67,7 @@ when you call ``` -the **PyMethodObject** delegate the real call to **im_func** with **im_self** as the first argument +**PyMethodObject** delegates the real call to **im_func** with **im_self** as the first argument ```c static PyObject * @@ -99,11 +99,11 @@ static int numfree = 0; ``` -free_list is a single linked list, it's used for **PyMethodObject** to safe malloc/free overhead +free_list is a singly linked list. It's used for **PyMethodObject** to save malloc/free overhead. -**im_self** field is used to chain the element +The **im_self** field is used to chain the elements. -the **PyMethodObject** will be created when you trying to access the bound-method, not when the instance is created +The **PyMethodObject** will be created when you try to access the bound-method, not when the instance is created ```python3 >>> c1 = C() @@ -121,7 +121,7 @@ the **PyMethodObject** will be created when you trying to access the bound-metho ``` -now, let's see an example of free_list +Now let's see an example of free_list ```python3 >>> c1_f1_1 = c1.f1 @@ -156,7 +156,7 @@ assume the free_list is empty now # classmethod and staticmethod -let's define an object with **classmethod** and **staticmethod** +Let's define an object with **classmethod** and **staticmethod** ```python3 class C(object): @@ -193,7 +193,7 @@ the **@classmethod** keeps type of **c1.fc** as **method** ![classmethod](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/class/classmethod.png) -how **classmethod** work internally? +How does **classmethod** work internally? **classmethod** is a **type** in python3 @@ -208,7 +208,7 @@ typedef struct { ![classmethod1](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/class/classmethod1.png) -let's see what's under the hood +Let's see what's under the hood ```python3 fc = classmethod(lambda self : self) @@ -228,9 +228,9 @@ class C(object): ``` -get a different result when access the same object in a different way, why? +We get a different result when accessing the same object in a different way. Why? -when you trying to access the **fc1** in instance cc, the **descriptor protocol** will try several different paths to get the attribute in the following step +When you try to access **fc1** in instance cc, the **descriptor protocol** will try several different paths to get the attribute in the following steps * call `__getattribute__` of the object C * `C.__dict__["fc1"]` is a data descriptor? * yes, return `C.__dict__['fc1'].__get__(instance, Class)` @@ -246,7 +246,7 @@ for more detail, please refer to this blog [object-attribute-lookup](https://blo because **classmethod** implements `__get__` and `__set__`, it's a data descriptor, when you try to access attribute **cc.fc1**, you will actually call `fc1.__get__`, and caller will get whatever it returns -we can see the `__get__` function of classmethod object(defined as `cm_descr_get` in C) +We can see the `__get__` function of the classmethod object (defined as `cm_descr_get` in C) ```c static PyObject * @@ -268,7 +268,7 @@ cm_descr_get(PyObject *self, PyObject *obj, PyObject *type) ![classmethod_get](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/class/classmethod_get.png) -when you access fc1 by **cc.fc1**, the **descriptor protocol** will call the function above, which returns whatever in the **cm_callable**, wrapped by **PyMethod_New()** function, which makes the return object a new bounded-PyMethodObject +When you access fc1 via **cc.fc1**, the **descriptor protocol** will call the function above, which returns whatever is in **cm_callable**, wrapped by the **PyMethod_New()** function, which makes the returned object a new bound PyMethodObject ## staticmethod @@ -291,7 +291,7 @@ typedef struct { ``` -this is the layout of **staticmethod** object +This is the layout of the **staticmethod** object ![staticmethod1](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/class/staticmethod1.png) @@ -315,7 +315,7 @@ class C(object): ![staticmethod2](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/class/staticmethod2.png) -we can see the `__get__` function of staticmethod object +We can see the `__get__` function of the staticmethod object ```c static PyObject * diff --git a/BasicObject/complex/complex.md b/BasicObject/complex/complex.md index 79f1192..7f1ca0d 100644 --- a/BasicObject/complex/complex.md +++ b/BasicObject/complex/complex.md @@ -13,9 +13,9 @@ # memory layout -the **PyComplexObject** stores two double precision floating point number inside +**PyComplexObject** stores two double-precision floating-point numbers inside. -the handling process and representation are mostly the same as [float](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/float/float.md) object +The handling process and representation are mostly the same as the [float](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/float/float.md) object ![layout](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/complex/layout.png) @@ -35,7 +35,7 @@ d = complex(0.1, -0.2) ![example1](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/complex/example1.png) -let's read the add function +Let's read the add function ```c Py_complex @@ -62,9 +62,9 @@ complex_add(PyObject *v, PyObject *w) ``` -the add operation is quite simple, sum the **real**, sum the **image** part and return the new value +The add operation is quite simple: sum the **real** parts, sum the **imag** parts, and return the new value. -the sub/divide/pow/neg operations are similar +The sub/divide/pow/neg operations are similar ```python3 >>> e = c + d diff --git a/BasicObject/dict/dict.md b/BasicObject/dict/dict.md index 683f0c4..2ba2273 100644 --- a/BasicObject/dict/dict.md +++ b/BasicObject/dict/dict.md @@ -27,32 +27,32 @@ # Evolvement and Implementation -Before we dive into the memory layout of python dictionary, let's imagine what a normal dictionary object looks like -usually, we implement a dictionary as a hash table, it takes **O(1)** time to lookup an element, that's how exactly CPython does -this is an entry, which points to a hash table inside the python dictionary object before python3.6 +Before we dive into the memory layout of a Python dictionary, let's imagine what a normal dictionary object looks like. +Usually, we implement a dictionary as a hash table. It takes **O(1)** time to look up an element, and that's exactly how CPython does it. +This is an entry, which points to a hash table inside the Python dictionary object before Python 3.6 ![before_py36](./before_py36.png) -If you have many large sparse hash tables, it will waste lots of memory. In order to represent the hash table more compactly, you can split indices and real key-value object inside the hashtable(After python3.6) +If you have many large sparse hash tables, it will waste lots of memory. To represent the hash table more compactly, you can split indices and real key-value objects inside the hash table (after Python 3.6) ![after_py36](./after_py36.png) -`Indices` points to an array of the index, `entries` points to where the original content stores +`Indices` points to an array of indices, `entries` points to where the original content is stored -You can think of `indices` as a simpler version hash table, and `entries` as an array, which stores each origin hash value, key, and value as an element +You can think of `indices` as a simpler version of a hash table, and `entries` as an array that stores each original hash value, key, and value as an element -Whenever you search for an element or insert a new element, according to the value of hash result mod the size of `indices`, you can get an index in the `indices` array, and get the result you want from the `entries` according to the newly get index, For example, the result of `hash("key2") % 8` is `3`, and the value in `indices[3]` is `1`, so we can go to `entries` and find what we need in `entries[1]` +Whenever you search for an element or insert a new element, you take the hash result mod the size of `indices` to get an index in the `indices` array, then get the result you want from `entries` according to that index. For example, the result of `hash("key2") % 8` is `3`, and the value in `indices[3]` is `1`, so we can go to `entries` and find what we need in `entries[1]` ![after_py36_search](./after_py36_search.png) -We can benefit from more compact space from the above approach, For example, in a 64-word size operating system, every pointer takes 8 bytes, we need `8 * 3 * 8` which is `192` originally, while we only need `8 * 3 * 3 + 1 * 8` which is `80`, it saves about 58% of memory usage. +We can benefit from more compact space with the above approach. For example, in a 64-bit operating system, every pointer takes 8 bytes. We need `8 * 3 * 8` which is `192` originally, while we only need `8 * 3 * 3 + 1 * 8` which is `80`. This saves about 58% of memory usage. -Because `entries` store elements in the insertion order, we can traverse the hash table in the same order as we insert items. In the old version implementation, the hash table stores elements in the order of the hash key, it appears **unordered** when you traverse the hash table. That's why dict before python3.6 is **unordered** and after python3.6 is **ordered**. +Because `entries` stores elements in the insertion order, we can traverse the hash table in the same order as we insert items. In the old implementation, the hash table stored elements in the order of the hash key, so it appeared **unordered** when you traversed the hash table. That's why dict before Python 3.6 is **unordered** and after Python 3.6 is **ordered**. ![after_py36_space](./after_py36_space.png) -[PyPy](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html) implement the compact and ordered dict firstly, and CPython implement it in [pep 468](https://www.python.org/dev/peps/pep-0468/) and release after python3.6. +[PyPy](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html) implemented the compact and ordered dict first, and CPython implemented it in [PEP 468](https://www.python.org/dev/peps/pep-0468/) and released it in Python 3.6. # memory layout @@ -62,9 +62,9 @@ Now, let's see the memory layout. ## combined table and split table -I'm confused when I first look at the definition of the **PyDictObject**, what's **ma_values** ? why **PyDictKeysObject** looks different from the indices/entries structure above? +I was confused when I first looked at the definition of **PyDictObject**. What's **ma_values**? Why does **PyDictKeysObject** look different from the indices/entries structure above? -the source code says +The source code says ```python3 /* @@ -84,7 +84,7 @@ Or: ``` -In what situation, will different dict object shares same keys but different values, only contain Unicode keys and no dummy keys(no deleted object) and preserve same insertion order? Let's try. +In what situation will different dict objects share the same keys but different values, only contain Unicode keys and no dummy keys (no deleted objects), and preserve the same insertion order? Let's try. ```c # I've altered the source code to print some state information @@ -101,7 +101,7 @@ b2 = B() >>> b2.b 1 -# __dict__ obect appears, b1.__dict__ and b2.__dict__ are all split table, they shares the same PyDictKeysObject +# __dict__ object appears, b1.__dict__ and b2.__dict__ are both split tables, they share the same PyDictKeysObject >>> b1.b = 3 in lookdict_split, address of PyDictObject: 0x10bc0eb40, address of PyDictKeysObject: 0x10bd8cca8, key_str: b >>> b2.b = 4 @@ -129,8 +129,8 @@ The splittable implementation can save lots of memory if you have many instances ## indices and entries -Let's analyze some source code to understand how indices/entries implement in **PyDictKeysObject**, what **char dk_indices[]** means in **PyDictKeysObject**? -(It took me sometimes to figure out) +Let's analyze some source code to understand how indices/entries are implemented in **PyDictKeysObject**. What does **char dk_indices[]** mean in **PyDictKeysObject**? +(It took me some time to figure out) ```c /* @@ -169,7 +169,7 @@ dk_size == 256. ``` -Let's rewrite the marco +Let's rewrite the macro ```c #define DK_ENTRIES(dk) \ @@ -194,7 +194,7 @@ now, the overview is clear # hash collisions and delete -How CPython handle hash collisions in dict object? Instead of depending on a good hash function, python uses the "perturb" strategy, let's read some source code and have a try. +How does CPython handle hash collisions in dict objects? Instead of depending on a good hash function, Python uses the "perturb" strategy. Let's read some source code and try it out. ```python3 @@ -263,7 +263,7 @@ d[0] = "value3" If we insert an element with hash key result 16, `hash (16) & mask == 0`, but `0` is already taken, we encounter hash collision -There's a various different way to handle hash collision, `Redis` use open hashing(linked list) to solve the problem, CPython `set` object implements a close hashing(linear probing algorithm), while `set` implements a more sporadic algorithm(go to read the source code if you're interested with it). +There are various ways to handle hash collisions. `Redis` uses open hashing (linked list) to solve the problem. CPython `dict` object implements closed hashing with a more sporadic algorithm (read the source code if you're interested). ![dict_prob](./dict_prob.png) @@ -290,7 +290,7 @@ d[16] = "value16" # now, dk_usable is 0, dk_nentries is 5 # let's insert one more item d[5] = 5 -# step1: resize, when resizing, the deleted object which mark as DKIX_DUMMY in entries won't be copied +# step1: resize, when resizing, the deleted objects marked as DKIX_DUMMY in entries won't be copied ``` @@ -302,7 +302,7 @@ d[5] = 5 # variable size indices -Notice, the indices array is variable size. when the size of your hash table is <= 128, the type of each item is int_8, int16, int32, and int64 for a bigger table. The variable size of the indices array can save memory usage. +Notice that the indices array has variable size. When the size of your hash table is <= 128, the type of each item is int8. For larger tables, it uses int16, int32, or int64. The variable size of the indices array can save memory. ![indices](./indices.png) @@ -315,13 +315,13 @@ Notice, the indices array is variable size. when the size of your hash table is static PyDictObject *free_list[PyDict_MAXFREELIST]; ``` -CPython also uses free_list to reuse the deleted hash table, to avoid memory fragment and improve performance. +CPython also uses free_list to reuse deleted hash tables, to avoid memory fragmentation and improve performance. - There exists per process global variable named **free_list**. +There exists a per-process global variable named **free_list**. ![free_list0](./free_list0.png) -if we create a new `dict` object, the memory request is delegate to CPython's [memory management system](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/memory_management.md) +If we create a new `dict` object, the memory request is delegated to CPython's [memory management system](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/memory_management.md) ```python3 d = dict() @@ -333,11 +333,11 @@ d = dict() del a ``` -the destructor of the `dict` type will stores the current `dict` to **free_list** (if **free_list** is not full) +The destructor of the `dict` type will store the current `dict` in **free_list** (if **free_list** is not full) ![free_list2](./free_list2.png) -next time you create a new `dict` object, **free_list** will be checked if there is available objects you can use directly, if so, allocate from **free_list**, if not, allocate from CPython's [memory management system](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/memory_management.md) +Next time you create a new `dict` object, **free_list** will be checked for available objects you can use directly. If available, allocate from **free_list**; if not, allocate from CPython's [memory management system](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/memory_management.md) ```python3 d = dict() @@ -349,13 +349,13 @@ d = dict() # delete -the [lazy deletion](https://en.wikipedia.org/wiki/Lazy_deletion) strategy is used for deletion in dict object +The [lazy deletion](https://en.wikipedia.org/wiki/Lazy_deletion) strategy is used for deletion in dict objects ## why mark as DKIX_DUMMY Why mark as **DKIX_DUMMY** in the indices? -There're three kinds of value for each slot in indices, **DKIX_EMPTY**(-1), **DKIX_DUMMY**(-2) and **Active/Pending**(>=0), if you mark as **DKIX_EMPTY** instead of **DKIX_DUMMY**, the "perturb" strategy for inserting and finding key/values will fail. Imagine you have a hash table in size 8, this is the indices in hash table. +There are three kinds of values for each slot in indices: **DKIX_EMPTY**(-1), **DKIX_DUMMY**(-2), and **Active/Pending**(>=0). If you mark a slot as **DKIX_EMPTY** instead of **DKIX_DUMMY**, the "perturb" strategy for inserting and finding key/values will fail. Imagine you have a hash table of size 8; these are the indices in the hash table. ```python3 indices: [0] [1] [DKIX_EMPTY] [2] [DKIX_EMPTY] [DKIX_EMPTY] [3] [4] @@ -385,7 +385,7 @@ the searching process now becomes ``` -the item being searched is in indices[7], but "perturb" strategy stopped before indices[7] due to the wrong **DKIX_EMPTY** in indices[6], if we mark deleted as **DKIX_DUMMY** +The item being searched is in indices[7], but the "perturb" strategy stopped before indices[7] due to the wrong **DKIX_EMPTY** in indices[6]. If we mark deleted as **DKIX_DUMMY** ```python3 indices: [0] [1] [DKIX_EMPTY] [2] [DKIX_EMPTY] [DKIX_EMPTY] [DKIX_DUMMY] [4] @@ -400,19 +400,19 @@ the searching process becomes ``` -also, the indices with **DKIX_DUMMY** can be inserted for new item +Also, indices with **DKIX_DUMMY** can be used for new items ## delete in entries -dict object need to guarantee the [inserted order](https://mail.python.org/pipermail/python-dev/2017-December/151283.html), the delete operation can't shuffle objects in **entries** +Dict objects need to guarantee [insertion order](https://mail.python.org/pipermail/python-dev/2017-December/151283.html), so the delete operation can't shuffle objects in **entries** -leave the entries[i] to empty, and packing these empty entries later in the resize operation can keep the time complexity of delete operation in amortized O(1) +Leaving entries[i] empty and packing these empty entries later in the resize operation keeps the time complexity of delete operations at amortized O(1) -deleting entries from dictionaries is not very common, in some case a little bit slower is acceptable([PyPy Status Blog](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html)) +Deleting entries from dictionaries is not very common, so being a little bit slower in some cases is acceptable ([PyPy Status Blog](https://morepypy.blogspot.com/2015/01/faster-more-memory-efficient-and-more.html)) # end -now, you understand how python dictionary object works internally. +Now you understand how Python dictionary objects work internally. # read more diff --git a/BasicObject/enum/enum.md b/BasicObject/enum/enum.md index c7ebf74..f7213e2 100644 --- a/BasicObject/enum/enum.md +++ b/BasicObject/enum/enum.md @@ -15,7 +15,7 @@ # memory layout -**enumerate** is a **type**, the instance of **enumerate** object is an iterable object, you can iter through the real delegated object and counting index at the same time +**enumerate** is a **type**. The instance of an **enumerate** object is an iterable object; you can iterate through the real delegated object while counting the index at the same time ![layout](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/enum/layout.png) @@ -36,9 +36,9 @@ e = enumerate(gen()) ``` -before iter through the object **e**, the **en_index** field is 0, **en_sit** stores the actual generator object being iterated, **en_result** points a tuple object with two empty value +Before iterating through the object **e**, the **en_index** field is 0, **en_sit** stores the actual generator object being iterated, and **en_result** points to a tuple object with two empty values. -we will see the meaning of **en_longindex** later +We will see the meaning of **en_longindex** later ![example0](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/enum/example0.png) @@ -51,9 +51,9 @@ we will see the meaning of **en_longindex** later ``` -now, the **en_index** becomes 1, the tuple in **en_result** is the last tuple object returned, the elements in the tuple are changed, but the address in **en_result** doesn't change, not because of the [free-list mechanism in tuple](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/tuple/tuple.md#free-list) +Now the **en_index** becomes 1. The tuple in **en_result** is the last tuple object returned. The elements in the tuple are changed, but the address in **en_result** doesn't change, and this is not because of the [free-list mechanism in tuple](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/tuple/tuple.md#free-list). -it's a trick in the **enumerate** iterating function +It's a trick in the **enumerate** iterating function ```c static PyObject * @@ -94,15 +94,15 @@ enum_next(enumobject *en) ``` -it's clear, because only the current enumerate object keep a reference to the old `tuple object -> (None, None)` object +It's clear: because only the current enumerate object keeps a reference to the old `tuple object -> (None, None)` object. -**enum_next** reset the 0th element in the tuple to 0, and 1th element in the tuple to 'I', so the address **en_result** points to is the same +**enum_next** resets the 0th element in the tuple to 0 and the 1st element in the tuple to 'I', so the address **en_result** points to is the same ![example1](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/enum/example1.png) -because the reference count of the tuple object `(0, 'I') # id(4469348888)` now becomes 2, one from the enumerate object and one from variable t1, the **enum_next** function will create and return a new tuple instead of resetting the one stored in **en_result** +Because the reference count of the tuple object `(0, 'I') # id(4469348888)` now becomes 2 (one from the enumerate object and one from variable t1), the **enum_next** function will create and return a new tuple instead of resetting the one stored in **en_result**. -the **en_index** incremented, and **en_result** points to the old tuple object`(0, 'I') # id(4469348888)` +The **en_index** is incremented, and **en_result** still points to the old tuple object `(0, 'I') # id(4469348888)` ```python3 >>> next(e) @@ -123,7 +123,7 @@ after `del t1`, the reference count of tuple object `(0, 'I') # id(4469348888)` ![example3](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/enum/example3.png) -the termination state is indicated by the object inside the **en_sit** field, nothing changed in the **enumerate** object +The termination state is indicated by the object inside the **en_sit** field; nothing changed in the **enumerate** object ```python3 >>> next(e) @@ -137,7 +137,7 @@ StopIteration ## en_longindex -usually, the **index** of enumerate object is stored in the **en_index** field, **en_index** is of type **Py_ssize_t** in c, and **Py_ssize_t** is defined as +Usually, the **index** of an enumerate object is stored in the **en_index** field. **en_index** is of type **Py_ssize_t** in C, and **Py_ssize_t** is defined as ```c #ifdef HAVE_SSIZE_T @@ -150,26 +150,26 @@ typedef Py_intptr_t Py_ssize_t; ``` -most time it's a **ssize_t**, which is type **int** in 32-bit os and **long int** in 64-bit os +Most of the time it's a **ssize_t**, which is type **int** in 32-bit OS and **long int** in 64-bit OS. -in my machine, it's type **long int** +On my machine, it's type **long int**. -what if the index is so big that a signed 64-bit can't hold? +What if the index is so big that a signed 64-bit integer can't hold it? ```python3 e = enumerate(gen(), 1 << 62) ``` -the **en_index** can hold the value +The **en_index** can hold the value ![longindex0](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/enum/longindex0.png) -the max value **en_index** can represent is ((1 << 63) - 1) (PY_SSIZE_T_MAX) +The max value **en_index** can represent is ((1 << 63) - 1) (PY_SSIZE_T_MAX). -now the actual index is larger than PY_SSIZE_T_MAX, so the **en_longindex** is used to represent the actual index +Now the actual index is larger than PY_SSIZE_T_MAX, so **en_longindex** is used to represent the actual index. -what **en_longindex** points to is a [PyLongObject(python type int)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/long.md), which can represent variable size integer +What **en_longindex** points to is a [PyLongObject (Python type int)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/long.md), which can represent variable-size integers ```python3 >>> e = enumerate(gen(), (1 << 63) + 100) diff --git a/BasicObject/float/float.md b/BasicObject/float/float.md index f736df3..56b9ba6 100644 --- a/BasicObject/float/float.md +++ b/BasicObject/float/float.md @@ -19,7 +19,7 @@ # memory layout -**PyFloatObject** is no more than a wrapper of c type **double**, which takes 8 bytes to represent a floating point number +**PyFloatObject** is simply a wrapper around the C type **double**, which takes 8 bytes to represent a floating-point number you can refer to [IEEE 754](https://en.wikipedia.org/wiki/IEEE_754-1985)/[IEEE-754标准与浮点数运算](https://blog.csdn.net/m0_37972557/article/details/84594879) for more detail @@ -29,7 +29,7 @@ you can refer to [IEEE 754](https://en.wikipedia.org/wiki/IEEE_754-1985)/[IEEE-7 ## 0 -the binary representation of 0.0 in **IEEE 754** format is 64 zero bits +The binary representation of 0.0 in **IEEE 754** format is 64 zero bits ```python3 f = 0.0 @@ -58,13 +58,13 @@ f = 0.1 ## 1.1 -the difference between 1.1 and 0.1 is the last few exponent bits +The difference between 1.1 and 0.1 is the last few exponent bits ![1.1](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/float/1.1.png) ## -0.1 -the difference between -0.1 and 0.1 is the first sign bit +The difference between -0.1 and 0.1 is the first sign bit ![-0.1](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/float/-0.1.png) @@ -79,11 +79,11 @@ static PyFloatObject *free_list = NULL; ``` -free_list is a single linked list, store at most PyFloat_MAXFREELIST **PyFloatObject** +free_list is a singly linked list that stores at most PyFloat_MAXFREELIST **PyFloatObject**s ![free_list](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/float/free_list.png) -The linked list is linked via the field **ob_type** +The linked list is linked via the **ob_type** field ```python3 >>> f = 0.0 diff --git a/BasicObject/func/func.md b/BasicObject/func/func.md index 6556db6..6afde09 100644 --- a/BasicObject/func/func.md +++ b/BasicObject/func/func.md @@ -24,7 +24,7 @@ # memory layout -everything is an object in python, including function, a function is defined as **PyFunctionObject** in the c level +Everything is an object in Python, including functions. A function is defined as **PyFunctionObject** at the C level ```python3 def f(a, b=2): @@ -41,16 +41,15 @@ the type **function** indicates the user-defined method/classes, for **builtin_f # field -let's figure out the meaning of each field in the **PyFunctionObject** +Let's figure out the meaning of each field in **PyFunctionObject** ## func_code -**func_code** field stores an instance of **PyCodeObject**, which contains information of a code block +The **func_code** field stores an instance of **PyCodeObject**, which contains information about a code block. -A code block must contain python virtual machine's instruction, argument number, argument -body and etc +A code block contains the Python virtual machine's instructions, argument count, argument body, etc. -I will explain **PyCodeObject** in other article +I will explain **PyCodeObject** in another article ```python3 >>> f.__code__ @@ -60,7 +59,7 @@ I will explain **PyCodeObject** in other article ## func_globals -the global namespace attached to the function object +The global namespace attached to the function object ```python3 >>> type(f.__globals__) @@ -72,7 +71,7 @@ the global namespace attached to the function object ## func_defaults -a tuple stores all the default argument of the function object +A tuple that stores all the default arguments of the function object ```python3 >>> f.__defaults__ @@ -82,7 +81,7 @@ a tuple stores all the default argument of the function object ## func_kwdefaults -field **func_kwdefaults** is a python dictionary, which stores the [keyword-only argument](https://www.python.org/dev/peps/pep-3102/) with default value +The field **func_kwdefaults** is a Python dictionary that stores [keyword-only arguments](https://www.python.org/dev/peps/pep-3102/) with default values ```python3 def f2(a, b=4, *x, key=111): @@ -95,7 +94,7 @@ def f2(a, b=4, *x, key=111): ## func_closure -the **func_closure** field is a tuple, indicate all the enclosing level of the current function object +The **func_closure** field is a tuple that indicates all the enclosing levels of the current function object ```python3 def wrapper(func): @@ -164,7 +163,7 @@ call done ## func_doc -usually, it's an **unicode** object for explanation +Usually, it's a **unicode** object for documentation ```python3 def f(): @@ -179,7 +178,7 @@ print(f.__doc__) ## func_name -the name of the **PyFunctionObject** object +The name of the **PyFunctionObject** object ```python3 def i_have_a_very_long_long_long_name(): @@ -194,7 +193,7 @@ print(i_have_a_very_long_long_long_name.__name__) ## func_dict -**func_dict** field stores the attribute of the function object +The **func_dict** field stores the attributes of the function object ```python3 >>> f.__dict__ @@ -207,7 +206,7 @@ print(i_have_a_very_long_long_long_name.__name__) ## func_module -**func_module** field indicate the module which the **PyFunctionObject** attached to +The **func_module** field indicates the module to which the **PyFunctionObject** is attached ```python3 >>> f.__module__ @@ -233,7 +232,7 @@ def a(x: "I am a int" = 3, y: "I am a float" = 4) -> "return a list": ## func_qualname -it's used for nested class/function representation, it contains a dotted path leading to the object from the module top-level, refer [PEP 3155 -- Qualified name for classes and functions](https://www.python.org/dev/peps/pep-3155/) for more detail +It's used for nested class/function representation. It contains a dotted path leading to the object from the module top-level. Refer to [PEP 3155 -- Qualified name for classes and functions](https://www.python.org/dev/peps/pep-3155/) for more detail ```python3 def f(): diff --git a/BasicObject/gen/gen.md b/BasicObject/gen/gen.md index b57339c..d730603 100644 --- a/BasicObject/gen/gen.md +++ b/BasicObject/gen/gen.md @@ -22,7 +22,7 @@ ## memory layout generator -there's a common defination among **generator**, **coroutine** and **async generator** +There's a common definition among **generator**, **coroutine**, and **async generator** ```c #define _PyGenObject_HEAD(prefix) \ @@ -43,7 +43,7 @@ there's a common defination among **generator**, **coroutine** and **async gener ``` -the definition of **generator** object is less than 4 lines +The definition of the **generator** object is less than 4 lines ```c typedef struct { @@ -68,13 +68,13 @@ typedef struct { ``` -we can draw the layout according to the code now +We can draw the layout according to the code now ![layout_gen](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/gen/layout_gen.png) ## example generator -let's define and iter through a generator +Let's define and iterate through a generator ```python3 def fib(n): @@ -118,7 +118,7 @@ def fib(n): ``` -we initialize a new generator, the **f_lasti** in **gi_frame** act as the program counter in the python virtual machine, it indicates the next instruction offset from the code block inside the **gi_code** +We initialize a new generator. The **f_lasti** in **gi_frame** acts as the program counter in the Python virtual machine; it indicates the next instruction offset from the code block inside **gi_code** ```python3 >>> fib.__code__ @@ -128,11 +128,11 @@ we initialize a new generator, the **f_lasti** in **gi_frame** act as the progra ``` -the **gi_code** inside the f object is the **code** object that represents the function fib +The **gi_code** inside the f object is the **code** object that represents the function fib. -the **gi_running** is 0, indicating the generator is not executing right now +The **gi_running** is 0, indicating the generator is not executing right now. -**gi_name** and **gi_qualname** all points to same **unicode** object, all fields in **gi_exc_state** have value 0x00 +**gi_name** and **gi_qualname** both point to the same **unicode** object; all fields in **gi_exc_state** have value 0x00 ![example_gen_0](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/gen/example_gen_0.png) @@ -146,13 +146,13 @@ result None ``` -looking into the object f, nothing changed +Looking into the object f, nothing changed. -but the **f_lasti** in **gi_frame** now in the position 52(the first place keyword **yield** appears) +But the **f_lasti** in **gi_frame** is now at position 52 (the first place the keyword **yield** appears) ![example_gen_1](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/gen/example_gen_1.png) -step one more time, due to the while loop, the **f_lasti** still points to the same position +Step one more time. Due to the while loop, the **f_lasti** still points to the same position ```python3 >>> r = f.send("handsome") @@ -164,7 +164,7 @@ result 'handsome' ``` -send again, the **f_lasti** indicate the code offset in the position of second **yield** +Send again. The **f_lasti** indicates the code offset at the position of the second **yield** ```python3 >>> r = f.send("handsome2") @@ -200,9 +200,9 @@ result 'handsome5' ``` -now, the while loop terminated by the break statement +Now the while loop is terminated. -the **f_lasti** is in the position of the first **except** statement, the **exc_type** points to the type of the exception, **exc_value** points to the instance of the exception, and **exc_traceback** points to the traceback object +The **f_lasti** is at the position of the first **except** statement. **exc_type** points to the type of the exception, **exc_value** points to the instance of the exception, and **exc_traceback** points to the traceback object ```python3 >>> r = f.send("handsome6") @@ -215,7 +215,7 @@ the **f_lasti** is in the position of the first **except** statement, the **exc_ ![example_gen_2](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/gen/example_gen_2.png) -the **f_lasti** is in the position of the second **except** statement, **exc_type**, **exc_value**, and **exc_traceback** now relate to ModuleNotFoundError +The **f_lasti** is at the position of the second **except** statement. **exc_type**, **exc_value**, and **exc_traceback** now relate to ModuleNotFoundError ```python3 >>> r = f.send("handsome7") @@ -229,9 +229,9 @@ the **f_lasti** is in the position of the second **except** statement, **exc_typ ![example_gen_3](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/gen/example_gen_3.png) -the **f_lasti** is in the position of the first **finally** statement, the ModuleNotFoundError is handled properly, at the top of the exception stack is the **ZeroDivisionError** +The **f_lasti** is at the position of the first **finally** statement. The ModuleNotFoundError is handled properly; at the top of the exception stack is the **ZeroDivisionError**. -actually the information about [exception handling](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/exception/exception.md) is stored in [frame object](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/frame.md), **gi_exec_state** is used for representing whether current generator ojbect is handling exception and the detail of the most nested exception +Actually, the information about [exception handling](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/exception/exception.md) is stored in [frame object](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/frame.md). **gi_exc_state** is used for representing whether the current generator object is handling an exception and the details of the most nested exception ```python3 >>> r = f.send("handsome8") @@ -245,13 +245,13 @@ result 'handsome8' ![example_gen_4](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/gen/example_gen_4.png) -now, the **StopIteration** is raised +Now the **StopIteration** is raised. -the frameObject in **gi_frame** field is freed +The frameObject in the **gi_frame** field is freed. -field **gi_frame** points to a null pointer, indicating that the generator is terminated +The field **gi_frame** points to a null pointer, indicating that the generator is terminated. -and states in **gi_exc_state** is restored +The state in **gi_exc_state** is restored ```python3 >>> r = f.send("handsome9") @@ -278,17 +278,17 @@ AttributeError: 'NoneType' object has no attribute 'f_lasti' ## memory layout coroutine -most parts of the definition of the **coroutine** type and **generator** are the same +Most parts of the definition of the **coroutine** type and **generator** are the same. -the coroutine-only field named **cr_origin**, tracking the trackback of the **coroutine** object, is disabled by default, can be enabled by **sys.set_coroutine_origin_tracking_depth**, for more detail please refer to [docs.python.org(set_coroutine_origin_tracking_depth)](https://docs.python.org/3/library/sys.html#sys.set_coroutine_origin_tracking_depth) +The coroutine-only field named **cr_origin**, which tracks the traceback of the **coroutine** object, is disabled by default. It can be enabled by **sys.set_coroutine_origin_tracking_depth**. For more detail, please refer to [docs.python.org(set_coroutine_origin_tracking_depth)](https://docs.python.org/3/library/sys.html#sys.set_coroutine_origin_tracking_depth) ![layout_coro](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/gen/layout_coro.png) ## example coroutine -let's try to run an example with **coroutine** type defined to understand each field's meaning +Let's try to run an example with the **coroutine** type defined to understand each field's meaning. -as usual, I've altered the source code so that my **repr** function is able to print all the low-level detail of the object +As usual, I've altered the source code so that my **repr** function is able to print all the low-level details of the object ```python3 import sys @@ -336,7 +336,7 @@ if __name__ == "__main__": ``` -if you call a function defined with the **async** keyword, the calling result is an object of type **coroutine** +If you call a function defined with the **async** keyword, the result is an object of type **coroutine** ```python3 >>> c = cor() @@ -354,7 +354,7 @@ in the **test** function, before the first **await** statement at the moment ``` -the content in field **cr_origin** in my computer is the calling stack from bottom to top +The content in field **cr_origin** on my computer is the calling stack from bottom to top ![example_coro_0](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/gen/example_coro_0.png) @@ -388,15 +388,15 @@ in the 6.01 seconds, both **cor_list[0]** and **cor_list[1]** returned, and thei ## memory layout async generator -the layout of **async generator** is the same as **generator** type, except for the **ag_finalizer**, **ag_hooks_inited** and **ag_closed** +The layout of **async generator** is the same as the **generator** type, except for **ag_finalizer**, **ag_hooks_inited**, and **ag_closed** ![layout_async_gen](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/gen/layout_async_gen.png) ## example async generator -the **set_asyncgen_hooks** function is used for setting up a **firstiter** and a **finalizer**, **firstiter** will be called before when an asynchronous generator is iterated for the first time, finalizer will be called when asynchronous generator is about to be gc +The **set_asyncgen_hooks** function is used for setting up a **firstiter** and a **finalizer**. **firstiter** will be called when an asynchronous generator is iterated for the first time; **finalizer** will be called when an asynchronous generator is about to be garbage collected. -the **run_forever** function in asyncio base event loop has defined +The **run_forever** function in the asyncio base event loop has defined ```python3 def run_forever(self): @@ -434,7 +434,7 @@ in firstiter: ``` -let's define and iter through an async iterator +Let's define and iterate through an async iterator ```python3 import asyncio diff --git a/BasicObject/iter/iter.md b/BasicObject/iter/iter.md index f2c6207..2af6290 100644 --- a/BasicObject/iter/iter.md +++ b/BasicObject/iter/iter.md @@ -29,9 +29,9 @@ ## memory layout iter -The python sequence iterator is a wrapper of a python object with _\_getitem_\_ defined +The Python sequence iterator is a wrapper of a Python object with _\_getitem_\_ defined. -so the sequence iterator can iter through the target object by calling the object[index], and set index to index + 1 +So the sequence iterator can iterate through the target object by calling object[index], and set index to index + 1 ```c static PyObject * @@ -75,7 +75,7 @@ iter_iternext(PyObject *iterator) ### iter0 -let's iter through an iterator object +Let's iterate through an iterator object ```python3 class A(object): @@ -98,7 +98,7 @@ type(a) # iterator ### iter1 -the **next(a)** calls object[0], and return the result +**next(a)** calls object[0] and returns the result ```python3 >>> next(a) @@ -120,7 +120,7 @@ the **next(a)** calls object[0], and return the result ### iter3 -the current **it_index** is 2, so the next(a) calls object[2] which returns 4 +The current **it_index** is 2, so next(a) calls object[2] which returns 4 ```python3 >>> next(a) @@ -152,9 +152,9 @@ the current **it_index** is 2, so the next(a) calls object[2] which returns 4 ### iter end -now, the **it_idnex** is 5, next(a) will raise an IndexError +Now the **it_index** is 5, and next(a) will raise an IndexError. -the content in **it_index** is still 5, but the content in **it_seq** becomes 0x00, which indicate end of iteration +The content in **it_index** is still 5, but the content in **it_seq** becomes 0x00, which indicates end of iteration ```python3 >>> next(a) @@ -167,7 +167,7 @@ StopIteration ![iterend](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/iter/iterend.png) -notice, if you call next(a) again, the **"raise by myself"** won't be printed, since the **it_seq** field no longer points to the instance of **class A**, it loses the way to access the instance of **class A**, and can no longer call the _\_getitem_\_ function +Notice: if you call next(a) again, **"raise by myself"** won't be printed, since the **it_seq** field no longer points to the instance of **class A**. It has lost the way to access the instance of **class A** and can no longer call the _\_getitem_\_ function ```python3 >>> next(a) @@ -219,7 +219,7 @@ calliter_iternext(calliterobject *it) ``` -a callable_iterator calls whatever stores in **it_callable** each time you iter through it, until the result match the **it_sentinel** or a StopIteration raised +A callable_iterator calls whatever is stored in **it_callable** each time you iterate through it, until the result matches **it_sentinel** or a StopIteration is raised ## example citer @@ -246,9 +246,9 @@ type(r) # callable_iterator ### citer1 -the callable_iterator calls the _\_call_\_ method of the instance of A, and compare the result with the sentinel **2** +The callable_iterator calls the _\_call_\_ method of the instance of A and compares the result with the sentinel **2**. -the next operation won't change any state of the callable_iterator object, the state inside **it_callable** is changed anyway +The next operation won't change any state of the callable_iterator object; the state inside **it_callable** is changed instead ```python3 >>> next(r) @@ -260,9 +260,9 @@ the next operation won't change any state of the callable_iterator object, the s ### citer end -this time the instance of A returns PyLongObject 2, which is the same as the object stored inside **it_sentinel** field, +This time the instance of A returns PyLongObject 2, which is the same as the object stored in the **it_sentinel** field. -so the callable_iterator clears its state and return NULL to the outer scope, which raise a StopIteration +So the callable_iterator clears its state and returns NULL to the outer scope, which raises a StopIteration ```python3 >>> next(r) diff --git a/BasicObject/list/list.md b/BasicObject/list/list.md index 2610b05..0e91c13 100644 --- a/BasicObject/list/list.md +++ b/BasicObject/list/list.md @@ -36,7 +36,7 @@ l = list() ``` -field `ob_size` stores the actual size, it's type is `Py_ssize_t` which is usually 64 bit, `1 << 64` can represent a very large size, usually you will run out of RAM before overflow the `ob_size` field +The field `ob_size` stores the actual size. Its type is `Py_ssize_t` which is usually 64 bits. `1 << 64` can represent a very large size; usually you will run out of RAM before overflowing the `ob_size` field ![list_empty](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/list_empty.png) @@ -85,9 +85,9 @@ you can see that it's actually more like a `C++ vector` # pop -the append operation will only trigger the `list`'s resize when the `list` is full +The append operation will only trigger the `list`'s resize when the `list` is full -what about pop ? +What about pop? ```python3 >>> l.pop() @@ -103,9 +103,9 @@ what about pop ? ``` -the realloc is called and the malloced size is shrinked, actually the resize function will be called each time you call `pop` +The realloc is called and the malloced size is shrunk. Actually, the resize function will be called each time you call `pop` -but the actual realloc will be called only if the newsize falls lower than half the allocated size +But the actual realloc will be called only if the newsize falls lower than half the allocated size ```python3 /* cpython/Objects/listobject.c */ @@ -131,7 +131,7 @@ new_allocated = (size_t)newsize + (newsize >> 3) + (newsize < 9 ? 3 : 6); ## timsort -the algorithm CPython used in sorting `list` is **timsort**, it's quiet complicated +The algorithm CPython uses for sorting `list` is **timsort**. It's quite complicated ```python3 >>> l = [5, 9, 17, 11, 10, 14, 2, 8, 12, 19, 4, 13, 3, 0, 16, 1, 6, 15, 18, 7] @@ -145,11 +145,11 @@ a structure named `MergeState` is created for helping the **timsort** algorithm ![MergeState](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/MergeState.png) -this is the state after preparing +This is the state after preparing ![sort_begin1](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/sort_begin1.png) -assume `minrun` is 5, we will see what `minrun` is and how `minrun` calculated later, for now, we run the sort algorithm and ignore these details for illustration +Assume `minrun` is 5. We will see what `minrun` is and how `minrun` is calculated later. For now, we run the sort algorithm and ignore these details for illustration ![sort_begin2](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/sort_begin2.png) @@ -165,7 +165,7 @@ after `binary_sort` the second group the second group is sorted by [binary_sort](#binary_sort), and the next index of `pending` stores the information of the second group -we can learn from the above graph that `pending` act as a stack, every time a group is sorted, the group info will be pushed onto this stack, a function named `merge_collapse` will be called after the psuh operation +We can learn from the above graph that `pending` acts as a stack. Every time a group is sorted, the group info will be pushed onto this stack, and a function named `merge_collapse` will be called after the push operation ```python3 /* cpython/Objects/listobject.c */ @@ -226,7 +226,7 @@ merge_collapse(MergeState *ms) ``` -the current state is case 3, `merge_at` will merge the two runs at stack indices `i` and `i+1` +The current state is case 3. `merge_at` will merge the two runs at stack indices `i` and `i+1` ## merge_at @@ -234,7 +234,7 @@ the current state is case 3, `merge_at` will merge the two runs at stack indices ![ms](https://github.com/zpoint/Algorithms/blob/master/screenshots/ms.gif) -after `merge_collapse`, the first two runs are merged and valid length of `pending` becomes 1 +After `merge_collapse`, the first two runs are merged and the valid length of `pending` becomes 1 ![sort_begin5](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/sort_begin5.png) @@ -242,13 +242,13 @@ after [binary_sort](#binary_sort) the next run ![sort_begin6](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/sort_begin6.png) -the `merge_collapse` won't merge any of the `run` because the stack invariants are good +The `merge_collapse` won't merge any of the `run`s because the stack invariants are satisfied after [binary_sort](#binary_sort) the final `run` ![sort_begin7](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/sort_begin7.png) -it meets `case 1`, and the last two `run` will be merged first +It meets `case 1`, and the last two `run`s will be merged first ![sort_begin8](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/sort_begin8.png) @@ -258,15 +258,15 @@ in the while loop of `merge_collapse`, merge will happen again in `case 3`, afte ## galloping mode -if we are merging these two arrays +If we are merging these two arrays ![galloping_mode0](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/galloping_mode0.png) -we can use binary search to find the the max element that is smaller than the first element in the right, and copy these elements together instead of merging one by one +We can use binary search to find the max element that is smaller than the first element in the right, and copy these elements together instead of merging one by one ![galloping_mode1](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/galloping_mode1.png) -we can also do that from right to left +We can also do that from right to left ![galloping_mode2](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/galloping_mode2.png) @@ -274,17 +274,17 @@ read more detail in [listsort.txt](https://github.com/python/cpython/blob/master ## binary_sort -before delegating the call to `binary_sort`, a function named `count_run` will be called first to calculate the longest increasing or descending subarray begin at index 0 +Before delegating the call to `binary_sort`, a function named `count_run` will be called first to calculate the longest increasing or descending subarray beginning at index 0 ![binary_sort0](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/binary_sort0.png) so that `binary_sort` can sort the range begin at index 2, and end at index 4 -the subarray before `start` is sorted, and we need to sort all the rest elements from `start` to the end +The subarray before `start` is sorted, and we need to sort all the remaining elements from `start` to the end ![binary_sort1](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/binary_sort1.png) -first we set a variable `pivot`'s value to `start`'s value, perform binary search in the left subarray to find the first element that is greater than `pivot` +First we set a variable `pivot`'s value to `start`'s value, then perform binary search in the left subarray to find the first element that is greater than `pivot` ```python3 do { @@ -297,33 +297,33 @@ first we set a variable `pivot`'s value to `start`'s value, perform binary searc ``` -then we move every element from `l` to `start` forawrd, and set element in `start` to `pivot` +Then we move every element from `l` to `start` forward, and set the element at `start` to `pivot` ![binary_sort2](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/binary_sort2.png) -we perform binary search again, this time element in index 2 is selected, we move every element from the selected index to `start` forward again +We perform binary search again. This time the element at index 2 is selected, and we move every element from the selected index to `start` forward again ![binary_sort3](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/binary_sort3.png) -and set the value in selected element's index to `pivot` +And set the value at the selected element's index to `pivot` ![binary_sort4](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/binary_sort4.png) -we need to perform the final binary search +We need to perform the final binary search ![binary_sort5](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/binary_sort5.png) -the selected element is in index 2, after move every element from `l` to `start` forawrd +The selected element is at index 2. After moving every element from `l` to `start` forward ![binary_sort6](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/binary_sort6.png) -and set element in `start` to `pivot`, we've finished the binary_sort algorithm +And set the element at `start` to `pivot`, we've finished the binary_sort algorithm ![binary_sort7](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/binary_sort7.png) ## run -actually `minrun` will be computed in the following function, if the current `run` number is lower than 64, it will be [binary_sort](#binary_sort) directly, else half of it's size will be shrink until there's a result size lower than 64 +Actually `minrun` will be computed in the following function. If the current `run` number is lower than 64, it will be sorted with [binary_sort](#binary_sort) directly. Otherwise, half of its size will be shrunk until there's a result size lower than 64 I've changed this constant to a smaller value so that the example above can fit into my graph @@ -361,11 +361,11 @@ static int numfree = 0; ``` -there exists per process global variable named **free_list** +There exists a per-process global variable named **free_list** ![free_list0](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/free_list0.png) -if we create a new `list` object, the memory request is delegate to CPython's [memory management system](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/memory_management.md) +If we create a new `list` object, the memory request is delegated to CPython's [memory management system](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/memory_management.md) ```python3 a = list() @@ -379,11 +379,11 @@ del a ``` -the destructor of the `list` type will stores the current `list` to **free_list** (if **free_list** is not full) +The destructor of the `list` type will store the current `list` in **free_list** (if **free_list** is not full) ![free_list2](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/free_list2.png) -next time you create a new `list` object, **free_list** will be checked if there is available objects you can use directly, if so, allocate from **free_list**, if not, allocate from CPython's [memory management system](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/memory_management.md) +Next time you create a new `list` object, **free_list** will be checked for available objects you can use directly. If available, allocate from **free_list**; if not, allocate from CPython's [memory management system](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/memory_management.md) ```python3 b = list() @@ -392,7 +392,7 @@ b = list() ![free_list3](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/free_list3.png) -by caching `list` objects in **free_list** can +Caching `list` objects in **free_list** can * improve performance * reduce memory fragmentation diff --git a/BasicObject/long/long.md b/BasicObject/long/long.md index 0eaeffd..91815a7 100644 --- a/BasicObject/long/long.md +++ b/BasicObject/long/long.md @@ -26,17 +26,17 @@ Thanks @MambaWong for pointing out the errors [#22](https://github.com/zpoint/C ![memory layout](https://img-blog.csdnimg.cn/20190314164305131.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMxNzIwMzI5,size_16,color_FFFFFF,t_70) -after python3, there's only type named **int**, the **long** type in python2.x is **int** type in python3.x +After Python 3, there's only a type named **int**. The **long** type in Python 2.x is the **int** type in Python 3.x. -the structure of **long object** looks like the structure of [tuple object](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/tuple/tuple.md#memory-layout), obviously, there's only one field to store the real **int** value, that's **ob_digit** +The structure of **long object** looks like the structure of [tuple object](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/tuple/tuple.md#memory-layout). Obviously, there's only one field to store the real **int** value: **ob_digit**. -But how does CPython represent the variable size **int** in byte level? Let's see +But how does CPython represent the variable-size **int** at the byte level? Let's see # how is element stored inside ## ingeter 0 -notice, when the value is 0, the **ob_digit** field doesn't store anything, the value 0 in **ob_size** indicate that **long object** represent integer 0 +Notice: when the value is 0, the **ob_digit** field doesn't store anything. The value 0 in **ob_size** indicates that the **long object** represents integer 0 ```python3 i = 0 @@ -47,7 +47,7 @@ i = 0 ## ingeter 1 -there are two different types of **ob_digit** depends on your system. +There are two different types of **ob_digit** depending on your system. ```c #if PYLONG_BITS_IN_DIGIT == 30 @@ -71,7 +71,7 @@ typedef long stwodigits; /* signed variant of twodigits */ I've modified the source code to change the value of **PYLONG_BITS_IN_DIGIT** to 15 -but when it's going to represent integer 1, **ob_size** becomes 1 and field in **ob_digit** represent the value 1 with type **unsigned short** +But when it represents integer 1, **ob_size** becomes 1 and the field in **ob_digit** represents the value 1 with type **unsigned short** ```python3 i = 1 @@ -82,7 +82,7 @@ i = 1 ## ingeter -1 -when i becomes -1, the only difference from the integer 1 is the value in **ob_size** field, CPython interpret **ob_size** as a signed type to differ the positive and negative sign +When i becomes -1, the only difference from integer 1 is the value in the **ob_size** field. CPython interprets **ob_size** as a signed type to differentiate between positive and negative signs ```python3 i = -1 @@ -93,43 +93,43 @@ i = -1 ## ingeter 1023 -the basic unit is type **digit**, which provide 2 bytes(16bits) for storage. And 1023 takes the rightmost 10 bits, -so the value **ob_size** field is still 1. +The basic unit is type **digit**, which provides 2 bytes (16 bits) for storage. Since 1023 takes the rightmost 10 bits, +the value of the **ob_size** field is still 1. ![1023](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/1023.png) ## ingeter 32767 -the integer 32767 represent in the same way as usual +The integer 32767 is represented in the same way as usual ![32767](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/32767.png) ## ingeter 32768 -CPython don't use all the 16 bits in **digit** field, the first bit of every **digit** is reserved, we will see why later +CPython doesn't use all the 16 bits in the **digit** field. The first bit of every **digit** is reserved; we will see why later ![32768](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/32768.png) ## little endian and big endian -notice, because the **digit** is the smallest unit in the CPython abstract level, The order between bytes inside a single ob_digit is the same as your machine order(mine is little endian) +Notice: because **digit** is the smallest unit at the CPython abstract level, the order between bytes inside a single ob_digit is the same as your machine order (mine is little endian). -Order between **digit** in the **ob_digit** array are represent as most-significant-digit-in-the-right-most order(little endian order) +The order between **digit**s in the **ob_digit** array is represented in most-significant-digit-in-the-rightmost order (little endian order). -we can have a better understanding with the integer value -262143 +We can have a better understanding with the integer value -262143. -the minus sign is stored in the **ob_size** field +The minus sign is stored in the **ob_size** field. -the interger 262143(2^18 = 262144) in binary representation is 00000011 11111111 11111111 +The integer 262143 (2^18 = 262144) in binary representation is 00000011 11111111 11111111 ![262143](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/262143.png) ## reserved bit -why the left-most bit in **digit** is reserved? Why order between **digit** in the **ob_digit** array are represented as little-endian? +Why is the leftmost bit in **digit** reserved? Why is the order between **digit**s in the **ob_digit** array represented as little-endian? -let's try to add two integer value +Let's try to add two integer values ```python3 i = 1073741824 - 1 # 1 << 30 == 1073741824 @@ -144,48 +144,48 @@ k = i + j ``` -first, initialize a temporary **PyLongObject** with size = max(size(i), size(j)) + 1 +First, initialize a temporary **PyLongObject** with size = max(size(i), size(j)) + 1 ![temp_add](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/temp_add.png) -step1, sum the firt **digit** in each **ob_digit** array to a variable named **carray** +Step 1: sum the first **digit** in each **ob_digit** array into a variable named **carry** ![step_1](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/step_1.png) -step2, set the value in temp[0] to (carry & PyLong_MASK) +Step 2: set the value in temp[0] to (carry & PyLong_MASK) ![step_2](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/step_2.png) -step3, right shift the carray up to the leftmost bit +Step 3: right shift the carry up to the leftmost bit ![step_3_rshift](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/step_3_rshift.png) -step4, add the second **digit** in each **ob_digit** array to the result of **carray** +Step 4: add the second **digit** in each **ob_digit** array to the result of **carry** ![step_4](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/step_4.png) -step5, set the value in temp[1] to (carry & PyLong_MASK) +Step 5: set the value in temp[1] to (carry & PyLong_MASK) ![step_4](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/step_5.png) -step6, right shift the carray again +Step 6: right shift the carry again ![step_3_rshift](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/step_3_rshift.png) -go to step4 and repeat until no more **digit** left, set the final carray to the last index of temp +Go to step 4 and repeat until no more **digit** is left. Set the final carry to the last index of temp ![step_final](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/step_final.png) -the variable temp contains the sum, now, you see the reserved bit is used for the **carry** or **borrow** when you add/sub an integer, the **digit** in **ob_digit** array are stored in little-endian order so that the add/sub operation can process each **digit** from left to right +The variable temp contains the sum. Now you see the reserved bit is used for the **carry** or **borrow** when you add/subtract an integer. The **digit**s in the **ob_digit** array are stored in little-endian order so that the add/subtract operation can process each **digit** from left to right. -the sub operation is similar to the add operation, so you can read the source code directly +The subtraction operation is similar to the addition operation, so you can read the source code directly ![k](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/long/k.png) ## small ints -CPython also use a buffer pool to store the frequently used integer +CPython also uses a buffer pool to store frequently used integers ```c diff --git a/BasicObject/method/method.md b/BasicObject/method/method.md index bad1bd6..d5deab2 100644 --- a/BasicObject/method/method.md +++ b/BasicObject/method/method.md @@ -19,7 +19,7 @@ # memory layout -There's a type named **builtin_function_or_method** in python, as the type name described, all the builtin function or method defined in the c level belong to **builtin_function_or_method** +There's a type named **builtin_function_or_method** in Python. As the type name describes, all built-in functions or methods defined at the C level belong to **builtin_function_or_method** ```python3 >>> print @@ -35,7 +35,7 @@ There's a type named **builtin_function_or_method** in python, as the type name ## print -let's read code snippet first +Let's read a code snippet first ```c #define PyCFunction_Check(op) (Py_TYPE(op) == &PyCFunction_Type) @@ -51,7 +51,7 @@ typedef PyObject *(*PyNoArgsFunction)(PyObject *); ``` -The **PyCFunction** is a type in c, any c function with signature(accept two PyObject* as parameters and return a PyObject *) can be cast to type **PyCFunction** +**PyCFunction** is a type in C. Any C function with the signature (accepting two PyObject* as parameters and returning a PyObject*) can be cast to type **PyCFunction** ```c // a c function named builtin_print @@ -69,15 +69,15 @@ static PyMethodDef builtin_methods[] = { ![print](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/method/print.png) -a **PyMethodDef** should be attached to a **module** object, and a **self** arugment, and then a **PyCFunctionObject** will be generated +A **PyMethodDef** should be attached to a **module** object with a **self** argument, and then a **PyCFunctionObject** will be generated. -what user really interactive with is **PyCFunctionObject** +What the user actually interacts with is **PyCFunctionObject** ![print2](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/method/print2.png) -let's check for more detail of each field +Let's check each field for more detail. -the type in **m_self** field is **module**, and type in **m_module** field is **str** +The type in the **m_self** field is **module**, and the type in the **m_module** field is **str** ![print3](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/method/print3.png) @@ -85,17 +85,17 @@ the type in **m_self** field is **module**, and type in **m_module** field is ** ## ml_name -as you can see in the above picture, field **ml_name** is the name of the built-in method, it's a c style null terminated string "print" +As you can see in the above picture, the field **ml_name** is the name of the built-in method; it's a C-style null-terminated string "print" ## ml_meth -the real c function pointer that does the job +The actual C function pointer that does the job ## ml_flags -bit flag indicates how the c function's behave in the python level +A bit flag that indicates how the C function behaves at the Python level. -the function in **call.c** begin with **_PyMethodDef_** will delegate the work to the **PyCFunction**, but with different calling behaviour according to different **ml_flags** +The functions in **call.c** beginning with **_PyMethodDef_** will delegate work to the **PyCFunction**, but with different calling behavior according to different **ml_flags** for more detail please refer to [c-api Common Object Structures](https://docs.python.org/3/c-api/structures.html) @@ -120,12 +120,12 @@ static int numfree = 0; ``` -cpython use a buffer pool with size 256 to reuse the deallocated **PyCFunctionObject** object, free_list is a single linked list, all elements are chained by the **m_self** field +CPython uses a buffer pool with size 256 to reuse deallocated **PyCFunctionObject** objects. free_list is a singly linked list; all elements are chained by the **m_self** field. -the similar technique appears in float object, the float object chained through the **ob_type** field, I will not draw again, user who need the graph representation please click the link [float(free_list)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/float/float.md#free_list) +A similar technique appears in float objects. Float objects are chained through the **ob_type** field. I will not draw again; users who need the graphical representation please click the link [float(free_list)](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/float/float.md#free_list) # classmethod # staticmethod -they're more related in **classobject**, I will talk about them later in [class object](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/class/class.md) \ No newline at end of file +They're more related to **classobject**. I will talk about them later in [class object](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/class/class.md) \ No newline at end of file diff --git a/BasicObject/set/set.md b/BasicObject/set/set.md index 37f4d5d..67844ac 100644 --- a/BasicObject/set/set.md +++ b/BasicObject/set/set.md @@ -27,7 +27,7 @@ * static PyObject * set_new(PyTypeObject *type, PyObject *args, PyObject *kwds) * static PyObject * make_new_set(PyTypeObject *type, PyObject *iterable) -the following picture shows value in each field in an empty set +The following picture shows the value of each field in an empty set ![make new set](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/set/make_new_set.png) @@ -38,8 +38,8 @@ the following picture shows value in each field in an empty set * static int set_add_entry(PySetObject *so, PyObject *key, Py_hash_t hash) -initialize a new empty set, whenever an empty set created, the **setentry** field points to **smalltable** field inside the same PySetObject, default value of **PySet_MINSIZE** is 8, it means if there are less than 8 objects in PySetObject, they are stored in the **smalltable**, if there are more than 8 objects, the resize operation will make **setentry** points to a new malloced block -(Actually, the first time resize operation takes place, the smalltable won't be filled, there is a factor to trigger the resize operation, please keep reading) +Initialize a new empty set. Whenever an empty set is created, the **setentry** field points to the **smalltable** field inside the same PySetObject. The default value of **PySet_MINSIZE** is 8, which means if there are fewer than 8 objects in PySetObject, they are stored in the **smalltable**. If there are more than 8 objects, the resize operation will make **setentry** point to a new malloced block. +(Actually, the first time a resize operation takes place, the smalltable won't be filled. There is a factor that triggers the resize operation; please keep reading) ```python3 s = set() @@ -48,7 +48,7 @@ initialize a new empty set, whenever an empty set created, the **setentry** fiel ![set_empty](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/set/set_empty.png) -the value in **mask** field is the size of malloced entries - 1, currently it's 7 +The value in the **mask** field is the size of malloced entries minus 1; currently it's 7 ```python3 s.add(0) # hash(0) & mask == 0 @@ -57,7 +57,7 @@ s.add(0) # hash(0) & mask == 0 ![set_add_0](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/set/set_add_0.png) -add a value 5 +Add a value 5 ```python3 s.add(5) # hash(5) & mask == 0 @@ -68,8 +68,8 @@ s.add(5) # hash(5) & mask == 0 * ### hash collision -add a value 16, because the mask is 7, hash(16) & 7 ===> 0 -cpython use **LINEAR_PROBES** to solve hash collision instead of **CHAIN**(linked list) +Add a value 16. Because the mask is 7, hash(16) & 7 ===> 0 +CPython uses **LINEAR_PROBES** to solve hash collisions instead of **CHAIN** (linked list) ```c // pseudocode @@ -95,7 +95,7 @@ while (1) ``` -the 0th position has been taken, so the **LINEAR_PROBES** take the next empty position, which is 1th position +The 0th position has been taken, so **LINEAR_PROBES** takes the next empty position, which is the 1st position ```python3 s.add(16) # hash(16) & mask == 0 @@ -104,7 +104,7 @@ s.add(16) # hash(16) & mask == 0 ![set_add_16](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/set/set_add_16.png) -the 0th position has been taken, the first time **LINEAR_PROBES** find the 1th position, which also has been taken, the second time **LINEAR_PROBES** find the 2th position which is empty. +The 0th position has been taken. The first time, **LINEAR_PROBES** finds the 1st position, which has also been taken. The second time, **LINEAR_PROBES** finds the 2nd position, which is empty. ```python3 s.add(32) # hash(32) & mask == 0 @@ -115,7 +115,7 @@ s.add(32) # hash(32) & mask == 0 * ## **resize** -let's insert one more item with value 64, still repeat the **LINEAR_PROBES** progress, insert to the position at index 3 +Let's insert one more item with value 64, still repeating the **LINEAR_PROBES** process, inserting at index 3 ```python3 s.add(64) # hash(64) & mask == 0 @@ -124,8 +124,8 @@ s.add(64) # hash(64) & mask == 0 ![set_add_64](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/set/set_add_64.png) -now, value in field **fill** is 5, **mask** is 7, it will trigger the resize operation -the trigger condition is **fill*5 !< mask * 3** +Now the value in field **fill** is 5 and **mask** is 7, which will trigger the resize operation. +The trigger condition is **fill*5 !< mask * 3** ```python3 // from cpython/Objects/setobject.c @@ -135,8 +135,8 @@ return set_table_resize(so, so->used>50000 ? so->used*2 : so->used*4); ``` -after resize,value 32 and 64 still repeat the **LINEAR_PROBES** progress, inserted at index 1 and index 2, because the value in **mask** field becomes 31, hash(16) is less than the mask, so 16 can be inserted to index 15 -And field **table** no longer points to **smalltable**, instead, it points to a new malloced block +After resize, values 32 and 64 still repeat the **LINEAR_PROBES** process, inserted at index 1 and index 2. Because the value in the **mask** field becomes 31 and hash(16) is less than the mask, 16 can be inserted at index 16. +The field **table** no longer points to **smalltable**; instead, it points to a new malloced block ![set_add_64_resize](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/set/set_add_64_resize.png) @@ -150,7 +150,7 @@ And field **table** no longer points to **smalltable**, instead, it points to a * static int set_clear_internal(PySetObject *so) * static void set_empty_to_minsize(PySetObject *so) -call clear to restore the initial state +Call clear to restore the initial state ```python3 s.clear() diff --git a/BasicObject/str/str.md b/BasicObject/str/str.md index d9816c6..db5ee68 100644 --- a/BasicObject/str/str.md +++ b/BasicObject/str/str.md @@ -17,7 +17,7 @@ # memory layout -you can read [How Python saves memory when storing strings](https://rushter.com/blog/python-strings-and-memory/) first to have an overview of how **unicode** stored internally +You can read [How Python saves memory when storing strings](https://rushter.com/blog/python-strings-and-memory/) first to have an overview of how **unicode** is stored internally ![layout](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/str/layout.png) @@ -25,7 +25,7 @@ for those who are interested in bit-fields in C please refer to [When to use bit # conversion -before we look into how unicode object create, resize, let's look into the c function **PyUnicode_AsUTF8** +Before we look into how unicode objects are created and resized, let's look at the C function **PyUnicode_AsUTF8** ```c /* Whenever I try to covert PyUnicodeObject to const char* pointer, @@ -122,7 +122,7 @@ calling PyUnicode_AsUTF8(unicode): s ``` -have you notice the field **utf8_length** in **PyCompactUnicodeObject** is 115, and chr(115) is 's', yes, this is the begin address of the c style null terminate string +Have you noticed the field **utf8_length** in **PyCompactUnicodeObject** is 115, and chr(115) is 's'? Yes, this is the beginning address of the C-style null-terminated string ![s_s](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/str/s_s.png) @@ -136,15 +136,15 @@ s = "aaa" # interned -all unicode object with "interned" set to 1 will be held in this dictionary, -any other new created unicode object with the same value will points to the same object, it act as singleton +All unicode objects with "interned" set to 1 will be held in this dictionary. +Any other newly created unicode object with the same value will point to the same object; it acts as a singleton ```c static PyObject *interned = NULL; ``` -if you delete the string and initialize a new same string, the id of them are the same, the first time you created it, it's stored in the **interned** dictionary +If you delete the string and initialize a new string with the same value, the IDs are the same. The first time you created it, it was stored in the **interned** dictionary ```python3 >>> id(s) @@ -162,7 +162,7 @@ if you delete the string and initialize a new same string, the id of them are th # kind -there are totally four values of **kind** field in **PyASCIIObject**, it means how characters are stored in the unicode object internally. +There are four possible values for the **kind** field in **PyASCIIObject**, indicating how characters are stored in the unicode object internally. * PyUnicode_WCHAR_KIND @@ -174,7 +174,7 @@ I haven't found a way to define an unicode object represent with **PyUnicode_WCH * ascii flag set true: U+0000-U+007F * ascii flag set false: at least one character in U+0080-U+00FF -the **utf8_length** field still stores the null terminated c style string, except the interned field is 0, only the characters in specific range will CPython store the unicode object in the interned dictionary. +The **utf8_length** field still stores the null-terminated C-style string, except the interned field is 0. Only characters in a specific range will cause CPython to store the unicode object in the interned dictionary. ```python3 >>> s1 = "\u007F\u0000" @@ -188,18 +188,18 @@ the **utf8_length** field still stores the null terminated c style string, excep ![1_byte_kind](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/str/1_byte_kind.png) -let's define an unicode object with a character **\u0088** inside +Let's define a unicode object with a character **\u0088** inside ```python3 s = "\u0088\u0011\u00f1" ``` -now, because the first character is **U+0088**, the ascii flag becomes 0, and **PyUnicode_UTF8(unicode)** no longer return the address of **utf8_length** field, instead, it returns the value in the `char *utf8` field, and that's 0 +Now, because the first character is **U+0088**, the ascii flag becomes 0, and **PyUnicode_UTF8(unicode)** no longer returns the address of the **utf8_length** field. Instead, it returns the value in the `char *utf8` field, which is 0 -if **PyUnicode_UTF8(unicode)** is zero, where are the three bytes located? -we haven't used the data field in **PyUnicodeObject**, let's print whatever inside **data** field. -it took me some time to figure out how to print those bytes in the latin1 field. +If **PyUnicode_UTF8(unicode)** is zero, where are the three bytes located? +We haven't used the data field in **PyUnicodeObject**. Let's print whatever is inside the **data** field. +It took me some time to figure out how to print those bytes in the latin1 field. ```c static PyObject * @@ -247,7 +247,7 @@ unicode_repr(PyObject *unicode) ``` -after recompile the above code, we are able to track latin1 fields in repr() function +After recompiling the above code, we are able to track latin1 fields in the repr() function ```python3 >>> repr(s) @@ -263,7 +263,7 @@ PyUnicodeObject->latin1: 0x88 0x11 0xf1 * all characters are in range U+0000-U+FFFF * at least one character is in the range U+0100-U+FFFF -we can use the same code to trace bytes stored in **data** field, now the field name is **ucs2**(**ucs2** or **latin1** have a different name, but same address, they are inside same c union structure) +We can use the same code to trace bytes stored in the **data** field. Now the field name is **ucs2** (**ucs2** and **latin1** have different names but the same address; they are inside the same C union structure) ```python3 >>> s = "\u0011\u0111\u1111" @@ -272,7 +272,7 @@ kind: PyUnicode_2BYTE_KIND, PyUnicodeObject->ucs2: 0x11 0x111 0x1111 ``` -now, the **kind** field is **PyUnicode_2BYTE_KIND** and it takes 2 bytes to store each character +Now the **kind** field is **PyUnicode_2BYTE_KIND** and it takes 2 bytes to store each character ![2_byte_kind](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/str/2_byte_kind.png) @@ -281,7 +281,7 @@ now, the **kind** field is **PyUnicode_2BYTE_KIND** and it takes 2 bytes to stor * all characters are in the range U+0000-U+10FFFF * at least one character is in the range U+10000-U+10FFFF -now, kind field become **PyUnicode_4BYTE_KIND** +Now the kind field becomes **PyUnicode_4BYTE_KIND** ```python3 >>> s = "\u00ff\U0010FFFF\U00100111\U0010FFF1" @@ -295,7 +295,7 @@ kind: PyUnicode_4BYTE_KIND, PyUnicodeObject->ucs4: 00xff 0x10ffff 0x100111 0x10f ## unicode memory usage summary -we now know that there are three kinds of storage mechanism, how many bytes CPython will consume to store an unicode object depends on the maximum range of your character. All characters inside the unicode object must be in the same size, if CPython use variable size representation such as utf-8, it would be impossible to do index operation in O(1) time +We now know that there are three kinds of storage mechanisms. How many bytes CPython consumes to store a unicode object depends on the maximum range of your characters. All characters inside the unicode object must be the same size; if CPython used variable-size representation such as UTF-8, it would be impossible to do index operations in O(1) time ```python3 # if represented as utf8 encoding, and stores 1 million variable size characters @@ -309,7 +309,7 @@ s[999999] # compact -if flag in **compact** field in 1, it means all characters are stored within **PyUnicodeObject**, no matter what **kind** field is. The example above all have **compact** field set to 1. Otherwise, the data block will not be stored inside the **PyUnicodeObject** object directly, the data block will be a newly malloced location. -the difference between **compact** 0 and **compact** 1 is the same as the difference between Redis string encoding **raw** and **embstr** +If the flag in the **compact** field is 1, it means all characters are stored within **PyUnicodeObject**, no matter what the **kind** field is. The examples above all have the **compact** field set to 1. Otherwise, the data block will not be stored inside the **PyUnicodeObject** object directly; the data block will be in a newly malloced location. +The difference between **compact** 0 and **compact** 1 is the same as the difference between Redis string encoding **raw** and **embstr** -now, we understand most of the unicode implementations in CPython, for more detail, you can directly refer to the source code \ No newline at end of file +Now we understand most of the unicode implementation in CPython. For more detail, you can refer directly to the source code \ No newline at end of file diff --git a/BasicObject/tuple/tuple.md b/BasicObject/tuple/tuple.md index 1951fcd..a63f227 100644 --- a/BasicObject/tuple/tuple.md +++ b/BasicObject/tuple/tuple.md @@ -16,8 +16,8 @@ ![memory layout](https://img-blog.csdnimg.cn/20190313121821367.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMxNzIwMzI5,size_16,color_FFFFFF,t_70) -The structure of **tuple** object is more simple than other python object. -Obviously, **ob_item** is an array of PyObject* pointer, all elements will be stored inside the **ob_item** array, But how exactly each element stored in **PyTupleObject**? Is the first element begin at the 0 index? What is the resize strategy? +The structure of the **tuple** object is simpler than other Python objects. +Obviously, **ob_item** is an array of PyObject* pointers, and all elements will be stored inside the **ob_item** array. But how exactly is each element stored in **PyTupleObject**? Does the first element begin at index 0? What is the resize strategy? Let's see @@ -42,7 +42,7 @@ t = ("aa", "bb", "cc", "dd") ``` -**ob_size** represents the size of **PyTupleObject** object, because tuple object is immutable, the **ob_item** is the start address of an array of pointer to **PyObject**, and the size of this array is **ob_size**, there's no need for resize operation. +**ob_size** represents the size of the **PyTupleObject** object. Because a tuple object is immutable, **ob_item** is the start address of an array of pointers to **PyObject**, and the size of this array is **ob_size**. There's no need for a resize operation. ![tuple_4](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/tuple/tuple_4.png) @@ -59,8 +59,8 @@ static int numfree[PyTuple_MAXSAVESIZE]; ``` -let's exam what **free_list** and **numfree** is -we assume that python interpreter don't create/deallocate any tuple object internally during the following code +Let's examine what **free_list** and **numfree** are. +We assume that the Python interpreter doesn't create/deallocate any tuple objects internally during the following code ```python3 >>> t = tuple() @@ -84,7 +84,7 @@ we assume that python interpreter don't create/deallocate any tuple object inter 4459413360 >>> del t >>> t = ("bb", ) ->>> id(t) # it's not repeatable, because I assume that python intepreter don't create/deallocate any tuple object during execution +>>> id(t) # it's not repeatable, because I assume that the Python interpreter doesn't create/deallocate any tuple objects during execution 4459413360 >>> t2 = ("cc", ) >>> del t @@ -94,7 +94,7 @@ we assume that python interpreter don't create/deallocate any tuple object inter ![delete_2](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/tuple/delete_2.png) -num_free[i] means how many objects left in free_list[i], when you create a new tuple with size i, cpython will use the top object at free_list[i] +num_free[i] indicates how many objects are left in free_list[i]. When you create a new tuple with size i, CPython will use the top object at free_list[i] ```python3 >>> t = ("aa", ) diff --git a/BasicObject/type/type.md b/BasicObject/type/type.md index eefd518..2ab7c40 100644 --- a/BasicObject/type/type.md +++ b/BasicObject/type/type.md @@ -21,13 +21,13 @@ # mro -the [C3 superclass linearization](https://en.wikipedia.org/wiki/C3_linearization) is implemented in python for Method Resolution Order (MRO) after python2.3, prior to python2.3, the Method Resolution Order is a Depth-First, Left-to-Right algorithm +The [C3 superclass linearization](https://en.wikipedia.org/wiki/C3_linearization) is implemented in Python for Method Resolution Order (MRO) after Python 2.3. Prior to Python 2.3, the Method Resolution Order was a Depth-First, Left-to-Right algorithm for those who are interested in detail, please refer to [Amit Kumar: Demystifying Python Method Resolution Order - PyCon APAC 2016](https://www.youtube.com/watch?v=cuonAMJjHow&t=400s) ## before python2.3 -let's define an example +Let's define an example ```python3 from __future__ import print_function @@ -56,7 +56,7 @@ class F(D, E): ![mro_ hierarchy](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/type/mro_hierarchy.png) -the **mro** order implementation before python2.3 is a Depth-First, Left-Most algorithm +The **mro** order implementation before Python 2.3 was a Depth-First, Left-Most algorithm mro of **D** is computed as `DAB` @@ -74,12 +74,12 @@ I am B ## after python2.3 -the **merge** part of the **C3** algorithm can be simply summarized as the following steps +The **merge** part of the **C3** algorithm can be simply summarized as the following steps: -* take the head of the first list -* if this head is not in the tail of any of the other lists, then add it to the linearization of C and remove it from the lists in the merge -* otherwise look at the head of the next list and take it, if it is a good head -* then repeat the operation until all the class are removed or it is impossible to find good heads(the inherted order need to be monotonous, or the algorithm won't terminate, for more detail please refer to the first video in [read more](#read-more)) +* Take the head of the first list +* If this head is not in the tail of any of the other lists, then add it to the linearization of C and remove it from the lists in the merge +* Otherwise, look at the head of the next list and take it if it is a good head +* Then repeat the operation until all the classes are removed or it is impossible to find good heads (the inherited order needs to be monotonous, or the algorithm won't terminate; for more detail please refer to the first video in [read more](#read-more)) mro of **D** is computed as @@ -151,7 +151,7 @@ class F(D, E): ``` -in python2, class `A`, `B`,`C`, `D`, and `E` are not inherted from the `object`, even after python2.3, objects not inherted from `object` will not use the **C3** algorithm for **MRO**, the old style Depth-First, Left-Most algorithm will be used +In Python 2, classes `A`, `B`, `C`, `D`, and `E` are not inherited from `object`. Even after Python 2.3, objects not inherited from `object` will not use the **C3** algorithm for **MRO**; the old-style Depth-First, Left-Most algorithm will be used ```python3 # ./python2.7 @@ -162,7 +162,7 @@ I am B ``` -while in python3, they both implicit inherted from `object`, objects inherted from `object` use the **C3** algorithm for **MRO** +While in Python 3, they both implicitly inherit from `object`. Objects inherited from `object` use the **C3** algorithm for **MRO** ```python3 # ./python3 @@ -174,7 +174,7 @@ I am E # creation of class -if we `dis` the above code +If we `dis` the above code ```python3 26 96 LOAD_BUILD_CLASS @@ -195,7 +195,7 @@ and the following opcodes push all the variables `__build_class__` needed to sta `110 CALL_FUNCTION 4` calls the `__build_class__` to generate the class -the `__build_class__` will find the `metaclass`, `name`, `bases`, and `ns`(namespace) and delegates the call to `metaclass.__call__` attribute +The `__build_class__` will find the `metaclass`, `name`, `bases`, and `ns` (namespace) and delegate the call to the `metaclass.__call__` attribute for example, the `class F` @@ -207,26 +207,26 @@ ns: {'__module__': '__main__', '__qualname__': 'F'}, cls: ``` -in the example `class F`, what does `.__call__` do ? +In the example `class F`, what does `.__call__` do? -the function is defined in `cpython/Objects/typeobject.c` +The function is defined in `cpython/Objects/typeobject.c`. -prototype is `static PyObject *type_call(PyTypeObject *type, PyObject *args, PyObject *kwds)` +The prototype is `static PyObject *type_call(PyTypeObject *type, PyObject *args, PyObject *kwds)`. -we can draw the following procedure according to the source code +We can draw the following procedure according to the source code ![creation_of_class](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/type/creation_of_class.png) # creation of instance -if we add the following line to the tail of the above codes +If we add the following line to the end of the above code ```python3 f = F() ``` -we can find other snippet of the `dis` result +We can find another snippet of the `dis` result ```python3 @@ -236,7 +236,7 @@ we can find other snippet of the `dis` result ``` -it simply calls the `__call__` attribute of `F` +It simply calls the `__call__` attribute of `F` ```python3 @@ -249,11 +249,11 @@ it simply calls the `__call__` attribute of `F` # metaclass -in the above procedures, we can learn that **metaclass** controls the creation of a **class**, the creation of **instance** doesn't invoke the **metaclass**, it just calls the `__call__` attribute of the class to create the instance +In the above procedures, we can learn that the **metaclass** controls the creation of a **class**. The creation of an **instance** doesn't invoke the **metaclass**; it just calls the `__call__` attribute of the class to create the instance ![difference_between_class_instance](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/type/difference_between_class_instance.png) -we can change the behaviour of a class on the fly by manually define a **metaclass** +We can change the behavior of a class on the fly by manually defining a **metaclass** ```python3 class F(object): diff --git a/Extension/C/c.md b/Extension/C/c.md index 8eaca8b..96727d5 100644 --- a/Extension/C/c.md +++ b/Extension/C/c.md @@ -12,13 +12,13 @@ # overview -recently I get a task to improve someone else's API performance written in Django server, the API will start an async job and in some cases last several minutes, I manage to improve a 40 seconds CPU bound task to lower than 1 second +Recently I got a task to improve someone else's API performance written in Django server. The API will start an async job and in some cases last several minutes. I managed to improve a 40-second CPU-bound task to lower than 1 second # example ## profile -[line_profiler](https://github.com/rkern/line_profiler) is a handful tool to begin with +[line_profiler](https://github.com/rkern/line_profiler) is a handy tool to begin with I am running with `python2.7` @@ -57,11 +57,11 @@ if __name__ == "__main__": ``` -notice, if you're running django server with `python manage.py runserver`, the default behaviour of `runserver` will spawn a thread to handle your request, there will be at least two thread register the `profile.print_stats`, their output may interleave together and become confused +Notice, if you're running Django server with `python manage.py runserver`, the default behavior of `runserver` will spawn a thread to handle your request. There will be at least two threads registering the `profile.print_stats`, and their output may interleave together and become confusing you may need to call `profile.print_stats()` manually in your code without register the `profile.print_stats` -this is the output +This is the output ```shell script Timer unit: 1e-06 s @@ -101,7 +101,7 @@ Line # Hits Time Per Hit % Time Line Contents ``` -we can see that `if i in meaningless_dict.keys():` takes about 128 seconds to run, this is mainly because `dict.keys()` will generate a new list like object and insert all the `keys` in the `dict` into the newly generated list, and `in dict.keys()` will become a `O(n)` list search +We can see that `if i in meaningless_dict.keys():` takes about 128 seconds to run. This is mainly because `dict.keys()` will generate a new list-like object and insert all the `keys` in the `dict` into the newly generated list, and `in dict.keys()` will become an `O(n)` list search for python3.x, `dict.keys()` will return a `dict_keys` object, which is a view of the `dict`, the performance issue will be gone @@ -130,23 +130,23 @@ Line # Hits Time Per Hit % Time Line Contents ``` -the runtime of the same line becomes about 3 seconds, it consumes about 18.6% runtime of the function, there still exist other time consuming line, can we do better ? +The runtime of the same line becomes about 3 seconds, it consumes about 18.6% runtime of the function. There still exist other time-consuming lines. Can we do better? ## C module -we can rewrite the **my_cpu_bound_task** in C +We can rewrite the **my_cpu_bound_task** in C -you can find all the C API you need from [python2.7-capi](https://docs.python.org/2.7/c-api/index.html) or [python3.7-capi](https://docs.python.org/3.7/c-api/index.html) +You can find all the C API you need from [python2.7-capi](https://docs.python.org/2.7/c-api/index.html) or [python3.7-capi](https://docs.python.org/3.7/c-api/index.html) -you can also refer to guide of [Writing a C Extension Module](http://madrury.github.io/jekyll/update/programming/2016/06/20/python-extension-modules.html) +You can also refer to the guide [Writing a C Extension Module](http://madrury.github.io/jekyll/update/programming/2016/06/20/python-extension-modules.html) ## python2 a [setup.py](https://github.com/zpoint/CPython-Internals/blob/master/Extension/C/profile_py2/my_mod/setup.py) is needed, and a source code file stores all the C function, I name it [my_module.c](https://github.com/zpoint/CPython-Internals/blob/master/Extension/C/profile_py2/my_mod/my_module.c) -I am not going to copy pasted all the C source code in the readme +I am not going to copy and paste all the C source code in the readme -it's avaliable in [CPython-Internals/Extension/C/profile_py2/my_mod/](https://github.com/zpoint/CPython-Internals/tree/master/Extension/C/profile_py2/my_mod) +It's available in [CPython-Internals/Extension/C/profile_py2/my_mod/](https://github.com/zpoint/CPython-Internals/tree/master/Extension/C/profile_py2/my_mod) ```shell script # only available for python2.x @@ -190,9 +190,9 @@ Line # Hits Time Per Hit % Time Line Contents a [setup.py](https://github.com/zpoint/CPython-Internals/blob/master/Extension/C/profile_py3/my_mod/setup.py) is needed, and a source code file stores all the C function, I name it [my_module.c](https://github.com/zpoint/CPython-Internals/blob/master/Extension/C/profile_py3/my_mod/my_module.c) -I am not going to copy pasted all the C source code in the readme +I am not going to copy and paste all the C source code in the readme -it's avaliable in [CPython-Internals/Extension/C/profile_py3/my_mod/](https://github.com/zpoint/CPython-Internals/tree/master/Extension/C/profile_py3/my_mod) +It's available in [CPython-Internals/Extension/C/profile_py3/my_mod/](https://github.com/zpoint/CPython-Internals/tree/master/Extension/C/profile_py3/my_mod) ```shell script # only available for python3.x diff --git a/Extension/CPP/cpp.md b/Extension/CPP/cpp.md index 39d8ed9..aa753b6 100644 --- a/Extension/CPP/cpp.md +++ b/Extension/CPP/cpp.md @@ -10,9 +10,9 @@ # overview -We've written [C extension](https://github.com/zpoint/CPython-Internals/blob/master/Extension/C/c.md) before to help performance penalty +We've written a [C extension](https://github.com/zpoint/CPython-Internals/blob/master/Extension/C/c.md) before to improve performance -Now we want to take a further step to develop a complex module in C++ and expose to python API +Now we want to take a further step to develop a complex module in C++ and expose it as a Python API The C++ compiler is compatible with C and I want to use the power of `STL` in `C++11`(or newer) standard @@ -52,7 +52,7 @@ Type "help", "copyright", "credits" or "license" for more information. Sometimes we need to work with NumPy, let's begin with an example -We take a two dimension numpy array, a one dimension numpy array as input and a double value, do some computation and write the result back to the one dimension array +We take a two-dimensional NumPy array, a one-dimensional NumPy array as input, and a double value, do some computation, and write the result back to the one-dimensional array The numpy array should have dtype float64 @@ -92,7 +92,7 @@ array([4.5, 6. ]) # bypass the GIL -What if we want to schedule a parallel task to utilize the run time of our task ? +What if we want to schedule a parallel task to utilize the runtime of our task? two_dim becomes `X * 3 * N` array @@ -110,9 +110,9 @@ def compute(two_dim: np.array, one_dim: np.array, val: np.float) -> None: # ... ``` -I want to seperate these tasks to several different threads, and let os schedule them to work together +I want to separate these tasks into several different threads, and let the OS schedule them to work together -We've learned [GIL](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/gil.md) before, we know that the interpreter in different thread will accquire the mutex before executing every python byte code, so as long as our code in different thread not executing by the python interpreter, everything will be find +We've learned about the [GIL](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/gil.md) before. We know that the interpreter in different threads will acquire the mutex before executing every Python bytecode, so as long as our code in different threads is not executed by the Python interpreter, everything will be fine We use the `std::future` from `C++ STL` to schedule our thread according to the environment variable `CONCURRENCY_NUM` diff --git a/Interpreter/code/code.md b/Interpreter/code/code.md index abacd0e..ea7b34c 100644 --- a/Interpreter/code/code.md +++ b/Interpreter/code/code.md @@ -24,7 +24,7 @@ > a code object is CPython's internal representation of a piece of runnable Python code, such as a function, a module, a class body, or a generator expression. When you run a piece of code, it is parsed and compiled into a code object, which is then run by the CPython virtual machine (VM) -for more detail, please refer to [What is a code object in Python?](https://www.quora.com/What-is-a-code-object-in-Python) +For more detail, please refer to [What is a code object in Python?](https://www.quora.com/What-is-a-code-object-in-Python) ![layout](https://img-blog.csdnimg.cn/20190208112516130.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMxNzIwMzI5,size_16,color_FFFFFF,t_70) @@ -32,7 +32,7 @@ for more detail, please refer to [What is a code object in Python?](https://www. ## example -let's run an example written in python +Let's run an example written in Python ```python3 def a(x, y, *args, z=3, **kwargs): @@ -67,7 +67,7 @@ print("co_cellvars", a.__code__.co_consts[1].co_cellvars) ``` -output +Output ```python3 co_argcount 2 @@ -159,7 +159,7 @@ def _unpack_opargs(code): ``` -so, **co_code** is the opcode and argument stores in binary format +So, **co_code** is the opcode and argument stored in binary format ```python3 >>> c = b'd\x01}\x00t\x00\x88\x01\x88\x00|\x00\x83\x03\x01\x00d\x00S\x00' @@ -169,7 +169,7 @@ so, **co_code** is the opcode and argument stores in binary format ``` -the binary format can be translated to +The binary format can be translated to ```python3 0 100 1 (LOAD_CONST) @@ -195,11 +195,11 @@ the binary format can be translated to > This means line number table, and stores a compressed mapping of bytecode instructions to line numbers. -let's see an example +Let's see an example. -the first pair (0, 1) in **co_lnotab** means byteoffset 0, line offset: 1 + co_firstlineno(7) == 8 +The first pair (0, 1) in **co_lnotab** means byte offset 0, line offset: 1 + co_firstlineno(7) == 8 -the second pair (4, 1) in **co_lnotab** means byteoffset 4, line offset 1 + 8(previous offset) == 9 +The second pair (4, 1) in **co_lnotab** means byte offset 4, line offset 1 + 8 (previous offset) == 9 ```python3 import dis @@ -227,15 +227,15 @@ print(dis.dis(f2)) ## co_zombieframe -you can read the following comment from `Objects/frameobject.c` +You can read the following comment from `Objects/frameobject.c` -for more detail, please refer to [frame object(zombie frame)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/frame.md#zombie-frame) +For more detail, please refer to [frame object(zombie frame)](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/frame.md#zombie-frame) > each code object will hold a single "zombie" frame. This retains the allocated and initialized frame object from an invocation of the code object. The zombie is reanimated the next time we need a frame object for that code object. Doing this saves the malloc/ realloc required when using a free_list frame that isn't the correct size. It also saves some field initialization. ## co_extra -this field stores a pointer to a **_PyCodeObjectExtra** object +This field stores a pointer to a **_PyCodeObjectExtra** object ```c typedef struct { @@ -245,8 +245,8 @@ typedef struct { ``` -since it has a size field and an array of (void *) pointer, it can store almost everything +Since it has a size field and an array of (void *) pointers, it can store almost everything. -usually, it's a function pointer related to the interpreter for debug or JIT usage +Usually, it's a function pointer related to the interpreter for debug or JIT usage. -for more detail please refer to [PEP 523 -- Adding a frame evaluation API to CPython](https://www.python.org/dev/peps/pep-0523/) \ No newline at end of file +For more detail please refer to [PEP 523 -- Adding a frame evaluation API to CPython](https://www.python.org/dev/peps/pep-0523/) \ No newline at end of file diff --git a/Interpreter/compile/compile.md b/Interpreter/compile/compile.md index c686074..01af1d8 100644 --- a/Interpreter/compile/compile.md +++ b/Interpreter/compile/compile.md @@ -42,7 +42,7 @@ python3 ./Tools/scripts/update_file.py ./Include/graminit.h ./Include/graminit.h python3 ./Tools/scripts/update_file.py ./Python/graminit.c ./Python/graminit.c.new ``` -There's a program inside the `Parser/` directory, the above command will compile and run the `Parser/pgenmain.o` and output a program named `Parser/pgen`, which takes a **grammar file** as input and generate `grammar` structure, `dfa` tables and etc...(above diagram) as outpout(two c files, `graminit.c` and `graminit.h`) +There's a program inside the `Parser/` directory. The above command will compile and run the `Parser/pgenmain.o` and output a program named `Parser/pgen`, which takes a **grammar file** as input and generates `grammar` structure, `dfa` tables, etc. (above diagram) as output (two C files, `graminit.c` and `graminit.h`) ![pgen](./pgen.png) @@ -54,7 +54,7 @@ The built-in `Parser/metagrammar.c` and `Include/metagrammar.h` will be used as `graminit` is used for parsing `Python` 's source code -They both generated in the same way, with different `Grammar` file +They are both generated in the same way, with different `Grammar` files ![pgen2](./pgen2.png) @@ -69,9 +69,9 @@ The `Parser/metagrammar.c` and `Include/metagrammar.h` 's grammar >ATOM: NAME | STRING | '(' RHS ')' >``` -It's like a compiler which can compile itself, For more detail please refer to [python compiler from grammar to dfa](https://aoik.me/blog/posts/python-compiler-from-grammar-to-dfa) +It's like a compiler which can compile itself. For more detail please refer to [Python compiler from grammar to dfa](https://aoik.me/blog/posts/python-compiler-from-grammar-to-dfa) -Let's focus on how `pgen` work with a simple example +Let's focus on how `pgen` works with a simple example ```bash % cat Grammar/ExampleGrammar @@ -89,7 +89,7 @@ Parser/pgen ./Grammar/ExampleGrammar \ ./Parser/examplegrammar.c ``` -With a little manual edition to make the following compile command work, the final [examplegrammar.c](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/gen/examplegrammar.c) +With a little manual editing to make the following compile command work, the final [examplegrammar.c](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/gen/examplegrammar.c) And compile the edited generated grammar code and compile a new `pgen2` program [example_grammar.sh](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/gen/example_grammar.sh) @@ -97,14 +97,14 @@ And compile the edited generated grammar code and compile a new `pgen2` program sh example_grammar.sh ``` -After get `Parser/pgen2`, we can verify that if our grammar works correctly +After getting `Parser/pgen2`, we can verify that our grammar works correctly ```bash % cat my_file.txt 1 + 3 + 4 2 - 5 # run the following command will fail, our purpose is to see the dfa state -# if you comment `Parser/parser.c`'s marco and set the `Parser/parser.c`'s marco to '#define D(x) x' and rerun the above compile command +# if you comment `Parser/parser.c`'s macro and set the `Parser/parser.c`'s macro to '#define D(x) x' and rerun the above compile command # you can see the output of DFA state is in the ACCEPT state # it means our grammar works correctly Parser/pgen2 ./my_file.txt \ @@ -132,13 +132,13 @@ The call stack of `Parser/pgenmain.c` `parsetok` will call `PyTokenizer_Get->tok_get` to get tokens, for each token, `PyParser_AddToken` will be called -`tokens` are predefined in `Parser/token.c` and `Include/token.h`, which is also auto generated from `Grammar/Tokens` by command `make regen-token` +`tokens` are predefined in `Parser/token.c` and `Include/token.h`, which are also auto-generated from `Grammar/Tokens` by the command `make regen-token` This is the helper structure when parsing ![parser](./parser.png) -There're too much detail, I am not going to show every element's value is every structure, Let's go through our `ExampleGrammar` with `my_file.txt` token by token +There are too many details. I am not going to show every element's value in every structure. Let's go through our `ExampleGrammar` with `my_file.txt` token by token After `push` diff --git a/Interpreter/descr/descr.md b/Interpreter/descr/descr.md index 36a8ab4..8f54c39 100644 --- a/Interpreter/descr/descr.md +++ b/Interpreter/descr/descr.md @@ -30,7 +30,7 @@ Thanks @Hanaasagi for pointing out the errors [#19](https://github.com/zpoint/CP ## built in types -let's see an example first before we look into how descriptor object implements +Let's see an example first before we look into how the descriptor object is implemented ```python3 print(type(str.center)) # @@ -38,11 +38,11 @@ print(type("str".center)) # ``` -what is type **method_descriptor** ? why will `str.center` returns a **method_descriptor** object, but `"str".center` returns a **builtin_function_or_method** ? how does attribute access work in python ? +What is type **method_descriptor**? Why does `str.center` return a **method_descriptor** object, but `"str".center` returns a **builtin_function_or_method**? How does attribute access work in Python? ### instance attribute access -this is the defination of `inspect.ismethoddescriptor` and `inspect.isdatadescriptor` +This is the definition of `inspect.ismethoddescriptor` and `inspect.isdatadescriptor` ```python3 def ismethoddescriptor(object): @@ -68,7 +68,7 @@ def isdatadescriptor(object): ``` -according to the comments, we know that **data descriptor** has both `__set__` and `__get__` attribute defined while **method descriptor** has only `__get__` defined +According to the comments, we know that a **data descriptor** has both `__set__` and `__get__` attributes defined while a **method descriptor** has only `__get__` defined if we **dis** the `print(type(str.center))` @@ -86,7 +86,7 @@ if we **dis** the `print(type(str.center))` ``` -we can see that the core **opcode** is `LOAD_ATTR`, follow the `LOAD_ATTR` to the `Python/ceval.c`, we can find the definition +We can see that the core **opcode** is `LOAD_ATTR`. Following `LOAD_ATTR` to `Python/ceval.c`, we can find the definition ```c case TARGET(LOAD_ATTR): { @@ -147,7 +147,7 @@ The only difference between them is the second parameter, which is of type `PyOb From the above `PyObject_GetAttr` function, we can learn that `tp_getattro` have a higher priority than `tp_getattr` -we can see how type **str** is defined in `Objects/unicodeobject.c` +We can see how type **str** is defined in `Objects/unicodeobject.c` ```c PyTypeObject PyUnicode_Type = { @@ -174,7 +174,7 @@ PyTypeObject PyUnicode_Type = { ``` -it's using the widely used c function `PyObject_GenericGetAttr` in cpython as it's `tp_getattro`, which is defined in `Objects/object.c` +It's using the widely used C function `PyObject_GenericGetAttr` in CPython as its `tp_getattro`, which is defined in `Objects/object.c` ```c PyObject * @@ -301,11 +301,11 @@ _PyObject_GenericGetAttrWithDict(PyObject *obj, PyObject *name, ``` -we can draw the process according to the code above +We can draw the process according to the code above ![_str__attribute_access](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/descr/_str__attribute_access.png) -until now, I made a mistake, the `tp_getattro` in `PyUnicode_Type` will not be called in `str.center`, otherwise, it will be called in `"str".center`, you can tell the differences in the following codes +Up until now, I made a mistake. The `tp_getattro` in `PyUnicode_Type` will not be called in `str.center`; rather, it will be called in `"str".center`. You can tell the differences in the following code ```python3 >>> type("str") @@ -324,13 +324,13 @@ until now, I made a mistake, the `tp_getattro` in `PyUnicode_Type` will not be c ``` -so, the procedure above describes the attribute access of `"str".center` +So, the procedure above describes the attribute access of `"str".center` ### class attribute access -let's find the definition of `` and how exactly `str.center` works (mostly same as `"str".center`) +Let's find the definition of `` and how exactly `str.center` works (mostly the same as `"str".center`) -for the type ``, the `LOAD_ATTR` calls the `type_getattro` +For the type ``, `LOAD_ATTR` calls `type_getattro` ```c PyTypeObject PyType_Type = { @@ -387,9 +387,9 @@ method_get(PyMethodDescrObject *descr, PyObject *obj, PyObject *type) ``` -now, we have the answers of -* why will `str.center` returns a **method_descriptor** object, but `"str".center` returns a **builtin_function_or_method** ? -* how does attribute access work in python ? +Now, we have the answers to: +* Why does `str.center` return a **method_descriptor** object, but `"str".center` returns a **builtin_function_or_method**? +* How does attribute access work in Python? ## self defined types @@ -604,16 +604,16 @@ Because `type(newly_created_class)` will always return ``, and the # method_descriptor -let's find out the answer of -* what is type **method_descriptor** ? +Let's find out the answer to: +* What is type **method_descriptor**? -it's defined in `Include/descrobject.h` +It's defined in `Include/descrobject.h` ## memory layout ![PyMethodDescrObject](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/descr/PyMethodDescrObject.png) -we can see that when you try to access `"str".center` and `str.center`, they both shares the same **PyMethodDescrObject**, which is a wrapper of the **PyMethodDef** object +We can see that when you try to access `"str".center` and `str.center`, they both share the same **PyMethodDescrObject**, which is a wrapper of the **PyMethodDef** object for those who are interested in **PyMethodDef**, please refer to [method](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/method/method.md) @@ -625,7 +625,7 @@ descr->d_common->d_type: 0x10fdefc10, descr->d_common->d_type.tp_name: str, repr ``` -there exists various descriptor type +There exist various descriptor types **PyMemberDescrObject**: wrapper of **PyMemberDef** @@ -633,7 +633,7 @@ there exists various descriptor type # how to change the behavior of attribute access -we know that when you try to access the attribute of an object, the python virtual machine will +We know that when you try to access the attribute of an object, the Python virtual machine will 1. execute the opcode `LOAD_ATTR` 2. `LOAD_ATTR` will try to call `tp_getattro` function of the object, if success go to 4 @@ -642,13 +642,13 @@ we know that when you try to access the attribute of an object, the python virtu the default `tp_getattro` will be installed in the creation process of the newly created type, different behaviour depends on what methods are override by user, generally, the default `tp_getattro` is `PyObject_GenericGetAttr` which implements the **descriptor protocol**(we learned above from the source code) -when we define a python object, if we need to change the behavior of attribute access +When we define a Python object, if we need to change the behavior of attribute access: -we are not able to change the behavior of opcode `LOAD_ATTR`, it's written in C +We are not able to change the behavior of opcode `LOAD_ATTR`; it's written in C. -instead, we can provide our own `__getattribute__` and `__getattr__` to change the function installed in the `tp_getattro` slot of the newly created type +Instead, we can provide our own `__getattribute__` and `__getattr__` to change the function installed in the `tp_getattro` slot of the newly created type. -notice, provide your own `__getattribute__` may violate the **descriptor protocol**, I will not recommend you to do that(usually we only need to define our own `__getattr__`) +Note: Providing your own `__getattribute__` may violate the **descriptor protocol**. I would not recommend doing that (usually we only need to define our own `__getattr__`) ```python3 class A(object): diff --git a/Interpreter/exception/exception.md b/Interpreter/exception/exception.md index 59468dc..0a31523 100644 --- a/Interpreter/exception/exception.md +++ b/Interpreter/exception/exception.md @@ -15,17 +15,17 @@ # memory layout -there are various exception types defined in `Include/cpython/pyerrors.h`, the most widely used **PyBaseExceptionObject**(also the base part of any other exception type) +There are various exception types defined in `Include/cpython/pyerrors.h`. The most widely used is **PyBaseExceptionObject** (also the base part of any other exception type) ![base_exception](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/exception/base_exception.png) -all other basic exception types defined in same C file are shown +All other basic exception types defined in the same C file are shown ![error_layout1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/exception/error_layout1.png) ![error_layout2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/exception/error_layout2.png) -what's following the definition of the basic exception types above are the definition of derived exception types according to exception hierarchy, because there're dozens of derived exceptions need to be defined, some **marco** are used for shortening the codes +Following the definition of the basic exception types above are the definitions of derived exception types according to the exception hierarchy. Because there are dozens of derived exceptions that need to be defined, some **macros** are used for shortening the code ```c #define SimpleExtendsException(EXCBASE, EXCNAME, EXCDOC) \ @@ -141,7 +141,7 @@ BaseException # exception handling -let's define an example +Let's define an example ```python3 import sys @@ -182,7 +182,7 @@ def t2(): # position 1 ``` -and try to compile it +And try to compile it ```python3 python.exe -m dis .\test.py @@ -406,11 +406,11 @@ Disassembly of : ``` -we can see that the opcode `0 SETUP_FINALLY 178 (to 202)` maps to the outermost `finally` statement, 0 is the byte offset of opcode, 178 is the parameter of the `SETUP_FINALLY`, the real handler offset is calculated as `INSTR_OFFSET() + oparg`(`INSTR_OFFSET` is the byte offset of the first opcode to the next opcode(here is 24), `oparg` is the parameter 178), which adds up to 202 in result +We can see that the opcode `0 SETUP_FINALLY 178 (to 202)` maps to the outermost `finally` statement. 0 is the byte offset of the opcode, 178 is the parameter of `SETUP_FINALLY`. The real handler offset is calculated as `INSTR_OFFSET() + oparg` (`INSTR_OFFSET` is the byte offset of the first opcode to the next opcode (here it's 24), `oparg` is the parameter 178), which adds up to 202 `2 SETUP_FINALLY 26 (to 52)` maps to the first `except` statement, the byte offset of opcode is 26(`LOAD_GLOBAL`) and the parameter of the `SETUP_FINALLY` is also 26, 26(parameter) + 26(opcode offset) is 52 -what does `SETUP_FINALLY` do ? +What does `SETUP_FINALLY` do? ```c /* cpython/Python/ceval.c */ @@ -439,21 +439,21 @@ void PyFrame_BlockSetup(PyFrameObject *f, int type, int handler, int level) ``` -for those who need detail of frame object, please refer to [frame object](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/frame.md) +For those who need details about the frame object, please refer to [frame object](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/frame.md). -the `PyFrame_BlockSetup` will be called in the following opcode `SETUP_FINALLY`, `SETUP_ASYNC_WITH`, and `SETUP_WITH`(parameter `int type` equals `SETUP_FINALLY` in these opcode) +`PyFrame_BlockSetup` will be called in the following opcodes: `SETUP_FINALLY`, `SETUP_ASYNC_WITH`, and `SETUP_WITH` (parameter `int type` equals `SETUP_FINALLY` in these opcodes) `RAISE_VARARGS`, `END_FINALLY` and `END_ASYNC_FOR` will call `PyFrame_BlockSetup` in some cases -what will happen if we call the function `t2()` ? +What will happen if we call the function `t2()`? -this is the definition of `PyTryBlock` +This is the definition of `PyTryBlock` ![try_block](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/exception/try_block.png) in `position 1` -the value `CO_MAXBLOCKS` is 20, you can't set up more than 20 blocks inside a frame(`try/finally/with/async with`) +The value `CO_MAXBLOCKS` is 20. You can't set up more than 20 blocks inside a frame (`try/finally/with/async with`) ![pos1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/exception/pos1.png) @@ -520,11 +520,11 @@ exception_unwind: bacause `66 SETUP_FINALLY 116 (to 184)` exists before the `print("position 5\n\n")` statement, the third try block will exist -the block is created by the compiler, the opcode `184 LOAD_CONST 0 (None)` is between `position 8` and `position 9`, it does nothing except for load variable `e1` and deallocates `e1` +The block is created by the compiler. The opcode `184 LOAD_CONST 0 (None)` is between `position 8` and `position 9`. It does nothing except load variable `e1` and deallocate `e1` ![pos5](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/exception/pos5.png) -in `position 6`, the following two opcodes create two more try block +in `position 6`, The following two opcodes create two more try blocks ```python3 12 82 SETUP_FINALLY 80 (to 164) diff --git a/Interpreter/frame/frame.md b/Interpreter/frame/frame.md index 86825d9..0483629 100644 --- a/Interpreter/frame/frame.md +++ b/Interpreter/frame/frame.md @@ -18,7 +18,7 @@ # memory layout -the **PyFrameObject** is the stack frame in python virtual machine, it contains space for the currently executing code object, parameters, variables in different scope, try block info and etc +The **PyFrameObject** is the stack frame in the Python virtual machine. It contains space for the currently executing code object, parameters, variables in different scopes, try block info, and more for more information please refer to [stack frame strategy](https://en.citizendium.org/wiki/Stack_frame) @@ -26,13 +26,13 @@ for more information please refer to [stack frame strategy](https://en.citizendi # example -every time you make a function call, a new **PyFrameObject** will be created and attached to the current function call +Every time you make a function call, a new **PyFrameObject** will be created and attached to the current function call. -it's not intuitive to trace a frame object in the middle of a function, I will use a [generator object](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/gen/gen.md) to do the explanation +It's not intuitive to trace a frame object in the middle of a function. I will use a [generator object](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/gen/gen.md) to do the explanation. -you can always get the frame of the current environment by executing `sys._current_frames()` +You can always get the frame of the current environment by executing `sys._current_frames()`. -if you need the meaning of each field, please refer to [Junnplus' blog](https://github.com/Junnplus/blog/issues/22) or read source code directly +If you need the meaning of each field, please refer to [Junnplus' blog](https://github.com/Junnplus/blog/issues/22) or read the source code directly ## f_valuestack/f_stacktop/f_localsplus @@ -81,7 +81,7 @@ def g2(a, b=1, c=2): ``` -the **dis** result +The **dis** result ```python3 # ./python.exe -m dis frame_dis.py @@ -124,7 +124,7 @@ Disassembly of : ``` -let's iter through the generator +Let's iterate through the generator ```python3 >>> gg = g2("param a") @@ -133,13 +133,13 @@ let's iter through the generator ![example0](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/frame/example0.png) -after the first **next** returns, the first **opcode** `0 LOAD_FAST 0 (a)` will be executed and the current execution flow is in the middle of the second **opcode** `2 YIELD_VALUE` +After the first **next** returns, the first **opcode** `0 LOAD_FAST 0 (a)` will be executed and the current execution flow is in the middle of the second **opcode** `2 YIELD_VALUE`. -the field **f_lasti** is 2, indicate that the virtual program counter is in `2 YIELD_VALUE` +The field **f_lasti** is 2, indicating that the virtual program counter is at `2 YIELD_VALUE`. -the **opcode** `LOAD_FAST` will push the paramter to the **f_valuestack**, and **opcode** `YIELD_VALUE` will **pop** the top element in the **f_valuestack**, the defination of **pop** is `#define BASIC_POP() (*--stack_pointer)` +The **opcode** `LOAD_FAST` will push the parameter to **f_valuestack**, and **opcode** `YIELD_VALUE` will **pop** the top element from **f_valuestack**. The definition of **pop** is `#define BASIC_POP() (*--stack_pointer)`. -the value(address 0x100a5b538) in **f_valuestack** is the same as the previous step(previous picture), but the first element the address(0x100a5b538) pointed to is different, currently it's a pointer to a PyUnicodeObject('param a') or an invalid address(if the PyUnicodeObject is deallocated)) +The value (address 0x100a5b538) in **f_valuestack** is the same as the previous step (previous picture), but the first element the address (0x100a5b538) points to is different. Currently, it's a pointer to a PyUnicodeObject('param a') or an invalid address (if the PyUnicodeObject is deallocated) ```python3 >>> next(gg) @@ -156,23 +156,23 @@ the value(address 0x100a5b538) in **f_valuestack** is the same as the previous s ``` -the opcode `6 LOAD_GLOBAL 0 (str)` `8 LOAD_FAST 1 (b)` and `10 LOAD_FAST 2 (c)` in line 3 pushes **str**(parameter str is stored in the frame-f_code->co_names field), **b**(int 1) and **c**(int 2) to **f_valuestack**, opcode `12 BINARY_ADD` pops off the top 2 elements in **f_valuestack**(**b** and **c**), sum these two values, store to the top of the **f_valuestack**, this is what the **f_valuestack** looks like after `12 BINARY_ADD` +The opcodes `6 LOAD_GLOBAL 0 (str)`, `8 LOAD_FAST 1 (b)`, and `10 LOAD_FAST 2 (c)` in line 3 push **str** (parameter str is stored in the frame->f_code->co_names field), **b** (int 1), and **c** (int 2) to **f_valuestack**. Opcode `12 BINARY_ADD` pops off the top 2 elements in **f_valuestack** (**b** and **c**), sums these two values, and stores the result at the top of **f_valuestack**. This is what **f_valuestack** looks like after `12 BINARY_ADD` ![example1_2](./example1_2.png) -the opcode `14 CALL_FUNCTION 1` will pop the function and argument off the stack and delegate the actual function call +The opcode `14 CALL_FUNCTION 1` will pop the function and argument off the stack and delegate the actual function call. -after the function call, result `'3'` is pushed onto the stack +After the function call, the result `'3'` is pushed onto the stack ![example1_2_1](./example1_2_1.png) -opcode `16 STORE_FAST 2 (c)` pops off the top element in the **f_valuestack** and stores it into the 2th position of the **f_localsplus** +Opcode `16 STORE_FAST 2 (c)` pops off the top element in **f_valuestack** and stores it into the 2nd position of **f_localsplus** ![example1_2_2](./example1_2_2.png) -opcode `18 LOAD_FAST 2 (c)` push the 2th element in the **f_localsplus** onto the **f_valuestack**, and `20 YIELD_VALUE ` pops it and send it to the caller +Opcode `18 LOAD_FAST 2 (c)` pushes the 2nd element in **f_localsplus** onto **f_valuestack**, and `20 YIELD_VALUE` pops it and sends it to the caller. -field **f_lasti** is 20, indicate that it's currently executing the opcode `20 YIELD_VALUE` +Field **f_lasti** is 20, indicating that it's currently executing the opcode `20 YIELD_VALUE` ![example2](./example2.png) @@ -192,7 +192,7 @@ after `32 LOAD_FAST 3 (new_g)` ![example1_3_4](./example1_3_4.png) -the opcode `34 GET_YIELD_FROM_ITER` makes sure the stack's top is an iterable object +The opcode `34 GET_YIELD_FROM_ITER` makes sure the stack's top is an iterable object `36 LOAD_CONST 0 (None)` pushes `None` onto the stack @@ -202,13 +202,13 @@ the opcode `34 GET_YIELD_FROM_ITER` makes sure the stack's top is an iterable ob ``` -field **f_lasti** is 36, indicate that it's after `38 YIELD_FROM` +Field **f_lasti** is 36, indicating that it's after `38 YIELD_FROM`. -in the end of `YIELD_FROM` the following code `f->f_lasti -= sizeof(_Py_CODEUNIT);` reset the `f_lasti` to the beginning of `YIELD_FROM` [Thanks to @RyanHe123](https://github.com/zpoint/CPython-Internals/issues/46) +At the end of `YIELD_FROM`, the following code `f->f_lasti -= sizeof(_Py_CODEUNIT);` resets `f_lasti` to the beginning of `YIELD_FROM` [Thanks to @RyanHe123](https://github.com/zpoint/CPython-Internals/issues/46) ![example3](./example3.png) -the frame object deallocated after the **StopIteration** raised (the opcode `44 RETURN_VALUE` also executed) +The frame object is deallocated after **StopIteration** is raised (the opcode `44 RETURN_VALUE` is also executed) ```python3 >>> next(gg) @@ -226,9 +226,9 @@ StopIteration ## f_blockstack -f_blockstack is an array, element type is **PyTryBlock**, size is **CO_MAXBLOCKS**(20) +f_blockstack is an array. The element type is **PyTryBlock** and the size is **CO_MAXBLOCKS** (20). -the definition of **PyTryBlock** +The definition of **PyTryBlock** ```c typedef struct { @@ -239,7 +239,7 @@ typedef struct { ``` -let's define a generator with some blocks +Let's define a generator with some blocks ```python3 def g3(): @@ -265,9 +265,9 @@ def g3(): ![blockstack0](./blockstack0.png) -in the first **yield** statement, the first **try block** is set up +In the first **yield** statement, the first **try block** is set up. -**f_iblock** is 1, indicate that there's currently one block +**f_iblock** is 1, indicating that there's currently one block **b_type** 122 is the opcode `SETUP_FINALLY`, **b_handler** 20 is the opcode location of the `except ZeroDivisionError`, **b_level** 0 is the stack pointer's position to use @@ -322,7 +322,7 @@ in the first **yield** statement, the first **try block** is set up ![blockstack4](./blockstack4.png) -the other two try block is handled properly +The other two try blocks are handled properly ```python3 >>> next(gg) @@ -338,7 +338,7 @@ the other two try block is handled properly ![blockstack5](./blockstack5.png) -frame object deallocated +Frame object is deallocated ```python3 >>> next(gg) @@ -350,7 +350,7 @@ StopIteration ## f_back -**f_back** is a pointer which points to the previous frame, it makes the related frames a single linked list +**f_back** is a pointer that points to the previous frame. It makes the related frames a singly linked list ```python3 import inspect @@ -366,7 +366,7 @@ g4(3) ``` -output +Output ```python3 depth 3 @@ -386,9 +386,9 @@ depth 0 ## zombie frame -the first time a code object attached to a frame object, after the execution of the code block, the frame object will not be freed, it becomes a "zombie" frame, next time the code block executes again, it will reuse the same frame object +The first time a code object is attached to a frame object, after the execution of the code block, the frame object will not be freed. It becomes a "zombie" frame. The next time the code block executes again, it will reuse the same frame object. -the strategy saves malloc/realloc overhead and some field initialization +This strategy saves malloc/realloc overhead and some field initialization ```python3 def g5(): @@ -412,7 +412,7 @@ StopIteration ## free_list sub -there's a single linked list store the deallocated frame object, it saves malloc/free overhead +There's a singly linked list that stores the deallocated frame objects. It saves malloc/free overhead ```c static PyFrameObject *free_list = NULL; @@ -422,7 +422,7 @@ static int numfree = 0; /* number of frames currently in free_list */ ``` -When a **PyFrameObject** is on the free list, only the following members have a meaning +When a **PyFrameObject** is on the free list, only the following members have meaning ```python3 ob_type == &Frametype @@ -432,7 +432,7 @@ ob_size size of localsplus ``` -the creating process will check if the stack size is enough +The creation process will check if the stack size is enough ```c if (Py_SIZE(f) < extras) { @@ -440,7 +440,7 @@ if (Py_SIZE(f) < extras) { ``` -let's see an example +Let's see an example ```python3 import inspect diff --git a/Interpreter/gc/gc.md b/Interpreter/gc/gc.md index faeb439..8da40dd 100644 --- a/Interpreter/gc/gc.md +++ b/Interpreter/gc/gc.md @@ -31,18 +31,18 @@ # introduction -the garbage collection in CPython consists of two components +The garbage collection in CPython consists of two components * **reference counting** (mostly defined in `Include/object.h`) * **generational garbage collection** (mostly defined in `Modules/gcmodule.c`) ## reference counting -as [wikipedia](https://en.wikipedia.org/wiki/Reference_counting) says +As [Wikipedia](https://en.wikipedia.org/wiki/Reference_counting) says > In computer science, reference counting is a technique of storing the number of references, pointers, or handles to a resource such as an object, block of memory, disk space or other resource. It may also refer, more specifically, to a garbage collection algorithm that uses these reference counts to deallocate objects which are no longer referenced -in python +In Python ```python3 s = "hello world" @@ -68,7 +68,7 @@ s = "hello world" ![refcount2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/refcount2.png) -let's compile a script +Let's compile a script ```python3 s = [] @@ -77,7 +77,7 @@ del s ``` -the output is +The output is ```python3 1 0 BUILD_LIST 0 @@ -92,9 +92,9 @@ the output is ``` -in the first line `s = []` +In the first line `s = []` -`0 BUILD_LIST 0` simply create a new list, initialize it's reference count to 1, and push it onto the stack +`0 BUILD_LIST 0` simply creates a new list, initializes its reference count to 1, and pushes it onto the stack `2 STORE_NAME 0` @@ -132,13 +132,13 @@ case TARGET(STORE_NAME): { ``` -before execute line 2 `s2 = s`, reference count of the newly created list object is 1 +Before executing line 2 `s2 = s`, the reference count of the newly created list object is 1 -`4 LOAD_NAME 0` gets the value stores in local namespace with key 's' ---- the newly created list object, increment it's reference count, and push it onto the stack +`4 LOAD_NAME 0` gets the value stored in local namespace with key 's' ---- the newly created list object, increments its reference count, and pushes it onto the stack -until now, the reference count of the newly created list object is 2(one from 's', one from the stack) +Until now, the reference count of the newly created list object is 2 (one from 's', one from the stack) -`6 STORE_NAME 1` executes the above code again, the difference is the name now becomes 's2', after this opcode, reference count of the list becomes 2 +`6 STORE_NAME 1` executes the above code again. The difference is the name now becomes 's2'. After this opcode, the reference count of the list becomes 2 `8 DELETE_NAME 0 (s)` @@ -174,7 +174,7 @@ case TARGET(DELETE_NAME): { ### when will it be triggered -if the reference count becomes 0, the deallocate procedure will be triggered immediately +If the reference count becomes 0, the deallocation procedure will be triggered immediately ```c /* cpython/Include/object.h */ @@ -202,7 +202,7 @@ static inline void _Py_DECREF(const char *filename, int lineno, ### reference cycle problem -there're some situations that the reference counting can't handle +There are some situations that reference counting can't handle ### example1 @@ -227,7 +227,7 @@ reference count of **a1** and **a2** are both 2 ``` -now, the reference from local namespace is deleted, and they both have a reference to each other, there's no way for the reference count of **a1**/**a2** to become 0 +Now, the reference from the local namespace is deleted, and they both have a reference to each other. There's no way for the reference count of **a1**/**a2** to become 0 ![ref_cycle2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/ref_each2.png) @@ -248,13 +248,13 @@ now, the reference from local namespace is deleted, and they both have a referen ``` -the reference from local namespace is deleted, the reference count of **a** will stays 1 and never become 0 +The reference from the local namespace is deleted. The reference count of **a** will stay 1 and never become 0 ![ref_cycle1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/ref_cycle2.png) ## generational garbage collection -If there's only one mechanism **reference counting** working, the interpreter will risk the memory leak issue due to the reference cycle in the above examples +If only one mechanism (**reference counting**) were working, the interpreter would risk memory leak issues due to the reference cycles in the above examples **generational garbage collection** is the other component used for detecting and garbage collecting the unreachable object @@ -274,7 +274,7 @@ class A: ### track -there must be a way to keep track of all the heap allocated **PyObject** +There must be a way to keep track of all the heap-allocated **PyObject**s **generation0** is a pointer, to the head of the linked list, each element in the linked list consists of two parts, the first part is **PyGC_Head**, the second part is **PyObject** @@ -284,29 +284,29 @@ there must be a way to keep track of all the heap allocated **PyObject** ![track](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/track.png) -when you create a python object such as `a = list()`, object **a** of type **list** will be appended to the end of the linked list in **generation0**, so **generation0** is able to track all the newly created python object +When you create a Python object such as `a = list()`, object **a** of type **list** will be appended to the end of the linked list in **generation0**, so **generation0** is able to track all the newly created Python objects -actually, the linked list is linked via **_gc_next**, **_gc_prev** is not a valid pointer, it's used for storing bit flag and other information +Actually, the linked list is linked via **_gc_next**. **_gc_prev** is not a valid pointer; it's used for storing bit flags and other information ### generational -if all newly created objects are appended to the tail of one linked list, somehow it will be a very huge linked list +If all newly created objects are appended to the tail of one linked list, it will eventually become a very huge linked list. -for some program designed for running for a long time, there must exist some long lived objects, repeating garbage collecting these objects will waste lots of CPU time +For programs designed for running for a long time, there must exist some long-lived objects. Repeatedly garbage collecting these objects will waste lots of CPU time. -generations is used in the purpose of doing less collections +Generations are used for the purpose of doing fewer collections. -CPython used three generations totally, the newly created objects is stored in the first generation, when an object survive a round of gc, it will be moved to next generation +CPython uses three generations in total. Newly created objects are stored in the first generation. When an object survives a round of GC, it will be moved to the next generation. -lower generation will be collected more frequently, higher generation will be collected less frequently +Lower generations will be collected more frequently; higher generations will be collected less frequently. -when a generation is being collected, all the generations lower than the current will be merged together before collection +When a generation is being collected, all the generations lower than the current one will be merged together before collection ![generation](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/generation.png) ### update_refs -let's run a procedure of garbage collection +Let's run a procedure of garbage collection ```python3 # assume a1, a2, b survived in generation0, and move to generation1 @@ -326,13 +326,13 @@ let's run a procedure of garbage collection ![update_ref1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/update_ref1.png) -first step is to merge every generation lower than the current generation, mark this merged generation as **young**, mark the generation next to the current generation as **old** +The first step is to merge every generation lower than the current generation, mark this merged generation as **young**, and mark the generation next to the current generation as **old** ![young_old](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/young_old.png) -function **update_refs** will copy object's reference count, stores in the **_gc_prev** field of the object, the right most 2 bit of **_gc_prev** is reserved of some marking +Function **update_refs** will copy the object's reference count and store it in the **_gc_prev** field of the object. The rightmost 2 bits of **_gc_prev** are reserved for some marking. -so, the copy of the reference count will left shift 2 before stores in the **_gc_prev** +So, the copy of the reference count will be left-shifted by 2 before being stored in **_gc_prev** `1 / 0x06` means the copy of the reference count is `1`, but the value actually stores in **_gc_prev** is `0x06` @@ -340,31 +340,31 @@ so, the copy of the reference count will left shift 2 before stores in the **_gc ### subtract_refs -function **subtract_refs** will traverse the **young** generation, iterate through every object in the linked list +Function **subtract_refs** will traverse the **young** generation, iterating through every object in the linked list. -for every object in the generation, check if every other object accessible from the current object is collectable and in the same generation, if so, decrement the copied reference count in **_gc_prev** (calls **tp_traverse** with the function **visit_decref**) +For every object in the generation, check if every other object accessible from the current object is collectable and in the same generation. If so, decrement the copied reference count in **_gc_prev** (calls **tp_traverse** with the function **visit_decref**). -this step aims to decrement reference count referenced by those objects in same generation +This step aims to decrement reference counts referenced by those objects in the same generation ![subtract_refs](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/subtract_refs.png) ### move_unreachable -**move_unreachable** will create a linked list named **unreachable**, traverse the current **generation** named **young**, move those objects with the value of the copy of the reference count <= 0 to **unreachable** +**move_unreachable** will create a linked list named **unreachable**, traverse the current **generation** named **young**, and move those objects with the value of the copy of the reference count <= 0 to **unreachable**. -if the current object has the value of the copy of the reference count > 0, for every other object in same generation reachable from the current object, if the accessible object has a copy of the reference count <= 0, reset the reference count to 1, and move that object to the tail of **generation** if it's currentlt in **unreachable** +If the current object has the value of the copy of the reference count > 0, for every other object in the same generation reachable from the current object, if the accessible object has a copy of the reference count <= 0, reset the reference count to 1 and move that object to the tail of **generation** if it's currently in **unreachable**. -let's see an example +Let's see an example. -first object in **generation** is the local **namespace**, because **namespace** object is reachable, all objects reachable from the local **namespace** is also reachable, so the **_gc_prev** of `c` and `d2` are all set to `0x06` +The first object in **generation** is the local **namespace**. Because the **namespace** object is reachable, all objects reachable from the local **namespace** are also reachable, so the **_gc_prev** of `c` and `d2` are all set to `0x06` ![move_unreachable1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/move_unreachable1.png) -the second object is `a1`, since `a1`'s copy of the reference count is <= 0, it's moved to **unreachable** +The second object is `a1`. Since `a1`'s copy of the reference count is <= 0, it's moved to **unreachable** ![move_unreachable2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/move_unreachable2.png) -so does `a2` +So does `a2` ![move_unreachable3](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/move_unreachable3.png) @@ -372,17 +372,17 @@ so does `a2` ![move_unreachable4](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/move_unreachable4.png) -now, it comes to `c` +Now, it comes to `c`. -because the copy of the reference count of `c`'s value is > 0, it will stay in the **generation** +Because the copy of the reference count of `c`'s value is > 0, it will stay in the **generation** ![move_unreachable5](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/move_unreachable5.png) -because `d1`'s copy of the reference count is <= 0, it's moved to **unreachable** +Because `d1`'s copy of the reference count is <= 0, it's moved to **unreachable** ![move_unreachable6](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/move_unreachable6.png) -because `d2`'s copy of the reference count is > 0, and `d1` is reachable from `d2` +Because `d2`'s copy of the reference count is > 0, and `d1` is reachable from `d2` ![move_unreachable7](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/move_unreachable7.png) @@ -390,21 +390,21 @@ because `d2`'s copy of the reference count is > 0, and `d1` is reachable from `d ![move_unreachable8](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/move_unreachable8.png) -when it comes to `d1`, copy of the reference count is > 0 +When it comes to `d1`, the copy of the reference count is > 0. -and we reach the end of the **generation**, so every object stays in **unreachable** can be garbage collected +We have reached the end of the **generation**, so every object that stays in **unreachable** can be garbage collected. -all objects survive this round of garbage collections will be moved to the elder **generation** +All objects that survive this round of garbage collection will be moved to the older **generation** ![move_unreachable9](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/move_unreachable9.png) ### finalizer -what if an unusual object(which contains cyclic reference) needed to be garbage collected has defined it's own finalizer ? +What if an unusual object (which contains a cyclic reference) that needs to be garbage collected has defined its own finalizer? -before python3.4, those objects won't be collected, they will be moved to `gc.garbage` and you need to call `__del__` and collect them manually +Before Python 3.4, those objects wouldn't be collected. They would be moved to `gc.garbage` and you would need to call `__del__` and collect them manually. -after python3.4, [pep-0442](https://legacy.python.org/dev/peps/pep-0442/) solves the problem +After Python 3.4, [PEP-0442](https://legacy.python.org/dev/peps/pep-0442/) solves the problem ```python3 class A: @@ -433,47 +433,47 @@ gc.collect() ``` -this is the layout after **move_unreachable** +This is the layout after **move_unreachable** ![finalize1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/finalize1.png) -step1, all objects defined it's own finalizer, the `__del__` methods will be called +Step 1: For all objects that have defined their own finalizer, the `__del__` methods will be called after `__del__` ![finalize2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/finalize2.png) -step2, do **update_refs** in **unreachable** +Step 2: Do **update_refs** in **unreachable** -notice, the first bit flag of `b` in **_gc_prev** is set, indicate that it's finalizer is called +Notice that the first bit flag of `b` in **_gc_prev** is set, indicating that its finalizer has been called ![finalize3](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/finalize3.png) -step3, do **subtract_refs** in **unreachable** +Step 3: Do **subtract_refs** in **unreachable** -this step aims to elimate the reference cycle among objects in **unreachable** +This step aims to eliminate the reference cycle among objects in **unreachable**. -then, traverse every object in **unreachable**, check if any object with the value of copy of the reference count > 0, if so, it means at least one object in **unreachable** makes outer object create new reference to this object, then go to step4 +Then, traverse every object in **unreachable** and check if any object has the value of copy of the reference count > 0. If so, it means at least one object in **unreachable** makes an outer object create a new reference to this object, then go to step 4. -if not, after traverse, collecte all objects in **unreachable** and return +If not, after traversing, collect all objects in **unreachable** and return ![finalize4](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/finalize4.png) -stp4, move all objects in **unreachable** to **old** generation +Step 4: Move all objects in **unreachable** to **old** generation -if there's any object in **unreachable** defined it's own `__del__`, the `__del__` methods will be called in step1, and all objects in **unreachable** will survive this round of garbage collection +If any object in **unreachable** has defined its own `__del__`, the `__del__` methods will be called in step 1, and all objects in **unreachable** will survive this round of garbage collection ![finalize5](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/finalize5.png) -in the next round of gc, object `a1` and `a2` will be collected, because object `b`'s reference count is greater than 0 after the **subtract_refs**, it won't be moved to **unreachable** +In the next round of GC, objects `a1` and `a2` will be collected. Because object `b`'s reference count is greater than 0 after **subtract_refs**, it won't be moved to **unreachable**. -if the `__del__` methods is called, the bit flag in **_gc_prev** will be set, so the `__del__` will be called only once +If the `__del__` method is called, the bit flag in **_gc_prev** will be set, so `__del__` will be called only once ### threshold -there are three generations totally, and three **threshold**, each generation has a **threshold** +There are three generations in total, and three **thresholds**. Each generation has a **threshold**. -before performing collection, CPython will exam from high generation to low generation, if currently the number of objects in the current generation is greater than **threshold**, **gc** will begin in the current generation +Before performing collection, CPython will examine from high generation to low generation. If the number of objects in the current generation is greater than the **threshold**, **GC** will begin in the current generation ```python3 >>> gc.get_threshold() @@ -481,7 +481,7 @@ before performing collection, CPython will exam from high generation to low gene ``` -it can be set manually +It can be set manually ```python3 gc.set_threshold(500) @@ -491,7 +491,7 @@ gc.set_threshold(100, 20) ### when will generational gc be triggered -one way is to call `gc.collect()` manually, it will collect the highest collection directly +One way is to call `gc.collect()` manually. It will collect the highest generation directly ```python3 >>> import gc @@ -499,31 +499,31 @@ one way is to call `gc.collect()` manually, it will collect the highest collecti ``` -the other way is when the intepreter malloc a new space from the heap +The other way is when the interpreter mallocs a new space from the heap ![generation_trigger1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/generation_trigger1.png) -the `collect` procedure will check from the highest to lowest generation +The `collect` procedure will check from the highest to lowest generation. -first check the **generation2**, **generation2**'s count is less than **threashold** +First, check **generation2**. **generation2**'s count is less than the **threshold** ![generation_trigger2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/generation_trigger2.png) -then check **generation1**, **generation1**'s count is greater than **threashold**, collect procedure begins in **generation1** +Then check **generation1**. **generation1**'s count is greater than the **threshold**, so the collect procedure begins in **generation1** ![generation_trigger3](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/generation_trigger3.png) -the collect procedure will merge all the generations lower than the current, and do what's described above +The collect procedure will merge all the generations lower than the current one and do what's described above ![generation_trigger4](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/generation_trigger4.png) -if the gc is collecting the highest generation, all the free_list will be freed, if you read other article such as [list](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/list.md) or [tuple](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/tuple/tuple.md), you can find what's free_list +If the GC is collecting the highest generation, all the free_list will be freed. If you read other articles such as [list](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/list/list.md) or [tuple](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/tuple/tuple.md), you can find what free_list is # summary -because the gc algorithm CPython used is not a parallel algorithm, a global lock such as [gil](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/gil.md) is necessary to protect the critical region when set up the track of an object to gc, or when garbage collecting any of the generations +Because the GC algorithm CPython uses is not a parallel algorithm, a global lock such as the [GIL](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/gil.md) is necessary to protect the critical region when setting up the track of an object to GC, or when garbage collecting any of the generations. -while other garbage collector in other programming language such as [Java-g1](http://idiotsky.top/2018/07/28/java-g1/) use **Young GC** or **Mix GC**(combined with Tri-Color algorithm for global concurrent marking) to do the garbage collection +Other garbage collectors in other programming languages such as [Java-g1](http://idiotsky.top/2018/07/28/java-g1/) use **Young GC** or **Mix GC** (combined with the Tri-Color algorithm for global concurrent marking) to do the garbage collection # read more diff --git a/Interpreter/gil/gil.md b/Interpreter/gil/gil.md index 6fb1875..de7d594 100644 --- a/Interpreter/gil/gil.md +++ b/Interpreter/gil/gil.md @@ -31,7 +31,7 @@ This is the definition of the [**Global Interpreter Lock**](https://wiki.python. ## Thread scheduling before Python 3.2 -Basically, the **tick** is a counter for how many opcodes current thread executed continuously without releasing the **GIL**. +Basically, the **tick** is a counter for how many opcodes the current thread has executed continuously without releasing the **GIL**. If the current thread is running a CPU-bound task, it will release the **gil** and offer an opportunity for another thread to run for every 100 **ticks**. @@ -42,29 +42,29 @@ You can call `sys.setcheckinterval()` to set other **tick** count value instead ![old_gil](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/old_gil.png) (picture from [Understanding the Python GIL(youtube)](https://www.youtube.com/watch?v=Obt-vMVdM8s)) -Because the **tick** is not time-based, some thread might run far longer than other threads. +Because the **tick** is not time-based, some threads might run far longer than others. -In multi-core machine, if two threads both running CPU-bound tasks, the OS might schedule the two threads running on different cores, there might be a situation that one thread holding the **GIL** executing its task in its **100 ticks cycle** in a core, while the thread in the other core wakes up periodically try to acquire the **GIL** but fail, spinning the CPU. +On a multi-core machine, if two threads are both running CPU-bound tasks, the OS might schedule them to run on different cores. There might be a situation where one thread holding the **GIL** is executing its task in its **100 ticks cycle** on one core, while the thread on the other core wakes up periodically trying to acquire the **GIL** but fails, spinning the CPU. -The job (thread) schedule mechanism is fully controlled by the operating system, the thread handling an IO-bound task have to wait for other thread to release the **GIL**, and other thread might re-acquire the **GIL** after it release the **GIL**, which makes the current IO-bound task thread wait even longer (actually, the thread that cause OS's context-switch by itself will have higher priority than those thread forced by the OS, programmer can utilize this feature by putting the IO-bound thread to sleep as soon as possible). +The job (thread) scheduling mechanism is fully controlled by the operating system. The thread handling an IO-bound task has to wait for another thread to release the **GIL**, and that other thread might re-acquire the **GIL** after releasing it, which makes the current IO-bound task thread wait even longer (actually, the thread that causes the OS's context-switch by itself will have higher priority than those threads forced by the OS; programmers can utilize this feature by putting the IO-bound thread to sleep as soon as possible). ![gil_battle](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/gil_battle.png) (picture from [Understanding the Python GIL(youtube)](https://www.youtube.com/watch?v=Obt-vMVdM8s)) ## Thread scheduling after Python 3.2 -Due to some performance issue in multi-core machine, the implementation of the **GIL** has changed a lot after Python 3.2. +Due to some performance issues on multi-core machines, the implementation of the **GIL** has changed a lot since Python 3.2. If there's only one thread, it can run forever without checking and releasing the **GIL**. -If there're more than one threads, the thread currently blocked by the **GIL** will wait for a period of timeout and set the **gil_drop_request** to 1, and continue waiting, the thread currently holding the **GIL** will release the **GIL** and wait for same period of timeout if the **gil_drop_request** is set to 1, the thread currently blocking will be signaled and is able to acqure the **GIL** +If there is more than one thread, the thread currently blocked by the **GIL** will wait for a timeout period and set the **gil_drop_request** to 1, then continue waiting. The thread currently holding the **GIL** will release the **GIL** and wait for the same timeout period if the **gil_drop_request** is set to 1. The thread currently blocking will be signaled and is able to acquire the **GIL**. ![new_gil](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/new_gil.png) (picture from [Understanding the Python GIL(youtube)](https://www.youtube.com/watch?v=Obt-vMVdM8s)) -The thread set the **gil_drop_request** to 1 might not be the thread acquiring the **GIL**. +The thread that sets **gil_drop_request** to 1 might not be the thread that acquires the **GIL**. -If the current thread is waiting for the interval, and the owner of the **GIL** changed during the waiting **interval**, after wake up, the current thread need to wait, set **gil_drop_request** to 1, and wait again. +If the current thread is waiting for the interval and the owner of the **GIL** changes during the waiting **interval**, after waking up, the current thread needs to wait, set **gil_drop_request** to 1, and wait again. ![new_gil2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/new_gil2.png) (picture from [Understanding the Python GIL(youtube)](https://www.youtube.com/watch?v=Obt-vMVdM8s)) @@ -77,9 +77,9 @@ For those who are interested in further details, please refer to [Understanding # Fields -The python intepreter is a program written in C, every executable program written in C have a `main` function. +The Python interpreter is a program written in C. Every executable program written in C has a `main` function. -Those `main`-related functions are defined in `cpython/Modules/main.c`, you will find that the `main`-related function does some initialization for the intepreter status before executing the `main loop`, the `_gil_runtime_state` will be created and initialized in the initialization. +Those `main`-related functions are defined in `cpython/Modules/main.c`. You will find that the `main`-related function does some initialization for the interpreter status before executing the `main loop`. The `_gil_runtime_state` will be created and initialized during this initialization. ```python3 ./python.exe @@ -225,7 +225,7 @@ static void drop_gil(PyThreadState *tstate) ``` -# When the GIL will be released +# When will the GIL be released The `main_loop` in `cpython/Python/ceval.c` is a big `for loop`, and a big `switch statement`. @@ -233,7 +233,7 @@ The big `for loop` loads opcode one by one, and the big `switch statement` execu The `for loop` will check the variable `gil_drop_request` and release the `gil` if necessary. -Not every opcode will check the `gil_drop_request`, some opcode that ends with `FAST_DISPATCH()` will go to the next statement directly, while some opcode that ends with `DISPATCH()` acts as `continue statement` and will go to the beginning of the for loop. +Not every opcode will check the `gil_drop_request`. Some opcodes that end with `FAST_DISPATCH()` will go to the next statement directly, while some opcodes that end with `DISPATCH()` act as a `continue statement` and will go to the beginning of the for loop. ```c /* cpython/Python/ceval.c */ diff --git a/Interpreter/memory_management/memory_management.md b/Interpreter/memory_management/memory_management.md index 95eebb4..a5db7d5 100644 --- a/Interpreter/memory_management/memory_management.md +++ b/Interpreter/memory_management/memory_management.md @@ -42,27 +42,27 @@ # introduction -CPython has implemented it's own memory management mechanism, when you create a new object in python program, it's not directly malloced from the heap +CPython has implemented its own memory management mechanism. When you create a new object in a Python program, it's not directly malloced from the heap ![level](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/level.png) -we will figure out how the **python interpreter** part works internally in the following example +We will figure out how the **Python interpreter** part works internally in the following example ## object allocator -this is the created procedure of a `tuple` object with size n +This is the creation procedure of a `tuple` object with size n -step1, check if there's a chance to reuse `tuple` object in [free_list](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/tuple/tuple.md#free-list), if so, goes to step4 +Step 1: Check if there's a chance to reuse a `tuple` object in [free_list](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/tuple/tuple.md#free-list). If so, go to step 4. -step2, call **PyObject_GC_NewVar** to get a `PyTupleObject` with size `n` from memory management system(if the size of the object is fixed, **_PyObject_GC_New** will called instead) +Step 2: Call **PyObject_GC_NewVar** to get a `PyTupleObject` with size `n` from the memory management system (if the size of the object is fixed, **_PyObject_GC_New** will be called instead). -step3, call **_PyObject_GC_TRACK** to link the newly created object to the double linked list in [gc](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/gc.md#track).**generation0** +Step 3: Call **_PyObject_GC_TRACK** to link the newly created object to the doubly linked list in [gc](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/gc.md#track).**generation0** -step4, return +Step 4: Return ![tuple_new](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/tuple_new.png) -the maximum size of memory you are able to allocated is limited in **_PyObject_GC_Alloc** +The maximum size of memory you are able to allocate is limited in **_PyObject_GC_Alloc** ```c typedef ssize_t Py_ssize_t; @@ -77,46 +77,46 @@ if (basicsize > PY_SSIZE_T_MAX - sizeof(PyGC_Head)) ## raw memory allocator -follow the call stack, we can find that the **raw memory allocator** is mostly defined in `cpython/Objects/obmalloc.c` +Following the call stack, we can find that the **raw memory allocator** is mostly defined in `cpython/Objects/obmalloc.c` ```c #define SMALL_REQUEST_THRESHOLD 512 ``` -the procedure is described below +The procedure is described below: -* if the request memory block is greater than **SMALL_REQUEST_THRESHOLD**(512 bytes), the request will be delegated to the operating system's allocator -* else, the request will be delegated to python's **raw memory allocator** +* If the requested memory block is greater than **SMALL_REQUEST_THRESHOLD** (512 bytes), the request will be delegated to the operating system's allocator. +* Otherwise, the request will be delegated to Python's **raw memory allocator**. ## block -we need to know some concept before we look into how python's memory allocator work +We need to know some concepts before we look into how Python's memory allocator works. -**block** is the smallest unit in python's memory management system, the size of a block is the same size as a single **byte** +**block** is the smallest unit in Python's memory management system. The size of a block is the same as a single **byte** ```c typedef uint8_t block ``` -there're lots of memory **block** in differenct size, word **block** in memory **block** has a different meaning from type **block**, we will see later +There are lots of memory **blocks** of different sizes. The word **block** in memory **block** has a different meaning from the type **block**; we will see this later ## pool -a **pool** stores a collection of memory **block** of the same size +A **pool** stores a collection of memory **blocks** of the same size. -usually, the total size of memory blocks in a pool is 4kb, which is the same as most of the system page size +Usually, the total size of memory blocks in a pool is 4KB, which is the same as most system page sizes. -initially, the addresses for different memory block in the same pool are continously +Initially, the addresses for different memory blocks in the same pool are contiguous ![pool](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool.png) ## arena -an **arena** stores 256kb malloced from heap, it divides the memory block to 4kb per unit +An **arena** stores 256KB malloced from the heap. It divides the memory block into 4KB per unit. -whenever there needs a new pool, the allocator will ask an **arena** for a new memory block with size 4kb, and initialize the memory block as a new **pool** +Whenever a new pool is needed, the allocator will ask an **arena** for a new memory block with size 4KB and initialize the memory block as a new **pool** ![arena](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/arena.png) @@ -126,17 +126,17 @@ whenever there needs a new pool, the allocator will ask an **arena** for a new m ## usedpools -there's a C array named **usedpools** plays an important role in the memory management mechanism +There's a C array named **usedpools** that plays an important role in the memory management mechanism. -the defination of **usedpools** in C is convoluted, the following picture shows how these mentioned objects organized +The definition of **usedpools** in C is convoluted. The following picture shows how these mentioned objects are organized ![usedpools](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/usedpools.png) -element in **usedpools** is of type `pool_header *`, size of **usedpools** is 128, but only half of the elements are in used +Elements in **usedpools** are of type `pool_header *`. The size of **usedpools** is 128, but only half of the elements are in use. -**usedpools** stores **pool** object with free blocks, every **pool** object in **usedpools** has at least one free memory block +**usedpools** stores **pool** objects with free blocks. Every **pool** object in **usedpools** has at least one free memory block. -if you get **pool 1** from **idx0**, you can get one memory block(8 bytes) from **pool 1** each time, if you get **pool 4** from **idx2**, you can get one memory block(24 bytes) from **pool 4** each time, and so on +If you get **pool 1** from **idx0**, you can get one memory block (8 bytes) from **pool 1** each time. If you get **pool 4** from **idx2**, you can get one memory block (24 bytes) from **pool 4** each time, and so on ```python3 cpython/Objects/obmalloc.c @@ -171,7 +171,7 @@ and so on ### why only half of the usedpools elements are used -every memory request will be routed to the **idxn** in **usedpools**, there must be a very fast way to access **idxn** for the underlying memory request with size **nbytes** +Every memory request will be routed to the **idxn** in **usedpools**. There must be a very fast way to access **idxn** for the underlying memory request with size **nbytes** ```c #define ALIGNMENT_SHIFT 3 @@ -185,13 +185,13 @@ if the request size **nbytes** is 7, (7 - 1) >> 3 is 0, idxn = 0 + 0, usedpools[ if the request size **nbytes** is 24, (24 - 1) >> 3 is 2, idxn = 2 + 2, usedpools[2 + 2] will be the target list, so the head of **idx2** is the target pool -the `usedpools`‘s size is two times larger than the size it actually used, so that you are able to calcuate the **idx** and access the first free pool in a very short time +The `usedpools`'s size is two times larger than what it actually uses, so that you are able to calculate the **idx** and access the first free pool in a very short time # example ## overview -assume we are going to reqest 5 bytes from python's memory allocator, because the request size is less than **SMALL_REQUEST_THRESHOLD**(512 bytes), it's routed to python's raw memory allocator instead of the system's allocator(**malloc** system call) +Assume we are going to request 5 bytes from Python's memory allocator. Because the request size is less than **SMALL_REQUEST_THRESHOLD** (512 bytes), it's routed to Python's raw memory allocator instead of the system's allocator (**malloc** system call) ```c size = (uint)(nbytes - 1) >> ALIGNMENT_SHIFT = (5 - 1) >> 3 = 0 @@ -199,13 +199,13 @@ pool = usedpools[0 + 0] ``` -so **pool** header will be the first element in **idx0**, follow the linked list, we can find that the first **pool** which can offer memory blocks is **pool1** +So the **pool** header will be the first element in **idx0**. Following the linked list, we can find that the first **pool** which can offer memory blocks is **pool1** ![example0](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/example0.png) ## how does memory block organize in pool -assume this is the current state of **pool1** +Assume this is the current state of **pool1** **ref.count** is a counter for how many **blocks** are currently in use @@ -221,21 +221,19 @@ assume this is the current state of **pool1** **maxnextoffset** act as the high water mark for **nextoffset**, if **nextoffset** exceeds **maxnextoffset**, it means all blocks in the pool are in used, and the pool is full -the total size of a **pool** is 4kb, same as system page size +The total size of a **pool** is 4KB, same as the system page size ![pool_organize0](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool_organize0.png) ### allocate in pool with no freed block -"no freed block" doesn't mean the pool is full and no any other room left, instead, it means no block allocated in the pool ever called **free** +"No freed block" doesn't mean the pool is full and has no other room left. Instead, it means no block allocated in the pool has ever called **free**. -when we allocate a memory block <= 8 bytes - -the block **freeblock** pointed to will be chosen +When we allocate a memory block <= 8 bytes, the block that **freeblock** points to will be chosen ![pool_organize1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool_organize1.png) -because the value stored in block **freeblock** pointed to is a NULL pointer, there's no other **freed** block in the middle of the **pool**, we must get a block from the tail of the pool, these blocks from the tail are never used before in the pool +Because the value stored in the block that **freeblock** points to is a NULL pointer, there's no other **freed** block in the middle of the **pool**. We must get a block from the tail of the pool; these blocks from the tail have never been used before in the pool **nextoffset** and **maxnextoffset** will be used to check whether there's room in the tail of the **pool** @@ -247,23 +245,23 @@ because the value stored in block **freeblock** pointed to is a NULL pointer, th ![pool_organize2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool_organize2.png) -request one more memory block +Request one more memory block **nextoffset** now exceeds **maxnextoffset** ![pool_organize3](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool_organize3.png) -request one more memory block +Request one more memory block ![pool_organize4](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool_organize4.png) -because the **nextoffset** is greater than **maxnextoffset**, the **pool** is full, there're no more freeblocks to use, so **freeblock** becomes a null pointer +Because **nextoffset** is greater than **maxnextoffset**, the **pool** is full. There are no more freeblocks to use, so **freeblock** becomes a null pointer. -we need to unlink the pool from the **usedpools** +We need to unlink the pool from the **usedpools**. ![pool_organize_full](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool_organize_full.png) -in higher level view +In a higher-level view ![arena_pool_full](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/arena_pool_full.png) @@ -271,163 +269,163 @@ in higher level view #### free in full pool -it's idealize that the used blocks and free blocks are seperated by a **freeblock** pointer in a **pool** and every memory request will be routed to the beginning of the seperated pointer +It's ideal when the used blocks and free blocks are separated by a **freeblock** pointer in a **pool** and every memory request is routed to the beginning of the separated pointer. -what if there're some used blocks in the random location of the pool being freed ? +What if there are some used blocks in random locations of the pool being freed? -assume we are freeing the block in address `0x10ae3dfe8` in **pool1** +Assume we are freeing the block at address `0x10ae3dfe8` in **pool1** ![pool_organize_free0](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool_organize_free0.png) -step1, set the value in the **block** to the same value as **freeblock** +Step 1: Set the value in the **block** to the same value as **freeblock** ![pool_organize_free1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool_organize_free1.png) -step2, make the **freeblock** points to the current freeing **block** +Step 2: Make **freeblock** point to the current freeing **block** ![pool_organize_free2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool_organize_free2.png) -decrement the value in **ref.count** +Decrement the value in **ref.count**. -step3, check whether the **pool** is full(check whether the value in the freeing **block** is NULL pointer), if so, relink the **pool** to **usedpools** and return, else go to step4 +Step 3: Check whether the **pool** is full (check whether the value in the freeing **block** is a NULL pointer). If so, relink the **pool** to **usedpools** and return; otherwise go to step 4 ![pool_organize_free3](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool_organize_free3.png) -step4 -* check if the all the **pools** in the current **arena** are free, if so free the entire **arena** -* if this is the only free pool in the arena, add the arena back to the `usable_arenas` list -* sort **usable_arenas** to make sure the **arena** with smaller count of free pools in the front +Step 4: +* Check if all the **pools** in the current **arena** are free. If so, free the entire **arena**. +* If this is the only free pool in the arena, add the arena back to the `usable_arenas` list. +* Sort **usable_arenas** to make sure the **arena** with the smaller count of free pools is in front #### free in not full pool -let's free the final block in address `0x10ae3dff8` in **pool1** +Let's free the final block at address `0x10ae3dff8` in **pool1**. -the steps are same as above steps +The steps are the same as above. -step1 +Step 1 ![pool_organize_free4](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool_organize_free4.png) -step2 +Step 2 ![pool_organize_free5](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool_organize_free5.png) -decrement the value in **ref.count** +Decrement the value in **ref.count**. -step3, the **pool** is not full, so goes to step4 +Step 3: The **pool** is not full, so go to step 4. -step4, return +Step 4: Return ![pool_organize_free6](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool_organize_free6.png) -let's free the second to the last block in address `0x10ae3dff0` in **pool1** +Let's free the second-to-last block at address `0x10ae3dff0` in **pool1**. -step1 +Step 1 ![pool_organize_free7](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool_organize_free7.png) -step2 +Step 2 ![pool_organize_free8](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool_organize_free8.png) -decrement the value in **ref.count** +Decrement the value in **ref.count**. -step3, the **pool1** is not full, so goes to step4 +Step 3: **pool1** is not full, so go to step 4. -step4, return +Step 4: Return ![pool_organize_free9](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool_organize_free9.png) ### allocate in pool with freed block -now, there're some blocks called **free** previously in the **pool1** +Now there are some blocks that were previously freed in **pool1**. -let's request one more memory block +Let's request one more memory block. -because the value stored in block **freeblock** pointed to is a not a NULL pointer, it's a pointer to other block in the same **pool**, it means this block is used before and freed +Because the value stored in the block that **freeblock** points to is not a NULL pointer, it's a pointer to another block in the same **pool**. This means this block was used before and then freed ![pool_organize_allocate_after_free0](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool_organize_allocate_after_free0.png) -we increment the **ref.count** +We increment the **ref.count**. -make the **freeblock** points to what's stored in the current block +Make **freeblock** point to what's stored in the current block. -the careful reader will realize that **freeblock** is actually a pointer to a single linked list, the linked list will chain all the freed **blocks** in the same **pool** together +The careful reader will realize that **freeblock** is actually a pointer to a singly linked list. The linked list will chain all the freed **blocks** in the same **pool** together. -if the single linked list reaches the end, it means there're no more blocks used previously and freed, we should try to get a block from those never used room before in the **pool**, we already learn this strategy from [allocate in pool with no freed block](#allocate-in-pool-with-no-freed-block) +If the singly linked list reaches the end, it means there are no more blocks that were used previously and freed. We should try to get a block from those never-used rooms in the **pool**. We already learned this strategy from [allocate in pool with no freed block](#allocate-in-pool-with-no-freed-block) ![pool_organize_allocate_after_free1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool_organize_allocate_after_free1.png) -request one more memory block +Request one more memory block **freeblock** follows to the next position in the single linked list ![pool_organize_allocate_after_free2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/pool_organize_allocate_after_free2.png) -if we request one more memory block, the **pool** will be full and unlink from the **usedpools**, we've learned before [free in pool](#free-in-pool) +If we request one more memory block, the **pool** will be full and unlinked from the **usedpools**. We've learned this before in [free in pool](#free-in-pool) ### how does pool organize in arena #### arena overview part1 -the **arena** stores a collection of **pool** +The **arena** stores a collection of **pools**. -this is the initial state +This is the initial state. -the **usedpools** is empty and there're no alive **arena** object +The **usedpools** is empty and there are no alive **arena** objects ![arena_orgnaize_overview0](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/arena_orgnaize_overview0.png) -when we request a **block** with 10 bytes, 16 **arena** will be created, each **arena** will contain 64 **pool**, each **pool** will occupy 4kb +When we request a **block** with 10 bytes, 16 **arenas** will be created. Each **arena** will contain 64 **pools**, and each **pool** will occupy 4KB ![arena_orgnaize_overview1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/arena_orgnaize_overview1.png) -the first free **pool** in the first avaliable **arena** will be inserted to the **idx1** +The first free **pool** in the first available **arena** will be inserted into **idx1** ![arena_orgnaize_overview2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/arena_orgnaize_overview2.png) -and the **idx1** of **usedpools** is not empty any more, follow the procedure [allocate in pool with no freed block](#allocate-in-pool-with-no-freed-block), we can get the **block** from **poo1** +And the **idx1** of **usedpools** is not empty anymore. Following the procedure [allocate in pool with no freed block](#allocate-in-pool-with-no-freed-block), we can get the **block** from **pool1** #### allocate in arena with no freed pool -"no freed pool" doesn't mean the arena is full and no any other room left, instead, it means no pool allocated in the arena ever called **free** +"No freed pool" doesn't mean the arena is full and has no other room left. Instead, it means no pool allocated in the arena has ever called **free**. -assume this is the current state of the first arena +Assume this is the current state of the first arena ![arena_orgnaize0](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/arena_orgnaize0.png) -request one more **pool** +Request one more **pool**. -because the **freepools** is a null pointer, and **nfreepools** is greater than 0, the address **pool_address** pointed to will be used as the new **pool** +Because **freepools** is a null pointer and **nfreepools** is greater than 0, the address that **pool_address** points to will be used as the new **pool** ![arena_orgnaize1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/arena_orgnaize1.png) -**nfreepools** is decremented and **pool_address** will point to next free **pool** +**nfreepools** is decremented and **pool_address** will point to the next free **pool**. ![arena_orgnaize2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/arena_orgnaize2.png) -request one more **pool**, the **arena** is full +Request one more **pool**. The **arena** is full ![arena_orgnaize3](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/arena_orgnaize3.png) #### free in arena -when all the **blocks** in a pool are freed, the **pool** will also be unlink in the **usedpools** and insert to the front of the **arena** +When all the **blocks** in a pool are freed, the **pool** will also be unlinked from **usedpools** and inserted at the front of the **arena**. -assume we are freeing **pool3** +Assume we are freeing **pool3** **nextpool** in **pool3** will be set to the same value as **freepools** in **arena** ![arena_orgnaize_free0](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/arena_orgnaize_free0.png) -value of **freepools** in **arena** will be set to the address of **pool3** +The value of **freepools** in **arena** will be set to the address of **pool3** **nfreepools** will be incremented ![arena_orgnaize_free1](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/arena_orgnaize_free1.png) -let's free **pool63** +Let's free **pool63** **nextpool** of the current freeing **pool** will be set to the value in **freepools** and **freepools** in **arena** will point to the current freeing **pool** @@ -435,13 +433,13 @@ let's free **pool63** ![arena_orgnaize_free2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/arena_orgnaize_free2.png) -the free strategy of **arena** is similar to **pool**, **freepools** is the pointer to the header of the single linked list +The free strategy of **arena** is similar to **pool**. **freepools** is the pointer to the head of the singly linked list #### allocate in arena with freed pool -request one more **pool** +Request one more **pool**. -**nfreepools** is greater than 0, and **freepools** is not a NULL pointer, the first **pool** in the single linked list will be taken +**nfreepools** is greater than 0, and **freepools** is not a NULL pointer, so the first **pool** in the singly linked list will be taken ![arena_orgnaize_allocate0](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/arena_orgnaize_allocate0.png) @@ -451,35 +449,35 @@ request one more **pool** #### arena overview part2 -initially, there're 16 **arenas** +Initially, there are 16 **arenas** ![arena_orgnize_overview_part20](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/arena_orgnize_overview_part20.png) -if all the **pools** in the **arena** are freed, the memory(256kb) these **pools** used will be returned to operating system, and the **arena** structure be moved to a single linked list named **unused_arena_objects**, what's in **unused_arena_objects** is only a shell, it does not contains any **pool** free to use +If all the **pools** in the **arena** are freed, the memory (256KB) these **pools** used will be returned to the operating system, and the **arena** structure will be moved to a singly linked list named **unused_arena_objects**. What's in **unused_arena_objects** is only a shell; it does not contain any **pool** free to use. -prior to Python 2.5, **pools** in arenas were never free()'ed. this strategy is used since Python 2.5 +Prior to Python 2.5, **pools** in arenas were never free()'ed. This strategy has been used since Python 2.5 ![arena_orgnize_overview_part21](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/arena_orgnize_overview_part21.png) -if all **arenas** are used up, and we request a new **arena** +If all **arenas** are used up and we request a new **arena** ![arena_orgnize_overview_part22](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/arena_orgnize_overview_part22.png) -python's allocator will malloc 256kb from operating system, and the newly malloced 256kb memory block will be linked to the **arena** structure in the first **unused_arena_objects** +Python's allocator will malloc 256KB from the operating system, and the newly malloced 256KB memory block will be linked to the **arena** structure in the first **unused_arena_objects**. -the first **arena** in the **unused_arena_objects** will be taken, and **unused_arena_objects** will be an empty pointer +The first **arena** in **unused_arena_objects** will be taken, and **unused_arena_objects** will become an empty pointer ![arena_orgnize_overview_part23](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/arena_orgnize_overview_part23.png) -if all **arenas** are used up, and we request a new **arena** again when the **unused_arena_objects** is empty +If all **arenas** are used up and we request a new **arena** again when **unused_arena_objects** is empty ![arena_orgnize_overview_part24](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/arena_orgnize_overview_part24.png) -size of the **arenas** will be doubled, when you need to request a new **pool** from **arena**, the next **arena**(position 17) will be chosen +The size of the **arenas** will be doubled. When you need to request a new **pool** from **arena**, the next **arena** (position 17) will be chosen ![arena_orgnize_overview_part25](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/memory_management/arena_orgnize_overview_part25.png) -you can call `sys._debugmallocstats()` to get some static information about the memory management +You can call `sys._debugmallocstats()` to get some statistics about the memory management # read more * [Memory management in Python](https://rushter.com/blog/python-memory-managment/) \ No newline at end of file diff --git a/Interpreter/module/module.md b/Interpreter/module/module.md index ebe4b27..188cc86 100644 --- a/Interpreter/module/module.md +++ b/Interpreter/module/module.md @@ -23,25 +23,25 @@ # memory layout -there's a struct named **PyModuleDef** defined in `Include/moduleobject.h` +There's a struct named **PyModuleDef** defined in `Include/moduleobject.h` ![layout_PyModuleDef](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/module/layout_PyModuleDef.png) -the **PyModuleObject** is defined in `Objects/moduleobject.c`, which contains a field with type **PyModuleDef** +The **PyModuleObject** is defined in `Objects/moduleobject.c`, which contains a field with type **PyModuleDef** ![layout_PyModuleObject](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/module/layout_PyModuleObject.png) # example -the field **md_dict** is the `__dict__` attribute of the module object +The field **md_dict** is the `__dict__` attribute of the module object. -**PyModuleDef** is optional, the index located in the m_base field is used for find the module by index in sys.modules, not by name +**PyModuleDef** is optional. The index located in the m_base field is used to find the module by index in sys.modules, not by name. -**m_size** stores the size of per-module data +**m_size** stores the size of per-module data. -**m_clear** and **m_free** are used for deallolcation +**m_clear** and **m_free** are used for deallocation. -for more detail please refer to [PEP 3121 -- Extension Module Initialization and Finalization](https://www.python.org/dev/peps/pep-3121/) +For more detail please refer to [PEP 3121 -- Extension Module Initialization and Finalization](https://www.python.org/dev/peps/pep-3121/) ```python3 import _locale @@ -59,13 +59,11 @@ import re # how to debug import -when you try to look into the source code to find out how `import` works - -follow the call stack +When you try to look into the source code to find out how `import` works, follow the call stack ![import_call_stack](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/module/import_call_stack.png) -the core callable object is `interp->importlib` which is initialized in +The core callable object is `interp->importlib`, which is initialized in ```c /* cpython/Python/pylifecycle.c */ @@ -84,7 +82,7 @@ initimport(PyInterpreterState *interp, PyObject *sysmod) ``` -search the `_frozen_importlib`, you can find the half-binary file `Python/importlib.h` with content +Searching for `_frozen_importlib`, you can find the half-binary file `Python/importlib.h` with content ```c /* Auto-generated by Programs/_freeze_importlib.c */ @@ -96,13 +94,13 @@ const unsigned char _Py_M__importlib_bootstrap[] = { ``` -it turns out that `_freeze_importlib.c` will freeze the python code in `Lib/importlib/_bootstrap.py` to the half-binary format`Python/importlib.h` +It turns out that `_freeze_importlib.c` will freeze the Python code in `Lib/importlib/_bootstrap.py` to the half-binary format `Python/importlib.h` ![importlib](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/module/importlib.png) -it's interesting that the `import` procedure is actually written in pure python, the attribute `PyId__find_and_load` of `interp->importlib` maps to the python function name `_find_and_load` defined in `Lib/importlib/_bootstrap.py` +It's interesting that the `import` procedure is actually written in pure Python. The attribute `PyId__find_and_load` of `interp->importlib` maps to the Python function name `_find_and_load` defined in `Lib/importlib/_bootstrap.py`. -whenever you modify the source code in `Lib/importlib/_bootstrap.py`, you need to regenerate the `Python/importlib.h` file, and recompile the source code +Whenever you modify the source code in `Lib/importlib/_bootstrap.py`, you need to regenerate the `Python/importlib.h` file and recompile the source code ```python3 # compile ./Programs/_freeze_importlib.c, and use the program to freeze @@ -117,7 +115,7 @@ make # how does import work -let's compile a script with only one line `import _locale` +Let's compile a script with only one line `import _locale` ```python3 ./python.exe -m dis test.py @@ -130,15 +128,15 @@ let's compile a script with only one line `import _locale` ``` -the core opcde here is `IMPORT_NAME` +The core opcode here is `IMPORT_NAME`. -it's tedious to copy and paste all the source code related to `IMPORT_NAME`, even with annotation +It's tedious to copy and paste all the source code related to `IMPORT_NAME`, even with annotation. -imagine that there're two or more threads currently importing the same `_locale` module, how does CPython handle this situation ? +Imagine that there are two or more threads currently importing the same `_locale` module. How does CPython handle this situation? -if you read the source code and following images, you will notice that the lock mechanism is used for preventing race condition +If you read the source code and the following images, you will notice that the lock mechanism is used for preventing race conditions. -the procedure is listed +The procedure is listed 1. opcode `IMPORT_NAME` will check if the name being imported is in sys.module, if so return what's in the sys.module 2. try to acquire the lock `_imp` @@ -163,7 +161,7 @@ in `position 5`, it will acquire the lock `_imp` before the call of every `finde ## how does finder work -there're currently three different finder in my `sys.meta_path` +There are currently three different finders in my `sys.meta_path` ```python3 >>> sys.meta_path @@ -173,7 +171,7 @@ there're currently three different finder in my `sys.meta_path` ### BuiltinImporter -`BuiltinImporter` will handle all the built-in module, when we call +`BuiltinImporter` will handle all the built-in modules. When we call ```python3 `import _locale` diff --git a/Interpreter/pyobject/pyobject.md b/Interpreter/pyobject/pyobject.md index 5e3f26d..55c03f4 100644 --- a/Interpreter/pyobject/pyobject.md +++ b/Interpreter/pyobject/pyobject.md @@ -6,7 +6,7 @@ * [memory layout](#memory-layout) * [overview](#overview) * [ceval](#ceval) -* [intepreter and thread](#intepreter-and-thread) +* [interpreter and thread](#interpreter-and-thread) * [read more](#read-more) # related file @@ -19,33 +19,33 @@ # memory layout -this is the layout of **PyObject**, it's the basic part of every other python object +This is the layout of **PyObject**. It's the basic part of every other Python object -every object in python can be cast to **PyObject**, i.e, list, tuple and etc +Every object in Python can be cast to **PyObject**, e.g., list, tuple, etc. `PyObject_HEAD_EXTRA` is the head of the double linked list, it's used for keeping track in [Garbage Collection](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/gc.md) `ob_refcnt` stores reference count of the current object, it's also used in [Garbage Collection](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gc/gc.md) -`ob_type` is a pointer to it's type object, i.e, `type("abc") ===> str`, `"abc"` is the PyObject, and `ob_type` in the PyObject will points to `str` +`ob_type` is a pointer to its type object. For example, `type("abc") ===> str`, `"abc"` is the PyObject, and `ob_type` in the PyObject will point to `str` ![PyObject](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/pyobject/PyObject.png) # overview -whenever you execute a python program for a `.py` file, the compile phase will translate the human readable source code to a form called python bytecode +Whenever you execute a Python program from a `.py` file, the compile phase will translate the human-readable source code to a form called Python bytecode -the `pyc` file will be generated if necessary, and the interpreter phase will start the main loop, execute the bytecode in the `pyc` file line by line +The `pyc` file will be generated if necessary, and the interpreter phase will start the main loop, executing the bytecode in the `pyc` file line by line -the compiled `pyc` file will not boost the run time of the program, instead, the load time of the program will be faster because it doesn't need to generate `pyc` file again +The compiled `pyc` file will not boost the runtime of the program. Instead, the load time of the program will be faster because it doesn't need to generate the `pyc` file again -according to [pep-3147](https://www.python.org/dev/peps/pep-3147/), after python 3.3, `pyc` file will only be generated in the `import` mechanism, and `pyc` file will exists under the `__pycache__` directory +According to [PEP 3147](https://www.python.org/dev/peps/pep-3147/), after Python 3.3, `pyc` files will only be generated through the `import` mechanism, and `pyc` files will exist under the `__pycache__` directory ![executePy](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/pyobject/executePy.png) # ceval -the main loop of the interpreter is defined in `cpython/Python/ceval.c` +The main loop of the interpreter is defined in `cpython/Python/ceval.c` ```c main_loop: @@ -61,21 +61,21 @@ main_loop: ``` -we can draw the procedure +We can draw the procedure ![ceval](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/pyobject/ceval.png) -# intepreter and thread +# interpreter and thread -this is the defination of **PyInterpreterState** +This is the definition of **PyInterpreterState** ![PyInterpreterState](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/pyobject/PyInterpreterState.png) -this is the defination of **PyThreadState** +This is the definition of **PyThreadState** ![PyThreadState](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/pyobject/PyThreadState.png) -if we have two thread currently running +If we have two threads currently running ![organize](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/pyobject/organize.png) diff --git a/Interpreter/slot/slot.md b/Interpreter/slot/slot.md index 9335ee9..1a91619 100644 --- a/Interpreter/slot/slot.md +++ b/Interpreter/slot/slot.md @@ -56,9 +56,9 @@ class A(object): ``` -what's the difference of accessing attribute `wing` and `x` of instance `a` ? +What's the difference between accessing attribute `wing` and `x` of instance `a`? -what's the difference of accessing attribute `wing` and `x` of type `A` ? +What's the difference between accessing attribute `wing` and `x` of type `A`? # instance access @@ -75,13 +75,11 @@ AttributeError: wing ``` -according to the **attribute accessing procedure** described in [descr](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/descr/descr.md) - -we can draw the procedure of accessing `a.wing` in a brief view +According to the **attribute accessing procedure** described in [descr](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/descr/descr.md), we can draw the procedure of accessing `a.wing` in a brief view ![instance_desc](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/slot/instance_desc.png) -the **descriptor protocol** help us find an object named `descr`, type is `member_descriptor`, if you call +The **descriptor protocol** helps us find an object named `descr` whose type is `member_descriptor`. If you call ```python3 repr(descr) @@ -89,11 +87,11 @@ descr: ``` -the `descr` has a member named `d_member`, which stores information about the attribute name, type and offset +The `descr` has a member named `d_member`, which stores information about the attribute name, type, and offset. -with the informations stored in `d_member`, you are able to access the address of attribute in a very fast way +With the information stored in `d_member`, you are able to access the address of the attribute in a very fast way. -in the current example, if the begin address of the instance `a` is `0x00`, address after adding the offset is `0x18`, you can cast the address in `0x18` to a proper object according to `type` stored in `d_member` +In the current example, if the beginning address of the instance `a` is `0x00`, the address after adding the offset is `0x18`. You can cast the address at `0x18` to a proper object according to `type` stored in `d_member` ```c /* Include/structmember.h */ @@ -130,7 +128,7 @@ switch (l->type) { ``` -because wing attribute of instance `a` is set before, `AttributeError` won't be raised +Because the wing attribute of instance `a` is set before, `AttributeError` won't be raised ## instance access x @@ -140,11 +138,11 @@ because wing attribute of instance `a` is set before, `AttributeError` won't be ``` -type of `descr` is `int`, it's not a data descriptor(does not have `__get__` or `__set__` attribute), so the `descr` will be returned directly +The type of `descr` is `int`. It's not a data descriptor (does not have `__get__` or `__set__` attribute), so the `descr` will be returned directly ![instance_normal](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/slot/instance_normal.png) -you are not able to create any other attribute in instance `a` if `A` defined `__slots__`, we will figure out why later +You are not able to create any other attribute in instance `a` if `A` defines `__slots__`. We will figure out why later ```python3 >>> a.not_exist = 100 @@ -166,7 +164,7 @@ AttributeError: 'A' object has no attribute 'not_exist' ``` -the procedure of accessing `A.wing` is nearly the same as `a.wing` +The procedure of accessing `A.wing` is nearly the same as `a.wing` ![type_desc](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/slot/type_desc.png) @@ -178,7 +176,7 @@ the procedure of accessing `A.wing` is nearly the same as `a.wing` ``` -the procedure of accessing `A.x` is nearly the same as `a.x` +The procedure of accessing `A.x` is nearly the same as `a.x` ![type_normal](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/slot/type_normal.png) @@ -188,29 +186,29 @@ the procedure of accessing `A.x` is nearly the same as `a.x` ### how does attributes initialize in the creation of `class A` ? -we can learn about the creation procedure in [type->creation of class](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/type/type.md#creation-of-class) +We can learn about the creation procedure in [type->creation of class](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/type/type.md#creation-of-class). -`type` object has many fields in it's C structure, the following picture only shows what's necessary for this topic +The `type` object has many fields in its C structure. The following picture only shows what's necessary for this topic. -what's in the `__slots__` is sorted and stored as a tuple in `ht_slots` +What's in `__slots__` is sorted and stored as a tuple in `ht_slots`. -the two attributes in `__slots__` is preallocated in the tail of the newly created type object `A` and two `PyMemberDef` pointers are stored in the order of `ht_slots` +The two attributes in `__slots__` are preallocated in the tail of the newly created type object `A`, and two `PyMemberDef` pointers are stored in the order of `ht_slots`. -while attribute `x` stays in the `tp_dict` field +Meanwhile, attribute `x` stays in the `tp_dict` field. -the `tp_dict` field does not have a key named `__dict__` +The `tp_dict` field does not have a key named `__dict__` ![type_create](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/slot/type_create.png) ### how does attributes initialize in the creation of `instance a` ? -the memory location of the attributes in `__slots__` are preallocated +The memory locations of the attributes in `__slots__` are preallocated ![instance_create](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/slot/instance_create.png) ### lookup procedure in MRO ? -it just iter through every type object in MRO, and if the name in `tp_dict` field, retuen `tp_dict[name]` +It just iterates through every type object in MRO, and if the name is in the `tp_dict` field, returns `tp_dict[name]` ```c /* cpython/Objects/typeobject.c */ diff --git a/Interpreter/thread/thread.md b/Interpreter/thread/thread.md index fa4beb6..6189882 100644 --- a/Interpreter/thread/thread.md +++ b/Interpreter/thread/thread.md @@ -23,15 +23,15 @@ # prerequisites -the following contents will show you how CPython implements thread related function, you are able to get the answer of "Does posix semaphore or mutex used as a python thread lock ?" +The following contents will show you how CPython implements thread-related functions. You will be able to get the answer to "Is POSIX semaphore or mutex used as a Python thread lock?" -if you are confused about what **posix thread** is or what **posix semaphore** is, you need to refer to Chapter 11 and Chapter 12 of [APUE](https://www.amazon.com/Advanced-Programming-UNIX-Environment-3rd/dp/0321637739) and [UNP vol 2](https://www.amazon.com/UNIX-Network-Programming-Interprocess-Communications/dp/0130810819) +If you are confused about what **POSIX thread** is or what **POSIX semaphore** is, you need to refer to Chapter 11 and Chapter 12 of [APUE](https://www.amazon.com/Advanced-Programming-UNIX-Environment-3rd/dp/0321637739) and [UNP vol 2](https://www.amazon.com/UNIX-Network-Programming-Interprocess-Communications/dp/0130810819) -if you are interested in how thread/intepreter organized, please refer to [overwview](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/pyobject/pyobject.md#intepreter-and-thread) +If you are interested in how thread/interpreter is organized, please refer to [overview](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/pyobject/pyobject.md#intepreter-and-thread) # memory layout -a bootstate structure stores every informations a new python thread needed +A bootstate structure stores all the information a new Python thread needs ![bootstate](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/bootstate.png) @@ -41,9 +41,9 @@ a bootstate structure stores every informations a new python thread needed ![thread](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/thread.png) -the following content will only shows the posix part defined in **thread_pthread.h**, for other platform, even if the API of the system call is different, the idea is the same +The following content will only show the POSIX part defined in **thread_pthread.h**. For other platforms, even if the API of the system call is different, the idea is the same -notice, you're not encouraged to use module `_thread` directly, use `threading` instead, the following code use `_thread` for illustration +Notice, you're not encouraged to use module `_thread` directly. Use `threading` instead. The following code uses `_thread` for illustration # example @@ -61,7 +61,7 @@ module **threading** is a wrapper for the built-in **_thread** module, **threadi # start_new_thread -**PyEval_InitThreads** will create [gil](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/gil.md) if it's not created before, thread scheduling strategy has changed after python3.2, there's no need to give another thread a chance to run periodly when there's only one python intepreter thread +**PyEval_InitThreads** will create [GIL](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/gil/gil.md) if it's not created before. Thread scheduling strategy has changed after Python 3.2. There's no need to give another thread a chance to run periodically when there's only one Python interpreter thread ```c /* cpython/Modules/_threadmodule.c */ @@ -108,7 +108,7 @@ thread_PyThread_start_new_thread(PyObject *self, PyObject *fargs) # allocate_lock -this is the normal lock object +This is the normal lock object ```python3 >>> r = _thread.allocate_lock() @@ -125,7 +125,7 @@ True ![lock_object](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/lock_object.png) -in the posix system, the defination and allocation of **lock_lock** +In the POSIX system, the definition and allocation of **lock_lock** ```c /* cpython/Include/pythread.h */ @@ -169,14 +169,14 @@ PyThread_allocate_lock(void) ``` -from the above code we can know that CPython perfer implement the field in **lock_lock** as [posix semaphores](http://www.csc.villanova.edu/~mdamian/threads/posixsem.html) to [posix mutex](http://www.skrenta.com/rt/man/pthread_mutex_init.3.html), below examples use semaphores for illustration +From the above code we can see that CPython prefers to implement the field in **lock_lock** as [POSIX semaphores](http://www.csc.villanova.edu/~mdamian/threads/posixsem.html) over [POSIX mutex](http://www.skrenta.com/rt/man/pthread_mutex_init.3.html). The examples below use semaphores for illustration ```python3 >>> r.acquire_lock() ``` -if you try to acquire the lock, several posix system call will be invoked according to the timeout value +If you try to acquire the lock, several POSIX system calls will be invoked according to the timeout value ```python3 /* cpython/Python/thread_pthread.h */ @@ -204,13 +204,13 @@ while (1) { ``` -if you acquire the lock successfully, field locked will become 1 +If you acquire the lock successfully, the locked field will become 1 ![lock_object_locked](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/lock_object_locked.png) # allocate_rlock -**rlock** is the abbreviation of recursive lock, as [wikipedia](https://en.wikipedia.org/wiki/Reentrant_mutex) says +**RLock** is the abbreviation of recursive lock. As [Wikipedia](https://en.wikipedia.org/wiki/Reentrant_mutex) says > In computer science, the reentrant mutex (recursive mutex, recursive lock) is a particular type of mutual exclusion (mutex) device that may be locked multiple times by the same process/thread, without causing a deadlock. @@ -222,9 +222,9 @@ if you acquire the lock successfully, field locked will become 1 ``` -the procedure of allocation of **lock_lock** in rlock object is the same as the above example +The procedure of allocation of **lock_lock** in the RLock object is the same as the above example -before acquire the lock, **rlock_owner** and **rlock_count** are all set to 0 +Before acquiring the lock, **rlock_owner** and **rlock_count** are both set to 0 ```python3 >>> r.acquire() @@ -240,9 +240,9 @@ before acquire the lock, **rlock_owner** and **rlock_count** are all set to 0 ![rlock_object_acquire2](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/thread/rlock_object_acquire2.png) -we found that **rlock_owner** is the current thread's ident, and **rlock_count** is a counter of how many times the lock is currently acquired +We found that **rlock_owner** is the current thread's ident, and **rlock_count** is a counter of how many times the lock is currently acquired -the acquire procedure is very clear +The acquire procedure is very clear ```c /* cpython/Modules/_threadmodule.c */ @@ -286,7 +286,7 @@ rlock_acquire(rlockobject *self, PyObject *args, PyObject *kwds) ``` -the release procedure +The release procedure ```c /* cpython/Modules/_threadmodule.c */ @@ -327,7 +327,7 @@ thread_PyThread_exit_thread(PyObject *self, PyObject *Py_UNUSED(ignored)) # stack_size -you can set the stack size to 100kb by calling +You can set the stack size to 100KB by calling ```python3 >>> _thread.stack_size(102400) # threading.stack_size(102400) @@ -379,4 +379,4 @@ _pythread_pthread_set_stacksize(size_t size) # thread local -the implementation of thread local storage is a per thread [dict](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/dict.md) object stored inside the **PyThreadState** structure +The implementation of thread local storage is a per-thread [dict](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/dict.md) object stored inside the **PyThreadState** structure diff --git a/Modules/io/fileio/fileio.md b/Modules/io/fileio/fileio.md index 7f74791..be680f3 100644 --- a/Modules/io/fileio/fileio.md +++ b/Modules/io/fileio/fileio.md @@ -43,7 +43,7 @@ For those who need the detail of python dict object, please refer to my previous ## close -After call the close method, the **fd** becomes -1, and one more key **__IOBase_closed** inserted to **dict** field +After calling the close method, the **fd** becomes -1, and one more key **__IOBase_closed** is inserted into the **dict** field ```python3 >>> f.close() @@ -67,7 +67,7 @@ the **fd** and **dict** object are all reused, and **writable**, **appending**, ## fd -let's pass an integer to parameter name +Let's pass an integer to the parameter name ```python3 >>> f = open("../../Desktop/2.txt", "rb") diff --git a/Modules/pickle/pickle.md b/Modules/pickle/pickle.md index e9e868b..ceb8f92 100644 --- a/Modules/pickle/pickle.md +++ b/Modules/pickle/pickle.md @@ -24,7 +24,7 @@ # introduction -We use `pickle` module to serialize and unserialize our python object, There're several protocol version for `pickle`, The current version is `4` +We use the `pickle` module to serialize and deserialize our Python objects. There are several protocol versions for `pickle`. The current version is `4` The `pickle` module will use the faster `_pickle` implemented in `C`(`Modules/_pickle.c`) if possible, if the `_pickle` module not found, the `python` implemented `pickle`(`Lib/pickle.py`) will be used @@ -77,7 +77,7 @@ b'\x80\x04N.' ## bool -`bool` is simiiar to `None` +`bool` is similar to `None` ```python3 NEWTRUE = b'\x88' # push True @@ -100,7 +100,7 @@ b'\x80\x04\x89.' ## int -The integer will be saved in various format according to it's value +The integer will be saved in various formats according to its value ![int](int.png) @@ -116,9 +116,9 @@ The float is saved in [IEEE_754](https://en.wikipedia.org/wiki/IEEE_754-1985) st ## bytes -`bytes` object is save directly as the `data` part below +`bytes` object is saved directly as the `data` part below -The `head` part various according to the data size +The `head` part varies according to the data size ![bytes](bytes.png) @@ -153,11 +153,11 @@ Besides are the data ![tuple1](tuple1.png) -I find that dumps does not support self reference tuples(how to [Build Self-Referencing Tuples](https://stackoverflow.com/questions/11873448/building-self-referencing-tuples)) +I found that dumps does not support self-referencing tuples(how to [Build Self-Referencing Tuples](https://stackoverflow.com/questions/11873448/building-self-referencing-tuples)) ## list -Let's see an exmple again +Let's see an example again ```python3 dumps(["a", "b", (2, )]) @@ -174,7 +174,7 @@ The data can be described as (`]\x94(\x8c\x01a\x94\x8c\x01b\x94K\x02\x85\x94e`) ![list1](./list1.png) -`dict` and `set` are similar to `list` and `tuple`, begin and end with `type` symbol inidicate the type, and iter through each object and recursive call `dump` for each object +`dict` and `set` are similar to `list` and `tuple`, beginning and ending with a `type` symbol to indicate the type, and iterating through each object and recursively calling `dump` for each object ## type @@ -196,7 +196,7 @@ b'\x80\x04\x95\x12\x00\x00\x00\x00\x00\x00\x00\x8c\x08__main__\x94\x8c\x01A\x94\ ![type1](./type1.png) -`dumps(A)` saves the `module_name` (`__main__`) and the `object` name(`A`) in [str](#str) formart +`dumps(A)` saves the `module_name` (`__main__`) and the `object` name (`A`) in [str](#str) format ## object @@ -210,7 +210,7 @@ b'\x80\x04\x95\x15\x00\x00\x00\x00\x00\x00\x00\x8c\x08__main__\x94\x8c\x01A\x94\ The data part is `\x8c\x08__main__\x94\x8c\x01A\x94\x93\x94)\x81\x94` -The only difference is that there're some extra information appended after the previous dumped result +The only difference is that there is some extra information appended after the previous dumped result A `TUPLE` indicate the `args` needed for instance call, in the current case `a = A()` the args is empty, so it's an `EMPTY_TUPLE` diff --git a/Modules/re/re.md b/Modules/re/re.md index 22d7076..ce2be23 100644 --- a/Modules/re/re.md +++ b/Modules/re/re.md @@ -25,7 +25,7 @@ # how regex work -what happened when you execute the following code ? +What happens when you execute the following code? ```python3 import re @@ -33,21 +33,21 @@ re.search("abc\d+abc", "xxabc123abcd") # re.DEBUG) ``` -the call stack +The call stack ![call_stack](https://github.com/zpoint/CPython-Internals/blob/master/Modules/re/call_stack.png) -the overview of different phases of **re.search** +The overview of different phases of **re.search** ![overview](https://github.com/zpoint/CPython-Internals/blob/master/Modules/re/overview.png) -let's see what's going on in each step +Let's see what's going on in each step ## parse -the core code in **parse** phase is in **cpython/Lib/sre_parse.py** +The core code in the **parse** phase is in **cpython/Lib/sre_parse.py** -there is a class named **Tokenizer** to split your regex text into tokens, and **_parse** function is in charge of binding the token with the **sre_constants** code +There is a class named **Tokenizer** to split your regex text into tokens, and the **_parse** function is in charge of binding the token with the **sre_constants** code ```python3 # pseudo code @@ -60,7 +60,7 @@ while True: ``` -let's run the parse phase with regex pattern `abc\d+abc` +Let's run the parse phase with regex pattern `abc\d+abc` ```python3 next_token: a @@ -108,14 +108,14 @@ parse result: [(LITERAL, 97), (LITERAL, 98), (LITERAL, 99), (MAX_REPEAT, (1, MAX ## compile -this is the input of the **compile** phase +This is the input of the **compile** phase ```python3 [(LITERAL, 97), (LITERAL, 98), (LITERAL, 99), (MAX_REPEAT, (1, MAXREPEAT, [(IN, [(CATEGORY, CATEGORY_DIGIT)])])), (LITERAL, 97), (LITERAL, 98), (LITERAL, 99)] ``` -the compile function in **sre_compile.py** +The compile function in **sre_compile.py** ```python3 def _code(p, flags): @@ -135,9 +135,9 @@ def _code(p, flags): ``` -the **info block** has the following structure `[INFO, length_of_prefix_code, mask_indicate_whether_has_prefix, min_length_for_the_pattern, max_length_for_the_pattern, prefix1, prefix2..., prefixn, overlap_table_for_prefix]` +The **info block** has the following structure `[INFO, length_of_prefix_code, mask_indicate_whether_has_prefix, min_length_for_the_pattern, max_length_for_the_pattern, prefix1, prefix2..., prefixn, overlap_table_for_prefix]` -after the **_compile_info** function, code becomes +After the **_compile_info** function, code becomes ```python3 code == [INFO, 12, 1, 7, MAXREPEAT, 3, 3, 97, 98, 99, 0, 0, 0] @@ -160,7 +160,7 @@ the following 97, 98, 99 is the prefix `"abc"` and the following 0, 0, 0 here is generated by the **_generate_overlap_table** -after compile the **info block**, the **pattern** will be compiled in `_compile(code, p.data, flags)` +After compiling the **info block**, the **pattern** will be compiled in `_compile(code, p.data, flags)` ```python3 for op, av in pattern: @@ -181,7 +181,7 @@ op: MAX_REPEAT av: (1, MAXREPEAT, [(IN, [(CATEGORY, CATEGORY_DIGIT)])]) ``` -the handling process of MAX_REPEAT is a little bit different from others, the code snippet handling this situation is shown +The handling process of MAX_REPEAT is a little bit different from others. The code snippet handling this situation is shown ```python3 if op is MAX_REPEAT: @@ -199,14 +199,14 @@ code[skip] = _len(code) - skip # change the length ``` -the **code** object in position 1 +The **code** object in position 1 ```python3 code: [LITERAL, 97, LITERAL, 98, LITERAL, 99, REPEAT_ONE, 0, 1, MAXREPEAT] ``` -after the recursive call, **code** object in position 2, the length now becomes 9 +After the recursive call, **code** object in position 2, the length now becomes 9 ```python3 op: IN av: [(CATEGORY, CATEGORY_DIGIT)] @@ -223,7 +223,7 @@ code: [LITERAL, 97, LITERAL, 98, LITERAL, 99, REPEAT_ONE, 9, 1, MAXREPEAT, IN, 4 ``` -combine the **_compile_info** and **_compile** together, the code to the next phase is +Combining the **_compile_info** and **_compile** together, the code to the next phase is ```python3 [INFO, 12, 1, 7, MAXREPEAT, 3, 3, 97, 98, 99, 0, 0, 0, LITERAL, 97, LITERAL, 98, LITERAL, 99, REPEAT_ONE, 9, 1, MAXREPEAT, IN, 4, CATEGORY, CATEGORY_UNI_DIGIT, FAILURE, SUCCESS, LITERAL, 97, LITERAL, 98, LITERAL, 99, SUCCESS] @@ -232,11 +232,11 @@ combine the **_compile_info** and **_compile** together, the code to the next ph ## match -the match phase is written in c +The match phase is written in C -it's a big for loop, act as a state machine, every complied opcode pass down here will be passed to this loop, the loop will exam the pattern according to the opcode, if mismatch in any state, go to fail +It's a big for loop, acting as a state machine. Every compiled opcode passed down here will be passed to this loop. The loop will examine the pattern according to the opcode. If there's a mismatch in any state, go to fail -if success, go on, there will be another article talking about the match phase(if I have time) +If success, go on. There will be another article talking about the match phase (if I have time) ```c for (;;) { @@ -254,16 +254,16 @@ for (;;) { ## sre_ucs1_search -follow the call stack to here +Follow the call stack to here ```python3 status = sre_search(&state, PatternObject_GetCode(self)); ``` -the defination of **sre_search** is +The definition of **sre_search** is -the search will delegate to different function according to the real size of the **unicode** object, for detail of memory usage of **unicode** object, please refer to [how unicode implemented](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/str/str.md) +The search will delegate to different functions according to the real size of the **unicode** object. For details of memory usage of the **unicode** object, please refer to [how unicode implemented](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/str/str.md) ```python3 LOCAL(Py_ssize_t) @@ -279,7 +279,7 @@ sre_search(SRE_STATE* state, SRE_CODE* pattern) ``` -if we search for **sre_ucs1_search** in the folder, we can't find anything +If we search for **sre_ucs1_search** in the folder, we can't find anything ```python3 find . -name '*' -exec grep -nHr "sre_ucs1_search" {} \; @@ -288,7 +288,7 @@ Binary file ./libpython3.8m.a matches ``` -the trick here is for reusing the common part in **sre_lib.h** with different definitions +The trick here is for reusing the common part in **sre_lib.h** with different definitions ```c /* generate 8-bit version */ @@ -314,7 +314,7 @@ the trick here is for reusing the common part in **sre_lib.h** with different de ``` -we can find the defination of **search** in **sre_lib.h** +We can find the definition of **search** in **sre_lib.h** ```python3 LOCAL(Py_ssize_t) @@ -322,7 +322,7 @@ SRE(search)(SRE_STATE* state, SRE_CODE* pattern) ``` -which will be expanded to three different form +which will be expanded to three different forms ```python3 inline Py_ssize_t sre_ucs1_search(SRE_STATE* state, SRE_CODE* pattern) @@ -331,13 +331,13 @@ inline Py_ssize_t sre_ucs4_search(SRE_STATE* state, SRE_CODE* pattern) ``` -when I go inside the expanded **sre_ucs1_search**, I found the [match](#match) phase +When I go inside the expanded **sre_ucs1_search**, I found the [match](#match) phase # fifo cache -when you called the **re.compile**, there will be a FIFO cache in the python level +When you call **re.compile**, there will be a FIFO cache at the Python level -**_cache** is of type dictionary, and because type dict is now ordered([dict implementation](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/dict.md#delete-in-entries)), it act as a fifo queue +**_cache** is of type dictionary, and because dict type is now ordered ([dict implementation](https://github.com/zpoint/CPython-Internals/blob/master/BasicObject/dict/dict.md#delete-in-entries)), it acts as a FIFO queue ```python3 >>> r1 = re.compile("a\d+b") @@ -355,7 +355,7 @@ when you called the **re.compile**, there will be a FIFO cache in the python lev ``` -the cache mechanism is written in python +The cache mechanism is written in Python ```python3 _cache = {} # ordered! diff --git a/README.md b/README.md index aa746e8..9d3e847 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,11 @@ * [简体中文](README_CN.md) * [한국어](README_KR.md) -* **Watch** this repo if you need to be notified when there's update +* **Watch** this repo if you need to be notified when there's an update -This repository is my notes/blog for [cpython](https://github.com/python/cpython) source code +This repository contains my notes/blog for [cpython](https://github.com/python/cpython) source code -Trying to illustrate every detail of cpython implementation +It attempts to illustrate every detail of CPython implementation ```shell script # based on version 3.8.0a0 @@ -16,7 +16,7 @@ cd cpython git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 ``` -The following contents are suitable for those who have python programming experience and interested in internal of python interpreter, for those who needs beginner or advanced material please refer to [awesome-python-books](https://github.com/Junnplus/awesome-python-books) +The following content is suitable for those who have Python programming experience and are interested in the internals of the Python interpreter. For those who need beginner or advanced material, please refer to [awesome-python-books](https://github.com/Junnplus/awesome-python-books) # Table of Contents @@ -93,7 +93,7 @@ The following contents are suitable for those who have python programming experi # Learning material -I will only recommend what I've read +I only recommend materials I've read * [CPython internals - Interpreter and source code overview(youtube video)](https://www.youtube.com/watch?v=LhadeL7_EIU&list=PLzV58Zm8FuBL6OAv1Yu6AwXZrnsFbbR0S) * [< < Inside The Python Virtual Machine > >](https://leanpub.com/insidethepythonvirtualmachine) @@ -112,7 +112,7 @@ All kinds of contributions are welcome * if you want to share any knowledge you know * post a new article * correct any technical mistakes - * correct english grammar + * correct English grammar * translation * anything else * open an issue

    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 )>)(8^6@31Kuxb)Rx z=tm7G6Wn{B#(ui=x)EM(Il%XpTfc;~_;@!qk~>;8A8>P5tSPvQ9lqT)w^A`$5c~KeV3d|FKa+e#qu6RU``=j*VY$dr}8v#&|ov) z1X)T4y*K`51fQ}T2hNx%a#MHc^zA|oM8(G^ujs4?*@YNd2oS2ibU$ndtx2cFQSYMt zzWb~EQBU>lLL(b(<@9Rrq;Ds}Xo^7L*#GHc_5dWEZ}y{+R01r^Zi}PHo=s5shEe-0 zlf#M*eDEj;aqSQM45xsx**D7dDOVDZWh?}%&i6y$!)Fc~gCZC{rZ~hR;gq2=(8j{) z-M4#;Qv}%XdHNdI0~XMO#TF8ZM^Z)r+cC1X4BW6Xwkit4cbY+KvWVp5Pti8Ghk}Cb z{<4B*+z22=wM0!**>Z`?Wp~p&u+QEK_Xw(xxYOpZD@Ya)A9}!#ro)zGjhY{R59nv4 zg!iagtS}v*5ITQA0Rj9f!UnqY$aWXv#;OC)*EGInsG^b`CwM`YFY^5lgF1w`keDU4 zK}*n}u^ijmJG*VeMG{Q^8H0piF;jL-+=x-TJ#2e?*f&HKh^UVgtA*vQc}Poj<8l>T zy#e*tCBjJRfMY;Xp$_nG0vVUdOz3vEaQ0AWx>-=EVVi~ zXrh*5tC2@OqhR6JAJKLO~S4 z9fOmz%U^_-7{RlcZWrKtB=AniCS&Y04*n4!svS%gQ=wQVcHb zCvmNUmOZDdaA$k92~B@SF?8J2IL2Tv6nsg(@xRe0sN^lZD-x$O+;mUY8u{d_lASC? zUadPfwCC;VLEwk<0HF+q_k}Mjt=Vx}A;H;pj@i8qqUKgAjms#M-rddLRCyGfy`*(h zx83l{RXYkQXUNDU_?9wY4| z#JWr;*C^_2jWa5{#?W$_(QYvExQJ&y?NICcf5V=1jIUz;IX+9N?UXP^py%jf=<`VD z)L3}a_4|+Y;x%kq&6j+`AV?llRHg;0p>XwhM%GXtf*#zTIBYB4K}3|2M$k?Jt&gyD zTD`6ZA;GrLZz#4;S2U^~a@g6lU?Ac!;_2Z(!2(rk{|><{aWhK+d;Ur1#rmD8vfR^< zpZ=R*A+@l5GK#@5eQDQc<36Y_$Q)$)qF%wSaG9EOv*Ja_FXtNxO-v)-PM+2*cSzEx@6dzX92a@4;ZA@$Gp9w}cvi7&5e9-bRpKk3&#)B`l(J+3yuc2_I7F z8&o`kn?mhIoq>)yA-3`*5Y`B%_eBN^!Tvt!LWK>THyTuzCafe0>Ou_R_E{db8BAm) zSfZ4Co`6?X@Ny_f^>ZbwzckM!Dm=M3%aiPY=K&w2BHt4uA8EccFQcf0_gjkSAtgcF z{=kl9s~^zzb1%|>x*s+a;f^_5_cb4HSAMP}L0qQ&>r2#Bz+pL!79cj_nw)XXmtgh; ziiG3Em+WoM66FC(x{9Hrs4sLW-tQW7z`=LQ8lWDr>ejBio_kelQ~ZdkCJNvU_f1e! zp3e8b;s=U>298~nhz^G)BRE=QHKYAz210n$nCREWlV01V#F1QeSMRqaFvkIB29u!W zKiv+1|p-3PH0=OAOkUyEW-rmX zIet0lLIRmDhi=vRj#rHNl}DYcOV=CHuXs1!z9Kze_)5|sj&xUF*S3|sD;>1CaB6Kd zeqc@H6`yy+{yEW_XDcHgu*-*oKHyj3PpsDWSLV@I2oM>%wjb?1I{49L{?xQIH{|=( z9#>D^Il_10Tg^23nnIbmPI1nD&t1B3kEQo$bsEL3Mn?7 ze8mW0B!bKPj1jQwW+okpb16&g-*yuis@O9Y^#**1UyPC|!-+LIqc&yX!E;pyN1HX~Pq?Wt)`(0NE`F;{FRKs)ntI z&<5t#E$8YT(fb z-~k7Mf1DXDE;f8fOgiQn8gT-$*q{aOTk4+HJV$^^ccc2IX>&NI2XL#xhC?f#f7bYl zQB?nyG9nH^esQ8P5$Iyg?hhAAK)Ftj^z&oD29UIE?6m9!8yN9SgG%4^t>O9 zWH`bGeJvr{$>A40K@6uk9`u>x6TRa26}nzMt~|#8YSB5il<@CiVkB1q<#{cl04-t% zbJFlJufVP-+}&zhvU}nS>xfjA3g&vi8PDls2OE?ZRya>E4Hn@mX_OLnzt*2i1cph^ z;pW(X8IhqP_BA-GYw5ZAoy!Pw-lKS?gpg0)E|lux4LcJFFk=hQgODH0iA=m1@Cy=R zuAxEcxlL#6Q6Km6olJiI8|_(hSrYEa*tTBL|3T zA<~$LYA{dwepS7CwjJs8cv&jlIDs*9{VGI;wpXzhPr#6sLX33)-P<0BxT z#$89;$>=mJpWrK603E)FqANNj-Lo5HSzqnBv$~r!ce+#6rF})F&s8;HNLj7gxwG!x zu-Y)+65dtw$gPT~GEJY24HlWUW@2sOVc~~Ug zP(USh<^;Bs7N*iXpM*Y&I&Ho>tqy06J&vAIIuJP_&<3l{#Yw1h8SKq2lP+1CHdkI%ZF>T!zd~W5GG+OD1 za73b{GZ!*ITv$flj7|!cd9zHrbATE%4V9qJs~_rq)qN=zgO^Ee&$!|;6r#G~8m{(M zY9XdKMhc+?wYir!A>O7Kvd_*szGPcm$(x3Bo7Qjy_bH=idOuO{ourtu=!XQ|mmCJ~ zv6`3|Gx9Kge+g8bRdwpK9EUt`?1!hJ`i5F9)n09h(Bgw0W=}l4($pAUwX?CYyTLgk z^kUC7HMOu2vh1E$XR(>*$cmH{=hKhJuMQRKsEXS-iYclpak-Iz4TNrd@g}vTcks?w zJ`vw9T}0NG-w6xn46VoiL5D5v@WG1y&@p32D()za=88s4a^Ahc?W{D#WqK-5@x--l zVXW}5hn67My#Y_prQW))X!=v}?|5iPe3~aNuJ69xNNPv`<4ejnw1lpV(hm#E6^Gu? zLc2*-l$G9HS|4=kpVyY-57Ig?X@y4)y$dwod&aUiCv!AE8nba*_VdXR2TF*h5~203?>J; zES|dGa(vL5)%)_< ze*TDrQOjMW$vU(ob9x~zR^K@9MkB84j%#|wV`>pns z@<=J6i#<}2m2~9(xYGxlIx#PfCs-cf#x?C$?Jvdpt~puT>4m%8=;RL0`LdwZhaSC^ zw%-VI^I!OU*!*dlwz;#oHjs(J@B2pS8~?4@dQsc~cSzD0a#3ybi)p{;(Wlhf6J26+ z^KqZqEyuJ(S|jkt%ChgKiCnxYrws9^#T zOR&K}TJA{mv~bn+cl}K6l;Ey1L)fSgkAF&!yR+pyHOHKgXF}O%+lz=dqwT-tj6os3 z{zy==NPVy3SLMvqVPVs+AM_%Yt1XB&uJLy>L>0BcyU#x{%(>{6i8>Xc>bre4#kGG~ zWbMK&;GH!F{6Ax(YJMInV2C%N#BJSC)+oH+S48aZTe137;GDRy2%qwv{dX0_@x52# zLeBYP*jWvPQXO`b{HfKc7Nx@GNB*$T{v#~CIX`a;4;h%#R<>$z74=#=vYdPd;&?hBN~`WXgU# zI#xj@bBkYd1F@niPMx0U{ZuBE zrBRkGGn=zR8$ov|gygQ4Fh%L#!L0!y&^AS?OwMDp*2A|HJT_mLaw_^Eg3q)f>l03{ zgn<$uTqlG6;Sr;<77pCHw?9b3Ckjr0c=G+6N%4&F6LXAl-`c^l-2?Bd<@f?LMT~`0 z6Hj;8)nt(9G?Ld5v_Sh<_ImQUuX;t94acowoRYv^uae7VW0IvSq6?a*f;r7-6=BmB z#}+DuMT{s@?44u|m2VTyR-%(H<%Z0W(6C9If&15s7X7+`x{}4tvS%{Kz<9|rs$ANpu6Z|5YSZjy zyRLB(z;uFNp>i^MdXjh3O69?e?5lwk2`pGO>STibnydo4SD6Y`?tpn6K?8lku4E?v4Xru=;+7(OU%Nsh)W`ds&#Me?JUPnMqy|t zI>NztL5;^<%D7jvDAT0T7Bb}J(|jmFw+>R{wLvI@?U-eeWvx;F-HHSgTE9?9VOrio zvbn5(upWVMtxDB`V6eY~tlLRtl44K(+*(^rbj@U&-f*QSAOAc3%@d`h78|@y8JijKhK(TN5VAx`iKl zsYb58Jdl=Xf8$D0r|}*{TWi-O7gX_3qWqbGf*sw$lTQCz=V=Gg;#26W{G7f^YqM~~ zz2oUp{d~_wEdAo!ARE^fjU&>!jN`L+TX%t#-E7s$aI$}8-?NbFykjhg^*CF~RrtKv zsuq4QA(}ip%lqs4C2!FMN)l`$GL}X!LregKEhyoR>*>^mX z7XIs8&%H%*Hwz~GEBtLs>O}>2Jx(<8ume^On@6Bi4>I$&+Ll>F;^HgvR?kFUcC_52 z7hk>U5ZE^AMc~k|Bqc(AV&!$!tio5^wY9d{?5M6*JJERZQ>kpiKpX!!n-#Y({0vLb zDN{oi*P`yS?d(f1Bv|P7ooiD?lgDpMCdm!acP!ZBp>Y=nmlhU?2U<%%W{Aem^rMJ3 z$88^l1E_GMA)$WZ`7Y7v48!PN(pL)8mb)45J*Hl5%M|1ti>7hFQn&ArV50N&Nuxa0 z-V(jzWPsvQ@tPK0FJbm#Om>v^u&I6d6wWivIqIxycT+5AkiC%KYT&uqbr7`qX2B0q zVM6CQp*2)Fjo#maZm&niY`M%A)DvKfbdz`0*IUnPHZtJKdgo0rejVQT41f%D4`d$yOI^2S{3O&;E)0#a}0fK_@Q%}wsKY>yZm z0__E?xI9 zR$b5BOK7djG3vHm0SfZ&r{OGgo*t<|8eyu zpaGsc*#`gHn%^rkF)k{^A3^ZPq5q=g}oa&0Sqf**G0z`n(>z=-V}XH#4xR=d~QGEIan=?q{5k zThoks?Vj(+;pgp!CXAW}kKq?;LR-sjSJ%PWE&QD=2xn@gM_=8<3)>-@upI64e60C+ zAv!RC`oQv&7{YwQRZ&VyyHY}6111KOpfXb zS4vkP>t-)WQE;x2AnHhtk9ynl#SP05F>LGX!U@;bYNPH*132`llce)9mpaz+S)uIA zMUIPNg^*0d5ec*h4Og{0Jrg-~XByr=-ZvUTdgC?qa0}}VBIZj=6y#(a$bZ~*kNSb*HU@EZOZ+=O|H&4DmjW`B| zf%mR1(n;g|jiBPE>rk!H*u$8YFdfs)#G{q40tonHE6N4MzhkyWivY=^Fuz`drgO=; z+*brN)i;o4|JK#ph{+io_QEnFmxeuxN~^zU;Ju!A_YF1*cvVjhRGdfSk&~7%_gwLDHA60FCR#C90 zmZN#`ineLd4?}z_^Xdku1aY!$OFAA^_Hoag>()z9Wg<-c0wf zJ>EI35?F%L9|w`(P#nfE=#mB)v!d01l0D_4D$i@1BI1pywfLD=dAzGFzR_*-`PQ}i zm0dy7rQcM*8f{!M@&?9DHb)G4= z$*h;6h6hzZ*J>w-QpGlnNGI=(^ozHj{dk$^xvtxqeC2ja9pb=Z&=yVnwRy;vW5B zkKShC!RqokQ3Y7F9s07>PWrV^PB$d_)YG&tzNzH1YN&mCmqx8te&U=i_`veGbm{9J z;Pa*3O)MG)7D-%POO1V)usTpBs)-_3pxF2{=f07K1KA5Ns^x`7!{+XX%jQ&?#s!Gn zF7L&C(V@tj{V29Jfxo7(`w$d$Lvncj*~LvFgY%zn-UqBT0uW$8QgiTCDp>a~w~8ps zWbskx`1Jrnrk}?3czwuu$|Sz#IWV9s1XGVee?8Wv<@Jp#Im+VwmRURITd zNN&g|4rfO4_t2s;X4SNE$(F}AYpALH7WcMfv2m@_1L{ny+OmHBE#3jU2wlB3(2ohB z&Q%1KJ;<)wmaV=h6lQGo`+mmXmMuVgl-(9-ue-~9y{k>yc(NM9u1pChg$N5QtM~}t zet>_AnaE4`Ni~v2UpJsrrqEZmTHH4RVeRL{>ZQ;!Uinhaz$j$`pN)slPtU07Mqj7RK zU-sh+(U${tfLXbAZa;H&uh7TS!v{2J`}EP?-Po3Zf{|kew6TJ+`NN7 z;R8!~BJ0Nii3-E$<2p0^3wCuZ{3m94bsXn?Uf1y2jU!ar6i{RJh673!hTV)?#Qc#} z9?1etz1fNux4zgBz2da9Np4)DDxT1m*rFyYuCxJraray%oATDa%5Un8?*>{bw;N{) zE*q)}PA4Vu4LWsMY#Xo&Z06V04z7{%63?_kYN(Yk#-hhTUv`>B|jLqD~D(?!p`&TaK1oeFgzrRqd9uiC17?AA1lus4tY z9IN1VA2AOV36fXHEu{3-txbM@lVoCe#-8A|w zH5F#PUA-LHFQI9v3`C@h)Tha>zK+z6{%8xHIlUrrk0)kUR1W>Ek|Sr&rY|KM&hVj1 za!qC=Y4k9xaU&;r8)$IsEp3C>loMa{^R~T}=KR#`)rQ5xYp;~rQZim0saDCA)s1)# zhHw>dIqEBrE(|7aEhsM^rPbT=g)a~zF+Vu(rqQCF?u;N^6FgZhU>mW2(xQHZ-zTBx zI-H_DhSx`cW^lSa#d=&9`HZ}YBr_khL32B-$eh6iw;Q<*TM8Z7eOk;%5n~0q^D5!0 zv#08*pb2?W|L$_)+g8IB|8av-IlTQR(MD$6>36ReKttW^+3We=#7IdWMe8J@oagg; z)1Z?-L@t{fMpNs}WN)2(Dnww%ZhaHTmUwJ9^+7C6RJdP@TnrPpOi+ahkPWj1zVNoj zA;C&}2ZU%eY~B1Gn$jF`ooZ${Uomw~eoQWUakZ_I=dtajE}5Ps>pVZlAKA$HW39B8 zAfzS*@xbLEmPl*0mn{+F#m%&nXN#PrK$XDncWc(Z+o?xdevyp2`vTdMQOGUJ%}&;*K%_}>~9Q}1mZEO*WTK;3q`#ED};#khlB-@*8uYBGM?eWU0Vh`5xl{OIn(+qel! z!B50@gAzj>LD1FGioH1PH#nb2^9FQloj3wj&aMeQ>OLuN{b{KO`O;Aey{2``n+Jx2 z;{|ohwr-(Shh`JgW6wiNO4>Kx{^q(Sju^-!5exhI*hp{GKL=D-+-&m~k>ZJ*Z_|V>joO&J{q@yM|(P z@Y>c3-z@o{qr+J`g*f1cFh?o0VIc3<7u7w-a-0WZT^sdSe!;16EEUfBze<+I)Eq61 z=?T#J&v!PV^Cs_G@}6o4)V#l)P$S4ECs!m;qb$F5h!6I&n@#hwg0$5Bda2ds+E<|y z;;_(Jc=q8a8Ec--!{zoYrQf*j_ZC~hZf>(I|9%cDW_`0iPbJ`SuGSD$m?0_UtumYBVjIcZ5B<*lu#FMLkM9k>!_>mcmQ^Pls${a zRn7YONP)yYyZHRIZNcxYBDH+#IT!NYy%LMrjHIZKb7#(Mu0JM_Va=9}cm0R{Tj&ui z-mw%1y=6py?N#q%g=!fIH|Iso7IqgQQ z29{JM&OAw}c}I+T+BP*NnKx0fV%t^IjHpxLVpQQsv=oo_sJWY zA){B>)d%r*I`V&>-+!*-`k)X6qa8Hfh=ZYm4^Ro0*~pixBy4Ir={z2hLYbb`bzeAjYK6-^qj%F9R04H8@7J zy!q@}2|BW8_}0D{YpoIWGW&uqF8(sYH>CfE3$uj5wK|0-vGQa5dF9!sO4{0%6FQC& zTPqfM1#vSeHw7*C;lS!{0OPpF`$< z{jq4mZ{q*Hz@L-zpMUE6ln&f;7W6yW|JyyIi~aG}gO_M;->PZ6eEHJsD+Up3Ip__Z z1ZWcpbF2TX18}}?QGv1FfRi;$eu4}(K`xx)@?Rg}tMx(7 zsf^M=v$cUVTR;vg_Ve>oA|d_zNm3CaaB*>+1gw{qJ|DsOV=cP>%(x10hWuZUXa4@} zud(>w@_&@~^t|rv?JcXVHKlzS&Zi%JqZt(Ya{`%!sv_%eb1%K=R{3EKt z*Jz*PK5Na(p&cwyk=~m9?#Q5-aSYA`1^P{1>73mET$m9Fa4SrfJEL4$ z%X?gQXA^@L-oU?l{P(?qS6l9Ie_ap1#}t2G7uWaW57dB6Ys<^On8_xH&uQc_Y5J#P6|=grMc9qmLjm91wNmq{jYoCyC4c$Tn#ReU8=9iMv&za|Llui-!I zaX7eUVs(3&s&8y>Wi`9upim*QQ8_bNZM1WCl*e~^M8?Fn@%R6wdWiI4QhdzA3O&>IgwD5puMD+#QuBWNNRpo&6OnW49<_l$AX=aD_&JgP zUCP0Y@DUkMefxHFCS~JDxuIv-W6*UVtqRnX|L433);2o)u2+Wq zA|eZ6VPW~z)zz8_JrG^R>Yh;>F)=Z%9iY1!1%WOB`IRQJ@Ki1#+PNVeed@0P_UNVP zTB2Q%UJ8vbMF8)uPd~L){%&UA{#hl1XVvXs#q3?lYnrF)ee>&@+xcBqRoaF8 z-mPQC@xLD7;f?iNCn0#hPcLWUaIv^c7JkF=Srl-l8>P?9LCf~_l<+|Qn z+kA-kQm|xx1olP2d)S<3T;sl=b|0&=8jnx^_1N#9t*;YmmSaksRozs5;~Ra)gG)Zm zpwN{8WYZHS()%}EF>oCwKJxfz#>uM9vLD&BA}zxC;+8wguKT{U@{8>#&zNfD(e2fj zw2hwc17C;>yjxpsQ`;W=HKkD@+|GVQiD&+{@hjI|d75 z6r&~}3+0;*r0zCkM@8KJ6(NU61hwv9?y^ZlNg*Zh(pp3RqkQ?F3G|-@Yfuf9N{**R z4$MYV$A?dq-S!t-#*6et(%S!ut#WFFviE(Z;1D2SsMR*kCyvAN&!qdmF9+vaDGp~? zi}t=YE2|w`??5cW32?JK@%R2U=m&qI%B2YlaV~WoNt&Vjv!MK+E~NI_hbu>Wqy3*n z;_r#{f5$o;LX9|F)P_zX+9muy9}do!Thah{RX78qk`6L^L&Nlw^`SO!FoMk3wP9J0 zsj5dL@}!X8_ulm-aJ0Q2NVV2-g8_I+2{;4IfTPWx-hG}FvNg`~{-O8nQJOqt7O+k# zcWbwP{vxvM1l6W(;Qw0;nC6-QLuhPbS+W5#oK+mgKQ#bRX9uJM`0O{^?GF{pW7V{tr9TgSm&9$IqzigQp2o~->*=L}9#m|3&5JyP&c23X7{Hh^x}(>?DyffytCq}+^*R)E%7kv!CO zo}$~SY*#s|2m8pUv~pW8pHB+>-8~2g^s|wGqg5WTk>+*Tecy~V1CERNifO_y)iNv~ zx*+zQUUY#>wVhS#sW#l?KpO6zl`RV54p=l@Ofyo{OrTHfsOu-(3gYJb*M?Qj@*5h~ z9>&J!J6sa8=`-jEq^fKBziF0$u9JIvFP7vw5)p!KXl=yE-? zFsb2mx)&{%)T-DQ0JVBuH(yhw0K!tkek+Fa&&Q^d`>?h-cQ7yW%TF*dam-*$Z>q3P z0xrEVIA&)>knugInR~{{>U^ZCrIn=Qc~}_7&~U%Yzpn-WmQbM%XaU1#q+}Wagkw{1 z@{h$L<7HQSG)xWWOGc}7GnHHUZo6XKuzkU?*u@F$&$o^%69@LTrR`lfe+(RWRN$)t zh7FO5mGJsk|1S(4pq4cQ0>b*<+;j)v#mp=2Kxvd;S<7hS{-gnpHi`|Gm&k^>C(|II zkP_|ML8zY4lV9?a#2J{cPxL1D2Lpb+K>7{fY*jRzVGHg%G=qJ`@MfUkC&J5F5y7u6 z_N-u~Q3u$1*}1jTotX*QJ7C>6y9W479l-&UWWa+qA5-&*AnsMe*3>eV^lC+PE` zopYP6Y`J7WM1nxTz~LC1g}tzB0&JD@8VaA0)oiiJWgh zXPq7OkZNFn`5wm&=&!09T*tow0lR_Ba*jK1Sx}+o55P@u2-Z=e!DanCc?A`R7*d*Z zA3LmZ;An#Wn8-w#XnZ=In39!(5dXMg-*FkyrSk1?wnjTx5vBWfiD=$8h+bb_e(CF9 z)KQco^9Aq?V`|!oo7Er~u*kHI+=+YjX_^mg*^9EyYThC1ieKRF~<`RmxdkC zI^Q)9UB+@>OL57Uj-n|1($l$_*&65#5F$^D4nXH&ou2M(8)zmmqV(AJ?M~J}DEe7) z@RO8>Bu>jxqv?29_7q^UrcKj4-vjiVlimWlZs7q`EbtOr>6MrxVEizY;0`dokS332_Og7SOE9~Igq!ATL=S#q7$XD`LYYp2gAN6 zU%)>99olV)&FP$|FRfz;opyKKIq$Z`vex1OH1AU6AxIMd-rPm&EDY)jtWiiWr_kuXEY3f?$>a*F z7(WJ0Xv}f!H(-&duE?WXe?&;gC*};mEY9Fv)H#KA$2=`EL>mA|7DGfsErd%T+_C~3 zwhX4Yw5BJEu|zR+kM5Q!?@(Q7f+vK4YzqL`K5MIMZfr*BcV6BXUmw5oV{7fNw!IfW-oBXvlU|hTG7HKy~M(y)_Tr8W3?=vz6TQ33RLQI zOAn_ihb!W$t5nr>x#$eFjFnJN?MBF41wh?9h5ZJg_iBan%ZFdv6xbKgvkth~f^^K~bld<8AHl{My=SunN4h zxC6zdsy4tAs7IZ_HB&|6PrXyTIvH@+?g+@uhvtf@JvS>-;}S;xuc1*X33eJRecZ-> z<_ttJ=%}I$6YJlY99qS)-)xr+OoJx+JtY1rn(Zh_#n54`ylSw7RyL7Q_KFa)C3}ammAz$?tjz2Y z%HDfKWs{XX60)=Rx{tH#>bms#e(wA6{r&%YJo@8(xp=Shb-rH5@mvRNB#{fP6hXY- zdEK^$&G|#qOC>cwHb;GWXiwf6s$@xd6(=2L^0dl|*=Qy3x;PJu6TPx%2Wx7Y>Ob0c}6rndTV|8r_hQh$+)Ve`os_(x2AiQu<`N|W3F*~itxhe zGv@}hj@IyL1X^)58oho@K?Fq}_`WO8lhyZsm9~*~O1OGUS=)!i;oU-LeT#9n^(M%< zy(N0_`8OY6No!*p1fZ@}W2;~i+B&ox2JiMS6bK3YfwBLgE^9Y35tUuJ7x*+R+c z?eEQ)AHr`WK^8sz`4(1R6I(EqfU(9j|G@-SQZ(hcRu5&AOkP8nbGM+Gbn!Vmgi$`A z5vNx#^n7Yh;TS6G3<8NaRb|CLN~+2rb8*UcIDlhpR(S3V7H=ndwu_J8Q~wxG`|PvX z?2klY^N35&TWfArPRsiqUo0WE7PQkEqc+jVW`axv z_EQzI*_BZ@3+P+MS^3_$ zwY3Lp5;1&^C5{H#u$y5jgtWxITfyWQ!NzHsKD{i}7)J6U*e=J1bwi*IPWch_J>Dvz zM7GPcW7b&o#Js%`L9X>zwKi-Q4wiY;dRDIeEm`@ilpeb1hL`_ssO{Nx+LLu3X|ORW z<r*v4{-UsKYt(>zV0IiY46( zOkf_9?Q-+c9N3!Z*EajLIA}B2>+jF4TwI%tc$dxQN7c*zWNqZD>cAa)aUcKgnk-cH zWim(LKX>#>84CnGjH{=V$vUVET2fR{^48eB9&jpMGxv&8L^Joxz)7W2G$#J3&gNIy zC2Y8$pX&c0_qAVkqg_dom`c{ zA5n9lN-L`l^~n&VrDwG)YsOVg&Z=_4vnYogTo?(w%CO&)a5UAI+E;>)3qi42K@Vb> zW){$MwSj>~J61MV+r@jRdKe~ly;Zj#|MiQURk5}}DjWLTdUuHz5d#c556N<;SLx*) zRav+qnk&^7u887R>xMsIJ%k0B2f~}yfSwB(^E3R%yD~J%M%8-uA7~be;|=!brb4%$ z-wI84&?Wm;y}b=?L;MWtuUxArH6-Mn`Pi*j$Tfa^9Bo9}ZB=f!s!PP#J@=JV2K{^n zUoYh5C7-VIAT`cHYaj1!6gfWmk$<&+rQvU$#Gd?mn&ePa`#HL&E>{m3ftDc*k6I;x zLTVoz&^*7e>w%vWAAKrsVU#kMYYYaH35`@98N?aB@zk=v(7M1W*R$6KXr$HP^e&;{ zye@B#vR+qJHbv`h@Z`Mit=yTFJ1sQJ&%E%rH#vUbF)oii>NmS&&NEcP`*xGmjRXTN zfg_s>Mk_z9+-r?Nmj(vN_%`gvrwq!S^gZJi#{2x?*x7jZpP_x^LRT z8Mc3Vdt{#qziePHd@DQ36e^EK{Z@t@~WjG_a`W zS1PI+jqUC2?JRmtv#oE1c3%H!PsmW%R}*mvse#f_5$VN}#@J6=DIF55x*y2JY%e&A zj=q@|2DzOr(fsKb^f_hq&}qy#3}q@Y;m50!v;qPw?U}%1o6{c4RX8U0FfJ63S*0&9 zs*#ZIl9fs3@|b0f=J_4q3`7zSZ$4F>Cd^famU5t=(yZX%V^9!R{ef9#nRBr|y$hl4 zlZ(T0+pSDLLzxIm{H6XVo=K$uois#w%ZYkNO8fgKzY^^_6nRcD&pFASc1dTLA;^;L zRgS1Z&ZFItr!W3pJ_Tc(&gNopQ*r+W=aWHHY*l#7U~Tpn)-&m z_(fx3GUkpOP@m?C@85vTiEl4Iw@xmEf4jK=$5ZcSp>vJF@|gTkDL(iz-e0~3NvpW2 z)>RrVyVF1Ge43(3pg=xXZ-uOgGuc`$N4qnk?4O~)Q$ex6XXPOssjgc~;_`x_cHs#< z$Y!E$VeD;K?;GJe5wgfk1xD{`RZ?oPTkt2Gyg^R6^`cLuYlgiB@J$}ObI-9r{i6B6 zl}S@S>piZuWrpV$H?IHHO~G<&;_1K8samQ`mJJ)a#=<~;$`a^TF}>%6bm4S6G$Wol zcRiWX3A85Eb#gY4j4Ir$BYiEXVzN}&OEeOi)}c?g|#KI@r|Y?i)_WvKjX+pLH1)x0ZHl+A*;9 z=19g~=e}e$qKj=nkBYHxsz)qMl+=l%_`JDXvD8VWHwizBgm)JA)>%3HTdT5s=@Z*5 z1+wi2=2=^fcvv`OlA_%cEGLhTZs57%?g|;b5D-DP%kQauT4X`jigucxgO@k>a_pnO zU}0>rm=~yu_Cf%A{3@d=H&fuKS$>DLw*-Y{8e4GjrA;U}t|{#(G+t5M2jIYh>@}Rq zdTJ*5_j`{(E}xP!YQV$4H%l>-nl0OP=G;Z!h*VAFh&2Ho&0^D#H-8b@t~>}k?)h1{ zd^c2pX&6|lkuoHnE_x{72~Iv_=T7xej+qp;&+Gf)w^V30T-~Y*l9(uy&j(3v*T!qp zin%no%uWwf5KNlpF@5Ed^L^&^0_is;*RQv;#>08tPki3IYE`7@*4ulDUvUgt_)gAj);Y0QO$M0ORFvu5AR-t?)SDfse^N|o|O z>mwyyW4X##bqR7QBIRrz(}M>v(06C5a~}v^6Xf*YcN);~@#b&qjs5nj zsE>=x--#mA0h3X4>Kf0^agy_>vX+P(_)gE5_tH;>2WufP1ubFx6b||y=hG=5H9AfS zXS@)gMz=FpKmNI(Xdv!o!3$7@dN(vCKg|T^L^A5nm{qMdq;1Yr*euQav)bimWE4bd zIy8?ttxL%_@jELH!gRq#t93<=qIy$6zRWa)HuYyalR6}XNw}bge_#2&qF>W-@W$~@ zqio2d1t!2>CP7h~y9jrql@3~Q+GD^rr4~fyMG__Br7+}opv^5Ow4C2gING4$*pj7r zIMCTX2CQ5e_cY#D2n&`+YloAKW?nVK#q7WlL+T;w-$;zxMcmHfmsJW>7Z)lF4mbOQ z2HkVWkZes@3+p4+jfhrs?O}v$rtEM9wcO4WGSv6$?PuQvXc*~bZiVhRK@3wA>Ldu( z`?9gJjng1bdJuL+{FziFT)&ZSj8r4O4TlO$Mh9g%>+B=XK9Z7~CaouaWs{e}u2)Rn z$f^9PntLE8O019c{e;5+N5vU1>6Bz;wOL`lFD~P;p4U^-uvVzH*vmWIqVF?`W7csu z7S-+BOt1Q^Rsb(-^V31*@nNXUUBik%LOzG0%B#|P>T6ArE18o&vI;v2;%tVR^Hpn{ z$|t!XfV{M(ywAPwIiBJB4!<8VSR%7~+mI~(d}6Lxx+16NX-BLffR82X5&dOWnEv+? zvoF)merC)2oT?V}zOewG{s*t- zm57HNd|Hl6Y^4&rlv(0seF3c?oa}&EVl)0;W7Zy~ zjwF#b-4AHWgTv-4&A1mtV(Zo7En05cKw6XcUihrHr`M`tCojXtcEyaRs4xUmV}Eu?a;#uJ zMRTlASr^lmm_lY%tf%;8gAKG{7A_?ErGmpGn&zr2uL z)u9>VBMZV zetP!UEj`{r{HvEFmPI_=V$}Hr9s+7qvSrI|it8<`nfB}9QE1{@V_#nGnd|!JmVe67 zjC-PBUOT6mgi>dlZTF3_Z^9g3xsIS(sJV+BL^oPY_FlXiOwG2%PvkH8=RxhjkAlsVO{IQn@5&=2dPB&`B3+LJr z99KCrRFq8L5aE+wi)#N0lk2X3W%FRZu4oKIFjuW?Pt{KiQ zWsWDsIq|~AqX*%sYPGyll+p0r944$^d|18qumWBoEeD$@z43C}??_^3U(;UWL%+dey}mTub$ZA0(PYJbbiQRBg_$Vi;u zDh`2pRI8%^s_&@}GX)J1ct)CXL^tSDRo6ydOitWJMox~+_o6;@#i_6w=Y2?wC0uBQ zGZVjsd{v&w>q|sw5qZx$lG-CnT3sB%wVJ+<4i22pKwkLML9Cy=;)x$kM5dJAL`B2i zU;42oZUQx47^*8pGUcHEaq8^Il{6o$6#F}w41TMAME+}v{hKK{nVX~@yc2lSqWx(u z@9{N48#3s>a&_?<-`xm)7bxRJ(SIhH`_lLO5=Iz-z36T~NM-XJnAE1@xE`=6SZpe9 zyJjU5e!62XZF_0$tPGc0ySw=rw;g}&$_5b7@?fVpo*nDSZ_Vg1!_~Z`prIl+cf_yg zPA+>T@`}&a{b5>YxHsxg5>TCe=->p@cxtVPdtga=JBv$lNo?h{ezKIk#ok_Y%5hOw z2^wu!Le(?MOO9&LHA%S_^WL74B1_tWOt+OvDGo_%7WoAxaRW@PVcGaQYxN;z*)ee- zw5wWzP^+YZp^j-mD!tKg~FGR2VZjWy_p?jd|WRxB~XHwXWmn>tPKytQh< zr1C-> zU#hX(%MN~z)voX48slTt7f4@I+kU66&Ad?CrZzxjH*RXXT!os`cszwDYCQHzn)RfL z@z*^j4fz{qjT%c+ZKfGQ0^eT>IPC!izU=JcGdb=mOuzSQxW@c#QbiZ^OpH~0 zM)CcE3a+$bTq?=deTry^P`mX5vrMu#m+cCL)WX!C4wXS?aFA0HGSqIn2G%#*lCuK1z$Yv8lU;@-8-dQJu@i|;f=eA>+$^N)8BWM zoHMervTRLB73T}PDYzQ0XAFlk&OF)=HLDB=pzm|xuZ>s9a(XM2NcFdJt&EHkr-4VQ zA%jZt0EfJ*-e^Xg-!kb2EIFm_QQztESgZS2V5fggjlJN&G53<-X7JJiy)_elZUSLl z#KupP=N*cbM|*E}rS@bWWSm-$89SU2)_Ll0Su!-eKU@(+|08l&YNM3tjnm*>wUP0X zx2vn=!zk$=iDXQuLj z=O&4>GE;7_Q2unyDa;@NkKj>!V*$t|UPjjV%*SZSC@hQjFUwOlHZ;WjwCDfjf7G3P zSv>wF_vuyo8*|ujham%;`wt;Ov&dJ+fOr}P*;J0R-Zul9%`$q)HR0-MT5%et@~PLf z? z*)9d2dz<<2oAHe+aT_k8k0Uw?dFh*&#MDRw2L-~2agy|K>Z-7>QmF|(*gG$&MSc-Q z>Ruu=OV2Ym_gh<91b44og;6Lu&lZ^J=Ww1=?k)T82esJX}XVLW=bj>$go0cn6-&O=7*;}(y5q&=t`&fVqYL%YbK7iYK>HM_|=anNUZ?AzJ;%X0S5 zZ&)}J{nja7iAyafX=t~m-oOHpv<7N-xwJ%tFnexpZ@+q#i*$qz`EFsI%3+HLtbUax zmfGY_tA+!1;^CEO`0>)y6b;x#C`@kGX2-CA{$&1IQ<2y4-5HSR%$=6MfvSpo+J3WP zJ$j2Q8)hqPcIF}Av#_Dp=NdSVQ*z#C6^H4f_awc1Y{F`Ncsp8(UL}d8_-BbHW3};U zz1Xs`-zESlI%&**wbzNw=(Fl$=`sn_<}{(0SygK-Z?Xa_e%}he>ojC}3;2@?RLxzz zEoFs+Qi}`I7&?}3B%3&crInHG;M~&A>ZC@rASs=?9%~Gnv0~AbXLoePktcVE9(DHp zn^>8;fm{s$ttFgGF3JGx+2(ce>p$w-lU>&Dmn9_tv4FuNF%N-DxOTwh3MD-wuiORc z=^ITLpHm8KLfI$~^(k{y!!S5v)Nv{SO834r={SNnv7Iw%Is8e|Z-eKcF?gQ(__my# zd99{C##i~@ozDrf^UsH*ub`^Bc99*fFd9Tcw&hgJ)6Faqj*SCRQyJVVPRMQ&Weuv8 zrM{tNDk>_oeP~E6mnU5B9v@itaQool;Y~E7n{!wnqT5n7zjDEBF_65F7W548 z*%c4ZRBFk}YM&>1_5#7wZGhh#l;&B|1GJ`^L91p2;bCKd*Dx(;rhcsP==JX`02@H5 zhV5tKX8frR#(FntMnWiAND#jf2!$)b{46!r!?T#@VGTM(&=0dX0^Ou;unbb_&oD>v z9i=h#|5F3@YspZ;^%Em^@)iihRn`wzFlmdrZ3F${09X>Quf;MlFcjAwOfw;7k5FYI zvo+tG%*?{)lMRDY&7q?b`*>?=C`;F$#_Ay0lU>N$l9-C4x7?xHKQwGdzoM@`-h~pb zGVlM0svBxTYDv;Qc@M+0XNZL5vP-brQ`NCe)lqo=g0YUJ+Dw=-(Mpqa*5_dQQGDw@E* zdX+nA6H*h|ynY_R;BSQ5E`c)%X8kRxhX5d%ooHWsV zb52qkuHD4qi7!0uz3%k?Qqy)uqd!tqP}SE@1vz>-EkT7_mDOB#AFp1+KjryVv{}`Z zjEt7*f=*tklZy6JC|r`H{6704{U^4MJHi4I+_NJ2nt#jUU|AT@p&Y3S^^^SjlVA6{ z+cOk9NuM6=ep;OVm$82t$YdV(%O- zaS4f@_pb~7*hvKF5oI<8O*q*5)jM|lke4QYN$lkp8GUONd zEKqov_9kQg>({Sk9oNDj6{Obn_zxws0t$evSa@IAM0c!3|5K7C5JL@5pO&6bS4xQj zq@9SwJfrhTw)wVd{S|C)9 z;?Ao5@dclF^*>=v{?e`+2%*B%)u-I}cK*CFJ62LW%Pm47_3Ax5FQFo!IIf91&*YzmUMB(OWvdZ~zVjln* z>lE5lvAKC%4uLLJ6U{k+=aWrIx4dHm5Oj4iO6f^-82{D5`W%AwRhfKn+5E7bm0eDY5qnu1AAV z5*Up;tp_M5DOG9$9B8Qc@ZoC;K9lOv0l*G4-e$syI#gjbheI$6^AYvnY%PT1LK&q z#h_M9)f{!&iF*-9#!xqPgLcaiMium#=XkAag@QcEuRBMT)@`mQ-N%73$S{tc{0kQZ z1$hye=n2iJ$2sbk+a2NIS5p%0tQYTPn5N#h=&iAf_`6M9ZMb5dkf7C`pD<&$i-;Ln zZ@7Utg;UM}BJL5|Km{}o8j~QU63fIzOg?KimFq8Kh z2kJwzUyZq`7fAF?==!~zOWq$G?X{R^-e}jEm^95{AHC+Wx;y@ny~`}{*fnfUH@lq} zI*T-{q<5S8OJ$E;QaVJ_aNmqe;s$7H^>IF3sQR+avF8>%(VIoAq=O`F6&;0iwx4qC ziqZLrnIX?p!%(~+G|Sc$rR_f7dF}6uEWnC##EV}}qM7zZv}-6ZBJH1U`L(E;-S{VQ zXGI6fMg!f8G7^!N8HW!_M^|oB7B0>7vq+@fvIh}l8r4cOO+wi@nEw&>>h7nEWu6Fb zHzc$u-u1|ykn@?gYW%|c?H8}H4R%o73#~}|vMS9nBTh%x_e3;l&w;Bd`MiN`L-8MDpy?DZ;_xCZ-xq)i&FskFr7h5uE zy!j$7$(#j;?nh~z8E4O)HDvowYeRTg*uU0>rq))=_{J8Ta-#dOj}4c_t*XAKR?Wxk z(e+ezTW4c8=jR7f4Vh&*JY15gSZbJ;(VcT~;VW!dE4+a+NWQXEIzEKR0oTZnpwQD$ zUI4sr==6Ca?aZ7CqY*O(FcBc4GDi@tX$(T*`T(c|j9m{VZ|Fw!Y#zh#8$F22NkhC0 zhy0zDw&rS2pSq*=kG~TYDsPcJh z#8M{m2%yX1*HjWFpldhd4dPw%tp^<`9+&|#&U>JICZ=)L z)D2)WfpB$j{3n(jv&<=Xa)03_`J^sEVG49ohd)6zZLE^4(94!6XGwhTx)7g zXZDe7yZC99doK41HD>3ZJ}{fQqoJPe=$7sJVT0;7#My;5OO#}J|1aCbuN&@nOHOy? ztuokqCZE4z?^r3a;!N*Juo}W#cD*y~;=6S@!Ul5TPOL8R&U=z~>?oG{BJU}|Bdlgtdtpy)O$ zpN^1yjoSFg)6lOg#9AV&U!nxO^xmFxh((?mOJ*fgxrI zhRzg1Q~%X@%aR$ou+pPql2c`%fhF|KkNyHu+yM}Re0G?wnq_=`2;86#Zl;De^$rUt z;rF*|k4<3(nuEH$`|Sf*fnNp@p)k#rAYz`r;+*vm*QRfvBP>ML1tQR7n;j%HuhIeY zbq<4SQPa`|{vTEcv&xwG_2Cb&gkwQREPb$r_cFEPK19HlKrcCp%z51Zc;o1s?fNCR zSkmAQKuyoA^efS&FN+o#FX}Cr+^Vguc~}D&hgsI~`^D|p&!t?~_U}GP(fCnnZ}!SK z@Qs%1TaG11c21Vs?0v^i2X|_vRx>~EB8bpm$%pbpy}f@Hqf;bqzybFm-hUeESV*Xs z=GB0UB&Cx>g(6N$1Z2?7cE^J~xmk1zKbR(4%!2N|rhEvEn8`@lb3{dnlyI>E*BCd% zuY`%_3G1U5y6(1W#hx048eyg`qXZcojgW@8r4%W5-n9eo(TJYwLuBEL>qMp6N>P4$ z7y!m4zP^*giFY1ddl5mi1J;bEprOjlR3fPkv4O*mM^1ID z6=}eS8OR<*TuKKEBF}eU3d#DCDmR$nqEBdA6oPx_S6T3gk2i4@R2!pY%OZZ+4ruqr zKCK1bg_%%sN_l(hfS8m|3K;XZ@~BT&4P+m-8?HS=21$?HCeL+hf74)%;7>JL4s)qL z2hbB*AqjsF{$%M|EEG89DK(UiguxvK^+o z_z+g~Y6&ND8vmT|mA&_`aqyp#o=Xghz4J6)jQ_MzNUg?ztqlH(_2{q4)A|*#`h2_@ zupas~U}zkGLVqZ`bZkfSQGolunKhjA9Iq98!;I2%e?v~yN?KdfVkQe@pj!cd$F7&p&kdF`5c6tz@PD@{)~GpuWNLmzEJn|;r1eC+`xALxV$7o~kdNpON`vt@g1N1luFEk8l;h&J~7 zfn!NEKzFf1@_WVron(pUQ~va!bPJAAt59P2HR&(~F7)|9<^U-y$&27)=skexfIs)r zC-2AaIM51yFO(EKgo9zBD%QFUntQV(3+_vsFFZ&xg7Iq`%6g=E%F)yv&;&L6?(kK0 zmYQpoX7d}VVR6$+R$zJ5e!08vxm9@5CG=O{)pQ?aQ+H_kG1eUJ$$o~klMcOU{SkS- za3e4SPI-Xw7a3w|__;aUkN#Bk>~zm^|4{FpY$XO6b@R1b5k4hV{wemCTQBrq2!tJ} zoJn!nc_2^cfq(ZVT~i2FjA@C=BRSPkiSSUt`z>l3Y1j*@H@Lf}G;(|{>8VPnQp2d_ zkvsOML}TR9cb~>S_eNN??Xqo?gF&#A2sMh??XNj(H$LCV&zMxlQZ_06s<eUuFiZ;%Ht7;2dE$@4{<%D~jvOIWGg zZh?yaZSf~FVxDLqzRl-pGqfw8s% zn7rCREWvtD^(^J%z2Y|%^s?9eA~3cYn8w89%gnq26`Rb^JCWII;7#WGqOq*AH2x7t z!iGJc&z+|>f9h)~ogD!Q*IE4=+%#y*zi=2gd*}zWm+0 zCVPE^Vt>*Rd%f7m3r{9>^j)|<7tq6jw;hA&Xqa-SdD7PkB5uC5y(MEku98i`7)s;B z?rAt4Bs_jN(9+T};(@c;(%i#;a1Vpn7{X>>W8Szsq6w*p_&@d`kg*6MDI!VQf@jL> zTXj#qy}wW;bwoL~z#@EnvKa*{c2lOJW-f?DO-e2Y!U^fujnVH66UNkv^4iwK1E?f9 z)IGNiVk3qGE)n+l9cTKb#aLT51a zkrDSZ_ne`6tdQLX9lL?JwLBV1wwu6Qtyw96LGKoNO1)QapF8;#7hOf!&DJM<^)CR0 z6zK*ks1Dmdm$(lQ0p8LMoIR$shg&SQismD20gFi1dh2tjN`&!Ji!A}I3h3?LvrTVl z{_@^)4m|D+sBBO`aHIq1Y-7K-F*iB3nOG0i=;Mffyz&RRFk()}HMrg!K zEIkTYbuNc{<(m}=cHjM?nlv5es7fOW5_$mg=E_$X`v49ayEY5hrG4V;f4o7AI4UkK ztvj|zkfGIN7ePMPfjWmTadG#lj@hXVEx~5}PN`=%CGZn{h zLZ`C6vf_Fm8IDL+FW^O$rdh=twXN>MxK61;WfF0f1xn1{isfK7l(lo= z!Cdxhdia8BDDiz$hafFckFLK?Z?gJ6JwDpz#sv(F#TRETVztYh zb}jI!)s45zfQI-@Jw)0#4rT~k)Q6;pXU3OX33n4cE){^Mm8v(@ipv!I4eTZZ%#O23 zK8uKg34#6FlXx8vfo2RCLe*$?L9@b|y}4vs*v?*vFihw@Yb0YJijw?p0-jsKMyQz$ zaGq0%XLdyBK^<9woC8~+bBaN=A$H{Mn4Y_}yqa6H*W%X+Wp^>|3>&+>r+)}Zglv=L zbdPNk>{4kyT)%8xHVM1ty9(X zt6Q&FI(+A|V?r8Y-s7Oht46Ak<$tyWzCapHDs9(_>*h#_=M(g7oUqNcG%lrMN^Q}h z2Q+brpw+9n(5@xy=FjPM#0kmRy9tYIF;um!vTw`fw+h?T1f1vv;wJAFW6L#UG!k1O}Lm z+4H^M2R~*|I|P3mfhM-(LszH%@2xI6S|E~9V-X4k>!d0?X-7an`vA~agWD`ln`p4c zv)_O$nPMG$5XK=7I`$RGQmAY)8SLY?z&U;8r~*JR#$zys_9q?*51Vvq$9leDdD<`- zGnONS#n-#>^2yx;%OdByQkpIApRG-ABJsVIkyY+sQa4@u^s^^DC}!AhL0ck^1a{5~ z&e;|Y!P-cu)Y#Y67O&E{rV`%3ltF}KgX*fjeF5(a_(TPI=%eQ*&U>XrZWjhtL$B75 zKRaA%K0DyAC~f>mBC&7#G5FoL;8I6deVaCA%qRKJI}2hpuD~YApq~cwI#jXUU}py7 zDn~1&ENrw#)XVt))(xL1NONZqg1Y+qbnBjmDn&hm4R-AYxf7BmH z-JW_G5KBWA5m&NK6tpJ7DNx>77$4tcB|EXn2Xmgbr=$6PnM4y2cSaNnI@3{=4|$eNL!KR>bbvF-2WaW*ak}o3AcZdP#jyGR-LEI!1-fC6cL(*~lJ9qM z`%l;O`&)sxbR7ttIGw~tCoJCouV3GU+pB-3j^>Zg{Wl`_KmV?Y8Q#mqGpXGFyI+4N zlbClTdiVF42G0k~2VOXyqMY1if+4V#o5Ie)?zpx12VsSWg4irH)a-f?%F0J(=06D2 zVfgxnw+>hwe!qz!G`F?;(~2eUZm|vlbw2Egj+>R3NE+7g&!&hi<|P1zeLk`ZQ2YL= za)USJi3=$r6(u=+85x=N`-5+XjdG#LEtXSI&}aL~W>~DGpN=Q{?1q7QZj8t@>MJ?f!5T$%3XUdeQ;>#o5Q_*a?bxEa$1YJ+E`V^Yde}k z*d!6j7@+XV>h}jC4aPZ*z1$KA2Qku*3(5{kT zo|y@wT1}ggk;O*}-9Z48L zB8+P9Yc8kBL-6HbP0hmu3kVt^$h7J%_$N>%E+uWXpv`=plTH5*k(TMf;%leClL;v_ zuCuZz|85VYByI?uLq}&3|D&bsq1HlCi{q|UiVKo zUc%&RAk5rKZRI*4kTM4fI2+c&7C_P!SvaZZu}Dn7%I~ibc4BE@yTNGNL6E@+k#uWR zS{45st>h>hlX_P`c}IVLPh6uNl!TPn)M3AZcyel8p19z0^FHkObigk2w)2-<%E?u2 z`}t=;#cn28eZSJyx2&LM%y9s)>HK>^U-2+T#+!kbWqM|jf@<@Ans4Ig!At;CKqNsVn+ue*+i{3xGMN5 z$A{_Fm>MG|)xs@P3k;1HT#8e_wl3JVmb-9#x#HiVIUy;E0;6I7SN}S{p~*&>JrioV z6msg{Hwy3d|N2j0lw3fk!Ytstn$Z95B?M3~15bI)o#S}Bi2Z+m+CN{hmjUHU+CraQ z9^3!wQ^1G)|3Aq8w<{tb?y(?8JSz(sZQt}w0Sa1!=B5SO=0(Pu&|eqB48Hhn$s{L(OdW%_)K1d(M}0M1t_6!QLA1W0-@nF*rg)DjwXNLQaji9!R-tc z14H)MmLFzrEoz!f0wXSsbQsjln%XyiqW4EH7Q zCA!vS9_&3xm)K&^y|12A(W71BiTcNT{(zmxT#YV`dZ7FwQsNjL!%Of-V;SW9Ny*~+ zQ^MDI8t0uk>WazAd(rcntiJ|nx>ZPNLp+5@nAvzu^~TRpHHZT;B8UwSSIG7r2bdC> z|J)32;0%RJEXZa05FwVRy(T0QW@A1sd1p_9D#_y#{(}dXBORpirQ%8NTRwTIrzf`6 z8KOo`vi0VVcQ?;^8lxvh+m2L3$S$vbgZiEO{nx)Pe6Ku;9s7rsti->zgkDn=1e`Pc z2F>rnh#F?+Lrp`=Fi9z*scKPow zgds=(gdJI`#o{Z0PtU|(wp09j@b^6X>08yOhV>&g=52%qxsk7LKoIRpyM6NpYs&W7 z@1w^bEL!i|sV-B$Im~^1u-_owMbAPjX-+nCw(`M=txMJww!kq|U0^vV>RJhe=O7vh zVU=Vm{g?mReblf|XUTCt?I5C%Oc}Nlc~;PU)e0pqld@9)4PrK10r{Xo@~03R%Iml| z2A-c~DMYRZs|A39Q!Y~RdP2e@6OfPCc4QQkHp3;R(~yOFCAXiDg(-qpz!~!W-(+c4 z58ZOhgM6G;Fp1HD%_c+d$rF*OkI{V)^&^GRPpd9lPL2bN+)6lp zHULboqeVSGOXJ%?r+Ts9hk1<8ajWP7-Qf|$A~lbcTT1OgD;B+t^!~ys^$h^!(*ueW zJIL?2Wpdj50L#r!5^+T6_-rjgqXstD$SA9=FHjm!gHVqxG%+uSOZ~; zk-|R=TMk%Ps9)q?$w9h+r1LxazPG0x8BKsHwg8uIQ-$>cARl)xuQYHDlzewuv9mHA z;#4HQi|~+Kk)1zWk9I}DpK3afP#*0=-=Al&R)#?45kO@I)J4P=O=RBm4Qb>;8rOR6 z`(JHt38%-ru~7=RTLF^R(-!EGT!X;cu|mob7>3(J#!Qyk3LI9>ZQ|vjsISSeFN&>Z z7D{#$=}Ny+6CBFtd&R7=Hl~I{V3S#PC$scGaO9=ki$883vBVZsT1lnrDxa@+cXy*Q z8DrmA(G`&LJ}%T>kNfqTi7wb5fTvlp6bsKdce>0Cw?xBi(3#?4^kAdN zi4;l2a^9}G;I46}p7qo0YyqUQ3DsTb%h9OJV?G3M=K5`1lvMzq@P2Z1AHonFi1SKJ z6hH!1C{!n}-4g0o@Y25M!5n0r^@VftV&T$(2Q3Mtbfq8y)5Q|<4Vd6!)>qqrdg_%_ zQIsFIdF2v2$Zl=P*9K>ZK5fFMDQ_V6K#)2M2v%=8KHBD&zu~DDdmdnz3SQvJEP#}b zLBG^dGiZ7G*u#3Zvu?#*%)d(c;TiqZ46gq;$e11GN*#)S(3 z{i|p3)wQc4{QdpUlK%iVo-Qu~*~&eES0$i&Z31aGH5l{rF25!-_&9uZj;!zQ%7-%+ za98;h-h1RB$}FspRtQFgz~=K5_kWZsXx9NBj1 zaJ`8l=-TD0W34{KHc^9^WL*T*7d~8YhW`o%R1If`Gi-%5kIi5It|$Lu%%f{23%M+@cq7$;Z^5P zqPq^J-s`z~Q-zOh%f8dOydXs)FbG1f;9^Qc0Q#i;EA$K4y^TRPn4&gbEV-RIA3;z2 z-2(9i*OJaZzSv2u^bQvAo6b zmox&=@eS~)?X)Ff$9Yoqv5TLm5+n-sGZ*G92zXl%K(I$CZx)!^H!G_ET}3yY!CuX+ zS`(Ldf%w6XDx!fzhQfxgj*+M+RD;+_a0wSz0g(5E_jU*NsxJD@g!_&gD*Kt!zTM2W zg+KOaT#C-TU0p0HyqxA?eDs+*;6HYeK&TNkM9;amBdh11e{L0Gr!)((Qzxu1)b$ha zT9U=qox#)0#Li&^zZq`Ya9SM?Dx;m7>K8R%O|;B_l@HiM-@?%+F2r{*+tmw(iIkb! z1#+KN^SlG|1B!qRyiuUnj6)H9FUyKRSjF?UH@4DO-}?qBrZg?WNCQGp4z^{*s5fUr7(Fo7PXD^=f~D-D4T^}?$U#A-FSy{ z>t2}mJ6`*>DYWG$XdNrFUIv#=|8nCNJhkvZD7c=Wex)fuf2GEg7UML&VG1TnvixFkBUw|u z|Mgucxy@_|yRgaWK5?bfLU6QiaeUg!r$GH`$L*W~TH?&up|SHaGs?-VLuW&9$oZ9rgx!qXpe9DlZX=wf%7mrq~yyLuQmxAO*-9p9~Uh%JpyNje21 z(`pWtSb5ep)t;{H1L}YDe=%Or1GKxp3IC%%6*#0gwXA%Nmqypmu|#yG!fS>~xZc2{ zjNr>RJ`9g{PcR=-@Ul#V6Mo6+1W-Lt+7`A3(dCTD;q*8g)e)PIjzsZo5cKsjrXgo^ zX$mzTABEO)N!b4U#cSFPSCZm&l!pn(x)$sirNy#HE)dL;tUGv zvK`_Re%rL^@rkBALue?7c6ZRLWT1q6k+Uj$;$C3zQXlp_vEes;X$rR? z>Tlf(cvtBdGs+ui!AsZ2_>V=_F7hI&ii6NdQTRlSD}b`;f2xXG2hAt8DKYtcT}ycnT%DHTPjr_s$XYP z@cq2Pcm(a%#q_V4N*DT$&&jtoI-EI!iuy$P{wq>dRddz1qO<1LctBtpcAWsQG3&jkwh+TL`uW}dSb=IH`jVgIm z($3kKJ!s6(wdr1z-%>J7dJ*`Ob<>dPvHoner(1(}AD@}nxE*q8V(fA~5tA_8hoOO} zvQxQ^j&Tw6!8~HxEV$3iE92hZE+Q+fkM?jd_be|lRn<|Y{&#o%b)OD6LH%Zaw=c`@ zj~#g)@3e1xUTkda+hNSE3c7RmEEfmz?*PLbiYZ8hI&_JcJ8IKT{^7$ZD6hjIE0Fw2 zzH%jjyRJ~);^Ly`s2x-=Qk>>!1uF*QKqkCO=i)WKY{bLQuNB;2s2KYSk9zbC;~op_ zG}z^FBm-S@dDSqbD{54ko>xVOK(j6HWe49Yj*i>DD+Uzx!D^YbxrI(@S_MwQH)a?+ zs$Vv=m$YhX8JzEn@>ZZk8Lpy!K6rzN-QW!Bn(#Rp#~ESlB79@h?YSONM7&?`q`PF1 zbr^_0k7R|QPOKVI$_}GuH4&+6aW|98ISMZHMSoOmlMah${G)Asfy#aZ=?#O}jG@Q- z_iF<=&IbqaW2lm1vPZG_Hi9pwPH=HQX^VN45_ zX4jY@_DYJEAy3*$R?bTm84b_#u2BAEzGi!0gtmU^i{^qCQ7$%-4=v{Hv76!)d>v|N zbNPKAOQuyW^?C5B-2LWmojH*m$UbOc!q;I-STP1$`)#y_73SPo)xss~2%mhFa*I@z z@k+>N?GOq-dgX`F;gh-d*Mo_uk%KRIbnyZu1;D*&qVClsAYjd}NV7m>Hy@BPNK0cCIZ5 zEnmKOQS(6A&9z3SgW0yZ&;5poiG6cKozq`i7G~rrq*)c_w=~+bf287W_v8EEg-ri1 zTF>g}_jU<_bnhSLFwW==%a1zH&ns0;+Bn^Au!)^aop!?Gjc?8YS6WzZa@=CaPNlk12rM7JVj2;6}v{% z%aZ4km`%}FtM8z`K8%mZTYM$CN-}icY5i{S_b)#l%=_`R+Y0aRU#KyzJGg+4_Q_Bt zri6PzcgAA89Jf!d*<))T?{)v@p#E@9Eau^WU zb~MWmD%Y!$j|>1{vVzd^6)TUEWx`A~$7TzmAW^p^*5T&=%0rU-FKo7h@Cz;K) z%r=QZo2kJ&T)JC@gr5sv|Dbo)b2O06@YLpG(`TNCE)bj(z#L#~+L?H-Tl}m=?1lVA zNKj#|oM;X(uFgo>)eUcURy*frH*T9b?6{3i5>NN-n1ws9ZGk1mvkeY zf`oL}raQiy=Q-!R=bZQbW?*K^3~cxR&b8Kc{Z^3O&+^A8R!0d)my&dVaWYBP{EhlD z)ocYA)THRgT`$|xe5yF14?hH>s~3c8ucO%1;Lyko6!?z(=ydAKbzT)Szl_4%CFJd% zc!b&@6r!aXt$#5`CVh>qaLAypnM`;%DF8G-LmJ>7r$JK8gDi|D9G@lcR~f!u06lXb zYUmqV9#lf%>lpKSJ*DBIRq1J0(zbdHqH+#HuKObwJiiYf_Z?L;++(ZdohYm@+}CbE z!JG6|eYi>E<{B_Ff@og4?o3KW61xF&r>;$kMGzFssyy@@W}0P?=wT6q0!gTNWT5&L zQ2g!}Gu+}Da=zS+Q~8Esv>d2KvBX_mRId$XX#egbeWc5?Ejj`%-(Evp%({>|+$8SK zF=$l@=V$f|BL1)AX6Lyt&o*nCCa4=)6u$*9o)eo%ZPRkdm&gBi4w{VQ*@8*i*NEa%I7qK$A)g~8r9OP^H zf0fi_dUx~M^iH#c#D(8TffC&d#wNvH+-B|r785fDN~*^J z_YYw6|10>8L0Vc4Vw!x!Lmdeb00ixa5?jl|pw`QkkT40hCfnup7xoy=8N|RQ9R5RJ zt8s8UI%=NU~c1nf&SW{VL2n*xt)}#Qv}~DghQ6<69Q^D z!i*QtCMA~7#YZv&4sr}Z<`s|w;-{#VKE}%;-J#0LjOiRwhzy4>Sn0Q0W?px9g_U<@ zCC~~`IP0BOnNi8o+U9COPGWtmk(JaM(sm{YO#4TF76AcbEIZ<;88 zR25I7US{NgI}_=nWydY!H3TXgDyCb}~HRn{3pTD|7%Ald9db)A6u><%$>U>X*1A1+_rOL@M!&Vg&^Nz_3np3nmPf& zr?9(!vH%w8%{+GjRA_>eF806bq>+425wy{2mUJ5pyOCB4kbH|kCfR=azJ~M@#xJA_ zrr9O07fNT*G7QWe1bm#J2_)}oPD)giL3C#fn^tnbZ~SJ)hP^@?A0T{F9a7#teRP~G zVGYoBqFj-180s1!%z?UD-BHjVP_rQGp+Ltd{t}AQ^s$12rAs-~0u((k)J>u;t?Dvhfn;vZHagmyDoI*`6E|msUFw(3mW)L$ z4Fdz3kgwxnrAR$I7JMnh)a&dkNp)B`JTSnDfw0v5vh%VFUqyD|Q$8}(%_*zqY9Avt{BqXp1(!3 zz-$UdftQw^aWqt!9yxwYZU5U>G`Wxg54X*r7>qXC(^~|K={1q~A;@z^YDn&fKRkXn zT@m(|W3P6hH2`CzQ`;Y_%|Pz@uV~&1v>nJldKqy>P`3SCC>`KEjpT5&$=8=X!gOIW zD&d5S{o-up@L?tVID6k}TFzD%EUBuBARKGx{Tg;4aaaFkSOfQ&K~%FTn!R|ydU~T& z8n^Gb9RhZxvO>HLm^y$ME}W5dmpu^r>DWYTx%2`(QP|1kE3Od)_^j4;BRH;T+LPi@WiO< zE3p;GaIwk(chBHPFxJ~_psVuy8EdxK2@mqD|32|(rJn3c8da`=XivS5Kvw)e?{9yP zWjQy(sFAy)qA4N8Xd6QP9~X^}!Hp!nJ_{1Ogd7zR0}?XkEB{?2E# z#kcCE-yT~?`#o(11rSJ zJ9b3`{{PIxe=e>6{Sy#4`)>#E*6!gVP9nm9f_yAczv4w~s}`yCfl3$&ko3pFy}+UD@GZs)SWU=qmjGjH+aS5D8ikTBf6;BOK#@)xn=2av>_l zyNoZHfd@AvoDSCHF{ly$T6TeS`Tm~&{`W0kjZfFTCZ zYgK<&J~p$+z5*IwTG@erBwl|}KVilb#9S5oNAL@#qpzG;oA-2^E9(F8Ax4d6rM{$r z1EEmt11J@t1^tyCc!|#;+oWeZf4p~X#JgXuGS9~M_wXw^!j4aj!wtNJ{qj!5TwXq$ z&2~ZOQ2yWEYX=QDt7E{>BQ6~2K3n7-pO`38p*Z9V>H`dlO3{6Qg( zwJGA?q7xEa7>!&D&~!ySUi=9DOYgi!-@%Kq8Gvj#i|3^s=q(fr`h;p(NkW4}=l|X$^X*|Q3M`^yW3d@QTKK0)(ti~SGm}8wI!!bfb7@scwa4ve1 zgLZbY0DXhsZdBHM&XV!iP>VAGurI%T`z8r4=j%QAw#8S^%SHcZdj4z6{_hvQJQ85j zNx^@`5d^y<=nLXjNdWv=0|r}GOL?O|7M8fUxZ>ppb9H6tMf=|W&<_3A|M9>6$)@u- zTnE1^%^s_)^EP#w`j72QVjovHz^QjbFYp<+0lPxVF8O~g(f_?)P?WDf%52s{**&CT zl2V?)ZUKAaSQCfGdU51`4Aj3it#3j{yNm-pjS^Bj%es`C=k}_muV@*fqg@x!K*er_ ze<_l7({>bBn3TrdE#R`{R`yoL`xOlhwnC9^ccZ?9l;EbPeNN8w%>n$wmA15ir@H40 zL7WE#!635>{_eS>4^sOM-ykj@D=e;YUP>-c_Px?MDKpk#5t^5)1u4+{bfLNP@LFr% z%a(iP`8lgBYhF=h)O|Xdn*(Cj2**61BQlx<&gnJOQXNv7ecl~z@A7PCel49aJl+_a z(?LmrAckr`nDqJ}SdzFbtUxy$)82z@+~LdPv#O;4BU6_>W~%>R zm%4vFJ4upYp+lbs>9OMNXcsHgqiS<3=jwag0BLE8YJ+A!Bo3-y2_4i_((P-ARJJh% ztdu#{H`)CKeX{rZAQt3irQF>?XVcr ziV|weezzE`@7327T&=K`^fpgv{+8YCNiwI7prSDTNtef{0iyr*?G5z(n76XU85)G& zhLtAMZWdE&zx0lfZ8AAp=Xrf?Da*VYZUvR!|A`K_IJ`q4+~pFx*J{o;6_!dE9^L` zwG00n0%hpnEJslGuE!agx~b_t;>6BaqruM{m<$G!GB1jop0Vgk5BxJ&XMBT(rKlt2 z+jGn4JVT?H?XvE(%RiWOmcgig7sz)vcuG9Yn+eh09~q@)8dEOg7-CnZO=Xr@BL)KA zUQ4g`jf9xR=@uXJA|K?<6FHy_PsRPt4}8*%b?g$*okVu03e4}r*A(it zIl>#>RWfM`@i%4-U0hMqdV?%p)pK3O0tq7O)D7NXXc3(991<6JKi<~2Jg`^WY z9v?XyqZP@8QDvouOota#g2tj27w1D1yTL`2HC67!dD#d}F)xTbgrxP-a^{Hak?Tu! zlw2I%O)X`tEEwcD^rrCgam5*F_&WH%3G2h&Zf3-Eo!FP9RabNQ?a^>}6qqCFe*&>) zTY-oN7^4#6W<5W6ENJ)!D1a@kli29||Fc1W*}j4?YByMY3CqH`mq!|1r^_S89RRYb-PD<+J#u}g4^gIZYep3YWjpGDzY6 z&WN)7SmB6hT+07~w}YsZ#$%5X0ykZz3SH5xJPOCpIm))Ey^(6ZX}!_n4}h0E)IS?k z%V6JaNTTqWH;?+jWa=iy*lOOTaZx)bHO!A1=t6pwBt%FB_>fc|!i6oJG7uAJRx^s(V zqYDj}cRvaVQnq&|A86PwJqWMiI)8jUp^BP;j!0qBRwbzBf(dEe_o?#PQp{TA9vL(^bAaVc=8 z@ww;$ee%1@0_F1E^4`MxzJ@b~8N2&!=tFb0DQ~1#*2N$mOl*~HR^L($D>?`&HNHDfzIKQMtr%dlPK&KuPPR6 zb6BA7@H@1r^)*s|n%(S9ob4HWosIXtBBAkIVrYNeK)BM-r_n7~t7q(3n-|>up4+YD zmv*mDYaz=|B$i1$v*yJm9zW|Tkap8<$5mntwA^oU_$&Q(WHOd#V87R=&sx74_u1V_ zH-EaUDyh)uO{e#Ai9Gk9%wN-BlnL?orjEV6y(qlpwHu}qJJp{HzE zu#xOMXt-EV=OaYHROtOeiFp{}GxZ`@i*d?4%)s}GSbFKkmZBaKg`~K>GIdyT&^-H9 zf}bJ_+4_(%o-xCeS5k2RN7t-YvU363>mH5xrU1R}oa{1nul8HZ=IrXSYQDP@>dWlrsK6f;w8@xev({PEl zBM+791%W%3j56kZWQcb+5q|GKI23(au_)3BKOiDyfCCqZ&obUDZY95!FR!hl;L;Mk zfc_6%q493W*7O7N2^O~WQK0z)8RC6|s1EJ#Oz#MH^j-{&TUsms*jE>}_BFG=4o{pO?;uHBAn4q^{?}BFh11>A7TedJ>6!cVQguRz$cTj( z>bBOFhUH9+ip&wgf~ws;R|$(J%#Hy8f6Fk-o>?nWXhyW5qx@y1bIN-D!=fAy*4m#y zm*{kNIT7PiJ%^l`{b}oBjD5ATk0bXvMCW67VsGs1&h{FT>QTAgf2MbdI{i8lq+O;e zn}Wc#)A`VB)9bPou}E>a>PqH*x2%UbGlRx1TFF@U(bkMK%IRMuCJnY<;A=pnZ;Mh zKyK2NtDO>9t@CN3<)|Jj(|a&@+lYhRbXj~n!qTX#skx%GOgxed60*`UYLntvxn9s# z`fhb(&eb51kmKfnFgtq1x0qxt>KV^^5@gPfvIqs5x67C?sbs7;P8*rl^U(r$1n z@C5BUDgn1zv(otMqv{ouC^=^USjGf^Jif`N@JN09_;IjMy;O$=lu4uZ_N)?E^Y#J@ z<7rl*x1jt$$;qh>TIT+&KkFLNy@+@eZXbhh8DM@|U-~leu!UO$|2hW9w`GCoSPbXR zw;W_}8~{YNSGpf`8ihGa_!Jxj_J*$y{spfzu0xDl?(IcwKfe%+i=GQW6cve=5mR`W z)(?7^>Fst5bzj_WC=k#^#oXZEokvjOc&|v(!fT8EaATXWx^lk73)_J@=+Zw%9i%?} z;Di*6_E|Ai8;&{7{m%~@!on3Lr2@O4+Cs?k#9>cCoGuNG7Xt(R^brn>LSGQ6_$Yme zs88$!@eFBh#{J~Ix|DR;PmhEWjLZ*`6W`49_3u<$s^6ap%W>DoNG325UT*QPGwTSO z$0W+6$&m&z)5cz_zC3T@6H&JPp`v4AnfY8$Y1#C8BFE(W-5I|idsCQzP<$=+wMP!X zY<~%9Vf?eMWU3_~sw$~XL!H8)r`w3Ny2Q2^6CsJPkN{6W*K*S%xs;@Q)R+A(evPZ6 zy6WYo*)uZI{9zTD}UjUSYn$+m?GS zp1PaI)K@`}mjAsA(eu_x<|(@_ft1iF?-6oZ1WwjouZh&?boq|*0L8&`f?k2T+>7_` z;!#SkWu$EydVq&Nb{`jmuTPG^p- zW{Bp3=zRwMhMK~Zaj|G8$4#Ex*i*$CJ>=;u?pEhHV1D7j&XX#1$9XaQw5I( zkuPy8dmmFDWz-K|BC^cS7DAnR9@fIhSz$LX{8mq?f4x)_x+o zy@q>H>cJI5aZ6x>?{`(%(%Zi@Wr>1)D^;e+M0esYu5A#H7V~o+p1`maBij{eqTUC4 zk?D8xDo3l#4Z*mS08?m!x`=M0g1`h3!$r6hj~J(J$wg#(_8$QTmPyEu$ys=;)}b!H zLAsRND%VgoT& zRfp*T2QGR>=kW@i6WX0;7Je2f1gZ%fhM(cPE=Pj}DblB_B$`_d{NpZ|F_M~^uY)&7 z8J3SK&kp~R#N#3P^3cdOo((il@BXn8Y-n>PTu@+|+?6^MDjRIedU@*m&v?HA0i6Dc z_ZZOXL~kPQ0r}IJoQGt?=Nyj}xb_!Tqa4*(0j_(2XqZD|6q1K||FGc6jpq0T?g6O< zBE|^`;v_T7V=Z1biK9fhMNGszM^06qQ0ML25#TQGF_)-Z5SQ zfQOuN(1cM>XjClynMC;;5nRB(mgIq*#nJa9RoBzp@nQwIIv&!N4iPwv=WR_u*rLQ= zdcCppt7wSJDEgg=-?qA*o0tuFSA^Vn3J~G#>?M4G<-mH>FTB+zh7EazZZlocyi#_jL1bcdu$sSX;*GSQn#Ho|B zY^iE@xc5h%rHsgcPdkdE-svl5eqGALA5MzwOx>*BydrlMweVn<%PE3!HU`}^)k#N= zsu8j1+D`c${_8+Yer6@<1iZNFrv{#F@htk>Z~qna!l zFVhS3r~OTKTdd80%ko^$tSX_#R4&C*Ekxg+ZhC4i|A}WncK#C@+F1AHlHv#T%U_m_ zOB<7Kqo4%Ux$$hfHv&nU!QMk(sD^-db8=MTd@H=e2MjBWIn z8W(y?`bJ5?A_^*BY9fwIr$Tr8Tp_2iW>PHEl+{AsPVC(q){e#NRJZw{MchssOlU@m z^Pf%ASC`fW?!Lp3ncFHkkVDF7FDUs6f3amfUGdC|a0ah{?=PE`2l0NcQsF^Agnm^J zTkELcQF_NOrNU8+b5X8DRd)CACjG$`leG1mvZ2|3)p;*hZj3!Y2}zjO1C{4Je^C|1 z6Vry)%bZPcUbl=*RCVp6g)N6AO+)z*->?R?Scup}rU(CKfGpqNhhVPqi3V*gf1%tw z+LTM<*YbV?5(aqkT>8_fE;+eUQ@?LI?@p_&84vOwSUcgf1kxAruTzSMem}74H7vXn zp_CKhZ9LOw(80gz&$?`Qx-#X`@dbxY*=nY7pA^@2D1w&xql*9NE7=CclY=UKZkvjp zX-(m=ZxY=P^D!HEZS1}^5&Z6Q@8Zw5VWWkMWr{bG)tjS-68jT>uz23iM)co4Xe)Cp zcNa}t6zCL^86CiXJVenpUL%1fp999P1p3oEK)Q&|^PpKDAk z={tEBlx#%x{vd2Ox0OMGj$+PjVH3n{AVg}u$kFGJROb2E1+VMFpFJ%<7BV6=mJOdH zS{A~V9N{j%I{)?FJ5})9bd@x@;HBL{yJsSb{rcfc`>8-9@8-HyJSR>|1`FEDUe=R` zGVz#CO#5TIU9lLWxBiKJ6HXpSHuEHK?%p>7W6)zB?w@$2oyE&pvVMq-jQL}%O&9Xj zNtNg$g#2|?HqF{P+}x&ur6M@9dObCn9Aq&Hy(r6bDo#3kSL-V1fAW<0f}KBq&oi-< zQt{XzN#Gvf+MM(H$}Bv(`wBGi{nyi>|R7-aq2id zk9Q#k`)!eNl>=Wa-ZOZ6j{XIR7>Dd6?8=Zw!;0(m~6;z`|;Qfv*pFS#Otd#aseZ-Qz7@9;>9t z@6Lhlm3?6X^u390tHS>b7{s0HT^I_*A5{@2<`AnT*KU)UCa44;;3kG}&2RiO60ZO; z70Pszny+{p=?NfGiNqG}r(2}d$#$QO^8@8gj;Uzl9`&amV}&XgCrCoE3(GawPTa`t z+EzJr`88Otb@G>O2p9Zlk=FirNEEy&A?hi3R*GI0{C4B!OpSKF@Xfc`+LU6bvvR%B zhQ^F7yI9qG3gu<`964+zC@*5@=6(3qywO2tF^t%pLq!(T;UZ(rGoRO^iEls>#1bPnZd-IRdioHh_<+o?+hs^|4QPOm`--a zYYJ595v1Lf=NI=RZlcdzC?z^uI?b=&`h`<`*ix~NY?$%h7XNJrcC7?2~NTIm2{pwT6i)muiG?)dWAt#wf zMkCVw0{flakn?$M<+4^y+?sE5 z>)xnArV#0B_a>RnyZEi=@eCP{Mf<%ECM~`P=EfS)sNIIxj`P8IKD}J-a41?TKkaqS zjt0aj6y)qEx_8`?z3%9jIdI6be*}*&{ec{_A%6VrjGxM-%KvMkXP$9ao?E)}`vb*O zlQ@@Ksh(W|xFxN=-ayQVY)h^UV>!Le3MepKZ&cPR%(K9yUa z5~l7i8C6iMUx*Ce$j;D@lNu~HdYSbD4@(CGi$RsDbY1MQ13QAEEW^#0tvkwW$qkiu zc@RnkYTQqjYS0&h_K@|?S4W6gaefbsm8+I4Vt34`WetpCtrud|^t37F=H?o9L#^oB zmA_)}Q+vEqUMrt&-9?vP(6q{jw!vb^{`@)Wq23^Fnje~RAH?wuF`Womo47(y+@Q24 z?ANM3rS8zGlG1bz#;fAjyT2S&UIaxIImPACVKySV>c1#W+)7Rbq6#h`mM$#lsiecFTnC^DnJkM! zR+m>#ytKSg%v8>19X+*T&&!2-x6Nb<(z}$W7ce?LT>4Dha5B%V>g(f-BVJQ(^N-M$ zD0J?4oS9gYr;=a4l;)MC?zUSf2NcFq(kgFDxQD!{O$ zeYzK;oE?*lbU;Ak?+zUr?Gump^zCD;pgVBJd~1(TgpnH)9ASGkqeB(^T0m9b0)4iDqg55ujb?9AD z@EI+Z<0#x~Xt==R^pcQg^0bC(K)#mFZ@4u44s2-XGo*B##S$U>L48lh&Oy~(8W@Sc z#xomsAv`7KH6Y=kuLD(%9n_}}D`^x8&0f>zTV(zU^6w**0B%#_K&{Nnm=B3u)M7u@ z*0&V7xPwI)F;6dh!IJsqg6X!|8I6x<_uOZR_r|IN4t`Ikm zNkB$k9ASjW&1^DiTn@r&NN=ej)XAdW{kZ|#WvQ9-eTGcb%i=&hk)JI4(~4{5p99$j zT|&*o`de<)rM`vR7`1mDiF+!jjLp$V^G=u~|52w#+$$y88_1RvF^FR&oRbYL!O9^- z1bR;2L zIq3a`T)1bh$p)D_#e4Y5v`VxyXFA*8iA>)>^S29xTx2hTBWV938Pai5x){OmVtdT=H-> zSPKTEXPz~m8Ef0wB(g9*=pJ_z#5j3fD|F>uaI*G^Qu7<@vcK$$u2f9;siib0yR1Qs zpKHiWH_u4ti?OQ3@wNZ{_p!Ct@BRM4*yOR*oUzNVQJK}`Mp`q*h{gVd*4`=RQDvVk zgWZ+QknwT7xDINqzgVlx`*A65^jV#JP%pRQV@{wDR@DTAU%bi7U~A zWI4h3>5W|RRKOWJe=iBOH<{fUf3W@F!e^yR1198rZ{5_U{sv`((-$q@0Azg+L!7?G zb$4=|x$3{!3D?q~>flAlU7PfuWl0j*C6JSd15Dq9$hk-19>j-*Sm0_6qrG8R6EENd zu;!v`t>=2^pJyPJ0W0n{fS4C}+(Pbr8=fOCNC9FVV6;wY_ORAJ4=Meg38<8BsM9X(n22n1~uTl3=GeYWBnU6{qQ2MnVNTL3zDp#@w)_}(oSN+`7>93< zmYL)#7?_t<1#_32*?~S)<^KdFYS6+4nXtG*J*BZDjUVqG4_o60S<{Gqtr|Vw3ti?Z zrW(X%!fL^f0?0oIt!(qg?Wav+C~Hu@1C9si~lw{?D*YXMVIok zd?+u3!fZ|VD4L>X(eI}^uxs%$8IYv5KWimB8c)E<*gj!9h1~Pk?b^f{7xh9C14_#Z zePt5eG4Mw`0_z&82<)6KZw%gvGUppqO&97`@#`ItBAcPIuC&N6*x?<(&v06@!8Chw zEZEgtrm87;rDR9uScYrcdYfJMd%KtzCuG+ih+gTO-+$Kw5AH%hL$bNDSLy=tHB1-OJrx04O2Jo$?5X9#5)oOm6aO-1Or1Pjx>1X%_;Mv%7|3pjd^c7)o) z(Etr1YcXJ@>zaRb{*UL#m;f$G4AAEP1hQ6h;RuO5R~w^}J&;$_0H$DS%?d;RN8^N6 z%|}XL08BhWsk4Z(0i;1w4Cl5M(0iC^8aTJqfM15IN^mR<2rd&`e4kRGkPv(mOevis1134o@E133vr^Np|upIzp-Dk6lV{0mwf0;dL4C zf~%FILb*`KsAVO8nl!->f?h5H~F!<2h}Yqi_elvvl} z$Ek-5UPt5Z?BFlv2@ZOa>|H8#<9E7dGru`<4DvenC%4eK0#^~Uej438hu)cgx$rr% zx(hE{p0zJyj!`;IM7(mQ>+d1YcIL8PweEzAA#-4p<k&rznIlo4UIRp(i+^!r-I`W6sVYV^n;9f9@?j<6UW(gF!@{YUsn z1(0*XaZ+VwFmi*wx$XD9{c`iyA}mFJM9hf83V!&_ZlHMkn2JIbV<()l#b8VM2hYU{ z24*0Rk#ht_+v(J?<6!e|rI^qe!f)sj8l(b+P1v)O9A^azJpE`@b_fj`RrNr`>Hyl} zzRp1F;DG&5jIXOXCoP5qv3}HiAGgC3cVXsMh~JePbcR9_G6nUF@GXrxA2sc(Jz*g< zeu6+M_xY?kf@>wnp@U6WTOYXjL3+J4-a(OJD&I%ab#0X)p;$_DjkntJz_t-;x z=A4U{X~Jt7mS@z_*7Y|ECT{~jnJIWqa<-+!`${$fV>qmjp_cur0`RT6N)cS&vqG1ARK ze@UVy@nRz0{1ba0X?$nfs}BB`SC1k}SQ`+2q4sP6vSi$24_Jh8RQ~rn316JCtm~a* zrRxC|b!}7x)!B62>{b2+?C0I7dur*TX-AH!=Qd|)huQ}4e@c;J;$hv>!Z;uWcq;a_ zWFrQy36Wo%At@bBP6=4nf&H2MLdB)|^2K*A?THp@4iRcL)EEau1K2Gc;q{ECAmaC! zx{kP(c?}if#RB*`shBiZr{wE;RD;yCbUPY9k!-Q5pU&u*2-_%9lZoMXXi{4SkTyN5 zvBmms)VUSVY067mv+PLNNG2d2Tq>T16%hlX=-^hiL4+oIV;NWWCMIUyHL+VS9ZP?bsa0-Fj z>DuFIO;LLu(pMMH&1TY-dLwcoZHefg5$@10aXfr^oD23bKzh}YtiEwC zYrqqYRR@v}JA8k^kb;;x7X#u&j^gPbfQA##HcU>D@SminRoKI4byzZ^lUtjjgth`n zf0+l)K0gs%cx2&J1G=#*yFnSLn(*((rjMZg9gq!DjnL#J8~V)yC3B}0G;^Ua!6XA^ zC|vs1SDk(^7CmMCk%tU(44iYOemX%Bj})PKP{!)s&cSY3jOf&S

@4b|QZV!Hhh@}@mSA@(wu9|>sF5>9YFeVzZ|lvEZadop$Q`mgc^d0%2vgdFKO?XNE+hl(FEBFC4b zHoi{Ymr&yvEt@1>hhfuD9=!Y?I0=Rzb?2qAKgxVG5PSUiDYbZN_nFUcR5F=kjq0PJ zh`Km;>ZzR^>b`hr9v;Ufp(8zx{pdcOl95{IJQ=I^9x*_c26ut>=n9Zf$srm+Kprfs z=YWZmR4ioGI(M-HULE2C-1~z|Ag(o~&{+0Cf^Or?v$Y{?(*v@A-Xx&m+Aq?x)O5@t zzOxf=I}oET9A$-eZ}POqr!`h91y@Ss1aD9djUW0Wgt4vzssJb=0?hOHo^%*siu`k7ocVy`oJ zX058)Aif!)d8GRMsa*Y`NqNRm%maiWdC{HI+}=L)al%@WUrB+i73Yi-m4HaCO7=HW z&pb+~f0xJUJzGb401EC&Xx`tmKXMDRY_u^iqBZ8gz z=Oxu0h>Mbrj!yPfJ5%cF@9AHtUKZqAX<0~zq98bo0Z6kmx)^;) zmjTh6|Id^GM1T%1+}yeCq(%-SZRtfD$Cp;u-x6X5AV+VXX=OY;l+Ll=wFqy9NL_|> zpxBwPP8AX>)3`j%zZw@Nasu%6c=Q~5695SNy-4B}}7e(@;F97i%HblrK zsB!5(G2HivQFuM4Xtdwe)HF6A|nY7XAIRv=5BMODqqG7h)0+e9bP$jd*&z8GItF+e2>zI!q7YhzD<+$(FvgUR=0Oi47EJT6JC znj>9W^ZCLGVWveW0pCBjXf^-w=~c#9kNl>I+nL#s>R$#a!me}LT_}#a^~F}jis!u= zPwsvYk-9j1p4qvLf8G;S;e$A3i-^)g&yIN&Vx-;GU)`!_RjO})!<#Wk{`Lokq!{YV zyyVXfi@hz+J?0W^PSX`X+aFLr7q@O?fA(PIh(A+QO|aeZ$ID(nHw;gv)(;)}xl!zM zc~&ZueD3|=RZo-Fs`mHO#TVL8?1%A0)?hV&vi^}NhA)t@=U>@#w&2%U@zzqHN_suc zLD-Mncf>-JSe<-(gV0UBQ{f_`e6rJ!;>TS|5s&4;_V)I^cqt%_n>jA_*`H=mhcVRmd-JEtz+`dW(2lw2pW!@wpH|MBiZEn;r0c+>+C{Ubqg z63kc%Ssvn)*1$gf-P;GBztb~>g7@-Z`G+r?6>gjSx09D^o9jD8)rreXGM^NdT0hX@ z)o1IvV|knVvO;NfRn;%zpGA~Lf1Wj}3ky1G-@ooX%rsm6Rs%O zedz56szVoUxcRX^d4Jck`_JXCw=6i)%E*OE#wpX^qNnF1#H>oME)+YjtlzPmlGOA! z>jeKQuX?hzcWvjLWfg`RhYkd{oYLYlb|r7W?NWm(*r?CeuDV%-iP@XVx9)r8E=Hki z;CBulC?@jFA|;W%HAL^6zxRG!U0oJq^gA!C%Hz?|QJ1eO(I4rWf6l61@|QiX5g?N; z7b!KA?WTjZ@04DDBmG2e*`wy0stK-J=c^A^+2;g^Ceam)h|nB%tgBG~^7QnqAzX-y zyE{edeui_sf4OdK$mCJbvY+hD+S~YM3)3%dCn-{C&Ae?+osyEids}zn=;aIsL8tN(U3o1JO9{u#QALg@`;n)T#|OcDR&zj@=z!`97S##cF@+x zB<#USm6b$JoG+!kx|cLxR(G<)qanWaETgJkwgID3V}(Bz!RvyGf>Uma6VvQY7&W!^ zlcjy6ydHgR zJYw?5XT4d(n;8x`sGfwsV!$VTDa3T%INoGqPS2W1|GnJavYMVH;9}~)8+OuXt-?pb z>lxo)Z?%cDv)!wKugPCTotre{w%97nZX>fc!{zY&QaHA!a|_%B?N|B9tNmB9!vT z@OolLj~@0w!|?`KlWfFv<-C{m#u`ZFrxyo1h21`vJoZQHlQXnoD`bC+HO3c*@K+=~ zcrZ}>yOhsULqRx6bJnNr*QHLU%~zl9;Io`B`)6$Io8tM++5&4xQhj}Wu@VaCY2zA~ z+3pl5A{z_&1kPs2e3px((}x6ArEsiq6%3m=5ghS6M4gQJrFvivof8-5^4S>h;i@*!=}n|ckPXIZ)dllgEJ3yrtKy@^I@~AF}bH2iNoy#Hc9o_{t7CPV`Kp>EquKPdZxawNgw$|7TJ|6`GNZAuEJ)$G5h!M3cZRR7JWMd$O##7XHDwnA^~-BR1EI6ombW_uAEBrFe;yO z7L>qh3&?Pro**6NjXS%UvpV48RhDQrcm&xziF_xal3F-shGj}MbamYArB;xmEX_T= za{J5M2QCFw7nAs>V!`I$A#(ipz2Qtt7g9k`VD^X(W83`v{4%(ow~vl47r8y~-q#S@ zK8YC*IXI3luQ{`2R+&#A#k0>%z#=*?5wNek<|G z$!dCjg*DZgp?#-RGThv#L}sFs>3rKD#XP6?yon+n(?hS+7fgK`&Pb=M62lC?P(qrB(kQ?v#7N7LMe{{QNelrx1*S| zQvIhNQ%xx;LpDv98=>z)TRi355s#5Sjz)xe*$b;^r={{r?>>|lK z1T+ROv2~ZTwD+-3`VBVF9W`vt^a77hyrWk|>FE&PR=Nhx1@ZzU08Vsuh^QD_j?;Dbi{35SW=%HXlJ0;lVxp&%P}6QNX$Lxk=JEvLb%-Aaj3il zi;J$5d_fhKZJrIu*wjreb)qAojt8M)I)^4qZa7l-0+h4_O~H1N>5xW9muXAC>$NBD zOaR6c^8BUtN>hILOk)8YVN^wk@t?pPu-TWL&tDFB5Bo1qHFCU5K{tkf0GC!|(R)Dd zJje5Xl{(%q%^K?1@|(R4*LQ6&H~jv62d6mA8G>VC=8`AK%UMO>20lKDejv(=d4U;! zx%&+_eESA?@*(q<2;i4BT1bzpTt+~yQ>NrWsnFU96>K#TF4k&WvUmf|Ysh)kkj(7+ zT;`4Zfo^=xjsMFTerbk+BoT2@j1bV&3%O3dytQf?a!TBGhb3+QV2N2&8fPkcPTY62j>pK>+`@jG2t(+icnKU@E z08RJGS)Xug)H3%ZB(X%q?SKjiHYem0)*KAu<81mq>KmYy&QbhfL=f-;c=@|-Y{7l> z&zXpkMt(!vMtW~XTkV?#Wk?#}(7P(;aGT_J&KZd^(kg=Wm3CYOW`47!BrkVkTd%CSWd;MHAe8z zrlAaj7iO}^BqQhouj8=`R*a1=AH|qi;m8^Gc`h^lrW$#LQLDm@2f^p{{%pj-dL0*) z8k^&H-uOa>$!W}Y=MgxC?agT7C;T?8OvA5@W%P84!Hv9FH_hl1l_C-2yZ2nX9uff` zk2w6c>oc_nBM-$JJWWTYVUI5>DHXhiJS(rgqEA#bI(iNT@CyWP{dO7rwl;UupRM1% za4o%Wh)cG`V9k?O(cAY*e4ZIGHrH&A<1JBt=6#{BAL7>)^({phLm7Iywx;C{`b_M_ z1C{42n=YT@1u)ZWkul$KWS0-qV6e zjlpEhKXyGwrIaR1jJ5W=Cg5rC9c%vb4#ifcZb?oe%V!!k$j*K?_F~rTue*toR7F7z za`2lQ{Du%4QCn|F!+l~|Y8Rc`&-%TamTESw3%%YMterLs^R8ERx$FlZzey<@WMUGE#X{i=SjW|R`?_?&6I?C~0 zt%?6L2=Jwa4Y-w<6_!nh^P5dlyF9Fx9sC-j8<{9|({;~tA1^u7ifs!8VKF|vNLY+F zEBd7bm+U+8bn>5MX37hGaB*`}1;ZMh>An;plJJNK$Y1>#rM-w)OTYr80ybC`kxr8 zsk{yM7+q%u`tNLesFVluME1eI(hpBT?;D z^N)E9&8It3I;z4UIf|@})$_Sq=Q$9RRg_YA#cQupYJYQ7=^5Y;l?rmK5P}UHh%wm= zjh4wASD|u9v0c)M2Skkj7%bobOePoC_WJlOT{PmrODX#%y(A(pgQR21eIP5$9f{a7 zQNMLjMtW$*9X-mXpBY*DZKS#)+akwM=(N|zn*i(dkTby?&@`8LPdwsLhW8*MBq2Q) zvLo#?fdr3|22bKiECI{BM z_I?-vwZkB>i|gh_)s0usOinh4_NWZ#a`XINzxl_-akuSFyTU#<&yKUdY8b~n;Z0nf zGWvNDat-y!fY`2)~SxgD{+a~>V^k!g${?N6IOH@@uY>%vVC)6 zdOF+e*RO4oVNz4&j^j!RiHY6SlAiS(yAS7}X0_sm9%05ch3K~|3sk8gyCyq0$Q*dR z>b&b^VUTEF@#D3jR=lk7$lb~n4e@bK6a1Ns^7fh$(vfQieHRD5qGs)Z*b`e`UM`n_ zn8rD+eATZVc6MNF-nU<9l|ucoR2ItER!=U{_VD%dTY;JtV(TumHc8ymflr^VeJ+S# z6pQW{Hn=Muk}{g>sbE$!yhgbE}VXg$K+Q zF~0O7T!I)od#o%CH8QKhM3&xM=)rfCkWfw0J}n4@9v2q_3(MJ>ZtzJvo2B_c=Og1h z2@d=IJ|^e8AZL1WiUHrDtaSHHO0+0cbRti2=m*6 zMDR^H$VmiGxp{m%O>%tenXzqUB(tquUS3`S&56m$k48tYQc6x|a#p4PV2vQcp633xQiLF#6kF0R#m`WuFuUqO($^c>9Luf{7~7{s;)GDW|6rDPQq4l zMT3<>K3_sjO^sEDF8*iq9Ta1;S;LE~_oQm8_F}E)*EE%7W*jrA!nUl6Ft_SwA%n{Tpl@e=y{>AHmq zmopG7F2pTdik^^nWMr|Qz4r3u${UZ)rAtCpD3iP2gdSvE0C1hE>*Po7VIYgBt^ytA z{KhZv^NwAfA80ik!}ZUORlCeauea8(w_?ZYCwUxHepP-BY$^Z%oW6Rzq;i}DXBi& z?!qPkt;Y$D*=iHS)wRH=(h28> zw`A?{!lpa}1)XvP(1^eGCi`HU7w^`$NO9`KZ@+xX@Xx;O28cDnKrT>L7_Ui@*8b-x?W zhWuF=TW=pz3qlVrG)Zn?d!7S}1nXJ9Y*?=|0F2bR_xelk;OX=@vJ&2w_JcS255$DF zPaz5uBRDdkO2GwZGE~`98h@qaPYr`tp4-vQ#j~55R4h_w49o4JfRW{b<8Q45e_k1u zpdJZ{AS$Md3oDRlbXKyqa7g_mLrx~`uAhUG)8=yZ*D6UR%Z43K5U!?v@J7>tm_9Xs zj8?d=2lCB29n*~&Vi{IVq?~Y=Y zCeQkadD$(&Oq&~rD$V3_TeWi>$M&i<`x2JApmG|6w3@B}>`g)jje`|k$ncj-${oCy zk`{;SH-?@5th*1su-2-28N_?znZ``lFCSt1kDP!Y`kZ%|SsfavJ0-m~*f}APx~lfS zUEw)bKTxpF0F}$OL-EMV5bpFKof3o5{dyE>U0xv7zw8bU&RG=|Zn!GMksFUmMtWm2 z$w4FHIdL562)-KzgKu~F&S|M%VwIDR4JV+{QN(@5%RsLq5e4^^5V3V`%MJ8B)iG(u zlh_|A=&9u~&Enn`sXpZ)VY?5kK0o&P@JS}eUG-1_0I?E#xnlJ@b{%dq>FdWzEf=;3 zuzvCCz$`(h`+blUHeFD=cHVfwV9q7(1&deJiR{1yg?}==YpcZJ>(`$TbpZ-+n7iXo z_?(upu7P|f;>BJG;>#S_1H{If6#q8+`0(d@C9ZihwBSyhv0Xu$Frw|xR0 zfu29J&3#xgol%^KmEg_Y3_eUpw5G5s)_)|!jhMH`~r_0{K!Qp$O zm2rD4CUeZBYoXwTijzEJ^R!{e>qaeKrR7QqkA! zg)ap&U zw$_RXE9rfHGqt!n+L6J*!S!9DcN!xiB3!f~=BHXQ<{t3!aAlj(5=o5lQF(cJpAsSS zz}F6p!cBJ2bl1a~WQEqLU%I4w^+vr0S8PAs$eY;Jo*X@02*Ozcilma?d$%JuUoqsj z8|dk81IiXyM|6e*E`AKzDXO`U0{m=M5cg6Js-$Sity{k7~hnw70MGELdjpq@%HQUQSNVv#YUjU5D=}Qhc=C zjl+f~Vsh-4PeoQ#>KstQ>(%Zx)Ib(S72Hw;TkMlDrqht*nRTri+BUdHXWAHm|Et#CUZsWq=$~AK+BoE2oXy($88KGK z4Y^3evbnruj;1`J~VEk4Le zwRM}jjYIBKST*@bTJ;GBZK|ZBau$@jb0V;()0?B@_$UZF!ecHNR$cRR<9ckJ!&qGw z^W)Wxz`(%nRRi19$c&cGb$=(RUARY5uDOk5lDs;8C0jc&2~5HOf{!WMej64fMG(x- zPwf^mS~us6(XhjM#o-HmyH3u{OnjbKmHZ!h9_`aJ%~>#;gSghSgJiu@rFXw*yZKP+eI-kG2O$%NgZcZqKChTN~H|H zo4RF+wWbP9e0BPu$GIzlfdq%9d)uf_EVtg!=g-%BMn};S^j-x>8^~#KLd7d?`Wmg` zMrD$D2ZuuHR80dz0&_aY@c`3!!ZT|-siA-LPG6qRtm+^4{ZggGolE^g-$f&qB^2!# zXwpyuy3ZKTvMkdO5z(uvD9CD4#bILJWSl#ROs%ge0(*R*FI5>^==uZ>=W|9xz)?n8 zA&Gc$}1!H1jFY;d^JaxK*oSQPa+)0HnGOJEzYg^mauzvylwns&IzTG)GjwQ}1 z0B*S6pV(T(FImAg${`F&75lzMN-Tc~8qItpu>2GKrDV~l2pv6Zfux`iylQC)rl6#J*W3Gu z*B~wb#qttWWN3=c7=KsJ^74coIf6xQnN2#uqWvt-zUU?{>Ge^4;mOMvPs*e^vdy{= z54|6bQHiE_cG2+CF(B!O7UHp(F)14ZB!;Uqtxks^uoZ0M|!li3=rsvnrn&G8_ea}CZ z)#YR^%-m=Z^Im@m9I~m9&yH3(LpF!qd~h#bmN~p_Ba;l*m`o-tU~>fkM%tU=+u6Gd zTa7w}>?mbpZ%$RqRJFYbWE{Z`RN;mghxgcii!ak18xU(_-@{-{(Hy9fDz5vGf+`3T z^D2XX%dPP!+o!cZIH%vUS2;;|oW2Q8(3>>@d}1~`tE8RxVfqOw)Ogdt3N@3f6ERM> zW6od*`A6?}w=dPqnsBHb3T;_kWU;QxU9Vz2r`B`QH^GaGeOR({*sd_Vu*?ses~T(5 zeg#y9j?;OB!6T7|5^(=b=FTOE(!QFxE)IUYZ>$9XV1B1jLeE7=s^G&7UjP|y3=b&> z1C$$wt?IVFFVg{#tk~IGls%9o-D@KFf#Co1J9KnD7OLkfDgCoF5X|RBFyO{)1qo88 z(>Z!3&3T zL?NTQ^g2`j!h!IG3BKgM1W{FdPFwXI@-01h`-`++r#QlN?&c zs$emRJ?R`)do0AaMZeUj}9?;>#m+r4)>V)N%1DwGvfQr&i!hJG%x(L|h;~(w zY!MfXGV@5-Y`-mCrd_oUPwpZZoLUzV@)qO~W2li07*O&>b`GEC+FX*o4|m$U+mm(4OyG_+wiQs zCEd?M({N zdK4csD-UT=&C;~SZJ?X3#+FtCyVJ2!JZ#%)nOf$W3WBM(fA|S$%BIEtfT$k^i(0J$ z4*|pNVY2oR<2oXOUEI+FHw#DX!t^Bu{4LKKN;XRc#hhTEiTWuTF|L-$_gfJjY3QMn ztb!NqaH;=ulbVy)OK`S5_9{Wj5tI&eR)e(dFQ7o&WZztew3S= zn;%iuj}~bPit9I6a5ID4B5NBvOxDV*s407(C>w%U048+?;g_4NfvK zF=f2UuC6u&E>GyL2i0v$8y<#H`s8o%%z|?OT8HLrl+6w<1DTfGlf1 z`D=C0mVjIM#LYFa%$n%v(WC6^g5)(S18_z;Sz_zorP#)U&qM|t!hX6&78UUhR=L`0 zz3KQGrSrOTX6C6E5Q3MjrpQ&IvCWR2@#2;!2ywNE{BTeQA+$o@v~I!S*ZBpq6b$%; zU1DHlv}-wTS9X7PO&WM|(LaCwe194nRS~5BHBGmxpHUeOl9SNeX=?80(eO^bSs!et z8@vV3r3f)FFsQKHGa#azpM|B_%4pyq2?ERs*Vmf zG{{tG_|7Ns`V_i(UA^;p4^y7h_Z1BQEsa=2#$m}~_WWJ2>NJ?hP;er3yU;%~ZU^OM zq4nTwHsziE0IXxhNVOa4tjog_D)55iqO^pAVAW6^2}<8t$?k_ZrNOH7y5C+j96`cW z+SBvNc?QDomeO;o`2YjX&|AGtb_>oGZP# zy^4?Pp9k>YFz^;!L?_^msl4{rkgNdywK|E88=nWcb8az*)s~?;tk`%+N4)E&-PhoR zQ0t(eAoaU?p`kJI+i45`5A9p7XAdwc%wwZaRU+?|!Xyb)JdClwb|RZs$@ z>qV%&Jt9u1*oTh)#y-E)^2!zblY3)hVs<8uRGZ{AA0u^?vA#*}&D_I<1v8d~OraSq z8wU>XxSEQ60C?Sx{oGc&om!?r$aitE*Q3I$9fNrYRZ*4j+p0)q7U$uYj+tue>a!!v zbz@p?pNCKv{!3t-I{1G+$wQQc>sJSwGJqD{7qW;c>WXlHvdoL`_m_XGD#}B0Jfbu(5EB4|H;Cv zZHRqzGPn0;(+HXsgt@KDZErr1NxDB}cizcX7!MM{yFrD03dqg`BEs@k-(XHwMKVcb zAMt*v%{9BGZpQ;mi5JwVsst_sgjsjMNVRG$TImKWovlW*D<)RMA|kSvD*7XoFZb3? z>>ey(gDpSsnUm)B;(_oYORdmEZ&I({)1&nf)i<-)H!|X2o&t|Dc>K2~zr^cseHxFC zPj_eTjP2Z64gIp4P|ZOX486K~#*G-vf9e4~)^#-GHD`+8!1nHn()t@=g10CGNN}lk zbNH;Hq@-jH{3l%S@GGETkRRxlBa%ar|Ev_;PG%l*Y~$Lh>ws&!CmN_bC;SJrogH&a z!x*Wk{v(l-r4C~-tAeuoNogq!^}*ShnF~x8vkpnSRXjW1;J_vox8)}fZ{!IL{kJkK z^EM6+ojtua=uoLS5h0;Q)4f9E{nIjXC@)5_ZS!YVjXOXxC}amHn|3sVn9q#g4=oze ze9t-@GB=^`Mmy2J1^i;C=b{1QxB=!Ye}Qw@YO?omwdxcbR$Ky=XM$R17TRyD#7w!$ z(=GZ0OUU@|Taumam5-r)r(bpW?%$lF?Kr%g71QpS*XiH?_`!F{Viy5c#<}^y9!eD7 z4|%J>c!$nT*f0VX$P_OJAl1Sg*uP*CYzXEC4P|hSm2xe@Zp==yx5?#B&&gWvfokl3 z_#8PY1qDS5PsPV>O*pPfb(Kug{)fO8^bJgG7Fa};^A`ZVudnPGS7M^y?%A_~HSqhn zn}{b5Bj|xnI^R+=Q93n z9ze3!M*adPA&DFeX;kMa=89-*CyW2g6+bB~Q}=b4jp@+*Ar1H<0|Nc-vn zuQQ{lrbiye*ZE(^=MD?Y6nKkKQ3s)q;V|pT?EU-tYH0m$@~-A@29>U^u1MYNos10> zjp(d!I-^(zTYO8O)%Tr%!L;W-D?Kz%W?R=%Qc_&cJKsk2LHmTNPMhnevm1FUsrUc5 zl7R!O3Z245!Lr1ubA)E0$JYSO+!y8l^HQ!`_;nXuVZt)o9qC8s)ziEV8nEO2L->Bs zNM@T*p9>|*}cIfFD!&*Ymsk5uiCh2{cA_YE^zG?OOsRt~Sx%3vXzX`jh?|aj| zaN_G@G#dRnkJ%qsT6T0KhAYQ3{~ zGxqyme>#?_?+nm404dxj-ZX_Dn`}!Ez}+yU2EgV5Nzf_v8ONve6gww0wD!W~7>tIv389n-NO(C;a}q0h zl{Ikt*mY9#%LsRZTesj&m%*AaB{3`x{bVH_vwn-bW!_F$RCTRAG|fM+=x|({4n*!< zsrA9my_=G2KQ68V_0uFKUB0sUX~Bo4bA8`q6EWjg)#(rJgvDc934NaoW?&#L$-N!j zGBNQ4yRwp9pK{{eO~@fTzL^V%^2?$2hBiIi`Sk+GY$#9UUUVF)`ud{1 zPnrLL(Y1ZVGBGoij(+Y6U-)UB=>mt2^gg(}6L>3;%~zypMnbA$?#o_W{1p@`a%o8d z1Zv{C##!wI21EsM0`@%aWzwjMqqT~ySF(EZ6YdwW z6&z5`T#GHA)UB&*21IPWo#2X%U(}XlTSQoFq`0_vceNC(KAuwO2CK#O7u8fBXFn2s zqN`dW$WWM**9iQ^b1cQF@D4!uH{xlWjJxmd+WAbMLTjDh3CF)eUc9fc%)?Fj$hB*& zX;9(*-sol^UO=P)DH?9M8zghF?sszwd0g#N}>AhG@X8PW+L)W*y&o)i1$Gk}8tKXd1I z002Y$eu`RKC;t8p5HrD@_@B?*lPQ97q>}e+%-;ka9v}c||9?>beWw0MKb2mfi*;U_ QB!WLGikB3M`Zh`_6GbUOKuS_6>5hpYDFRXo0-|(E%cMm?kWOh(I+X?$Tq06R3W$Ix zJwZfe(sk|^b?v?O_xrx{&pBs|GsYfct>I+OH=exXx~}^P)4rr~>F2sIVMESynDH{Apjq+ZT*RPKq%eEpC zNB?DWw|svyYG6u$^zB7MFAx2Ux=b#uTlov=D=#KeQZU=;Tb&fgQD{5@@<2Qy7Ce09 zBOT{w3kk9F!GC{o@EeONS^PgPBX1YM&*d7xa!CC1eysWNe?BjTGZ1GX^@51_;OT!} z#3K9lAAh4+28d!ZFBT+!{@sk<7v_da{%Y2r8!b}t`s1-UN`^n}J@_FICqVp<8-p%V zp)o=krg#3?j~J%efA%ZJmOxc2e?a5bpXdK-e18kWzeWW4Nk|h9+u@EOIsWfMMUKWi zB>cyX=zJ0u*_2D?{!;kIV5yS1{p0Wd4+k%Z7PZl2wk*+oR?t211OF?56K!7%qd42G zXvEq~x4zsB8kZ-08+>l>;*YAAJ?B@_l5RY`ZAVVDI@lQd<#?`^55{$!=z_Ai$S_rzFb$M_XlZW5{YyKT-ScfAZE6s9rRenlr@6Z3p^ z$oPgZVWi)i2s*3d^UaPj4~ba?0)zIx3X@%bDYLOtaUJW-#v?2CiJIJP7I}+{{oVsc z>{Da^hLM?deDP;l`zdqQ_=i=sW}UoA+C2$W$(ldJGC8@bHxoDXO~DmAJ93}b|2pXv zQi}WFpL}sAg*6a&D?S+hZ_(^N**ruc@6W~RzjKLqR~goWN0){`Ei8-;!f4!gVkWEt zCUu`rX=meE;D+BGRnWg4@xARB{20TOON_m`q9r}qHldu$rCaxmh!CG5H`MH_Dp`Lp zjzt#!8Tgrr`f)QablU=D5svrg+uuJ{tt~N*j{g1HgXjHzEb`Cja#)!B6w!Zvoy#>< z_x!H4G(Noj->!zgp6+Ho+z`Hm_a9#?V1)d;G;Sk3`_E_n|N0enY_dJ_`_G^6?`{7q zbN1uW2?#%YjGo>3#cI+u|IHbpTc2MlMe>#Z^)j$I^4-1|&4X6mV3xv)p&hs4L4l?7 zcm!tTs&{aA&Cj^azNMI0&vTpWep(PJ?{ve-$?EMxbEjLl2^Z!PgR;1}OrJ{z6{dV< z`&+}7Q<36PKB!kRs@>;GiWZwBq>^f}X)yg!tB~`lG^U7!W z1y{iCqM7A@rnsnEVDr(M6sDSV;+46cWUmQ7ugI4ka=xo2W|7p&u+safcs!+o(H^Mx zMwn0DbBvo=`+h1YUeC5acIEB(6PMq^pv_FomkE{i=_H{($ zRfgB6t082}Ogv1vTn1zAhl3U<3-fTiM%AkP4bzl;W=@#+2RJ?P;YIrwN&RlKDb}4& z%v+{k5|W81zW2TbgV*V|K7Nvi+{tya`HM5(UyYN6liR(DWLHniYRPTprmWn26A|Xo zR8di7w8!haJvt#qDRKMzbz!Al^w%L{=R}`x4O|9tH5TOd*(8aXrxiomMTf7kNiS9F zYPztR6q0H!a<$C)h~%_EOF8bU06WOqz4kh;OBHi+c1P z>3rng`y$;u`{8oUD%{p$Me?}Ugb9=PG{xqe{QlXAjW^=c)dQE}m+B^(7UWOXq!MTO z{tRRA8guzMIuZ+63)~c>4yk z_O~kb!zG?cdwNqkx!TE+*>zl>=}fd*>`XK?wRQTsI>LV{SH&8uDL&3_w$-0J{o!V` zV`_C{-r}I4S>h?DdWG6?Ph&cH|L5-5{#J+G;x(Nv?_QzWzQ-zQjy=hy7~7f_)5p8) zg7-zgTV)J}2g!{VG2dnM{r*>_MF*v=jg7$LelmilpNSQ(!wIor)Z!Tm*^S`1EgY~# ztM8mBbLaN9my==F7=7|x(R90ca$Wd%%@*Or4%hRcmFy%^{>FJ$>_l@jgXafxt8>ko z{f~|PR;`~j?LC;(=9Ycovo3b;IPNw!FZpe_3d5+Jy(F2sJlXzcPr%!?{F7$BI=DI3 zZ*#KoFS8p1c1N9F7?38NGvjAdj)+<5meyMP2zOdgPp% z3fV)@$d770x>~Z9at-}cEoAZ{#=GjH#^ukxNsZi$mc5b2q!yET`N z)N8}`DuaN}@gih)t)IyPHiDn;Z7sU~b?D?n+iYXARl0M0*iyHbA>OyPumx$>3|`|N zhArqk6^*OR{u^Iro0IvBIaQdvb7fZE3hVE`&@S=TK5|ihWVj)lR}WX6tuUriMk})K z*DEwzzt8_ZT*1C!NZm<=!R77^PLr1P2V0ZI z$E(8ZSG~D>Onj_YX7R+Z4i9#-O@7au>GP1*vif$7{NBdRqLPyMP-g!tViUeA_2jQj zYf4UBiJMg@b8>apNRu1Ym#U7~oos#ZE~zI+F*J3*)#H75P`Uepu%^+wcUIV|^|x}a zj`z+VtC#VVWr1dQj74g*=ry?>8PSvM#at z%&6CBJZw=0PDIPOtWFd*qWjSY;hAz>Ib?2&wfPfG!Yp8nb!Uf-X84yBg@0U{|jMaVMT;l=8Z)n*foN?EST&0W}=oXtBk z=iYH`8|7K2Io1kNKUW|1ot)Guk^lZ~s$^A0m4MJVPi1Ovq{rXt$nAN;F){V%rUbpZ z6>L{nnzQZufW_JhiRj!N-q&<)T}^f!=&m8Hbcwzl&EDo?+h41qy|dB`BqLYQn8{pC zGx9>Apj=h0#FlH$D>XZn0l5vyqDX_1I3Wv4HpLyTW8~Kk(6I0i1S{WH>^+ z@rB~SF*|Rt%Y0K#pTtSyer#XI_UFxd55s=0=F}y`7Lj;L-2(^0BHOXiYMSx2wt0|U zRcl+tI77Ih{<7h_{4hFadlOLM#4680woxFQoH>s?LnftDwo`XjBJTx z1hy=JxbF{4=FaxF$f&+L7C`B5?ON57* z{wzWqBtil4Q)?8&Pfa-K2Wbrc%(tq#mI?iteO*qrscWTvv!UZ5`Up?|w=nF?Kf#zk(p6PoG%)OK}!olag;aa0ULk=^#FXd;L_}*ThDb1|A$yhSG=Bx zFevGN{U!7ngmjQ?{Ep@R{>Ne~1hSO>d<%>07_}mj#2_)_zejCc1LDsi`T37;iLqbG zX$g?r=yxms{wJmB3*=OP|M_>M>D79WHT?78#MlnpF(ljg$19O*>UlyS8A*T?O`(?J z8g0m=MASP}>W#XTd+(kmbK;RIUB@Hb^}f#ZGJ8`~;pr6_QPiC+yYVx(h%fV1Rv!(r zf{yq<72gjkTxH%eS~KfvivOuWau}lRko}b`Wq+FMfjIV=b5v7EniO-IplNw|TB7@v z0O?7ZBlk>%PSEH4&H{%t0uz}yQAoC?0li9MPZcGSWxxL&hyRWPg2w#WE&p8)|6LFN z&#niHn3tK5pe-q%aum^2^5nTUCvl03V&syN!9DZ(`X7t?G_enk-h0I?d_O4WHy#&) z*WaRa;3agxOZ2!h6ihU}I@+Sm(6&QYFPPPnm8L^__s}me@DH9=ss3{1xq12GB_~dC z`@2S47;sRWs5{uJGw5r-@iv3s(3=o)X=eE%za!6cU%8%%JGCr7{0<;VRZ;xC-aIKk zQYLURFSkfGn&ih_(iQl6xXXUtHNS0^qfJYy@(a8~CqayTwVVGbz;;7a-({SiEHZSL1?s0g0(hH@Sg; zk1VWB%fr%9Zt5De=Cu6WCyq!HlKcV@V>|$R91_0h3qEj_NT#R6&BV)!M}O>$zT@s! zyaSw48eFF5bjlfUnO)F<=3bZdj1z=;#e7+$cgbMPUY;jVjlQSGWdR@M2pX5OHu(sXw-o9>{dg$@yU=c*V|k$NpwTF8&4%Pl&pvq$P-2m zCo88xo$%XIAMaD=Owxg>2K!i)o6Bb4Shh}&h%1$JpEoWYQQch<{JO7NM@7Y zw%G1Am?OU+&qvI+mFHcxG`88JSNgK7d=z^zF(&krsb>_OG_vWMz1M6 zJ=%j|PDr--3h(9O#uuL@$Os(Czspn4@0U|Jka*}G+q!p#dp7b;;5+|Znc|sk~C$X@Yd7a-5OA(A3jR*KRj_875D z?ug^i(CduJd~Mb7Daboh{FR3Z-#-7d<)&v5jMBB-#veL4N_+MX@Hn5fua~JBXB^pE zk9Tr(di-NV;3ZMAYgZbk<23A~lBzw+ztZp--NogK2GKEkO?lRKunJvKWDv5rAHgIm z^|bF&hSZ>gkA3N$ScS`A=;h(CceI2Lg7NyPh%L8Z-IhZ9t)wN~PnB_+PcI1#_xsfB zR2$qpC2SRORxbvp*k!g@+_ST};!)T*zBI;yT8Ni(dP5v!2gytEg(OedPm8d%`gEgk zO4h1J6WOxQo%ApyOp8jgGjM!4kvu zqjv(!oJ89RO@@;2`gM)>aL4gc7Wbi3vMH)s?jhCW8G%Q%3NB?>g__q#AL+?ei_i60 z|JHY^-27!OtytBwh@>bSl~HgC=Op;ZLle zw6V4G+q3-qGH6CT;XBVMdU}hOf%sMluxyiAP&Ayr?WAM`v0x8kDf$u97}Nuw`>Y9m zyBu?Z$QqhnEWTQ*mp-ndu3_I)oiVJ7;ECydyDi`6xJu({d# z$e@P>9jqKiu9&VFC-PW|hHKpk1+_EUe+}F?X7oN=`^-k|Yt3{|N;Kx{TWK9dJOX`W zyh6i&-Np9V`%^bKt=XX*@X4 zX~cnQpN1E^#~h4VuOL`M#I1xot0KohxlJP6 z{Q7^q`J4wsK|y4R49Den20lA1s5?;<(+;Ry*kkcgGJ@(TG|M5F?0L2Gh=aJd241np z&7|(hQtfDGFqzzky`#dO`APGcf;U5yMTN3@7FRSG$lDo!6LdSv!2+XXfZRPDn>kNv zo3l%#Zdn{kO2_(GCE98K9-TA*@+q8q0;JX_kKAjFxThjPE&zLqlK`36Bd|vw1uOk| ztzYwJiKv3*QtZUUC&NLT&4tFs9+QGAyiPPke^svOPG9`rx0wPw>EcjX+S^RoXMQIw zH%f)OB@};d%IJ>?rQaM?RKz%B;lBnqsuux^k&)wIDOE=Y&Uv?78_pQ3Fp~$M)OVY| z^ZQlZf=h`mQ*W>|b!TC0uY@Rah-kq2OXAFY0!F&?z>8k^)nYK%0gY1clF8jAcvYk10mmy@8J&b1_ViI1<-lcS97#K@KTcVhoA|d-6R)}DBi&%>Q}?V zhGmN9a!Dx~*)YQ7O^AEI`yYn{K-dG-!{0-)h^#zP0!c&$BOpItVG0S2Ed@Z0wykIQZo47JuO{5YO&F3bi}2N zk!ydudEb7zklg?ir2hWfvt|C_Yi^p;5~L$)PRWfR-h|tF~sJ7bTBk z!y;l1Q(lB7+;XL*hbHh7%&7Mi>z7RL?=A1YUiTXTT51Tj1^k4lxX#wgs!u4aX3ufy zuTS1cZiW2>7yfQ_E3DH0&hrWX?Ub~Vq)<6~0qbrCH^TfL;blQq|{nGyNM& zRcsx~EGIS0w&F%G1C_^iPheonoZ<0S)w=qjzA%_beWrMIZs9Lt=C7Xz?X$||-3roO z!(-FTTS8K992z$DDRZbB_nfugDvd5D@>{Yu6P9-d(&4Gh{?1C7dUUP-N85sq5$mjR zTxs8jr#B;su+Q9a4Ov@Tm=VXi@weR3nLa~Tty8Q6A2Dr}#w0EC(>!P+QV@`}^SMR_ zfgBnWmvHP2gonAQ=!Sk>j9~Vs?{#Cz0eu%vs_`calZh-IJ+XS)`bC(X|MTy!jy|F; zgmuew_Qlm*gr8!IlDNT_IZ&XLoVC9*moJncXHiC-Tl)#Kn7<^nHa8sozp|CnJ%G|MxWL**QWPK z^J5_TGWcJ$4k83NysX7ijGJG$@89Utt3WLJ^o$Co`e*zn^4)J<&BhOk)bD?C$JVCB z;UFZ$L@wx8JpUP9gwE?ZzOy~CFP6n$vD`rHSY>&t;>B7jMJ89~?MJrHw0tNdaMhud zb4ncAeAqrRCOP0jR@`*A$g@R;z|E#5Uf~lS|D@P6JV^|0dNaq-R$tttsCXKPqBu@R zj!1BS)e!*dX1e1cDNj24l75jvYI&`Ghq9yQMmlYot2(spgQZq3Y-f1 zw9-5@BAi06CgTcE9HSF@Et92Pj++-g47>Y@H?6T@+(#c4*(HuvZyl7LF6L20$Y+{P=iuUdok4 zmNBQbVTQ7>8aJPG$?s$jkS)8ep$YdFV=|R;gB0|_pb;ETM2_O4KB#0<_UrP}T;Mr_ zT@m5tpMh?SPSm_DYvNL>duem%j314v#zGR4FMkU-S_8jI!5K4}KGr56exTkLH7s03orYa@k;nrq4UDC_(K zI_bX$&9WS5$>O^ z!PdW!wCH+au1GRd+3WnC+4<2=9-_0+0XvVcdfRGXsvY?*KIxI$ZWnB07%<27Ehe8c z`-HpkCQ|HU;kY*%^D#1wiqN zdhf20FIwJDAFC6lL$cYS<$t5|eeuQV6>r^gBSSZw{kuGs(ca4XE&r@fFMPTzlTEBB ztK_hKiR_NL8Vd{Dk#dW=msZ7=RI-lt*Y(Icar)aFP|8>9(*kIO2B5984aIPw(*#H4-PlqceCu;e694j*sxKDo$S?; zwxt*ApOh>A-U$F`FiS*LRX7n3k{v2`nO`V&%GrJ+-lP*b%k#;q*?(6ltAmH;LE0gO zC#92&y(~m_s=zFs_H7KoBdWZReGPjy^c7^P?~EtvMyyV`nAD|nQhFcjk8iKGaMk_= zHD$>?uP|0EahVtEL)=Z0v)`iepiR@H;~Gc?s#ALA8stkQOz2BR@i{%pgwgwuA6TJY zpOsAs8e%2SirT-NfHk=8R$>S+iBDGGPAG%pesoI)TOHDJ1wdQkriOiPU$t5K?X(PZ*F zy)r865LXVAt~oSf^Jgc33VktB+1SPZ?BOd`qg2zZQE7;%X7Z9vu+hF9as;ByeUunjBk@!5+MN{f@qvcxr-ngkg!r^ z$o~mziX3XnU;m1#J-(MFjgIPJaQ1nL9A$4d<{w9=Qm*7F8V2FKn}AxTZ|Gb00Hgjw=3AkS1E!IlsfL))x<$Y5Ix&v;BNuQBczA~r0Tx{Qu(0Ef`okSIv+0& z?UjtmRf%HzCJ!4szo==rGEtG2ht)VoJXC=llHikibWh2B&^naS(`MlesbbaS3aC-^ za95iy|3$fUpY^cgT%s@%>Z)0Pq7{W@jz)r@T*v|;XWu57c5M)3b!}+sQ9qQ|uVUZ- zxaWsM?TA%=$ppBeS#QR~tp1!ty4Ac_%)Z})yu-dvMa%PNNPCG*3{@<;o!{#Jtj=V# zs?$av^5yIK9BspnTHB)pYNvr6&GqB=c(cl|V&Nw9mM1$)z$iT9z7Cm@+=A zkF3h_`6h`t6m#{i3Cv=dy;`*C-uD)=v?GpNloR?T1}Vv;B^&cUes-Pfx^U9OqPWJf z{!2(D#77Y>BbmkeXVTOTnKDQN#6JA9MKccQ|JVeZ6>AIt|?YI*NSiD5+& zgusTNL>VYC9DNYd3xj+>C$`pfw+$hRJq3hZ6S#o|Bldr=Vomuh>ZM+>K#YtPd@16fk!vph^J#22DP={*F4 zZk{ay!q*QP$h!79Sl4Hw(M7(iOg>*v59Dj|RK%Vz(J%g>oU(9&BQi%BUaj=1trdZh zn-IJp>)5{`BvMgT@kjmwfn}HTnJ(eSI*XZWi)Z`G1;cIny(S6=eYps;vJUW^%E{=mK7NH zw*?RJASbRzU=}sDgH7fRSjB-2m791xIRF^yd?aV~Jw&o&^)A)&QwLQ@PUv@bmb0X% z#bCA^3b7~x@^&d?--I0Oo6}PGWwWyq-MnosYwyB0BItzQJP&R67>_n6Gg^HI(8YYN z4L$)DHeD{4VZ;g8bP~wTcVHU;_#i~2=L`8fAM1ARi$|lY!)DIh{ikITQ%+UKU4qw1 zt-L9O_7VY7^N8yZHmo~_hFc|D$G5ujDj9VaB>id?rZ2dM6%vj6t#7-(ZG82ZczLQw z=vJy0B7pA0nuBy0or?6f>fSFfkpsceC8Fe}s^V$HdmV4=Zm(B3aOvAD0p=}ubCBCH zYRb1Bv${Z`K>pq^hbQ$enj3B}Ql$#M3pqKcXTmZ$4#v7rCg_c|??O#|P_3N%yteL| zWYMAH`Ij=d5x9z)$H1nKpsZgk!umG1{5cyz6BvB=nFoD<&5>|w$7Kc|mr`w7f3eJQ zJGX=JBSZ(B8cDo;TKUaF2gtGXWo0Y2plkeI<@a}@-;|GzyK``;ag=#Tr$wppREsi+ zgPc-O&$h~?meNfF&@(rLs|WNfA-CZCJN@S=P9=t2*<^AtiBW6=bz_y2ONNySxdm|| zwk2^y^mWg$#XU_QonWKAE!LW7^5YrN4E<;asCizEM$fnV?LTikEi929kbY0jrO46( zEhptl?gjAYHUtIo+Dgi;qxRcA+i!l($nLFY?c)p{v=955m0adnyJfOI4GDEq><4@y zff5oC8i`(g=3TRBqYf>e%EzN4`2bgzNE-zPf$g<{uu^~;0lBZ7XF0KXj>21A$v~Pl zgO4Ol;Iy_V!D3uiW200RfnH>pGq)5_1fu))wUxnN_4v9((y3u>7zn8`AbSy!vj|*Z z(Pktl>xf><9sJ}znsy{6Tw8Lcd{vUsPg#Y-8ob-jwNd8^3L+lq!H%m;wbmZ8W65i1J(+_py+RNO=?*Tv!Ew;d`!SKwj_DD|Y2>&vAjNLyG)Tb{C3mi{=k zAf6Y%W&J&Zh~O+3*IW@7uz@hsD$r&|jyId+g>v{kE0-X=GF4hw+1x1_T#jX8xy}Vo z?S4)L{`C53`1mT9%5@U%2-BhsNp4MxS6CI^GiAQ(`tqz;vtR_PX2eS4ISrz)DiU3^Xn#kG!y$(_ewl1u2VWk%cntM#NCuk478-!S#UCy~*p^{3Y@$60G~QW# z$L(B}y<%ulaY$0g!Sf!#^GbaM=uu}7DoQe{>hb*@uB;wsB5GhVq~I|NxAOE4NOH)? z*!ej~Q3Tww&5#xr-hUq3GnbaRjDHLWnyWC+mfrmUbK(WPhW1jX(I2*=gGX*Bp7&&! zyFnp&F%PJVy$>!7egV-oI>9Wcx6P7p@jSc&VikO3EdK-pZ^`lftW=c#!M+2G@PA<6 zRiiaWIERcVzRN5pD0dXOF{tEOm$4;xiTaf}Pc&)n`_CjAPCt&86WZThD5>ZSr{)=I z6eDf1jGB6Dmymt7^zb0}04@!Q!9EJTxs41=0xbHoR1C=q*~fq!Uv)R}Qlbr+6Ek~< z1zH7%9Z=D8SXfxdMKTMkB1#dr*^4RCUgd97gjHzHnT}OPZb5U!PVc^c|L+SpPp;AlDV~bV>nS?b6fj{1LE2Puty?UTe)fpYr?#ZO;Hsx&m`lj>qmNS{eQGi(X4T6~@ZBqiBm}}IxK+1uW-2@et@m~|rS!(Xc{)M$mKwA8RPX^gJ;L?6yWH&E`7uy+MetXm_hni1&ewV+F!8m ziw3?5kgn@|0Zt{(efg8DzF;*&sguXR`WA~^(IvLvXe0>6i`GDvU@kI<`3{0ZMwF1s zuG{t9DMe|8%@pc9R!;es&qlh-8@l{@1=-bZJQO_*2KUYV_8HrX_d}+)^TM6X zX}du=)DiGQ+lO#U22~0yZOeO@RhH{;Pg|T4l~w3}QrY#9)h5~hL1kBS#QgAtv~vh>p9=Z1PCr29)s(CKi5alSo{ z@T)~r60(lhX3hrL)qb1;C6YUe1=0u(=u858xH%+1xaee5Oy_by9BOfS9#O$^E%2o7;L*nWNx4z9w2t*7_HPTuu^mR>wJfT6w5YkvE zjxl~<{cnu5l)VD^?SHTI+_(et;Sl&T6?%0}B5DdNZNIf%x2`X0)YMr1&21Q}QVc_lFnohOx_<=f*JY0i0V;{h;_P42!OoB^;hMoDvv_lsgqL}NG1Yb(jy!> z5z$agCZdh|He8Vv!7Tp?Bl1sn`r#@XFGdoK`0QnMG_v)LKoTz?%<}yZIHCgSC}CCR zNoI*#*{e46zeE1cIp@;>o747j&-=>B2P`ps|7*VlYQEX^!GpAa zQM6;@T$S?U3w1YIkA%~)3rUl5a|eCMwf;8Npwrg5s?Xm0HS+D(nKD-E)DScu1Qs>9 zS`%t)+FRO5+wtdw21*|)Ai)g>pLGN=fes``I`fwEM!8&y9qcFm?2MNuVM1%H3Hw{L zRDa?6PQ*79F;aLBbWg`zhOtqnYJ0+SDO;}`GwN8Eh_EzY*G`@@Q?i zJo)Qzei;;UDd5J%%NR`>-6?ujQk(J|ky^N>z14~em#tU#j$U|hG$Be;Y(%MPYp_CW z^{K;%koS+)lf#mpu>F`JAJ9~4RMVMW5PGCvaxQ(~{T!fo>m3FNot+`Rbey&@1^#6mUO zczOwCo?{WiF0Md65s?n~BZYW1D^RD`VIIoJi2$5t(qHaUSpd1VpzUDvUZIVj^(Lf$ z509I??f3<-d?5+9zpbiuEf-5nPy=z%`zTpit_Ns6Yy*fyl(G&r&LkP968Jz>aOC&- z&ORva8^?K2hegZpT~Ur=XrLiVEP%?ZAynt~a`QQEbe>{f0mz*Y;X-~zkqo2vbgU~3 zq=t#fIQ^3COie*1M%|sGXp9hhHkn~K59pHk5Z+b+D9kIl(U0G4X5muM`AXj zLD;nQhb%V5l$1ROme5^J&Tr1CO|xW2rTd9?{ld>myxqw@>>)wTn~~@0Hn(9{)ArhV5_9-feP=tgfyKdH=Lnnc$WU*qLIsd>knT@m>d4 zmMSRA-U^Ew^=8lfrLHA3NB>y;IJ{r7p%AMYlbJeM;D&k)t~sFkna75CYa0;mdaySERNcy?^$t zQNwfGW4NZat_X)zLAt^p9T0eatUgvQvZ1a@HaIFJLtW2u0fzVlM@g#U1x&G8a_#9D zQrMb8KVP1SQ()=z!RQ^wjbzMTI4n}kQ(pf{&w5~eJRxc*SEa5PD=Z1D>^J(!+!9&t z8;ygGCOtTtKEg5vFQ|Mf#jm97Z}Gvz35wHQKx(B1zoa%A#Ad$Fi@;aRM!=@yY*Tkg zsqVAN8r?$YDc#H0yNvnk&LJU(4+3m*#EkB}7$|5flii$-cZIUvGKDJ|mrGP-fk~P5 z;VY@bb|5N_v&Lom6RFIqS|MCKIr`w%bSWaR&O}(Xfa78RLOmQ=KX3bgmgsJ3%)4ml zD21_^sR4HWbwcXU&62WOp$o@wCbI9MhYT>6WPT{IsfIFP=8eV|))7_4%AJ9s+&Nf8 z3Baf-JAo`ETqBz1a<6_N6v@Eh^A1GPsH#qCB-_TPFQ ztvtk5TSostY90?AZuDF-@;s&1pl$d7*FLwR-z&4cBOSH71-`1GTAFC1|!;{G?UDpIUj>YzmLJ_ zGQ?VUqt9=tU?}5IA^1VuNYaK%&ev7>9YziDnM}1sYmIO4$X*|x6?YnwAZfXUfX)Wk zHCr-*8YqZ*FGWa#WyY$hveF(VDn=+j)@!Mk7=td4*zw7h=?^%_r|LUNLvVo^^(GHk zL(s7<+p83(Wi8F8SW&r9gdbn*F8F~Kl@Ly6!%>@bjyf`D`?dRzJ{4v)PzBSGT_B~5 zr#XDt97gV5P=1YME>~H~%`tKt0H_LfOC<)5gOJiG;{LUA>S5(*CP$UtG9{1>U!)44 z4XJ|AWNxhmKPUp+xKL8BYl{M=lcUXpT$K#Al5E3`+#euFMuc+N=ZG={Zz{`Va6UQ7 zH``0Q53xpoB0*?-3=27;eWWuNqlZW!R^<_B)1eP<$xx-5pkl;s+hAnAza;E0F+9gZ z!RUwULtw?lAu)L<16D^7Wq3ogXLZM#@M1I9Tqb!@xk$a^>{r1xJBW;$Ke?pq;@$*& z{qS^ff%EB-*!FgFq4t@t=^uiG1W-zdIEmE_V2Wsr( zqVI2Ysg>9jf?zZo1e-u|YA3piv+pf93^t`k%Y zIXWUzhv!=hC0o3|M6N+C7OLchz s+LTAM%)@w^3LG)R*-s;6k9~APJah|1NKOm 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 literal 0 HcmV?d00001 diff --git a/Interpreter/compile/parse7.png b/Interpreter/compile/parse7.png new file mode 100644 index 0000000000000000000000000000000000000000..33fc187d2394a5f937baf8b55946eb5427a3859d GIT binary patch literal 43354 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 R)yrc50#8>zmvv4FO#ls9sQUl_ literal 0 HcmV?d00001 diff --git a/Interpreter/compile/parser.png b/Interpreter/compile/parser.png new file mode 100644 index 0000000000000000000000000000000000000000..66236958fff3d1878480aed495cfe712fa5adede GIT binary patch literal 46375 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 BTmJw6 literal 0 HcmV?d00001 From a9a8e4fd04d3b57dd7b21a1ecc3f8cc030ff3a7d Mon Sep 17 00:00:00 2001 From: zpoint Date: Tue, 21 Jul 2020 01:41:20 +0800 Subject: [PATCH 20/90] Grammar/MetaGrammar to DFA done --- Interpreter/compile/compile.md | 13 +- Interpreter/compile/compile_cn.md | 220 ++++++++++++++++++++++++++++++ README.md | 8 +- README_CN.md | 7 +- 4 files changed, 241 insertions(+), 7 deletions(-) create mode 100644 Interpreter/compile/compile_cn.md diff --git a/Interpreter/compile/compile.md b/Interpreter/compile/compile.md index 37e256d..c686074 100644 --- a/Interpreter/compile/compile.md +++ b/Interpreter/compile/compile.md @@ -50,9 +50,15 @@ Let's focus on `pgen` The built-in `Parser/metagrammar.c` and `Include/metagrammar.h` will be used as the input grammar file's grammar +`metagrammar` is used for parsing the `EBNF` format's grammar file + +`graminit` is used for parsing `Python` 's source code + +They both generated in the same way, with different `Grammar` file + ![pgen2](./pgen2.png) -The `Parser/metagrammar.c` and `Include/metagrammar.h` is also generated by the same program, with grammar +The `Parser/metagrammar.c` and `Include/metagrammar.h` 's grammar >```bash >MSTART: (NEWLINE | RULE)* ENDMARKER @@ -208,12 +214,13 @@ The comment in `Parser/pgen.c` > */ > ``` + + # read more * [what-is-the-difference-between-an-abstract-syntax-tree-and-a-concrete-syntax-tree](https://stackoverflow.com/questions/1888854/what-is-the-difference-between-an-abstract-syntax-tree-and-a-concrete-syntax-tre) - * [What's the Difference Between BNF, EBNF, ABNF?](http://xahlee.info/parser/bnf_ebnf_abnf.html) - * [A Meta-Grammar for PEG Parsers](https://medium.com/@gvanrossum_83706/a-meta-grammar-for-peg-parsers-3d3d502ea332) * [Python's compiler - from grammar to dfa](https://aoik.me/blog/posts/python-compiler-from-grammar-to-dfa) +* [the-origins-of-pgen](http://python-history.blogspot.com/2018/05/the-origins-of-pgen.html) diff --git a/Interpreter/compile/compile_cn.md b/Interpreter/compile/compile_cn.md new file mode 100644 index 0000000..b704dd7 --- /dev/null +++ b/Interpreter/compile/compile_cn.md @@ -0,0 +1,220 @@ +# compile + +# 目录 + +* [相关位置文件](#相关位置文件) +* [pgen](#pgen) + * [the dfa of `ExampleGrammar`](#the-dfa-of-ExampleGrammar) + * [parse](#parse) + * [make dfa](#make-dfa) + +* [更多资料](#更多资料) + +# 相关位置文件 + +* Python/pythonrun.c +* Parser/tokenizer.c +* Parser/tokenizer.h +* Parser/parsetok.c +* Include/grammar.h +* Parser/metagrammar.c +* Include/metagrammar.h +* Parser/pgen.c + +# pgen + +这是 `grammar` 结构体的定义 + +![grammar](./grammar.png) + + + +```bash +make regen-grammar +gcc -g -O0 -Wall -L/usr/local/opt/llvm/lib Parser/acceler.o Parser/grammar1.o Parser/listnode.o Parser/node.o Parser/parser.o Parser/bitset.o Parser/metagrammar.o Parser/firstsets.o Parser/grammar.o Parser/token.o Parser/pgen.o Objects/obmalloc.o Python/dynamic_annotations.o Python/mysnprintf.o Python/pyctype.o Parser/tokenizer_pgen.o Parser/printgrammar.o Parser/parsetok_pgen.o Parser/pgenmain.o -ldl -framework CoreFoundation -o Parser/pgen +# Regenerate Include/graminit.h and Python/graminit.c +# from Grammar/Grammar using pgen +Parser/pgen ./Grammar/Grammar \ + ./Include/graminit.h.new \ + ./Python/graminit.c.new +Translating labels ... +python3 ./Tools/scripts/update_file.py ./Include/graminit.h ./Include/graminit.h.new +python3 ./Tools/scripts/update_file.py ./Python/graminit.c ./Python/graminit.c.new +``` + +在 `Parser/` 目录下, 上面的命令会编译 `Parser/pgenmain.o` 并生成一个叫 `Parser/pgen` 的程序, 这个程序的输入是语法文件, 并且把 `grammar` 结构体, `dfa` 表结构等上图所示的结构体作为输出(总共是两个c文件, `graminit.c` 和 `graminit.h`) + +![pgen](./pgen.png) + +我们先来关注 `pgen` 这个程序 + + `Parser/metagrammar.c` 和 `Include/metagrammar.h` 这两个内建的语法结构体会被用作 Python 语法文件的语法, 生成 `graminit.c` 和 `graminit.h` 之后, 就可以再次编译然后用 Python 的 Grammar 去进行解析 Python 的语法 + +`metagrammar` 的作用是解析 `EBNF` 格式的语法文件 + +`graminit` 的作用是解析 `Python` 源代码 + +他们都是通过同样的方式, 利用不用的 `Grammar` 自动生成的 + +![pgen2](./pgen2.png) + +其中 `Parser/metagrammar.c` 和 `Include/metagrammar.h` 语法如下 + +>```bash +>MSTART: (NEWLINE | RULE)* ENDMARKER +>RULE: NAME ':' RHS NEWLINE +>RHS: ALT ('|' ALT)* +>ALT: ITEM+ +>ITEM: '[' RHS ']' | ATOM ['*' | '+'] +>ATOM: NAME | STRING | '(' RHS ')' +>``` + +(上面的语法结构在源码中无法找到, 是 [python compiler from grammar to dfa](https://aoik.me/blog/posts/python-compiler-from-grammar-to-dfa) 中作者倒推出来的) + +如果提供给内建的`pgen`相同的上述语法文件, 理论上会生成一模一样的 `Parser/metagrammar.c` 和 `Include/metagrammar.h` 文件, 这有点类似编译器自举的概念 + +我们通过写一行非常简单的语法规则来看 `pgen` 是如何工作的 + +```bash +% cat Grammar/ExampleGrammar +START: (NEWLINE | RULE)* ENDMARKER +RULE: NUMBER (ADD NUMBER)* +ADD: '+' | '-' +``` + +我们可以利用默认的 `pgen` 程序来生成我们自己的 `ExampleGrammar` + +```bash +make regen-grammar +Parser/pgen ./Grammar/ExampleGrammar \ + ./Include/examplegrammar.h \ + ./Parser/examplegrammar.c +``` + +为了让上述命令能正常工作, 需要进行一点手动的小改动, 最终的 [examplegrammar.c](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/gen/examplegrammar.c) + +并且编译改动好的程序, 生成一个新的 `pgen2` 程序 [example_grammar.sh](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/gen/example_grammar.sh) + +```bash +sh example_grammar.sh +``` + +在得到 `Parser/pgen2` 之后, 我们能验证下我们的语法文件是否正常工作 + +```bash +% cat my_file.txt +1 + 3 + 4 +2 - 5 +# 运行如下命令是会失败的, 我们的目的是看构建语法树和dfa的过程, 不是真的构建出一个能用的 dfa +# 如果你把 `Parser/parser.c` 中的宏注释掉, 并且留下或新建一行 '#define D(x) x' 然后重新运行上述的命令 +# 你能看到我们的 DFA 状态是在 ACCEPT 的状态下的 +# 表示我们的语法文件是正常工作的 +Parser/pgen2 ./my_file.txt \ + ./Include/my_file.h \ + ./Parser/my_file.c +``` + +## the dfa of `ExampleGrammar` + + + +![dfa_example_grammar](./dfa_example_grammar.png) + +这是根据 [examplegrammar.c](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/gen/examplegrammar.c) 或者 [ExampleGrammar](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/gen/ExampleGrammar) 用上述命令自动生成的 dfa + +## parse + +第一步是根据 [BuiltInGrammar](https://github.com/zpoint/CPython-Internals/tree/master/Interpreter/compile/gen/BuiltInGrammar) 来解析语法文件, 并且生成一颗语法树 + + `Parser/pgenmain.c` 的调用栈如下 + +![pgmain](./pgmain.png) + +`parsetok` 会调用 `PyTokenizer_Get->tok_get` 来获得 tokens, 对于每个 token 都会调用`PyParser_AddToken` 方法 + +`tokens` 是在 `Parser/token.c` 和 `Include/token.h` 中预定义好的, 这两个文件也是通过 `Grammar/Tokens` 文件自动生成的, 自动生成的命令为 `make regen-token` + +这是解析时使用的结构体 + +![parser](./parser.png) + +如果每一步都展开的话, 就会花费太多时间在细节上了, 我们就来用我们上面的 `ExampleGrammar` 来简单的解析下上面的 `my_file.txt` 文件看看 + +在 `push`之后 + +![parse1](./parse1.png) + +在 `shift`之后 + +![parse2](./parse2.png) + +在 `push`之后 + +![parse3](./parse3.png) + +在 `shift`之后 + +![parse4](./parse4.png) + +因为 `ADD_1` 是在 accept 状态下, 所以我们会调用 `POP`, 在 `POP `之后 + +![parse5](./parse5.png) + +在 `push` 和 `shift`之后 + + + +![parse6](./parse6.png) + +重复上述一系列操作之后 + +![parse7](./parse7.png) + + + +## make dfa + +`Parser/pgen.c` 中的下面的函数会把上述的语法树作为输入, 然后把 `grammar` 结构作为输出 + +```c +grammar * +pgen(node *n) +{ + nfagrammar *gr; + grammar *g; + + gr = metacompile(n); + g = maketables(gr); + translatelabels(g); + addfirstsets(g); + freenfagrammar(gr); + return g; +} +``` + + `Parser/pgen.c` 中的注释如下 + +> ```c +> /* +> 输入是一个语法文件/结构, 格式是扩展的 BNF (* 表示重复, + 表示大于等于一次重复, [] 表示可选, | 表示或, () 表示分组) 输入的部分已经是一个语法树结构了 +> +> 每一个规则的右边部分都会被当成一个正则表达式, 并被转换成 NFA, 之后再转换成 DFA, +> 之后再通过优化算法减小状态机的状态数量, 可以翻阅 See [Aho&Ullman 77] chapter 3, +> 或者相关的编译技术书籍查看相关资料 (这个技术通常是在 lexical +> analyzers 上用的多) +> +> DFA 被 parser 以一种特殊的方式作为 parsing tables, 这样的处理方式可能在别的地方是看不到的 +> 并且在 DFA 能使用之前, 所有的 non-terminals 的 FIRST 集合都会被提前计算出来 +> */ +> ``` + + + +# 更多资料 + +* [what-is-the-difference-between-an-abstract-syntax-tree-and-a-concrete-syntax-tree](https://stackoverflow.com/questions/1888854/what-is-the-difference-between-an-abstract-syntax-tree-and-a-concrete-syntax-tre) +* [What's the Difference Between BNF, EBNF, ABNF?](http://xahlee.info/parser/bnf_ebnf_abnf.html) +* [A Meta-Grammar for PEG Parsers](https://medium.com/@gvanrossum_83706/a-meta-grammar-for-peg-parsers-3d3d502ea332) +* [Python's compiler - from grammar to dfa](https://aoik.me/blog/posts/python-compiler-from-grammar-to-dfa) +* [the-origins-of-pgen](http://python-history.blogspot.com/2018/05/the-origins-of-pgen.html) + diff --git a/README.md b/README.md index a776061..5381d48 100644 --- a/README.md +++ b/README.md @@ -82,9 +82,10 @@ The following contents are suitable for those who have python programming experi # Grammar -I will come back to this part when I finish reading [< < Compilers > >](https://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811) and [< < SICP > >](https://www.amazon.com/Structure-Interpretation-Computer-Programs-Engineering/dp/0262510871) and have a better understanding of this kind of stuffs - -In the meantime, my routine work will have a higher priority, so you may need months to see updates in this part + - [x] [Compile Phase](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) +* [x] [Grammar/MetaGrammar to DFA](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) + * [ ] [CST to AST](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) + * [ ] [AST to python byte code](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) # Learning material @@ -98,6 +99,7 @@ I will only recommend what I've read * [YET ANOTHER PYTHON INTERNALS BLOG(blog/eng)](https://pythoninternal.wordpress.com/) * [Junnplus(blog/cn)](https://github.com/Junnplus/blog/issues) * [manjusaka(blog/cn)](https://manjusaka.itscoder.com/) +* [aoik-Python's compiler series(blog/eng)](https://aoik.me/blog/posts/python-compiler-from-grammar-to-dfa) # Contribution diff --git a/README_CN.md b/README_CN.md index f9b9ce9..1d8a592 100644 --- a/README_CN.md +++ b/README_CN.md @@ -84,7 +84,11 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 # 语法 -这一部分我计划在读完 [< < Compilers > >](https://www.amazon.com/Compilers-Principles-Techniques-Tools-2nd/dp/0321486811) 和 [< < SICP > >](https://www.amazon.com/Structure-Interpretation-Computer-Programs-Engineering/dp/0262510871) 之后对这类知识有更好的理解之后再来更新, 与此同时我还需要处理优先级更高的日常工作, 所以可能数月之后这部分才会有更新 +[编译阶段](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) + +* [x] [从语法/元语法到DFA](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile_cn.md) +* [ ] [从 CST 到 AST](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) +* [ ] [从 AST 到 python 字节码](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) # 参与贡献学习资料 @@ -98,6 +102,7 @@ git reset --hard ab54b9a130c88f708077c2ef6c4963b632c132b3 * [YET ANOTHER PYTHON INTERNALS BLOG(blog/eng)](https://pythoninternal.wordpress.com/) * [Junnplus(blog/中文)](https://github.com/Junnplus/blog/issues) * [manjusaka(blog/中文)](https://manjusaka.itscoder.com/) +* [aoik-Python's compiler series(blog/eng)](https://aoik.me/blog/posts/python-compiler-from-grammar-to-dfa) ## 参与贡献 From 60ab45fb6324d3dfd60e0020b64145dee46c82bb Mon Sep 17 00:00:00 2001 From: zpoint Date: Tue, 21 Jul 2020 01:46:38 +0800 Subject: [PATCH 21/90] readme indent fix --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5381d48..7c2ec3b 100644 --- a/README.md +++ b/README.md @@ -83,9 +83,9 @@ The following contents are suitable for those who have python programming experi # Grammar - [x] [Compile Phase](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) -* [x] [Grammar/MetaGrammar to DFA](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) - * [ ] [CST to AST](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) - * [ ] [AST to python byte code](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) + - [x] [Grammar/MetaGrammar to DFA](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) + - [ ] [CST to AST](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) + - [ ] [AST to python byte code](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md) # Learning material From 715d7e43c904d85ce866c188488daf88b838965c Mon Sep 17 00:00:00 2001 From: zpoint Date: Tue, 21 Jul 2020 09:41:36 +0800 Subject: [PATCH 22/90] Grammar/MetaGrammar hitcount --- Interpreter/compile/compile.md | 2 +- Interpreter/compile/compile_cn.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Interpreter/compile/compile.md b/Interpreter/compile/compile.md index c686074..c63b27d 100644 --- a/Interpreter/compile/compile.md +++ b/Interpreter/compile/compile.md @@ -1,4 +1,4 @@ -# compile +# compile![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/compile) # contents diff --git a/Interpreter/compile/compile_cn.md b/Interpreter/compile/compile_cn.md index b704dd7..63c35b1 100644 --- a/Interpreter/compile/compile_cn.md +++ b/Interpreter/compile/compile_cn.md @@ -1,4 +1,4 @@ -# compile +# compile![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/compile_cn) # 目录 From 8e5453961f05deb131acd8f0910bae199aed9847 Mon Sep 17 00:00:00 2001 From: zpoint Date: Wed, 22 Jul 2020 09:50:00 +0800 Subject: [PATCH 23/90] compile2 begin --- Interpreter/compile/compile_cn.md | 8 ++--- Interpreter/compile2/compile.md | 50 +++++++++++++++++++++++++++++++ Interpreter/gc/gc.md | 4 ++- Interpreter/gc/gc_cn.md | 5 +++- 4 files changed, 61 insertions(+), 6 deletions(-) create mode 100644 Interpreter/compile2/compile.md diff --git a/Interpreter/compile/compile_cn.md b/Interpreter/compile/compile_cn.md index 63c35b1..3391afd 100644 --- a/Interpreter/compile/compile_cn.md +++ b/Interpreter/compile/compile_cn.md @@ -196,12 +196,12 @@ pgen(node *n) > ```c > /* -> 输入是一个语法文件/结构, 格式是扩展的 BNF (* 表示重复, + 表示大于等于一次重复, [] 表示可选, | 表示或, () 表示分组) 输入的部分已经是一个语法树结构了 +> 输入是一个语法文件/结构, 格式是扩展的 BNF (* 表示重复, + 表示大于等于一次重复, [] 表示可选, +> | 表示或, () 表示分组) 输入的部分已经是一个语法树结构了 > > 每一个规则的右边部分都会被当成一个正则表达式, 并被转换成 NFA, 之后再转换成 DFA, -> 之后再通过优化算法减小状态机的状态数量, 可以翻阅 See [Aho&Ullman 77] chapter 3, -> 或者相关的编译技术书籍查看相关资料 (这个技术通常是在 lexical -> analyzers 上用的多) +> 之后再通过优化算法减小状态机的状态数量, 可以翻阅 [Aho&Ullman 77] chapter 3, +> 或者相关的编译技术书籍查看相关资料 (这个技术通常是在 lexical analyzers 上用的多) > > DFA 被 parser 以一种特殊的方式作为 parsing tables, 这样的处理方式可能在别的地方是看不到的 > 并且在 DFA 能使用之前, 所有的 non-terminals 的 FIRST 集合都会被提前计算出来 diff --git a/Interpreter/compile2/compile.md b/Interpreter/compile2/compile.md new file mode 100644 index 0000000..39bc2ce --- /dev/null +++ b/Interpreter/compile2/compile.md @@ -0,0 +1,50 @@ +# CST TO AST + +# contents + +* [related file](#related-file) +* [read more](#read-more) + +# related file + +* Python/ast.c + +* Python/pythonrun.c + + + +The following command will generate `Python-ast.h` and `Python-ast.c` from `Parser/Python.asdl`, which will be used to construct `AST` from the previos [parse tree](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md#parse) + +```shell +% make regen-ast +# Regenerate Include/Python-ast.h using Parser/asdl_c.py -h +./install-sh -c -d ./Include +python3 ./Parser/asdl_c.py \ + -h ./Include/Python-ast.h.new \ + ./Parser/Python.asdl +python3 ./Tools/scripts/update_file.py ./Include/Python-ast.h ./Include/Python-ast.h.new +# Regenerate Python/Python-ast.c using Parser/asdl_c.py -c +./install-sh -c -d ./Python +python3 ./Parser/asdl_c.py \ + -c ./Python/Python-ast.c.new \ + ./Parser/Python.asdl +python3 ./Tools/scripts/update_file.py ./Python/Python-ast.c ./Python/Python-ast.c.new + +``` + +> * Lowercase names are non-terminals. +> * Uppercase names are terminals. +> * Literal tokens are in double quotes. +> * `[]` means zero or one. +> * `{}` means one or more. +> * `?` means it is optional, `*` means 0 or more + + + +# read more + +* [using-asdl-to-describe-asts-in-compilers](https://eli.thegreenplace.net/2014/06/04/using-asdl-to-describe-asts-in-compilers) +* [What is Zephyr ASDL](https://www.oilshell.org/blog/2016/12/11.html) +* [Python's compiler - from CST to AST](https://aoik.me/blog/posts/python-compiler-from-cst-to-ast) +* [Design of CPython’s Compiler](https://devguide.python.org/compiler/) + diff --git a/Interpreter/gc/gc.md b/Interpreter/gc/gc.md index dd2aab3..f2b4ba6 100644 --- a/Interpreter/gc/gc.md +++ b/Interpreter/gc/gc.md @@ -529,4 +529,6 @@ while other garbage collector in other programming language such as [Java-g1](ht # read more * [Garbage collection in Python: things you need to know](https://rushter.com/blog/python-garbage-collector/) -* [the garbage collector](https://pythoninternal.wordpress.com/2014/08/04/the-garbage-collector/) \ No newline at end of file +* [the garbage collector](https://pythoninternal.wordpress.com/2014/08/04/the-garbage-collector/) +* [关于 `__del__` 和 `finalizers` 和 `unreachable`](https://github.com/zpoint/CPython-Internals/issues/28) + diff --git a/Interpreter/gc/gc_cn.md b/Interpreter/gc/gc_cn.md index 35a77e5..508531a 100644 --- a/Interpreter/gc/gc_cn.md +++ b/Interpreter/gc/gc_cn.md @@ -538,4 +538,7 @@ CPython 中一共有 3 代, 对应了 3 个 **threshold**, 每一代对应一个 # 更多资料 * [Garbage collection in Python: things you need to know](https://rushter.com/blog/python-garbage-collector/) -* [the garbage collector](https://pythoninternal.wordpress.com/2014/08/04/the-garbage-collector/) \ No newline at end of file +* [the garbage collector](https://pythoninternal.wordpress.com/2014/08/04/the-garbage-collector/) + +* [关于 `__del__` 和 `finalizers` 和 `unreachable`](https://github.com/zpoint/CPython-Internals/issues/28) + From 6cb5d721b7027397db20d85daa2857bc5d9cfb48 Mon Sep 17 00:00:00 2001 From: zpoint Date: Wed, 22 Jul 2020 23:59:40 +0800 Subject: [PATCH 24/90] compile2 done --- Interpreter/compile2/ast.png | Bin 0 -> 11720 bytes Interpreter/compile2/compile.md | 193 ++++++++++++++++++++++- Interpreter/compile2/compile_cn.md | 239 +++++++++++++++++++++++++++++ Interpreter/compile2/cst.png | Bin 0 -> 52167 bytes Interpreter/compile2/inspect_ast.c | 30 ++++ Interpreter/compile2/pythonrun.png | Bin 0 -> 63445 bytes README.md | 2 +- README_CN.md | 2 +- 8 files changed, 462 insertions(+), 4 deletions(-) create mode 100644 Interpreter/compile2/ast.png create mode 100644 Interpreter/compile2/compile_cn.md create mode 100644 Interpreter/compile2/cst.png create mode 100644 Interpreter/compile2/inspect_ast.c create mode 100644 Interpreter/compile2/pythonrun.png diff --git a/Interpreter/compile2/ast.png b/Interpreter/compile2/ast.png new file mode 100644 index 0000000000000000000000000000000000000000..58669ccddd91b36dbf547134e8c34d281eb30443 GIT binary patch literal 11720 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 literal 0 HcmV?d00001 diff --git a/Interpreter/compile2/compile.md b/Interpreter/compile2/compile.md index 39bc2ce..56f1fa4 100644 --- a/Interpreter/compile2/compile.md +++ b/Interpreter/compile2/compile.md @@ -1,8 +1,10 @@ -# CST TO AST +# CST TO AST![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/compile2) # contents * [related file](#related-file) +* [pythonrun](#pythonrun) +* [CST TO AST](#CST-TO-AST) * [read more](#read-more) # related file @@ -11,9 +13,17 @@ * Python/pythonrun.c +* Include/Python-ast.h + +* Python/Python-ast.c + +* Python/asdl.c + +* Include/asdl.h + -The following command will generate `Python-ast.h` and `Python-ast.c` from `Parser/Python.asdl`, which will be used to construct `AST` from the previos [parse tree](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md#parse) +The following command will generate `Include/Python-ast.h` and `Python/Python-ast.c` from `Parser/Python.asdl`, which will be used to construct `AST` from the previos [parse tree](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile.md#parse) ```shell % make regen-ast @@ -39,7 +49,186 @@ python3 ./Tools/scripts/update_file.py ./Python/Python-ast.c ./Python/Python-ast > * `{}` means one or more. > * `?` means it is optional, `*` means 0 or more +# pythonrun + +We take the interactive loop as example, the call stack of `pythonrun` + +![pythonrun](./pythonrun.png) + +# CST TO AST + +Let's focus on `PyAST_FromNodeObject` + +If we execute + +```python3 +a = 2 +``` + +This is the CST of above expression + +```shell +n_type: 256, n_type_str: single_input, n_str: (null), n_children: 1 + n_type: 270, n_type_str: simple_stmt, n_str: (null), n_children: 2 + n_type: 271, n_type_str: small_stmt, n_str: (null), n_children: 1 + n_type: 272, n_type_str: expr_stmt, n_str: (null), n_children: 3 + n_type: 274, n_type_str: testlist_star_expr, n_str: (null), n_children: 1 + n_type: 305, n_type_str: test, n_str: (null), n_children: 1 + n_type: 309, n_type_str: or_test, n_str: (null), n_children: 1 + n_type: 310, n_type_str: and_test, n_str: (null), n_children: 1 + n_type: 311, n_type_str: not_test, n_str: (null), n_children: 1 + n_type: 312, n_type_str: comparison, n_str: (null), n_children: 1 + n_type: 315, n_type_str: expr, n_str: (null), n_children: 1 + n_type: 316, n_type_str: xor_expr, n_str: (null), n_children: 1 + n_type: 317, n_type_str: and_expr, n_str: (null), n_children: 1 + n_type: 318, n_type_str: shift_expr, n_str: (null), n_children: 1 + n_type: 319, n_type_str: arith_expr, n_str: (null), n_children: 1 + n_type: 320, n_type_str: term, n_str: (null), n_children: 1 + n_type: 321, n_type_str: factor, n_str: (null), n_children: 1 + n_type: 322, n_type_str: power, n_str: (null), n_children: 1 + n_type: 323, n_type_str: atom_expr, n_str: (null), n_children: 1 + n_type: 324, n_type_str: atom, n_str: (null), n_children: 1 + n_type: 1, n_type_str: NAME, n_str: a, n_children: 0 + n_type: 22, n_type_str: EQUAL, n_str: =, n_children: 0 + n_type: 274, n_type_str: testlist_star_expr, n_str: (null), n_children: 1 + n_type: 305, n_type_str: test, n_str: (null), n_children: 1 + n_type: 309, n_type_str: or_test, n_str: (null), n_children: 1 + n_type: 310, n_type_str: and_test, n_str: (null), n_children: 1 + n_type: 311, n_type_str: not_test, n_str: (null), n_children: 1 + n_type: 312, n_type_str: comparison, n_str: (null), n_children: 1 + n_type: 315, n_type_str: expr, n_str: (null), n_children: 1 + n_type: 316, n_type_str: xor_expr, n_str: (null), n_children: 1 + n_type: 317, n_type_str: and_expr, n_str: (null), n_children: 1 + n_type: 318, n_type_str: shift_expr, n_str: (null), n_children: 1 + n_type: 319, n_type_str: arith_expr, n_str: (null), n_children: 1 + n_type: 320, n_type_str: term, n_str: (null), n_children: 1 + n_type: 321, n_type_str: factor, n_str: (null), n_children: 1 + n_type: 322, n_type_str: power, n_str: (null), n_children: 1 + n_type: 323, n_type_str: atom_expr, n_str: (null), n_children: 1 + n_type: 324, n_type_str: atom, n_str: (null), n_children: 1 + n_type: 2, n_type_str: NUMBER, n_str: 2, n_children: 0 + n_type: 4, n_type_str: NEWLINE, n_str: , n_children: 0 +``` + +In diagram representation, you can check the `Grammar/Grammar` file + +![cst](./cst.png) + +The CST to AST part is written in `Python/ast.c`, The function inside the file is a hand writting parsing according to gramma file, while the return type `expr_ty` is the above auto generated c structure + +```c +// in Python/ast.c +static expr_ty +ast_for_atom(struct compiling *c, const node *n) +{ + /* atom: '(' [yield_expr|testlist_comp] ')' | '[' [testlist_comp] ']' + | '{' [dictmaker|testlist_comp] '}' | NAME | NUMBER | STRING+ + | '...' | 'None' | 'True' | 'False' + */ + node *ch = CHILD(n, 0); + + switch (TYPE(ch)) { + case NAME: { + PyObject *name; + const char *s = STR(ch); + size_t len = strlen(s); + if (len >= 4 && len <= 5) { + if (!strcmp(s, "None")) + return Constant(Py_None, LINENO(n), n->n_col_offset, c->c_arena); + if (!strcmp(s, "True")) + return Constant(Py_True, LINENO(n), n->n_col_offset, c->c_arena); + if (!strcmp(s, "False")) + return Constant(Py_False, LINENO(n), n->n_col_offset, c->c_arena); + } + name = new_identifier(s, c); + if (!name) + return NULL; + /* All names start in Load context, but may later be changed. */ + return Name(name, Load, LINENO(n), n->n_col_offset, c->c_arena); + } + // ... + case NUMBER: { + PyObject *pynum = parsenumber(c, STR(ch)); + if (!pynum) + return NULL; + + if (PyArena_AddPyObject(c->c_arena, pynum) < 0) { + Py_DECREF(pynum); + return NULL; + } + return Constant(pynum, LINENO(n), n->n_col_offset, c->c_arena); + } + // ... + default: + PyErr_Format(PyExc_SystemError, "unhandled atom %d", TYPE(ch)); + return NULL; + } +} +``` + +`Name` and `Load` are defined in `Python/Python-ast.c` + +```c +// Python/Python-ast.c +expr_ty +Name(identifier id, expr_context_ty ctx, int lineno, int col_offset, PyArena + *arena) +{ + expr_ty p; + /* ... */ + p->kind = Name_kind; + p->v.Name.id = id; + p->v.Name.ctx = ctx; + p->lineno = lineno; + p->col_offset = col_offset; + return p; +} + +// Include/Python-ast.h +typedef enum _expr_context { Load=1, Store=2, Del=3, AugLoad=4, AugStore=5, + Param=6 } expr_context_ty; +// ... +typedef struct _expr *expr_ty; +``` + +`_Py_asdl_seq_new` is defined in `Python/asdl.c` and `asdl_seq_SET` is defined in `Include/asdl.h` + +```c +// Python/ast.c +ast_for_global_stmt(struct compiling *c, const node *n) +{ + /* global_stmt: 'global' NAME (',' NAME)* */ + identifier name; + asdl_seq *s; + int i; + + REQ(n, global_stmt); + s = _Py_asdl_seq_new(NCH(n) / 2, c->c_arena); + if (!s) + return NULL; + for (i = 1; i < NCH(n); i += 2) { + name = NEW_IDENTIFIER(CHILD(n, i)); + if (!name) + return NULL; + asdl_seq_SET(s, i / 2, name); + } + return Global(s, LINENO(n), n->n_col_offset, c->c_arena); +} + +// Include/asdl.h +typedef struct { + Py_ssize_t size; + void *elements[1]; +} asdl_seq; +// ... +#define asdl_seq_SET(S, I, V) (S)->elements[I] = (V) +``` + +This is the AST after conversion + +![ast](./ast.png) +The following [function](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile2/inspect_ast.c) can be used to inspect the above AST sctucture # read more diff --git a/Interpreter/compile2/compile_cn.md b/Interpreter/compile2/compile_cn.md new file mode 100644 index 0000000..6e54f38 --- /dev/null +++ b/Interpreter/compile2/compile_cn.md @@ -0,0 +1,239 @@ +# CST TO AST![image title](http://www.zpoint.xyz:8080/count/tag.svg?url=github%2FCPython-Internals/compile2_cn) + +# 目录 + +* [相关位置文件](#相关位置文件) +* [pythonrun](#pythonrun) +* [CST 到 AST](#CST-到-AST) +* [更多资料](#更多资料) + +# 相关位置文件 + +* Python/ast.c + +* Python/pythonrun.c + +* Include/Python-ast.h + +* Python/Python-ast.c + +* Python/asdl.c + +* Include/asdl.h + + + +下面的命令会从 `Parser/Python.asdl` 中生成 `Include/Python-ast.h` 和 `Python/Python-ast.c`, 这两个自动生成的文件的结构体会被用来从之前的 [语法树](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile/compile_cn.md#parse) 中生成 `AST` + +```shell +% make regen-ast +# Regenerate Include/Python-ast.h using Parser/asdl_c.py -h +./install-sh -c -d ./Include +python3 ./Parser/asdl_c.py \ + -h ./Include/Python-ast.h.new \ + ./Parser/Python.asdl +python3 ./Tools/scripts/update_file.py ./Include/Python-ast.h ./Include/Python-ast.h.new +# Regenerate Python/Python-ast.c using Parser/asdl_c.py -c +./install-sh -c -d ./Python +python3 ./Parser/asdl_c.py \ + -c ./Python/Python-ast.c.new \ + ./Parser/Python.asdl +python3 ./Tools/scripts/update_file.py ./Python/Python-ast.c ./Python/Python-ast.c.new + +``` + +> * 小写名称是 non-terminals. +> * 大写名称是 terminals +> * 文本 tokens 用双引号引起来 +> * `[]` 表示 >= 0 个 +> * `{}` 表示 >= 1 个 +> * `?` 表示可能有可能没有, `*` 表示 >= 0 个 + +# pythonrun + +我们以交互式循环为例, 展开 `pythonrun` 的调用栈看看 + +![pythonrun](./pythonrun.png) + +# CST 到 AST + +我们把关注点放到 `PyAST_FromNodeObject` 上 + +如果我们执行 + +```python3 +a = 2 +``` + +这是上述语句生成的 CST 结构 + +```shell +n_type: 256, n_type_str: single_input, n_str: (null), n_children: 1 + n_type: 270, n_type_str: simple_stmt, n_str: (null), n_children: 2 + n_type: 271, n_type_str: small_stmt, n_str: (null), n_children: 1 + n_type: 272, n_type_str: expr_stmt, n_str: (null), n_children: 3 + n_type: 274, n_type_str: testlist_star_expr, n_str: (null), n_children: 1 + n_type: 305, n_type_str: test, n_str: (null), n_children: 1 + n_type: 309, n_type_str: or_test, n_str: (null), n_children: 1 + n_type: 310, n_type_str: and_test, n_str: (null), n_children: 1 + n_type: 311, n_type_str: not_test, n_str: (null), n_children: 1 + n_type: 312, n_type_str: comparison, n_str: (null), n_children: 1 + n_type: 315, n_type_str: expr, n_str: (null), n_children: 1 + n_type: 316, n_type_str: xor_expr, n_str: (null), n_children: 1 + n_type: 317, n_type_str: and_expr, n_str: (null), n_children: 1 + n_type: 318, n_type_str: shift_expr, n_str: (null), n_children: 1 + n_type: 319, n_type_str: arith_expr, n_str: (null), n_children: 1 + n_type: 320, n_type_str: term, n_str: (null), n_children: 1 + n_type: 321, n_type_str: factor, n_str: (null), n_children: 1 + n_type: 322, n_type_str: power, n_str: (null), n_children: 1 + n_type: 323, n_type_str: atom_expr, n_str: (null), n_children: 1 + n_type: 324, n_type_str: atom, n_str: (null), n_children: 1 + n_type: 1, n_type_str: NAME, n_str: a, n_children: 0 + n_type: 22, n_type_str: EQUAL, n_str: =, n_children: 0 + n_type: 274, n_type_str: testlist_star_expr, n_str: (null), n_children: 1 + n_type: 305, n_type_str: test, n_str: (null), n_children: 1 + n_type: 309, n_type_str: or_test, n_str: (null), n_children: 1 + n_type: 310, n_type_str: and_test, n_str: (null), n_children: 1 + n_type: 311, n_type_str: not_test, n_str: (null), n_children: 1 + n_type: 312, n_type_str: comparison, n_str: (null), n_children: 1 + n_type: 315, n_type_str: expr, n_str: (null), n_children: 1 + n_type: 316, n_type_str: xor_expr, n_str: (null), n_children: 1 + n_type: 317, n_type_str: and_expr, n_str: (null), n_children: 1 + n_type: 318, n_type_str: shift_expr, n_str: (null), n_children: 1 + n_type: 319, n_type_str: arith_expr, n_str: (null), n_children: 1 + n_type: 320, n_type_str: term, n_str: (null), n_children: 1 + n_type: 321, n_type_str: factor, n_str: (null), n_children: 1 + n_type: 322, n_type_str: power, n_str: (null), n_children: 1 + n_type: 323, n_type_str: atom_expr, n_str: (null), n_children: 1 + n_type: 324, n_type_str: atom, n_str: (null), n_children: 1 + n_type: 2, n_type_str: NUMBER, n_str: 2, n_children: 0 + n_type: 4, n_type_str: NEWLINE, n_str: , n_children: 0 +``` + +图像表示的话如下, 你可以参数 `Grammar/Grammar` 语法文件 + +![cst](./cst.png) + +CST 到 AST 的转换部分是在 `Python/ast.c` 中写好的, 这个文件中对应的转换函数都是根据语法规则去进行对应的处理, 返回结构比如 `expr_ty` 则是上述自动生成的 C 文件生成的 + +```c +// in Python/ast.c +static expr_ty +ast_for_atom(struct compiling *c, const node *n) +{ + /* atom: '(' [yield_expr|testlist_comp] ')' | '[' [testlist_comp] ']' + | '{' [dictmaker|testlist_comp] '}' | NAME | NUMBER | STRING+ + | '...' | 'None' | 'True' | 'False' + */ + node *ch = CHILD(n, 0); + + switch (TYPE(ch)) { + case NAME: { + PyObject *name; + const char *s = STR(ch); + size_t len = strlen(s); + if (len >= 4 && len <= 5) { + if (!strcmp(s, "None")) + return Constant(Py_None, LINENO(n), n->n_col_offset, c->c_arena); + if (!strcmp(s, "True")) + return Constant(Py_True, LINENO(n), n->n_col_offset, c->c_arena); + if (!strcmp(s, "False")) + return Constant(Py_False, LINENO(n), n->n_col_offset, c->c_arena); + } + name = new_identifier(s, c); + if (!name) + return NULL; + /* All names start in Load context, but may later be changed. */ + return Name(name, Load, LINENO(n), n->n_col_offset, c->c_arena); + } + // ... + case NUMBER: { + PyObject *pynum = parsenumber(c, STR(ch)); + if (!pynum) + return NULL; + + if (PyArena_AddPyObject(c->c_arena, pynum) < 0) { + Py_DECREF(pynum); + return NULL; + } + return Constant(pynum, LINENO(n), n->n_col_offset, c->c_arena); + } + // ... + default: + PyErr_Format(PyExc_SystemError, "unhandled atom %d", TYPE(ch)); + return NULL; + } +} +``` + +`Name` 和 `Load` 在 `Python/Python-ast.c` 中定义好了 + +```c +// Python/Python-ast.c +expr_ty +Name(identifier id, expr_context_ty ctx, int lineno, int col_offset, PyArena + *arena) +{ + expr_ty p; + /* ... */ + p->kind = Name_kind; + p->v.Name.id = id; + p->v.Name.ctx = ctx; + p->lineno = lineno; + p->col_offset = col_offset; + return p; +} + +// Include/Python-ast.h +typedef enum _expr_context { Load=1, Store=2, Del=3, AugLoad=4, AugStore=5, + Param=6 } expr_context_ty; +// ... +typedef struct _expr *expr_ty; +``` + +`_Py_asdl_seq_new` 在 `Python/asdl.c` 中定义好了, 而 `asdl_seq_SET` 在 `Include/asdl.h` 中定义好了 + +```c +// Python/ast.c +ast_for_global_stmt(struct compiling *c, const node *n) +{ + /* global_stmt: 'global' NAME (',' NAME)* */ + identifier name; + asdl_seq *s; + int i; + + REQ(n, global_stmt); + s = _Py_asdl_seq_new(NCH(n) / 2, c->c_arena); + if (!s) + return NULL; + for (i = 1; i < NCH(n); i += 2) { + name = NEW_IDENTIFIER(CHILD(n, i)); + if (!name) + return NULL; + asdl_seq_SET(s, i / 2, name); + } + return Global(s, LINENO(n), n->n_col_offset, c->c_arena); +} + +// Include/asdl.h +typedef struct { + Py_ssize_t size; + void *elements[1]; +} asdl_seq; +// ... +#define asdl_seq_SET(S, I, V) (S)->elements[I] = (V) +``` + +这是转换后的 AST 结构 + +![ast](./ast.png) + +这里的 [函数](https://github.com/zpoint/CPython-Internals/blob/master/Interpreter/compile2/inspect_ast.c) 可以用来打印上述 AST 的结构内容 + +# 更多资料 + +* [using-asdl-to-describe-asts-in-compilers](https://eli.thegreenplace.net/2014/06/04/using-asdl-to-describe-asts-in-compilers) +* [What is Zephyr ASDL](https://www.oilshell.org/blog/2016/12/11.html) +* [Python's compiler - from CST to AST](https://aoik.me/blog/posts/python-compiler-from-cst-to-ast) +* [Design of CPython’s Compiler](https://devguide.python.org/compiler/) + diff --git a/Interpreter/compile2/cst.png b/Interpreter/compile2/cst.png new file mode 100644 index 0000000000000000000000000000000000000000..b3a89445be2b7d896c76b445bb08c4925532eee6 GIT binary patch literal 52167 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μ&rbfT5Y*yrENu?hfd-pr)thYhAH z;qz%tUQac+D+yh=AUQP@5^1&WeL)KmN4+dPP~#{AY&3s0EvO`N`XW)t&0aNU7s5^E zG3)&s94U42-kv;HPrm6^j`K5;ilfsT%p+u*w%bw5box_uFSl3i$FbQYuy&#N)SHbGy?K2=YsEm!kZgn@bJ z+PE0Jm`8;FPP{wy~PeFewX&3^8@@mq7Daofl^0l}bWiW9F-`pcVp6fFn zA!U+(3-E5O(ut`gvJu%Ev3*QK#}t63J>K>4%>%JUEJ(G>PU;ZIF@-LaePHux5!5kCR2$Cp(9}}8QtRml=0G8WX)ha^0(;>8Bo30H`WR3!G@=Y9_ z59d8uG3Bu5c*F&a^r?$=>at%%!1$KH`0m_;&pU!r>+@sik)K#F>0gz9tcIFe^y;4L zejseU#7aC1 z$>aFRqwq?dBr>%~3~p)3ki{}C@v@#LY10xGT4o-lKQegx|#2|{Kv68@P z$pEN15`&5kyeM02bZ9yEA{yI!2|xnS^s!(821go0B+ceSw%JfiS9|$ZeVmCGNnahv zv4cV20ebXUf{)-WxF??V0Z4_Z0SfHdgTUh#U#-q%dP;a+@I9#9c>tywk9Bj~*Eb1O zw&_3z*6tgscK6E<{jN&D^z4xb6Zrl{uol~|lmUbrZ1cn;#T>>NU(#q$U~-uKg1^D` zlSYkN7&YqGzD5+axUw77(qrp{9VbrOQa9U!<Rp5qv)^RC?sjxMp9F z`I0u6>sT;Zq@S+`cqJlf*=8?OtnJuW?QJ?2D2X2xs}P{(@E+uuI9Pg4+$&>#4Q*)> z>5#uofCW{gYHx%gGKy)xWHe(Mlb|R`w46>7uoip&tgm;tzTAaDkxHIlSkNJ=kHJp} z9I;UTS*_~AB64v@#`I@?V)Nq^-&&U7^RK|L9*5wx1IiUC-FWYfOK9krUOyoOgWR7C zTA2X0M(;q74g78Jf29wDt~df;J(ir1ELD;{6()|wLv&}wEPqNnjSh7lFRyzSTEFiq zWN>?Z?N=`n35#eV&!Fe@~dx}|4tuL zQIRS+o_5}b(1U#&NkK^mP)TSoNR)PXQ|0HxDx!$iDoMwuUZ*ciP1RQWQoev{Vja}I z8Pn6c<`X4Z)hDZy*MuA!xj8xT`nzmwBhSv~mY0`H?UtmS0Qw38wTey=o~kU_?r{+8 zHZFqfGyMO(sYVSMZRLt)!>ZuTPfck*s7y z3cMC@T9>31aFpSzE6}O9yKr^3Q4||mWYCa$;qBwKyq~&!0D|oWfG%Rq1QO`*A5f5+ za#8%1F0SLwtS~bdm(7P5d!&m~$b;1Yf&GJnFD^T?j*DT;@B3Hp6pc}jl^A!u(V2-e z85qoxGn*(eDFt}FdZM7*>U<9b+WM#J>gqnE!ep4c>`>$*K=<9n0CXQY1{M~U72p=H zWF&cU5roU~Qx!HvtqD@qN@*g)Ae~mm#J-Vt-kQt`^yqrexb6V*NUkR9G7q9vO+557 zNJ51##{D0N`2wh+LIif{bNY`P?&OG83PkHeRoOB(-0*{9qn5QmQpHeK8)o5J&r|zE z5ifzg)vHn+S^kL7)O!lirXTP4iHUljscq(X-G<=MdQ zLd%G2sm@U1LyK1c6PFq``TyXb{{I_&80mr~m8)O~aHZq%jLXpLTWrHcSusoULlRL?r*phtPvY%xlKoHgbdA_q5GD^CMgU?3 za(EXXTKU1Ze|00*Y?6w;+x_Re$7|oYPp1hpHKE_rMAOyhCQ(v&;~hFe`Eh zF{iIsEr|3@A)1c$$Fm+I&KWX$jJu$k9tt25=`7eRk{@bq^*vd1^0Ef;KZJtNU(6K( zO5!tjq0}gF4!OXi*-kFZGfzm~sty8jgQLP`j?;2VWTGU$ZI1)Jswx5P>TxxH^)3N~ z9uCGQk7zZy^EmP;vo(S-xG{!RZP?5}wL4y6sP@7AEVu?QfFL#Zb9Zqe^vrPlmT?8i zUf1|S>zQh)RLoRpI9gF}{l$LI>FmB3{D(k(h%G5}x9P#hKN?qcAvrE0A7H4#bg6JO zh9=0_(Uu$tlGEKHeaPMt2zkh+9#A~C-h=1`3k?F9>P`?$?d*6*2~~x&YYl+E#Cnr> znaQqQne=<6znLltEQa1$Ot6yOUySY}1Z}0eA3p%Y2hk0M0&kX_UK@mXNOt*uTfzbk;UoH*jw03M)sUF*(it5i~ zW1W^Fcu8!2G#{UNiY%6OqW~?(jNo=(-j~ppN-Yc?R*9pTVSX5VEFq{ zc3e7&$LuEauK$a|oGiCW>b3y1@o<(Lxxm%Q(umufhJn{Z8%J^Om)}2vgh6slQ_SJH z6Gr+xQ_TLiv-hz1Nk*kz?!1c ztvg6(Ia1+dvdPDr6B3~2Qx@+_3f-;z9jl@LW!q%HbN$Qb7~4Y4ui{Sk8?LX;GtDNs zAV~)c*2lzmq?M(lg1T2*NtH6$3MQ zfBL)w6gODOIz!1k=R!{w z0W60*7~s>5+E2g1x&K0rO{Pw^l%LOjSTXAl0swkea|AR{0`P7N%FV*?d3yj8g_I=kXtHzFpDZ%fEpwXC z6%mwq_lsV8ju33_xq35>v)h}d9L`BIgmb$@IB4)P_mm84a=Ng6Gdu<|-pP-5%8PNX zfc#tECdB30A$y%>K>klJKzqMKg$K*tPG#05pnkuMx=MuA{Ftz|t~>rU6cS8GEBpAi zmt%l`FBjU@WSN@JDml)!J5h?hx~gir{!{C^!_iQzfAW}?e>mR1_?r(PoR(9IzI~T_16z56wrj`2+ z)+64(2Oj6fe*aQkebz`}FHwFCxbpQN|BfCv`9!H`Q*#H4_>QIx3nOOP;!~-gfX`gk zS|rkrbK?ES+vC`@Wm%wu+46%!U363YJ79>?$@O2kYwbQ9)6J-kSK?cMNUhYLZ>wSS z84rAg^0>r{o^O83O*-r0YRDA5+KbA))jzZIiHs-e*}*t}gKi*G^;b0ec%cS9WDE$Z z+10aJnf!KgXUzIT9l5=ORe1loQeg6R>{S++i9VebTma&@XD*L}#uwnztYn z-~kZ+AL68uJAD3uM|w`$iN|>%G_Vw zJ{vReN$KNXrFn>8Cuv$)olvJ^Hm#vbGBZ$9Yau;)agXArYPW>K&;|N47^E36L4+YB z+vtD^0`Z#)A?ZRktER}$$R6d^0!uv^8O~p`ePG-~;FRVAK#ch&-|+IxkAqr<@OYmf z{d=xQJT5L{@vh=D%w+QANu~jx>GudtYlkR_3vNI#uJyhJLokehaUujAx58J933d;E z=@ET(v>9$;*kZyWzYV{2+`n5Mu$} zMj$RO&O0r?L`Cro)P|pZ@E6dbtr1{*+TbEM7wwGoi{9Kc!1xql7z*7eS_ zD*0i70UG%DV@}Q*UsQ)Nu?kr~*{ar(%pRgKsYci5@-SJ8fS49=tE27Ara#}af}$dU z#OwqYaFIYzMIc%=^|jk9f&e8%yAoYlfWW9d=IfVP4N%F9A^MQ*M)b;0EED|BJCc@5 z_`ElUR4~ z2r&pqSvWaGrpvA5fQeuS>3qJ$SHeGe*6fko02D6vQPEe4qeH;z5yitL6hDC)Agzxp z5e5MX3p@K}3h*D?rr+O>G^~y1Q9XgU;%SJ$14C|wzDl#2YA9p3kUHU?SA?A~qUbgV zC}{#fJvs-3&f`EBzvn%ioty1~;fRNdzPvUIDg9&|+O53XU#&cRO|)+NQ$t$;uAs#e z7Q(}z6hpC*Am|Ixo3}CR2p^3bH}J8tVZtPTE@mqvy#nG_sq>chHufBA)@D?klO)v6 z0TYZhhYI*+6i9%RWDD1oi(S7{U<9M6DK)WoFJy1D3jG#ric_!mA(by@~7m4Y_l`a#{6C7sN z<(mpa(x8;}dbbjE{^%nDV8CGlQ0#{S2x!MjtZ*ki?gGB^x}DkV54Gqi)1{^)EOoH5 z7mB|3%Scp?wFvC)oflMiCrK#%rj=V77d|h5aUSm#F@&_LjCmk8gj}Dh;3A-W5a_y9 zJ{1j8d;+&=?h})8t8dC4W6Y~-wsw0LxBgV&F90K~FJek1*TyA{ zDIfg&3Vb~S`^!Bjtdu+D;iJuzm28=~k~FSAJn(EFw*67D9;G@T7RDEV58ZE*S<_d4 zP`bXM6%!quAz1_JV%f%ngM-+d&v(C4d}H~>cVMDL_Vv}6?0IGkFoF1dJBgBkzoiE+ z`KI6Fukg35kk{eiIyeDMLk|@;Fv@kKQH`l57#6gtE> z4hE&-NAO1hPzCxxNJ;Hj>LL}-=_%h5QW!d!Rw6rgDz_4)&tgAz6AFMZca=02RXaNwXl#_90*l z^IGs$*FhZ5kOg=#lLORqlfi_+j{!G9i-i;d?8H1iI76nb=;{n1fM4TJR=ELU2L>o{ zNzra;2>>E;>gy*zBh=Xjq%E%$)W?MsJT@sE*FX&30)C8}eV%fg^PeUYN5Bp#uC6s5 z$$&xLVGKS8qzw%?E_u(r4us)6VRa#X7mI#%mpm(mOFQoHdG-mO=r!09 z5s7FRoD6{1b)~N!3o2~Nx+baQfrR8V`0Aur*;O!nROMa8MHSwwy3}>%+tQw(qfEmdsL^<-TGusPrPHFf@x>mPy_D z(jE@0WbCHj)w}_P7qa?p&(kBu2?+`1G5usfX#N@x}~Unc4#j>`N9)6_LJM?c^H_3G!~B^ zm;-*x2T93{bz)2Q)z|O8kkU!$roe)Rr~YY<1E`~a^}sCg<>)W64*SANVnqe%Pz&=) z!GfpI@*#Q*4-^GoT?mB2bnWzrW!?J^oSK(H^GMU*YE#3#QVB|9 z!NJNqicf+=Eo6%YbCsdx8O`X%VsK|b;uqy*n{DtjvznBdCH6k=zr~-K2v%hsnpy7& zbzV0{!xIC~G4H*rPYZ?YFX^K_kjDiJ!Z=Q=#sZnT|H&5thlyf*63+R0CEzWe@|JXQ zJ&+}{4;%dMc*YB$ZGsgIkzw@!03#q&K#q0l24X)m#!WJ_Q2W}NIj}QMb^A{GPFRjE zRE0B(o#^s=+P~XRqdHlpX}G~>z6_*{Mu!L*ixWH^3KDzts7Xb?=$MziPdt=PwcA=e zbm=JEK7Gbe<@$Z-Xi4Z)`DJX3y_A{R7b?=nuT#+$se}cEP7P3L8v>KL4-(ZPS-I8m zopf*UP=~O!oHKcpOx~9ws20zuHyj%u{}@m~!zCtiPJ8`j*R{n^$zSnIhVok9-ol_B|P@@#NxVlvMl@Bi}{GCdEO}UEd<6)lJz&o1Kn}xvl8>wbegjq>u2HtQeZp7chq2P z9Z9iM2$8+fq!_}|)Lu%DQVl1|w{VaOH7c^d29OcJxBIvygh*p)z*@m#H2;&?Q1$@u zV^x+Zh=+cR+5gqu-EEhrQFO&Wb1AJmLpkP{8xPxbd`)KQB=mPn>iFL*sToUFQSp9% zx1_56k0sSL_T8o@OoN`c{o%wR%jiCQ{3}W80bEQnC@AQ$Yu&7tYWFODW^wV`_6X|L zbuuS4zt#V0P2GrTxKr2=8A!dj9&>i<3+-Qyf*c8;(1eGsVbPoST4dPNZ1D&j>*^~; zv_f9?rz(&#D?Z(5$chmRglPbM>o{2v$IePf{1=tR=dqgh%>cvC4!;dOx`EQ>-2i(| zL)}c;T`4sI%ziOb%Sg;}n>j_7IWOJrYY7Q!~1+;JG zNxqfR#BY(I7B}_zcZi|o2hTCWX%zpPgLOe&utVrS9jwfjmHw6O>W`DD#>Q*yM~47v zXu})@W`4b~ITCT*nD}^R;DHTHiZ^GxO9R$58_-3auV3FlWF?y)eD%gKIS_d1=O%qT4#!1svqd4j4yK=;1C+}QTb(dCSx$XT8 z1@90R(-S~}#95e_U4Tf>2ZTjnpHOuFme}i{#*5Pfv(53Z$x==V3cX*y@U@fLMKJmw zif#l}w$J4auR{NLpdTfI0eF3aEjsF#I9*>Je-0bz<2~pT+{q*oIq@}( zxGrgc;E0{V8;vi$xBOGIuULc?fGOzT&8~y3_Nz(2kgABX6}%GiC^k#{_TJ>-Vj|z* zmp2xRwX#-yu+8E9$G^KQ%k+(@~fEhPNMVNePnIoW0LrCkO>=J zxEEnOGp%}StkpfXdKxkQ#W?EyP@tHKii$y0$AKM?D3+(I9I(<1B0x#(soD7-1opyM z6{0YVDW9kFiMuZ8&a-vdMqVY56@DTSAVvN^lGztr8m$ip0)g+pWGRuRNL3Ah5g@>t zpTS_kMw?9OFKd(3Dy(M)JNA*^V#ap$0S{>DxF*sQRTUluO`8~CNRHd$u^*t50bSd?I6lJ5#c=U%iutkP#}Kti4O6Ea$n zsC+JiXpOnLJRfQy65W*Pk&}}%+nKF%Y{q3)-b$l2vm}+?dt!=5&iSILeiW%7g3f_p zO|`rH^*QYosKSFrtSvTVc8gR0x* z*I<_8v|Yy^pQ)CXR%`!Qd>p%0y5*vW$oVF>z-Dm^%9`6yc?cYvYFskH?!P}0Q1ko% zH1bAoI8k|+$+mRKV&dEG#gFm;0o}lsx1$3mgc*vEp0jNssAY>kz-Lfhst0a-r1@}; z!39mhSK#|h2XjjHKA)PCPR0uV&fPDR(T5SmBz!#WfOJ}aT4Hr>6K66*r$DzLMA~1u zkB5y%(r=GqzkF1L8rFobFAmlr6+=p*DE27XAfcn-dL_vw<|8n24dGn%(R{!uQXxt~ z>+lz_ofp$CHuUSR03H{DzC6RPE9WPjV<=Oo0-6V)aajcg&&4Qh>JH-s9!2nCxL@pb z`~uI-Iy-7>*r`7U2-5b)sE1O?B2}56**+X1sDOdRttJ7SU*xA3FGZ;KoAJ2hBZw7Z zsBD^E?)@4onk#B$rdb^W{Rlp%JqByQhK##`{kMpgHJTAv=|A^9{UM`|qA6}QJ zl9PttgL0*A2QL>Dj859-ffl2}#cYY^@_E01Q_#i1VQdR9#s!i=Qh_?L>=1UOr#aZEuO_zF+j5=b`5GKY6sDbe z#k=sUz{{ze9=sZBxXM~|{FN1-8_%{qxN>oV_154wy_Jze-Qu?GHpe14zBg+g+c*#k zHB5#TFX%O%KD~)MYcP|PU)lcR1(gu~pSH8sVPZg#63|o8Y#H62wl^7A>M zzB_(F)4)<(Ttabxhu$C`$iy(RMY8JQs+*{@m|VHs&viqHvm0gQS8ncKy7-DxB9MzH zCBiJ7{B%tWOu&UPWGgeU72c;zz$TLT(=T`5 z3G52j)KF<#-bIk5X}%(+m%kURf({V_g-L!8kDl?~$D>~DnpybN8eI###(C8p{D6($ zc+JeH6(=P``KD&@6w46ET(X8~K)DOWN;+8i`m{WpnPv~)(3>Bsz>}*~Jkj@~l{t0V zdDd-}mapJVhZ@igMs;i=w2CbvoD}aX9JGh}g`A4z+gZsJpB}R-0=Xrf#9(`+aHiS% z6@F6M6j0Egqs;TUWCF*Pwr{iyfvb6gXpEX{M-!6dAyrtrFFP{Ta+q_J`AyO(jG3*_ zC|K0W1^_jyHAB}2Ah}7V-v?|0rA*#Zbug~Q6)#IC{&oU~*6 zV`N2k)vdm;j*syiI%Khi2ljC5F9+yMLQK5|+0!XK;?aOKtNv-BB(Oy0Tmta`4FI_{ zqW~;(^i&Jd^bJgt%IR*zkyEw24F1&mby=NT35KUpe5y68u!GVj>p+7Aj{b`43Qq%? ztrE0>#m@3M@O{SxrRi)4|gedbwt+yTPS@-Xwb z5V>y%{>gG^8*gcT-d8f7)h^@f=?ANEJpJXXtsKwk{Gr$Zccq1nXz~mX4urzq>g-*R ze0bHQsIJ=*;Zr?})1)}o*|ePr;{$T(zvwM=HjxYo*-xUGmDD-3Q$a2%uZ4u_OfB5t zaS1!voCT6hUc$6ca4$!J50H3OaCxTsmw=)DG^-?}=9`u-U{W)6mvF^}g1dX7Pw<3M z`pQn_65+%8KGJOZ1g$?3%kTe@SP&$m@206ObdyLduLNy$n+r7Qx}mr{E>>d-!A3cI zuM}%#eU}=Ye#QXF#g^^(yKOvw!>b??(H7y`PRvJ6Yd;@HBH zuLj)J8>P~SUle1K+)pI0x*{#;J#A%Eff-T~! zJnR83jmD&s-9cV@*|oEcYV|w+E7A=GNO!=FE~#gl>L)eUH^5A8D5D92jeVkeUUOa|1;5Q_Eq;~9TRR;$jJ++|?)Q(snoxvtYK zSYQVRtTn*n?D5_Tx=7`-s2FN-Q6~#f!RBxW8d)aMALlsnyCx5_gJ6nUT|8C+jM~Bv zW6=luzYALV{^Yd#1<~~c>Yre zovMeH9P8h_<6lLCD%<<+#RNnzQi&ENzaxcAQQG<5GLr=6vyo1K&a z`Wc7LX(NnIeLkWVv}YBVXt6c-BksG<7k;&KGS@Xe=+;t_C{DRWq#4chH{GYUf_sOi z{V_Q`O80SCNcnMcB11oEJavTDQzGJc11wav44-h}fZKBIXZUzuI4-*^DPW^^7!-z9 zh*j7`e!cD&*dG3(mZ+KL$<1puDQVpP=2Mx)m_6@_BCClHb7}s@dokTRdDOp1#yV^5 zS7ty_*p8*1h5N^3PMr2mtIj{ zdj3ax&G0JFuM?pv?IRS`4Ph>nPpnnsC!q^^yc7Z|y2l>^? z_Rr3lOyp2!^U92;%pNg7FdhHCsom ztHS-s{Avn!mzJo5U=LNh8-N9BI{wXN6KNZ{os+39=`#b8ST2a5%8Pe4(xgDd6MDeL zX2DKOK;*YJT0l)eD-eT?PcbjR;~DuN4Wk@*geL11Zi!!v01ePSyd^a6b>_xmBIhBg ze+uV2{}i()sEXani^dAv4)BkA0g@hCIAapeNJ@r$BLyzXPmcnyiEU~J%dMtLe}_k` zY)Jz8%IW#n*(wLq&M2F(wFIDXu$q{dh-MWyC{RRJRzEE1JHqqd+B|6#h)3<)BkX{t zCh<@e@lgFuGM9MZ5Q%m_T+iYZQEu(BsB$adP@)65kCMZnK3Tm`_e*u%@n;j&?yhXJ z`h@f?DK%9!*jS8V|F}5fkK~zp7jR3*Mhi^o;itcg-qM10S=mw`^A$jZL`4n4+;d67 z?}tAK=QfBlAr5yg0RB~eIoVU*@aqo?xOTm}H{L>y5#vvM-_VPF6hZZ>7XbI>uf*&_ z#`JpCZVW`L-*xnVmygiFYW(l=Q7XfK$VZ%BFgqtRL)v*V$Q1e`UtD-21h_wmtOwHD z%p@JLi7z94Mko?idXv=?7pFVv+v3neprx_|hE_G` z%9`OJ%3%ZA^oy*s7FjXtYD1+Dfn4a4I4?`hO*~eL8@q%bWGKkVa1RP;z61QbKbY9q z*ov~VnfjOZe&QmAO{Sbvv(1D=yvc~Y45xUaxZ^#9QthY8N0txWdjgsat4y?TvRy(n z?rzH>{n{71_ZZW4>2v2l&=-b927lWRF%)E@E5-&kU%<5onUYHIC zZU{&+suv>PwUG)IiZTWMr7CnDw7H5TSxr6Gjw?efitmD}9mKkU2Bb!ZL4k(x6_wY@ zVd(=L!zVGom+191K9~kPOBDz)DL2+xNFj^zKz1e=MsB4j%T@brGUH(Q=`89Z|G2_| zyyN^{ECV!OAVFMl#n9TQULOAAFi#Kgy?6xoLrFb>;rWl?38)mK0$Ri|O}2s1i^DiX z7lQ>HxPWlpJlU7DhQECP!dsM!!jfL+Foaw2Q(9KcpGHoT_D_aDAo>7CY%Cp$FV@Hp zp7h6IUXt^d!+ecK&IlLG>VI4ShQQ||PfstR`IDRj2nhDJKMbj$fxuTs%fvE`jqwYm zq@N-cxHlZbftg$YLd4@QMvCHcfspaw@3H}B`2Fdwe|qhm@1rJJaM=1bd^~cvttr@o z61?#gm4)DM38*JJjUcTqy$$j({KO9Acd14EeW$>vXXuPh;@^Qm8*l}#$x4F%ZTw1! zi>?^p+XF-|Ju>A=Obq#dwU?uWzJD4l9tERFI2fx5k;0HWOvRMdL`USdmTZ?PLmu02 z8-%1FeK%9OmumMPjo?$C65;)jM;ZwT4~#M*(VX{y_~04}Kb zS6#sBzv%)={|CAN3(D>Y))@kS%kb|PQ#?QY7plQ zLA}C6tJLwAsy2wQzzC7MEs+QMIz0i&#Rcf1kvU15YKm!a+rFg9ghFf>N5%?v{KP!uT8czv*RU zgovQ#?Hl1(&rbi&-P;j$Tgkw?tEW2FmTMMtzJ3HA{hdU2GSJirI|1rBk2w}-SO0%Q z`HSHI=^1p@Y<9XXSi?@R0QI*+F8*f8U_bDIwMw}~M~y%I2vf1wxpVdTc8yuv>s#w% zs@-;=+4NQnh=;@eUB zIFbg%n(9QW*6Zo%2}7t0196EeOpqYNN{8I;dyJy;P)(e`cH9N7{a9GZ(jM5wT}>Ft z(-;aRzVia4ySJ)+4-_11`TBuduk!_%t9+!0XB5gl=yOwC=+~k9@*7I-R?w(RYDecf z-v9v~NId<0rsJ)tjyVZl5ZFx{fkoq^5lRFkM0IxlA3Mv#OlK59@;QRGG*qHEy#L|s zJ2>X#``7-RvzNjEePF=WKs|y1Zq5M=^1pe@Z!ED+lMwm=KOoAgBfc~dpfHqttIq*+ zP(6qM`+10-&?kf5kOKSm^MO-fwtO}f0ji$HDVqibAPvAPN*W$0kdk69hLcxS{qs_X zush06pAL^L?RicE6DhyTwrVCjvfj=JJZI3jIuI|(3zX=wFs zgQCH^@Fozw(^vy5Eq`{tTW{saY=wPzVDegE3qYb0vqTN1?3+JtVEjUPQR=@2EO#OP z#a+($c^IEPXzV4Zc$YWb{*dr~(D?^Yq%1Hh+`zzy0P(#}25JPb%X?t{f~ey%{iv`p zxXZ=0s(u9aUmRm4-wPrPGgPWkU-19hg|g!Rjc`xiT;whk68UAh&>X}*K9-o>#rzR< zP1GjXvC_}LJt{im|8wy~Pg%bAKV9LJvjYs^+6my2`^;AK#%k@fYBe?Ei`wV+R#QIT z*f)+|SvGOQ=heYxsE{V}ZbP}+x%N+cJ&`|y$n`1Wg;G9rfo7C7E}v7pIv~oZBpieL z4F-UhY7Jad^LqXChlG&QJZP0)CUXumOWgL7cpXMU*Y^~)EhB_32*bhi9Khv9O38fh z6hW71ajMxG6B%+_-Jro+nAW}%;RsqaNuwsbf$(GQp{O5%S~Xw_`Z$pBc<94@kWfzdJ!xO&~rNsDkFD=@fw$+>bafc z=xj4o=g=TW#k4s4drvPwdah4|b5@7Ceox&3S3+=OVW2M#b^d89UI-!wHg}P9kQhuv zeeCm+`>P5I3$t4Y1?9t>L5zQzFLHHayj&5pkMe*^$KujqpvR*c4UomQY$E?8Xy0e( z*SSlju!iq~-5di;a~jnuwO^J+-50S2c;yV>FdGE@;)=JuPY{>DCH>iByXrCSS&m8u ziju?;271D8z=u8y6AWJmXFb#a4*Go+eXb7DVwC|?J>ocN_E`n=CVc_U&%?>nZnmNv zdsGNzpPja_ZKniey!R#H#np1WLH6dRC8}3?4Ui3)UD3>H;5G-6jqBs31W+c5Sg7K4O7B2Ari@o=ZiYm&sMga@Sp-3W`LIecK zAUT$RNEDSMSu#kH93)dnRwM}`ASfzPg5(S;K@bHbBT*!SWaO=~yKncs?|$POQP~_P0;!2_AX6RFjH_KP3=geCRv1cpL~e?!j&D6i+IFk zS7yFlXaOb$T92!~R~6OveJ5XAUPxb;xfZ*3wM4rV$l0#b*12!rYE&NE_8v}&PmRwu zn~aPHvIw*ki$%(Ii1so*g$zGf;Vd@9(J7sAn8OCgz&JXB3Pet)f1c*}w;q!ZeB(Lo zQKsRYfi*FH@T~v(Qk(S~)#4iXpcwPE*d)zAh@wj1SRW}<_LP5T{>~uE891^@!ExtR`qvQK)i6H$YJf-LW*dDRf$pM!)HD}h&V@NQhJK) zO@@DBYi_gC0a>oCL`VSR@;$CdYtzl{e17mpkJ<6#!Mn6~vd8N>-ExoUcEN$d4g`7* zKko2Fn;H4|ra6x(U+(r30~Z87!uPPdk2xbFZH6k;Z<^1FP>NsQb z?2n|2Htt`paeXuwXK@OQHEE%yX>-%9ZPqxNCHKehtP4Y%5UrA~NO3dfU$U$W>q5JE2Z;^Kc9H zYHcdr(t?5lD|`E&d-rzFHHIjN!nX%>+C>KFy%lQDC?X9+*SD5rukuS@a~|VypZ@W)Gu7f zl(*;CizG{q=82P36R-5qO>pB1w$IpWPvLlW7IzQ3fnKTF;QNCpCv7uOL7y#&UMRZi zyDJ864?g13>mhyqIoEkopB5Y#qkh~Lr-C?37B1iw9UCPsmbughjws=jQKs%6IUSfq z;7j`o$Vm5v>aiuBhwr2#ZGFzGVuR5JUu<}=WFrS~21T#n(ZGo8!`02aYs~_uun?#!E`lP~p`22QIn0_ql4^}b*6*&2&^^uV zIbpe*;g6Hu9~Ri>9S5B@#zvjNVFNP?La*>_+`V~nWs*!>H zQBOZ?2|d@A{Y|q;WStpK`7i$V`;XfDcz7SdrAzCgbMn03fAF_s63SNo!QVz_*{<$_ z=fF3i9GSw{gtN3tU;i6@d&Vpm@@8sH`UBew|4HAb3pg%|1zBw4T*lG(aB?Lj7 z3han)R>%I+6+(dxA1YAsAL zu9Eo$v9B_|PFVdhWMrOe;@;pbmi%euu!R)pFFPg-_T9;-h^H9- zg~2AJVvwA255SG8rrLmLgLAo1ov)Mc6JK8dl;!wFE5FEra1`t_`2KKU=lg#Nh85cW zSN`@X*SmM`th?fwJCLeOIpTK_<`9EOfbblMQ|i4a13?Y3*f8l=xrx+fRo6@BD4%NB@Jr z-QK|}8K$5I2i8QkPARfo{r`l%JsbxLI}YAI4I0=qiD+nODn3HZ|4m`x$88@OUnN4% z?^V6o3B>H9YCPUB&;AbtZY@1hK}Liy*2)0OpcILQ&FWVKrAdA=qsE|&@Z*4}l79!o z|CN>1CBx$?KP1999ZPWjz8ST*26Nxb_Rh?$NLaVFKKQ{$#n@M@4Q6f@U|;bg3qJj? zCvPYAl>k~CoO9S6Pwu*9{Xf{dR2^9oC;aRG|Nr~{*YWYf3tRqcrm=9{ z9QlC(vCPSq&%_xnp{8D=M<{eYO@Zw^!fEW8vti1U*mB`AQbI4hykg)-D`DPH86e7m z@s5MrMOo^6ADfML!@Yo}Y0 z=3I#)m)!7XP`^}Qx71a9bPZ?9^J5NKix!*h%^!%?t3%jn(M8$pZQ`zk`~ScC&vA&S zwlx_RpjOJ{&X;+0JEe(M={{HPDTqtPPLEE3k~quCDDL#?q29oUi)}<8U8+hhXGK=N ziOA)?&mxWt>}*QC5u}J7o;AX}i%@Xq{pUqSApPIx;UpT6 zxII>tP{HS@ocRz82DJVOIWx9VzD@;VbtT`g$E2!f_pI20*K6sgJNCH|(kj8H*$pDN zk8^7e|44o#&20{L;>W$KkMyg3_&j%-N>lI$9?_!!mAKrJ+!njsYvZ~D`kIzEzfLQC zwfjnc<&Nbz3eE0t|Fs_-vh7mq8&c^@ts36h>j$ZWBRe}iJ3aSr>F;HNq4bW1_ivM+ zz1@@H2B5L&HQh6$Q{kV;_$eXp#bm2M{`lLgWSsPZnn&q-jte1fG0tO!A`0qSL=_K% zcRh<*hZY11&8yGPTtQwKcFTy~A|I;~=(8wictXY2U0%$Ydp=#~!qq$IXC6$pxj$~; zIdeV_G%+TsT06QlQZ$>gX`G~XH`jvxvkk-i3yo`94^{F!Jks8(+tektFtdCclZ}rC3`O&R40Ze5Z|{MUSS01{o6tC@UOE zof?M`d&Q@7UG~zG?oDobU@<0+FbSjjAQ_@|;md?ztY#egZ56d7*JLBd*T%lnL;aTB zVBgw~Vy$a_IEHyWYEZDQ=?QTE^ftb(SEt&;K5R1-M$1&kSw@T2iNc5L<;B5*4o~S+ zg12IyOo&9wRd2(GlsCiSL(j~eMQ>m~bj7mljou@c(jjg}Lh*u*nPl6S@;DQH`9uAroJ8QPlXv-*!6MJq3*guFF+GxA*TH@uY#4Ts5T{y(3oof>mbeR0U`)HNS zSzz^qRd~AveV2NGy3kn*y_{B~XsmI8YApSLq)pHPd~Nh;g>GCnqDEAdklfq08xEDV zY{vv~a&l7s2xRX>eThonYn?)W6*-U-@xG@?+qy)MQ!^|6^r10Y9Oe`zKn4A4`P7s| zv1_W#z)92DdG!krSX}HhS$<0&unPw4Z!~~ssRX@qk05FFDssTICwABrRjz$9m0#3r zA+FjWPQ7;{|zHIK52a0_u(vKHr!cE4LbI{y9P2csiT$C&Wnf{;#br`Ht>FxyCINs%(B4iJvhcH)oD6=_g1!nThAA$ z)=ccCI#VVIq@8zmDZ~U^Ky_o5nqYhkJw3(HrePE?*t~xli(et?z)OwIMlLqJ3pt=> zbMK3{J7^-YiOSbE`U2I;?Gb%$;AMM%s?D)HZ)avNMTqEr=8^*Y8FJH{vOZRQW)Xz)w)doB%q#x`Mh26s{?Z6K8P;lE7HJVpe?zQ~Y z-gfLdvAYAK#-E7>|3C31T5=K>$CyS<9FB|uO$6e8D3JIk?VddRkc!@67a2ndYojNl zRq{r-igU=|?7K-zMviKg=vH(tP?fRu^~l^tcM5x~?>K~WV`cx~jcZeUuelYk(Inqc?Um_gLEwLiO~A2Sh9k18Y>#?Z&jUv><2r^_zn% z9oDqIc7DU2CqCy$igiTv5*l?#j%3zC*X38;!+01Po{vA@e$ZU3VD(~r@(kJ^RHJhe zE<{>5#dghZrys<@JbZcol7~LJzD)*83pRqN2E9Y@oW|0&4TM%y#9} znps21B}Ma-)JZjw7Cn{DM{Qo=wzj$)NgwP`Qt9bj!rO|4q~_hhRjE!72v~fc*ENDt z1ut#&09=#3s~YS?)xlZ&>S5~ZfnAuFCG}Z?-x~YE9`aW;@+XEelSh>WIxvW6bL5(2 z%7NWwe7wXDLjC6iK`RSFC7Q#E|OBlP9SqTan=`1iVOa{BB-%Kc} z?DVJ?Dc(Cv1NXn`s@9+yz;NT7H1X7@J%F@poY&1x56^)-z`yPVFG}!k-7he%^qU5x z_;9>h;~+V4*HbP;>smqLQLO@z7nrKIp)wvB#Zms;ob4J+Qf0a3zcTQOIpI{y z>;;b{!(V?xtj)mdH*dUC9;IJ-_#xY}Y~(GZGT%CG1`LW?T-YVCk-O}aZwoIt!v&$n&FN#8a#1GJK!rLvsbF|Pb zn6B9?G_|h7B)>h;2vv@?bzBuoKt#*^Ta1jAg9x8DV7cx);~t-pqwJxW3uy-*4fw?K zC?kxIYL6@Ooo-wXZ{#ltHE}W6G)6IGBc#BdLH||R#aHYGh{=F$&A-+#EqL@P517$+ z#gV<-70#BwyYMC-Nj>!d9I(!rBGQT>^eT?t{AZbM(gv_!E_7aZL)PR{Rz=&JoqN0c z_0GM}(c$^4rDa+MMn-;*G3HsLOJDM1G}4750H?U=z5XuJoZ6rEepbt_KL736NK$2On1`Or_p6Rs z!z}!W5hwsrQB_uP=QJ;_6YWzWE0txbJ!wx*&o2F2w_0?sPq%(Z;vfK$;>?p5Lf^sZ z|L5yB#qJFu_S}4U8`7>&5g8nFnT@5s(%d$>&*n@t*jQXTdQ-24Oxh0}KAA|J0GGMcDB8 zAeh9U0Y82h0Ad3^)ElxkiP!b@OvSp}46r@&27RXb>}|IA)O=Vv+YG__3FKoh!3gM` zolKnXkQ6cZ53C}mKs%csY#OdUy;SYY7#U7x@^(H)Zq;S?1Hq_jkTifo_vA zk(O*Y2@Z?d4;ll&5{Pm&fvkaT}6x5P{%19m+diK^@~bZz+C=!%jD4BUpD zqYW_wThO(zpk>T>kH8}%^V){@~ETPl$YboI-Rw7jr^wLag;V?DtDl`HaxiS^iSTu`dskyKOk zqCi8yj^{IyT`1d-QzC~e=RrE6LBL!Q6V-J*FqACIA!ysjre#ZNsGCm`r*?3=13S8@p2g9CeApsHyRjOFbD z6It&GPkl=IItua;rL$9?C9Da5r7sgmdEeTG8c(ZqniDue&u;E}gEi;EJpb;B)k8FD z5waP1@{ksmNxvrU@2bjNL%))iqM(eBfk!=Iy|P-FMlmJ4X23J5XQh zUfq~ZJqDk8j|pvYTK6Z};6MLqV%>j#M#AZ>Pa9m-np6#Ck|R@BdV0bmK;vy~0$-!jZ)0MaP+${<__$&p>icy2r zDC=JHl;or~1?X8`LJyJw&+VtAuHhctm#h1sVBsOPD(Yi>BE=?e&{(_3;#4H?7AI^d zip7u6c^$XQt#6liZ*+K7-RP)xyjtcnKKQ;fJsCcQr$YW2atXFyRL8$d9^`|ALk+X8 z@tI=fwRV}|iVPB9U{XOK* zpS>pUzz_mS1vXay6`@*q?lAT)KxJs=kar&rt(l|qp@Aaa5o^W2_d#98r|M=Y`xmUn zWa2y_##@L`JRm6yiEMycww8C7>2TAoXC2j0BmdszK8hAEiUKoeQJ~27j>sS^l(!YU zw)#!|SLYv!_c3%*AhnM{Zj&2whJZ>+us-*l(#u#~{P^K^Zu~w2bDH4F>x8F4N2{tF zDzVQ2cO9BIibINTg&hTL#+bd&w(?^d+?DuK0!&Eo>gF1t2--N~t;wes#K7Ba_Gjyy zAM7g=ebfh?AI@%OK@oaQltV>n$!9=u)~;phWX(JL=O^e0GGSty1-133SCWbJo`D)e zp3s>)pFWBsG>;CPmGV*BZU#q11z<2!-6 zmGZ1&3!&OJzAkt|Ur&>ZFk5uO8&5R_>5y;bNF^Uh6*a;06+13P@?Iiwm2bA$f#MDO zKVt4lUn5IPk)8>sCR{BB>eDZzc)_;^+fS$7H~u)CIz4)DuOaU;8_gCW<7AE7O(}Ed>jrOv^0sO`s65Mr1;1cAuNl z9K$9>Lr6)UuMkCw45e4DpJ`Z5vx;|9Ei0vu*l2xnacJE<=h>x^w1Oz}AEijlm7zZy zR%X@rvc?o!eTdg?3~mpOV3-b??+dD=Eg6)VlCy`a3OdQQe8DN05&ERE_)vz!49wn& zc_)_?xHL277MLlhC><~twJwFFiSPD@c|o>V~1TB9p+&l?#9^1fU&i-a@Xx)^9R~9~r`P>~IPW(*83VIZG#D*DTP@^m z=s=}D>h6>EfQj(k*nk4<39AcnwOv2$eGD9W$mbsXS$r@~pu}{NzM3qdvS8GlWEy2NWcOHLDOkK_HCg;``Pb}*Wfpq<>3SXbLCS2OyWUO=f$bQCV3Siz}~gX%b; zPsFff&+Q9mSSSUhI_*fT6`pPO4?YTR*!8jdIK0bn!O4)0G`_F>49)1Z#4`v+ioBmy zWY~b=h%J&pWklB;Wbz7Q9V?`xe&V5VRgr}oO(&}^_fGPPW~(>$nocLOa4*dv#Xp66 z`XbY3CHhYHZ><;DJD9x;%z9}|Bzw-OyZkxgN~^7pd)-xW`RDgT+Km|dK50(0#qk)e z)E#doJXq0Uw5p}dGrWH%ty9xz$cA?$tu+WLncngI7SF?e+GFgiLgUIU99TBZD~Nyj z5L$nEbj74pNVt;}w?JmIG+0<^d^7lr5UjhV>k?OA*Ywk{8nknmtDmgZt$TH+-ubM` zK)*UmKX~^&7$8j$;LA`dmL@f&teADyF2A_;_%0X(mQu;T$j$vB-#b4Q^BJP{Lhx4e z182WF5l&cGn$c~x;whZw8c#?KhC-fmseS|LoqJI&`=Nw0_r#Q&17ZCU}N8}#y*c07P$bQ1g$KoA~8~q9oW`A zs<=@3Bo_+aSe%csZ@Q~iOknl;ykk41%yC>2ar+g?z_d7XWgYg6kCj@PaSxNkRZ?u9 z`PvMHHdwTs)t`nD_~|RN+LlO2H@I{MCQ%*}hEruQZ5Q1vH3zlqI=xc%AgfqgZYxasg6fY3%-xVXdo$6g@Xm6t$i24{BraJ~cBQ2c?E+Q)EBDqz%nMj&oiz**-%XDes|6C$9+^BUVRWg>b7#fF{ zRv`H}y+kPr;;KDeNFkqIK35RQeuq*75ld)pPo5`&VQ**1BA@h!AbO&3aqhlk!Ee_c z4izRsdRfbGdmZ=MjzUirtR;vW*FSG!!%j zZJjqoV!scSn5`GnjC3j)ga?bBR+x>AhJVHXl(ifXjog%*Y)16in;<8Ug9F3LrxIw#3BTWq_87z z#d4ml;262{{BjKDC^%}KK*p7`+Iqrk%z4dEbcL>TosTRN74y_3?W!t+?=#)FuV zHnK6Ip0($f=|-#glc`A)_s}Re8&QUncT=84fmwh_RY{s5>P#z`ZQ{)X$@GeQ@tLxt z2Dnw;E+w;lSxOU>jTsPBDcg6mqzPfY#P?CCHZq5%;I2h|#BV3W{o6|cf<_%nWkM~T zq6`H@$Sb5%r72OOn;Flt3sf>kcu8j3_DaPGb2N%`TG`J2ax4w%Y9o-+k981K4n|&i z8z_{Oo=NrDD?F~RPDrj)oItflhV40@dDPLSc?i!fLfoNWLfye)gL60SuOk?l=Yfay zODlqlDtat;U`gQV8(Vof=!US~6ClGvFZ3(akH`oLK)p7f7~92oI(=N*%g?eD2!@^E zP^e(8@FkSQBfYG<=z{@9`4?Pb7CIrRt~H#1bH6iLHqNJHn7f327O6pYzSVub{e-Qw z-G%iX+5SZI2aot!jUN3*jlr*t@fZmB14(u?OWS5P{^aPqdXz3*HDAGxVJO%W_M~5W z)sM{gi*O(l_VEq1_Oqh<4(ZE1sdT0Cur@pV&Aab*V*)t(pi(QAZj#K*?BUmZMn$+p zbMqsOq>2swtrkJDP?F-_)oY(=wB7H<7aC`3_VjRoVaP9|Hu>SH^I{G+OVFrIGn+|j zyr}OfO7cY{6y^q&A2Lj6MDH4tT($o%D% z>>MyUET*M?RO@7{yKodh?R3E<<075IVr!QGpPtY>)6S}RdZ|Tn0zFe_p0Y)`IR^wEZL`|@KjTw6=ete> ziASBQCrr(4h6lu%R?Lr>Sy;qq=y08$peHOwX%*3bI8oHwlI2=lb{Pe`p12OTJNkzY zq*}FxOd#j-UjO!HxH8hhJno$`7y`^e#BAZj)gtv8a^c`!oGN;YUkn9*qV1GXN$*7& z;)32Sa=*VCJTEaiQHicleW{f-7c0_d{uX&|yTZ-&O`f%6m@^UIJSzyqzn57N9F{o4 z<*L9kJA>pjqIQ9%;7-)Se7QHqqyYl+dC#7IE&WRO4xH* zg+)M5za|`X?4$oatlp(AF}?c2x+`CJ;E8K5@h?v#(kAEBx@?y(+m&+GdsJ_56>hmqA7wF8*$E69iC*y+XpC z`djF=H$_ERw@ge;mA?ej8Z~i50dfGpr(S<6 zPy#0;hf+#gf;B{skgSG1IEgeMtquQTyObD4Edn#%07M~GkPX$yUg0?_lJaj9ETgYS zI$^(6RC1KLozb~OOvSH-&+U&##N*}uKO4c=9zJz{2p=h;Q>X@3uqLW~;J#kHAYWb6 z8?x(JGoP;M6fr)Gf1_0IIh4iXBYty<%#O~-qJ4@&{jc7C{$7ybb7zc^_!Fa^J#$v+ z%=YO}wY)Zs3H^9`Rg_;sdNx3V@w0rFY*^x+^osVnysT(2iMJ28mFn4V{z*E@lDV@q z>b+fru*_T$+%&p%YhKIqWyCV<9!w&6s|`~DZ?C#V?Rv7@v?}}Usd#S1LYKv3=Z|uy7kMz7^Wxb6E&UKq8r=$O6A>hVjEm5V-EoK2g1IV?Q}42X~f7MC>c$S^!SS#oP#Za4N!s^Wo45dUUaxuUkqmNsXzm$Ija- z`c=yzX)KrC7<2tw&Qq5+R~p%LyM|J~dPRw+9yd*HoA@0Wf9fFtWLc?AkdCe`qoV6K z@>L_b+>($;=r&#kF}+|*3`%BeUbtehu{aUGPLUCVMx9AJ&_OAw5|=n=vV0Eb@np)y z@y?_to1v9!byHm0WGN0{p~pR!?CSQA%KvA(>|`Yr$9e?&s1!X&d(1 z3e8LXdb;U-=)dtZmPAYCMhTQuw(qJ&W2-6V^bMrvNIijs7C&sjSC#wvwS#Zf=2Bn{ zht9g5AEgKd9dg8sw8+KZF07c-Pn?}+(#N&uYa@eWj9t`E=eIRp7-i8%6j9&jivBz+ zK_i?=S6zrita`1l$*`D#Q_SWRU3*@2)uZ64zzOimU8yQsU{QBd!95fOsMfH|-i+6w z=+=Mx5NcMWa&`L9 z>|n^}2|?VIJp{nVjU7F9{znXvAyvc1=v^&GZy)*W#SlwI*3oaHck8TdDwLT@%Wk9P ztQVjrdTh2vWFK2|0gAT#_6q{VUYAEMx3G{$2`RODy(>l|P7BHSZTOK$rrp(`&K|)V z<>)zkn?DrD8H|8TicRhKXP9B+$d>z_n*HScc0>XVSG*A_aSY$&lhmeh%VR9)>C@Mp z{6FqSRt>AwIrR^rU&N;~R&=0IWm)M>U{P8CkAhok>d%E}sY09%rBDpLJ%hrUFfXK=nc64~9w8lA9J&216RAU0= zJ>p9pMAa3D5XrzUitm>AT`yFp$QB?)VTGAnFNsD7wK_$`C$Ek>{6@Ak6 z5@q0g4&Qi*;OnlbOH#XFNgw%GO6}Ug(YY#T<$kfb#9(4Ca*K=tBC{@e=Zl}DoyHm^qCPs@gcIWq zsi#!aig_9PcB05sDrQO3^OgBxqT>asbf}`d>!r8U_;-aIj{kuKx4T?$|NUh#x2&r> z#g}fDdi2~T6LKfLnWu-R&Q^+;Ztf6_rL_;Efwy0E!rP?(@peB#V=z`&q|etCp7;HR z=mZB1eCaOpZU$aLN z=!mJqPXw?h{>Z2xL9X7f%v?ScpCA)KW>J*bqPB!ZKI>iSnY{Ugxa!KCYw){xZwBCZ z`z`SRZ(7p7aU*n_a*oYa>vKAA9?p?K!Ti<>21_5r?YvtsKpY|euDP}ewf?QSc5D`3mh7vnR3&l&<&rDH z$wT#h0gKT1r@ZhPUH5Azy2TQWo`!sM#y4)0}fx=n>J#;nXlrT=2H-(Uz6FSGRs2h_Q7#m*)HQn8@Du2ahK${vxj9L=2mSmCX z5X{{ftCDwe%rFgVTEaIb6M8sB+1Aa9=`2FjU!Ww9I)bXUeUD5WX7`$=uN4hg3NP((CLVr7VmLWkQz=VW{i5Wb-%dD!($^$`~yx;vWWGC)!ti z-nf2v85yTt@Q)%Ih0KP+scCaJ|9npTR*;TsLOT2k;PYFpOcdw|Z*tv*ok*XYkP6+A3*2GxPm$gY-vX+abz+lDVIX|KO zK#q?L`M@L}N?#>!z~A-JtEn1_7jVqTsovl_voT6y?Hk!C1+NepTyUk_NZ;u6nLmTf znoytZz)Eixn%;UN9^zCz>`fEm@XR{Os;#Y^1y#qRm&pf@rWA;(7%ca1EcRZ!VHZi? zOQ+_dgC|G*YQ5W(E4SG7x1`5{2G*Zg|CRUH2p z7eHG^(Utvmjs%hU)UKgz7H2d%^y=O6SqW`_lN(dmnNweUP-2iTYg4t};nn zOvD>P16%go**3vqCJ`Ib3D04ZPX)}B`&-=tKcRs97|73VGAyTBkgduH#H>EW-p|x; zX{YbE?J-HGUmVGkab{fO9|(bC+#L_HtN`J@b?*4!$0en!+mIC6d4!l>K7E&c(j)6% zXV3}-8ZGG1aY^O-utdDbV7L3hMeKN5i=E|I3pj6y$lJ+?+0}wxi3!oKPN8(IPQc`< zFfhFj8m+(W-g!&v%X_V*pg-(SD7W#w&Qo|S66nY19tLhz6jIhaIe1 z_p6MK+u(#GkF8ZFt6i}B`bziyck9%ep#GVwn}EwU_|u8SpUUj?E1TE~EuFhp`}3my z{@$32JcE!W!o+{IGJ@cOa{Nr=PHqf;E8!7mm)k`jL+;Oi@7vo(^UhTmdO@B!E`6o& zj=?~Y7x%V@qqOWcFxcQD%@>C}acQ_DTeWbX@$!(J(0^10ECpZrgYb#Sa3LUn9C{?vWT$atMWjvWP<^mYuQxtU>*MxeCP^X9vqF` zJI~%OL51adcxu=?r6TFS#YaE%A8QRcEDb*o7^|Aa^X837NsOXu|Oo$ot-84?sY$Rx8#nQ`1{C za#)M)lv50ig>SyY65~7rkJw=*=fL8E33$RWu>VA%3gW2Dk3ITvOp=cPFPB?}LVcAP z*-D@we_MvwkUg?gE^a`qN+c&>d!aWE%NAH0-2ow=>M~fUgVCPvS_9S!X(Eruwl`z` zk36Weh6f1S8~V@KP-;o9ing4A{D4&t0EXgW>#aNR7*&RiVRCu;cLI7=AMY}xQ3Y*1 zN!Y$>*tQ`l0b+@J;Pca;pK7WO>{ZvePi#YJTV@q@$W_3y*XS;<6m^OoK#zbs*WF`_ zEjZ(OX2Emu%9@`z9_i3@`EO_k;@zb83fI^GLXOE#_8fz9{f}_Jf?IKYu8aG zg&TgnpJT_M&Ss1^OYjC8=9^Vyxcz7!MoaRM$~ zc%HH69HV!TA_;r~0wvoV|G0mz*dvD{>4T1SM9Db&ser@Dat-Z~UL)Pt)(A#^OW?(1 ze~re^1&7EyavJ)8t1a|Icg=D^=d8Dzyl?)_062nKoZ+A@o+1kR6$JGh3nOdpeJ&+9 z@1H(nj#jon8dN&anz(h)uCZ(%Zu}RXMlOH-M~!)&;NQC$B<`Sjod^-3@V}#EGvFSD zRk4RY((F~`06q-1h*ay}V^v1KHkzn*fj>?qk7E8zhCrx^!06ut9@x!h6i|JT4grNs zJb2}|IrjvR3J-$AK{|AN%LZYb@8_pB&)IR`YRiK_Rq)YcD863s{4e~gG41b`xml^o z2GN+l-the=3V(PO7ZXoMDp6$V>17Rr~({>*$t8tfE?xeOnlePapM`zc)<@> z>Jeta{0fYBjksH-J9Hc=F6CzRpteNJT;uJGR>rz#-2)N+}` zvB+kik_f?*(BS+6MnRMzA1ZTxKu9qu(;`FNU`KhoOx7PHfxqLu&$^E!V>-QCRQllP zw!c$TF`+h?q;rHBuc$s;hVZes3?-bD?nb5&$Ks#W{pr)4&CZAcA0Z#z?#r!_Wr3R= z=jJ5h{S{x#tl)P)`pA|>!1ZqkX-i7mIa*#IG^?kS!LlNM`S|o6JmrtMa(FJ`x)7xm z7^3APjR%l4*IeIUZ+po$JBYilMvc11CC_XG}F zb>=WiL`e_c((rE@hHA<)L`sn2TcKPnGI~XkZ30R=lo15e=OCph{&1~mj{VVJP!R$+ z76wJXM-es{B+lIoe9mcJpe73kr&Dm|wxyr%tk*Ouv`}XzxYxYyoxmbHuAiwJN1~Ll z=W6XPvaH`S{U%_xGj1)SscfeT>ZC?cPd;Kf_Et{zUa=d}|7eUV$I<7eF)}bUT|1<_ z97)Ly=YOwXf^l#A`tbLZde=uxw>yB91uw@PnWY%LUX3mv~xwRON+g z*L-4R*DEG27ft~QziTI~4_-Fu>+7q&pT2wH_op2exhOW}%*_mEN+fAs>I_vc`(n-k zGf?}G+eHAY4*dM zRME_+(4Wf;@)Z5tb4CI%CTAeX;!zlV$F9PDiX*nJ{+trhr3lHDdz$kmXgMz?f;>Mm zNtDiq&0|4l5&6NF_jRnCP3LB4mZ_;& zyB)+eh7}$SSK*UPQ~25=r1+j zvJPj)iv3op2R2}EC)CTk0oids0+poJE=bDdX(ThhZZ=XyrZ}9ajCW~7GQ2R79{$mV zqfz?ceYD?9PO7Y1mr7D2jaA7z&+JRksDs=098eBk)qfvu1Mrhj+I?sH!5_d?&&$wj z=@T-5y-i3bPU|mN(0m)7(6?V0#{BZ)|6i~OAa`+#%u487S@Pmve|;UG3a9@DRZvA| z+S7N2ebiX~$NOVvs{Rc{C}4+hf~;-iX13&5)v9htj~()^I{sLg`c2pgpF1RDQK1xU zlO1Z^2T0!@x6EvWcpm;UAzjO)#&l3aIPSYS8E#^3trPpV4#H zHqTViYteV&?)Vw$^E%$ZuX{3`ag+f!T~$q9A5Xnm;JpyOIf!(&)dq zMP^i1uiI12Cs*cWoS3?5_y>JQ{)Jn#2;5V=u8KdF$DpfBn$YY}0VjI*Z<5OpDby|) zYk?BRr0<Ztt z1XE$nSHjW`V7aTJInpJ+(4;^GY!EsKVf)s6g;qd&q1@|Gv|RJ|>F}o<55Onf1IoC` zrYUr60x|hVT95juHw6WeDSRPXS6BqqxpF(uJ8~kQ&m~nebs46X2+vEI(5~E}){KTI zLni!9dt1lpvso^k1head-ggQ^RGn|IBIDY($ZgwhpEu#ZCrF9+8m z(}q#zZ!ZauA)lH$dPp`L#&*9bMdXBLS@#yQtE4>N5r=g$ssZVTATmo0J;k2e7HwDk zRgJw5EZ6R4T)c`x>OU8{ac>Gv&FHMtUFJY`Z20|E-vgkH54DxQ;?&tb!xEQD#{8ub8=e<; zqSpjBkBb^<)A#bfB(mZeoIaEG=5N?&C8>a$clY8ldM*UYs>+n%b3~`fTkI^T6fo#}g9^X4V$6!VSu;pom=vB^s8Gv0? zqCZ^kA>GSfvpf7JkyrfGx`9InQF_Y>JVpwCjjw)~zQp`8}z}XR$Y-Emg`z zJV{BU-L6W(FN|sjF=3EKf521n_v)`S_jpyyCw z?S|rUPByeBYD+B5i4miCn4u3K7b%6q*Ea4j*c~mB#2m1g>c_{2r3q5jqC-D?c1T({ zgAG4`^UEi2y2#1#26T5KVSM2#_Vg28|K^W-e%{hY|3;i4QAI3dvL0y%D`1)sg*AW( zCDA48xQ267^;zl{-?a-=e5l9FUB08g9v$*y(|^w=hvy#XkP031mKD4}FmMTivHBTw zyQedj!#}7tgoK{7=5Cuc6Zvc5>Cf?L6+v(pHW=PBry-jv$Qk zIQ}OSb!qOgTafAzacTJJ_s>BK&)!U=Y{2wDrqGbfGesri%ijU7o*l?rEt3P|W+g-# zddgg|@QUeeE5RRqsgUEVm(EO%6R@P8s1&ui>U;7F~yaTTsJN%JFgSjvqN zYz_M8mPurKyMFN>7j7mvyE{h7kwzn`zZ&J_WU z-ANSNEhgggWSf2$xeVZ+yQ6T1fcyo}z-{x3BrSmb@TpBKoy zux_MSvak0gCbwB8huBH>aW#sZLoy@q4m$i0O%o{IOiRcdtVrm);XV8@>psYCt%rG}VnLAN5|7x| zGcA;nHXHqCg`5k`mG^}#*Qc7~!DsIi?FrDXF_EO_mFP{hv!tH%0mWdLn{03+O+3o& zyh@?`@eIX;r@6$_76u^4yS1PG2)>+YfL z+f9OKn84&Bs_|0G+^sYoI%i@#66Fmfm7iN=oj@~+$mui8Ir*V+1UQ%zVC$`~bz$4+ znpg=FN_;s4zT~fm0GsqY3*0sIuK3F)eEztb5c2SN$Kxt!xmlC9#&*`p0=qUR3O9g; zW(@q8eAa^tMD7M0KfNTE#O6)QxB@G_9EKM{(;5ZBwX|X55-!*mJo%m6WOO?{%dR0R-f8MF!72yT~sAgT{&dF}V*#kJyYEwTfS zVA+{cohZle2iuEWs$T^!`f~#X$P6MQsRuPjQr1(5x}ap3_Xovp6kh;>qN~;e_$WagT_L`zw;YGbXF3PW7KOo^c#;>*VcWcoz9=kG98$PB`}K8sxv+k{n}sOLT>%G4o5AHJtZ$$@ zQ&$7q7f`k40tAw^Nwm-sJ!!SDh`w7qD-mOql}2IK6JyTRogYar_tlmBG2v@=74n!@ zx;!BYl!BV?Vli6bZ9*u9wjQ$GP>a!VQB8f|;atMxaW_QPfu>SF6Z#~Xu+H=97xyI3 z{ZAr}4{mrpvDc#n21`VBK20dQitA7NzGMY0LV75^JJFw2nFbn_fz3Tv2~RM8necco zV$xBu$EbS0HNpE3zpN7@C1#H3?O|1T9&Kj?1s_a36i`5I?Wc zWw5K@B-+y@2bVx%`~k;CE*bn|Z0NVe?eimfJok6j!1u*}P1Mwl_#8i>>||TS(H8Br z9uxl!w;30{hM91I_u?J?u2#glozZ5!;nnE7xWzi$6{Yp{Hl0Q zQWF1X0WI_@KrFafV4^23K|@SNlVpMAt(0mz35q=MnD(Um9?5$PBcU?SEOmdxx5dn7 z`E+0UL^ktN#J`9u9)!Z}=S#kyMYag~o##gyI?#8z*LPZ$(Sj7T`(4~i%5{<#<}ZV> zIk3^KGKlMf)$$;Rxr%e|MzkFcawc(24*iw);EKo|5^3;i&tjqP;L>}HljQ;fvL(Y^ z^FJ9TbG!)$T341r8%S7Tr!n#1`9I(*Ol?nsEEs~gk)Cu&rgzqYA}nY99)9RTBec!k zY)l`iU6>RnwPHlJ;9lDbP4_ZEC5^D7(u#{Ww{hZ>ihqYvt%&wRAdL4ymeG=Ci$Z6+ z7(pDTaDhs45M1*u5=XzfWpeBPlf9AQaL%YEEO82iyl0QUQs#ZUc&j3kUU8q@o+Vkq zA7ySxN0(J6cFQKV3KUo$jFsaFX`YzB6ama`*8-E2Hx;Uq2PN>B5r_H65%ZV(lpWwIv%eBTJ-<4cb-vEtlPSV1|$nj zPy|G1L?q`VQ3)av1r;Sq4w4ZiNl>7XqzIA)K}ix-aux)X42mE*gMff!Np}{mwf9>4 zjI-}OW1JsnjC0pu{XnX_s=L0b`o4EQ?>jGbS-Ix@Y&q$7NX=vh(($}_wFwM^<^sH< z{>Rn=nGU+!1J}GiI?Z;MhxGMt1i|2Z~u{>7AA32qc5}VFDDyFT#mn92(3LJkJH+ zxRrR!x$!z=tHYo5|N7@zFai3FJQL-~8z_^?mH?jR!BzQCM!YYxz?cwm<8DyF|5J)&$?XCBIj{U*7?e)@NJ+EExX+9F!&hTSiU~opsmIHte+86;-)YKVg>r_# z!YmmVu+OET;<_-+QLs%kd{<0zU*L|3?7iiUqssOFizbsFeyGW?ipKp1O$HqgnoOm| zzt?13@-{!*`1(g2fOyln!#DuD=WitJ-)5C69_oqBmJ09k_Lqvp`51hfObSK*6lh)) zxpS{A0r{eXEU3`BVb?&+3dMgv=4e#UA4nG{psH|0V09lO7!^lIt(9@RaQ(+ng2%?f zC4+L;7e`N?Td0J(g4_0~g0237pLks^UZENH2C(G|s7-%>ExyQe#$>ua)}0X@W;U&?t$Xh74^?Es4Z)LI zh#pLuS_y@%@})7_rSp!fw9JDHV)m{dJmK*R?TpV{Zv~hSrnWcV;GY}1S9>-IdyKkk zr&Y>GVb~dXyXsF-^R6HkstL2nz{-p=4~pa8DE$7#EI%$EwF8|6_jWc%rrvuFRovwx zxf$yg^cSbRPV(QJ@}#tZByP_{GC=tB?;e1mXC(wD|Gk1M2JIb$J<6UsbcHoQJSIB& ziFN#cg+4J&s${X2Y$;Tm-;CWuLtz?(x39&E6a!HyO-8&P2sAP-*08)K zmfFRI+d=fOeoW?trq!X>-1`bOy_h}YNoZb{Cr3fYU;9?-T?v-u8|4xZwjy+XA@}NB zPXEaQC=;ODoEc~Qn4LNPAW?FFMDgFM@0Q~5OD96gG$6F|vZQj%VWa^^J_lZ2>j>!$ zO)L}j*23G4S!lVH_NQe$y|I-+aZ&?98Lj~#Y7_DH$(=RGgSEkG8MQ4AQL@hW=819o zNl^o!rHLu`!-ik7F#jit;$IQ10xoXjJdHqQc8%u?Ba%0q{GhSJTjeZ&UPjF}fL|0KQ|i(^bcyJ@}WQ zog9`v{AbYU5=r%~0>3g%L=(%m1jWfuR>B?>>Qw8Jn|?I#p34;{9@~0p!EI!}r<*2P zZWZpQ^lTVD0ii*k^0YZvOvRSN6l*tTJzNf5d#wV-z)nSNZKgV`cZS_Dz%m%O7+hxe5TElv20Jgly)&W^_QeEHD9=xe5se#5T0G;#|qboYdem-vwTOp@Y+b<6DeE2aq7Ayeg za{?qE5IAf%u;D7}oNydDeA(>Y3Sp?5jTu}Lv0&>Igz{?pt?9R${g$UZAoG@pS3!h^ z9d}_sWDCwhZ!PORDjS^`6Zw8vFJDC#2tDPkdXw9t4b6IWBDdHcUtp#R9)upu(MV^KiXY{# zGy6yVCYxmU1?~V1klE6&KUTf_^YS@xaRTyX#~9I6qphVSkYBd+Zp!6Q!1;DXt?s~H z1}+JWi!Oaku$tfIvyd5&x6OO;RHJeG7q6f^=Ll%@s zGU2VbvE_Ov#~TIz0ZtkGe}Pl9CYqHBVz_TysM%l7p94I?PACLC@=@W^8@izu1B}=6 zSe4uP-v?w(h+EE_+yA`fg+>PA8O_9QjE)II(^ z=(qODQCt=1uyO{9p9C2~a3j%82|pIF(+$zbM63%jV67en!sAf5GhZhVvPTG#OXpp_ z48u2H<{w8miW3YfECm zUn`BD22DlQDn|CgL6^LUkPyLfL+kE|jsfEIk~#R6>OR1?9O_k=(4rr@+|#_Ya?4Jb z6EZamZ(0Vo2+8RuJ^baLJJNlEOp7HFNrhAM4Z0S!T4}%apGS+J=g5l<-($tESiT51 zJ9K98)MblZm`=aajK@-01;R>yHFo=~xQYbyheUlqVmeZx?p}%_8_Rk9+J)dJSQzeJ z>;$Z@xZ-HSVBnGC*&{o{o3jWKp@FV|fR8L75$)rc(x9Gu_h={U~RBWcwj zzleEnR*c-aIJ`RTZMsWV*n~$sZ2Mij)3q+J0P!$G&Q5;P9CO|a`Jir~0TPyKi zwJ8|IJ8A7hv(f&Xed3g6u&jM!(MGQueCi57=*jxMdLH_RWW~ZGeGpD>x6_wUHJ|eP zSB}Q?yTn;s?J=;&!{YFO7Qhz4CRjZOFHQp2+5Aj!J?!;NxRj=kB7vNkJ3 z3~8M|fBrP6tg#!e>~ACOO$Qg!cbU^z?2fUY);^5qiM+RjR|}Foe@K)AQt9^rM*h$8 z>OBNI$;?-T3#wegc2|YD<`3lNycu)k`TmShGD2ym(2sBYjGe~hl2pN^jkf2BW6_9baS}q(FWzs0l6>|2onfg%Q6!xN?s@am z0Hqv?B0aaJo3$>URD>)8+kGL0$(#NMh{ZZ1?Ur2N`W$GmO(Hn9HY$w%VR*i9*O-#5 z_5_!F*?W?Sa?33jE#^0qS1$ zcMH|K58Vkbe1rI@>b*aR9$Q5np8ZFM3UNhmFn|@MVc(BO$<+bk*uqwRoIyCe5lfOy+fWuMrsB? z_v|C++MiletV-j?tLgM7du^}MpONF{)YL~Zc{cr3ZF;kPKkvtie!&whkgU?nKU1<^ zSGzu;g{otRJpGX&&-L$ja&OV;PAqf+WCz_?UACY_+zTjsjvh}*nsMw&SNqW`mXmAR zmV_0BMb>2qhLPWvn+P%f8iJI)z5+QinU-Z6ufptu|EC?WL||2*SrOVcnEzUv^MY<1 zlYH9o&T04nfEh?r$nF-vqmDJ}>88MHG}Kn-R|DF`kf*eBE;lU4kWYCPwau=1?V4yW zf9Q!;FK*`tx!3wAq^-M8f0fP%+(p;!JLsm>|2k=Zeg5C5POv;)63w6E@~fmi%f%(x z2c58Ew?CU%7{3&;9~6J@{;jVmx6Tt);EX^_`Wb=_l`BW;9u3nfP3K~qji9cX0~J4w z%8pBJ99x`y>!~1s^nXzsT_SnJqBMHm`be}KE3&*v);ud5hUGP$u8J(V#rG2$r>Vev z$ZeB#VvQ5LJ(OWeLsetq-ee|8^a?L8DExr33gcd57{jY+P*4RT%#$e(@wnwuvv#7dx*k={yZ_G_jgQS?STq{_HNm3tc zeL!8+)Y=i;tl#8x%su&aZ^mOV99jSuans0Yd&>eU_&@6|fShFrg9wqEPGb`93k1eh zyvzu)cIgo|U@76|a%@uf_?S^xIu=bnu5Vzl_=`0tsDx}x8-1g>b=B6^HaR;lZ{LHd z66b;;f#gRZ8~g{ZAho#CHDOB?W_J8gkS0aR@K~3jn#>J;re1TE+A+pI*&ZiG_T76K zMwGUpnc8?tovpjL`0?0dP)sHOQk={A3YRLTHK!;@PL$SBDk+&nwQ8Jba%K!;_fQblgYCd#S_Xq6U6*Mc zlrSPVv@@|{bhYy?9Y`Jvsk7XC1Z&%PuPK3%xg!PzcgNCT0NL_>u*Y_tg@Goeh zp!x#MroZ}=o`h#53kZeJ_#dc?Gx%|c8VVWwkuqppUf$S&Crnb-OR7@PBL`DQNd|B!)@x5y&~e@}d7W5(}|RBG`6ulYmz zfSt<`PsW2;C@Fcn?^`{TF}xYmi_6*S>`x>actqc~5FzyPp3(Cx#R|tKQ_a z&!=687|bp!+&_aEF`aI*wXxZM2d(k)1&3_oryVV-W3d}x9(xP7^Fh?bDcg;!1>PTW zgMnm9!S~mI(o|2}_E=P6dy$>z6;{kHyT$YPUG68!`ix;pOU;gakTGv$!4&D7e*%cl zI(Dj1#%yE4G$!HW$ocWBrGyzAE#{Y@O5k{~Lh5zIh5qd0(R6Eji|KZbrI>-@y~VZn zpr;4M9VGp##ts6|{>qQzUae57|H);N?uEm{*gXUFnJ=wg-hu|`;B(=o7N3I5ZycOX zU3%%|7GyUNyD`j0c1ou5GA#LeDYdLW5qUR4W;8`XM znHvh()WHpWP!OCp=k)rWJ!ka{8+s-+2IP+##9){1sn#R)0GnrN(Qt4a@>`ix?^XE5 zKR^udI8dK@hx2SW8%A0kHNsE{sXnmezE1i>WMjnVpdGy5T{8p}%`>P>*tql`8zToH z!It7bgh~XB6s7C&8o8KYJV(KJCUpe)pVW9R_xGTFtPO*nrxqRsJif0=Kp;hiwK`lG zB`8bMP_9gZP1v04`-PfR7;qTwSk>b)WY+UKN zsg4{7nE0&V@CXdN$yfi3T>_DC)c`NP z8aemOg#WoF`g9h$tgS;2OHg|*92PU8qoNjm%F0~!$PDUqax*_?@% z^JIqUR&dvw(D-WL&=VA_q z574Dp9m+25CMPB$OiU`GEjAA}JOZ5(E6d#m2Chd)E%wjQOy2H^ricvI2&qUgu22Nb z3iyGqDim_dL_8o7F{`}X!_ua;QcGbU!W=BXe4n==&T!+RQ8Pj!tbZ9C21d+&(Ibtj z8IhNdvZXR$XJgH-L1L~FHM{ytV(K%cdRfAgK{&lNkXCycmN}?gqZ*mG;B#nqW~PV{ zO8hZiL>mn46`3>E>8W={0G?9GpQ%G2hSXHMcyPQ{(6f&%!WdrMH?<%L+zvK1kIGKp%aT5#{Z5@ z+T|EtLGw>EGV7nUhpIa0{nd=Oe@?B9KA`9Zi`0dcdyJ`7Hx%-Ky4|GIdcQPCcm(7`~9k3xP$play?ndvi&7A-r`C{u`f5X zMs$KM^_*MruNFN2fk&i&%#9bH$W{3SDYg!pZ!M3x&LrJE7M4-Cp_@Esz7HS73YJQ5 z04ABWEVCQnKYe@FqzzBk{Sf&|QIZZ7L~23DZlqm9@xWuzA}X%se-@~A;IO1`oWt2J zzMt%wC8zdQX8DN<)6zyKVnYLh zYPdqdn7l}gle5b)ACTf5^c#h!$L_gKWnX<=01k#tn^hQ0{t#DKo8&pv-8~*YGAWQW z_305USHb-~kI%im<#^&&JzTq<)v{Kd2N6@eRgDf$$=oZaWe+|+6|7K^NhWkbMMjw) z04-_?ep|P_U+d{^AlBt;;EDBSe7#`0 zTY&;6iYHVWlmjPfTsoFr8h0?Byi{uNvOD@4c!Z72K4Ut~TQ*6x00&+= zi?RQ}@czW) zSnxRX`tpUNpoV%$|Cu@&=s;8mrd{^({rAJ?f?m5vO+CX;uw+tA6z|HtG_!oqhrn}x zcY6!8O{b~o>y5$1754T<9uV(W5VYr7s4I1*RVjeCPo;rK$m`>~lXoymf*hGwZ?I~f zr5P4#B%8sd+8>({m$;XD?|W8;|GoQ}R2 zaqUqXvX}FOHWV#=~@fJ2H5PJR)v$2lJ3DHqQy`QU~Do5(VWQiru%B2gXsz-bB=Hh;58pFlvt8Msg>COI$r1}7JM?)QIa$v@N4%tn#J3r>&avP4 z`e1UhV@%!d?XqL~e5uV)MuTm2x(qVD`ybF!Pj30vv8+Iy;N4Da7qBcYl(XJ7dPrlu3FI4-4@_pSumUJgov$J@L|35}FSfyBcO7JHJi8pt8Q9o!8Vv28tS z*?pphI!;;X)Nx+@*`p09rMx%a5vi%EN#j=x?h1R(G9Hzk2o?Gzb-Mj%8#u7TK!!LD z{>A|l_OqWDBKM(>W7qw)u8XZyvY9Zi@`~U}K}ORh)rQQ6CkYZX)V;DNta(~h*Hp5M z-x7L*R#wXJ>uraOOTCEU7-67E+lb5adZWIIX~H0%rQ^4Ux2*ZJ&X~MRivDJF5+7PU z)g&Dur(bh|yBy!mcg>EgQKgr&jI|$bOWy$AsBa%t9C55CA7z@`z5i0}e#wf54@E_yv5;QU$eogr`<}@J1GaQQ4HD%Nb~jHa zgm_yLB?H?m)N?lmSTJ!iz?hvEoko>u7>JoMj(yYdVP*JA;FY@RryM~Y?szMW zmJ$7W4$Tx~Glo_XE_(a7T)$0vDDQh05xYeN(?vIEf5pnt;FAQrFKUd9TTm2~uz|41 zkkoHHy;{75A;Gs6Uj3}VV%p3KAYFQh+&0;LI&PFvP%+V`C94#2VJc&cU4A(L8f;G= z;nM3R-XCu)w6X{xh)vMT^#Oc`6(jz8KvY+Vj4|$ozV(8d3UoG%oZ9uec(ExH>e^r5 z+iT4FCp9R9s-*mip;;vjnOa6C zi%W$5IDY&7Jqexm`9AHLL<+@t%bai~>GB|BPm?7Fc50DG{)TJBl7`gg7^PQs-FGmQ z1bz@#@MPPo`U~A#gKz5d<44#Ndrhm=^iAj#LyKP>wWsSTr(JH9Tt7}@@&nz{EVWBM8~b80CUDvx!lO9Czp(la*YD#f4ks`#nKwlp@hnrtq#3V1 zP+pn-C4bO!*0aAdynf<-okcO5XCEV#NoQQ_hlgP{)c@RHCbB>2Fo6)<(me?Y=f)*` z2du>Rjm+wO>d{@vnuEAk)n!s|Ao0(L$Ee!N^dNU*k5B&iZBY(u82iSYB|O8xvy}_g z#Vs~J=kLHyQ{nlzL#cM?nHO|*bgNl?!`8n#8C0B}-bh}kz3^JCU_!Ye^Yrs_CH!$_ ze%IN~I{84dxTKaT@g|8B*a(>=BtnC3dgpLfX78M*gpUhc8u$7nJV-|0!hi@#NJu!o z)}_N70}UM$6eR`VARZ5N%M>TxwGb8m%IrLWbJXb+02)=Q&w>8tU5!j2*oqNzOcH(j z9>Om;HvM?m`)Jm>yZie3k_NRd?M#%O$x{dw_qv*d={$~tl~ECxZ%W(fCPcOSAO>&& z_?gzNm5Ch_rLRf~zNT-WE%Yt{;Fvscy3{F9~?LQDOhrh81N zHYiiG7l{nuf1jUknshFE4U;2w;yll3Wroc@i}nx|FZ|NVMW|-q>0gDxmHIW!La^U| zV`Ibirk>sbwb6XJO}J`-*ybCUCfse1&y@Y45K5^Zc?k{RySMkAUzz?7l&R|1n_9Jt zD{V<1?%}h2b$b0!!C_BX}B&6E868bYV9vbCYTyF3H`_&hAv;NaQCQtWJSg zNHJVYA!_6KDk>PI@$*@Jm;wS61U*(vuWo1I+&2xK8&-ePW2OJL^$WXHP_3kuJab8s zoQum_J%{!=wMRuYy0&^bMKwkhZi~qv8|{$~80r-q!@#I83Z|<&B4A^C>2d@1o6i?^ z6bofDElGet@3)CC0k6fW{0E-yF6@Gj#EcfgnyNx>5|N?Aw&8p53wpe)_{6aIcHF?b zPh8I?Mr#=wW7%_xe0Yw9w4fXme2mFu#m|kbX zi;u)Tr=(uidpeB}9UN@C%y~-LKjpI*9QTR#jHtOW9z} zwu7hVj;8~}6Vz}OJ#Cz);^>ok3@2wSFS{5?zv4Xd)v;Fb17879cQrSX+ju3ZNkAb z&$5v_Zf^GPdYwx>)S?KjUP^q=qFSKpRB2eo{pgHQikJ1ZsUX7o66vTgxA_mXTx2ux zvg~^;icafJF!&nm3;T*E)`>QbIdUPGt{+ClDxs#`aa=T|p9--~k+B20Kb1hSl5!35 zPq=7h5I;(qV7ru+^s6uBdCT?kQ{m7P5t*^lqTRkYTm$@Kdo`u{KeU-C6A%bq2kind: %d\n", value->kind); + PyObject *op = value->v.Constant.value; + printf("value->v.Constant.value: %s\n", PyUnicode_AsUTF8(op->ob_type->tp_repr(op))); +} + +void pr_asdl_seq(asdl_seq* target) +{ + printf("target->size: %llu\n", target->size); + for (size_t i = 0; i < target->size; ++i) + { + pr_expr_ty((expr_ty)target->elements[i]); + } + +} + +void pr_ast(stmt_ty s) +{ + printf("in pr_ast, kind: %d\n", s->kind); + switch (s->kind) + { + case Assign_kind: + pr_asdl_seq(s->v.Assign.targets); + pr_expr_ty(s->v.Assign.value); + default: + printf("unknown kind\n"); + + } +} diff --git a/Interpreter/compile2/pythonrun.png b/Interpreter/compile2/pythonrun.png new file mode 100644 index 0000000000000000000000000000000000000000..5cf15fdf7bfd6a42246356ac8ffbbdbaceb810cd GIT binary patch literal 63445 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±w)X)RBedo%hLlnUQ4B+e1*#|zn41$=fJ&Ti`=)N)-qUI50 z$USgJW&;0qhYXu2!mUBfDGuD<0FSPw1pbQnYO%;L5`^?mwHiT9FfbVsjeyY!1MA)b zcB{ON+@bqf5@o1^z$Z&IY@RKRovrl!kS+7Y*Wo($#KU9*#l>_Y&k8v(6m=T%gGVh- z=?~u_wq`hSdJ7RHTrb{6LA35O)5t^0r2`=+=<>rycxp;lFz83ya_O{I@aPON;Cp2W zMoi`wk7RlZ5G5rsj0NndY_C-YK%HPj8?_?9ZQOBdbM%dT?bJYJ`!!3B@1f$A6DcVv z_w(-^iS3yFCp$BTpm2@YZu-&#E4uA}bLEl2Ynxiua`;&`oY!qjV{^PD>3DOj=!aO8 zAlHph|8D20-`Vk)s>R1()EZECk&XE^=RBcD*F4NvG<|xN zG`4vxT3=u9@=~yU#6@H{^TYF{PxkjzvVNQ8Z9MeI+VG+bGx;F(`0*FkFVq9Wz$KPd zbM2rw?YV+CX*`r>Z~3&SZIw|vD~D!m-j$n!y0d|N*qoc&>(Kn^vkZ&XMCAtwZGIPg z-i$5R=iAQRq}qKwl#X_BA0K;vEl{las>C`|dAc?6jzK$NQn#Y*+{Wwjpf_`uwpS&c zQxZ?~c;s1}{qF6<-Ztb7W%1_vy~xoZk1W31H@B(&!vPMC&M;iorZ`iT!FCnr3xUmo zq}3VAoRmhF4Xo>SDm`W>&Kv<%Z-z;<*ZqNlB*bT)o%=d>#ca@8cUx4KTh78_?HSmVOpq+?`A(ihb6wR> zrV~?wk}8Aveq&%`MYCpgG*z#c=*@hX4BJNf`xq`}Lh{OFZyY1Xm!ig_F}wj~!h0=G zKyA)!nd9f41UW%o5JgYtYx}q?vz)@p53}57t-F_P4_g=sITilYuE3Oril)}3W0%!> zZ@@VTnVjbJ+G{;UbR0eiQ|JJ(ylR=U;dM6|(HaaFXe-(7J!&bEF|V7Py%w>$i_&Z) zlZ_Yr{VdhD(=*#67-4e-$B2C!SRcwT%oyZJ1eVQP6Fpt}kfJ1ZCTiw`(~44C)>L|+ zr1OK8eJQ>EroFa{Rj^ZKIj5|ZEv9P(DV1Sh*T;YN(gq}BKlmU4#|gNYTigk-Do#WK zQiuDU_}Hmq4sB=8&bEziSmH!a(%G7KYHEhXF8XME9$v-m>7!gswO=!Win;z0Y~3L! zUuV|Fr11o0N=r+3ek1R%gE``hT5E6kJq0+zy<+KMi+ZD~TQFkgL z*P(Xj$D1emY`7ft;|RX%PJHo}Hi+JnCwHfe0$MLYkhy1^fs0?-7yiZhp1_rON{ubf z9JeV0?IH0SUmtz5DMeTHRcxIngU<~Xy|>F7R9CH&9`hwQwqI$*ik|3XD*K)s^wJJQ zu~t~EEZSDK>i+Vn$Qx363a&m?b}81$h%Gd;N2=w&3e_LA?HLh=Emm6yMc z9u^ty6yK@f@5#DL&l=TtcdSUYeHmPWu0$!C18%OrHM?z-S(Q)8N;a34+5~c~iz>Y7>37{Ll+u8}wzv}MMyf%9Jv@vHz;J5sC4gH}9;Zt3iwtjPNd5^7eOz~SI z9I2|Od_9jy65iEKIzBVI$wXj@n`;p#Ph#D;VKe}4Qa(R3xUI49@QRsKelaEKl$yJjQIZkB|?ePtYS>J zeRRYv$im1B$9V~6)>AmPIl%NNeP6bpLjg|$!o@W54Du}6dOx$4Sxl*fJ@dRJ!A6Hd z+;_i|lz;A|G*I&4bK+h@*7<#p8H+otn!A!q=c=l?e4Udz(x%JLX`_j2tcZaQ+axtK&+MTNU>!Sak9}${!g6FY9<2)yZtAP6A4GGl(~Epx@uFE>4d%poUs+OeHgxKzvt15gsas$WXDF7DoC7*|Hco_j7{04k5q--^BD`2t3>nMA7vYgUXpZ~Q=4mZGvq631t)`2|4bCUw&~M1F!+XT z(Bw*9nk>YJ5&ZcwXR2ZwPhIJ?L$sg`IN534H@~hy31@U{TO9}YVsPT1N-DWuplmlr zRWAn1O17T1`I4LUz|68AgPPs^rrUDgQV(nTe7n-|9YcI^PQdkymQ$?YI_#-^{lpF~ z0XNzx@O4_d6w96I>O*kKY7dDVJ@ToQ3vtbz4Xu>CHS&s>bKaQl-n2_t809{I>5ST$ z%IPN0AZU@nw{j(=8fKnRvKs54eKA4{_05|_U3y7Ts$AS+vQXUBx*vQM{@%X$QC?!G zps9cHY#!nl$o>OJ=oFxw2CXtno`a|T{jbWb z@^T_r3&>LX0B+i(h$1bfR_*<3LVKIlkf0AhvV%Q71MKg0tV7jg?N|E}v|Qm{1e{s; z*H${*-v9(_$JWOhipibboI`jqs>VD>TJ<(v5`G|P8a2CFl;c1y(a}MM@K}yy`b=S4 zW)inM-{^AnOTF*ZkgGQt(IK-cO32ldu0mfEh1mM#D&%L<5PbBOYyDaIFDp>*sVh-a zL4&TQlmMn!90;nyJGD7EjPzG^lbybcHyow9k_7VsaW>&cTN=C)MQs@#eShZL*DjP0g5=E9+IUB?Zt1xBS3(qK63 zr`N(O`url*oHmM5n;14png|w>^NP~aExYJ5!K8j1S1QX75oK@c7nqn*ZDY9J*_7i4 z2SzF=+4>QR(LS__Ujz}y6b%1?p2yvjRa|e#YPlfLrjEkXvy)dJdmW^|A=$)R%-+D5Hy%3UvP z$XJy5=buZz$=uHY(52qf!E(e>3;X-|uRSlf^!;0koASQ$+Kk_4HU4q;l=*QNYF-#j zssn50c0<7+=QV(}El_b%_(TeBJ?-ZGeRI8dQ)?QqUvm20N^s6{)5%LDiXQ*C11G!19rcpxY{Y4;nqn{;C5`7we;MTajGWg5nG zr&f>sLJ&46EV^eGy&}UQJGl^xoHogclKlMTAvnhMdz!28K$HGzqvLu|DXn#KUMkwQ zJ_6abv?qOQrq=RwbD{NuT&YAe-_ITwGd%();w02!1ATN(o7v3}7Pj)FWc=}{K=#J& z+hidyZ%i#ji$gAuO z&5PAgY@^6a!=}x`qYTHNzcy~40+%d1*63oj{2J+&rjPdP=AaflGu8P|!2;vYp z?xQ2Ee`x_a?p^Am_yjC{deK@9eUH@Pu|oTIl2?K zZFp&Qz=Nmx-`0!K%XbWED`{G+IVVJEwFTy3rC&&d>|Nl$?9&6uB_#&+qQ|uk+6aZ5 zBt+BHf?7cho$2(@cKiL zSvvyxWY>&!Jy0A?61$V0FI4=FROn6;osY?sb?q6AVYFs+WDhkGsvL2A8mk(qOnF>? zs9o@C{60j*QBEp$HBlt<`3#Sq_QXe#ZcoRj5t8V}N|Ds~S%r=Zc_r@tlZe6eqfhPr zIsOiBGbm{6yYaq;V9`LiW_|GlKXFr;7cirQ=$kwx_LJP&$G_D_R_d4DDNpNX&YGCM zopXK6q^J3kZ@~1)F{X6h_wn}1iwSWqna+a zovL{MeF7#)pr1vW_)TW@S>gDwB*Az)bm;V|Glpx<6qAec!n86k0y+q*OZ(DE(OJ@yyonQ?iPwaL8B|pB8ewB z**r{d$WM|bv(ySh0wts23XS#?n%eb8ogudf?niKEA6^a^U7Mz9ykXQ9DF{3>4j?@V zp-U_Nktf+vH4kgmf^tV3?C*CcV(7RGsyT&J(J^^qkyJ0e`sfxMMO|v%hh0HENPhMy zr_gSf*?4A6T!d7B6C*h8jn}hNJrmU_e%)<*P}nMHz{2<=`X109)<=|CN0Za+-T{Y! z$gs4RchUTnaReQ!aomzM0GN%Ey)&z~p2 zC0^*FZYgYfZc<{cU#p|aZp(|N)YwzB*RlsDQW&wOc2W6uJr#b$YFr%u!bAXTt~(jg z9@+N|yz6Amzr?SO^6o@r&(>^^yhLMbbVr)-G_o(Y2i7H|%IqdZ0QIC#ih&9}4AQ~Y zQRW^?g=kr2P2;p~Wc$owA-MRZv+z+u)JVSWGu$iSXkY5d;-GzToECs{E{|FqpVm!} z*Yb;2^Gz59-^Pkd%T_)wW$KoejtQ#XmG0LtKcC{VwV!S;&pUkgz4jJb?`%>+&>BMu z@?T9Q@}Kbc;NY`=S5&}o9Ix77_uk?;r|?|%wvN%i^QnRaqSg07py%|;Aco7*ww#~! zIIAaid#q^qYpeG!UFH-ezZVc+x+|~j@W)p=Hl1?U=VX{V1kl?c3_g^t2n?*YQ;V|- zCv6O7)J`TdKY4bC+mN_d1Bc?FRgA09m4U6Dv%FpHvoEiBEIucnDHGiJ$@=p7_EhDf zGk^^D^6RtPpjZ29L<$c9;z#-R4&`XIIJ&Zw{U|3M3*#B?MEbnwBYQ$+dGfnNRZ<0Y zI`@i+^0&gUm{awU)uW!1&yT!trR&njx26u3D3p|8ODm&KM!IX*Pec|^Jurg5uU#Iw zpq5p)i4J$NvZ7g)D>o}vPWK;(08}s$$XZgMww=zEDquB|D+bDZ z>AJ~)79NI5@x{~O!M5Y%0cUpOFHaP6=aHB`yIFJ^)Kn?A70UKj07izy=j) z^ezBmJB8m*1Ef?*_12y#HsnIMP+o?Eoc*epDhP?yeom5DMlBN=`&4`sfJz#fObRUh zwD9Fez)jSl2Qgr$U-8n~t;xc1I(eyk$xWj(N|Qfjewg_jEdh!LM9KIEZtTpZKSV|* zkwRHuJ+my{qzzPLcn;iPhG0A@wpYFH7WC|)f0h5Rfw%Hi=OplWOlvUg(sp!D!;@Bjyc%Hc6l zkV%s#!;wiy9yJ`m)Z1#Cu~X&-Q@h&&LusgT-A4QR@cT4>Wp@MtV41%+?vE0BXQv^Q zG%3tvO1e3Ee{7q;XtI?GX%rsfsKovmKerROpj)~|uSGu}$)iF9 z&x#=SU!DxCTUjm;(qP`=>B>s{+~9rqiU1GA7GEN_*`t`rS^KrT8R|b)1N(`TeKqH8 zbP%EpA7yJQ?JmfWMqjjhHvU24F&Uz6p|YuOvJLlts1WXQ%DOm0WwX3VOH(RDtO*Ls zJ^n)rNI+hKJvk_~@_@`(^p()p_}>0Fh!vbG-;CaW>+fDF|;zXu_Yyc7 zcz5zAv+*rLlqolZUME*P!Z!clH1t37OVA^S&X_!WoxI&NM%DWilLwO`192K~rV zKE~?vmotP1c@lz{IBRoUe(`FQMCn%M{^&jhRznR#N2`xT1|J%*=}0P6$v^z1%zcdD z#JCjfSjc2*8euPekSua`N#xE*@IaLw$nLTm0|dGS<8yRJmY_=k&=FaX@piTXJaYAC z^Bx)oAbik~3(E~u@Az#1RG5B*7>ff_;rfl&oXO@8D|!!R-ge0DeM7M?1gL$tuZ zEm9t!DMJo`W50BCfRTd_Um}AmjaW_wVgd4xR;snx2-28H#z^J6AR8bqz`j|Nula)A zRziM4sc9z@DntN$3tfq?2oRDZrob>{cg@kk_W;+p;`V1dULa$6C`uk|-9xapo`FB4 zC>9f7b+Sm~K%{}UU2y>%9f;WKg<}}9{(#Z|b;`&RSdVV{p{o%4Ui*!|A4lv;Um(iu z0{J+aFDF?64^)01<=n6V7}~jZqhU1=+;|4=82QpwY&R5S@`>}~NS^^@qtJ1&jh%)P zN9_E^-Lv&fM{@uXqyh0x`@~|~4d4U-@aAh8P-Jm)eP!|5ZL%cJ2k;Nvwv%i#=1Gq! zvIYQ@W-(i5&DY>;%~%@fcIX!{7a<7?%V=t9`VPcGXN9l_AVjlNiuOtXmZ~>+_9A=5 zYoQC=m>qbWmb+-NMT;6&Ku+Yu=_IwWu`#s%spAi*x<9#qY#pPW&+=V)L*i?Xg_)D& zeslA~)&816?twnWH2tpyY^ymhkBS~;(Eqj=N74b{a#qjT6s9_*I{~Z4Pp0!si z)0o8f`trhQW_PN~{UolZ3BH-diE0`8pIK~9ywe`-Y(40qbOzcLB@2r}KnckM%0v&W zH3cB&+I)+?NBI{qDl&!~t;dKAAvYU8yaU$iKk}NrmLu~Si?kGZ8m}(@*mnMLAPl;z zZQz#D0s!={05!-rI|qhb1892^K>l-oh+&CVlYqk60l(Mj8O)64bI+(E^BTF?GvQbl z9XGdMOpm((Y{5l;m@;|JNVRcsT?UMJopkTTxjq10UrDb5HuUuI*qXNWi&+$Rv~Ap^$$Vu(1kE$IN3nlw3P3);vl`A$*#1 zb6F&Eu~U0EZ59X2m5L2x*gYB+chn$JA~J3Ow23-6scpc`k|HUVJWehE<| zrJC{00hcSZ>|3-!lB@g8Y{LNUDk(0ms+Jn0)4(QUizmD*_YhQgfmZ;Ms24y*a&p8dl9cizb#(ep-K2lyegL-B5&sIjoSvXzsWW^IfOsvalE#i-i-Ru# zqml?h!!TCluhmiKR_1%GcI3wGXHvjA{r(|7DTVxp_@ z(spZTnn^%uC9yu7!@*i!mzYw8%Qr1?4I&Ez>H>DWW>VMo=~72d@sD}HRU8J~oCdfL zAt@fVkTgSY#cb~_<}(18*-cotU!BxmvLK${ekIFaZ75SBqTkcXB(- z3k+bVh)}&Ov^{PI@co=i$88)sdn*F@!A+olOcuY|RCPWcl^+0flfC%6ckhybw9s(D z|HA&ML*p9TDd2)skUCOTk%Lf+Xp6blli7h94o$#m4rpb_F&8>;_8gDv8c}>1IK8s{ z#CZv5l@=o2nruOrb&DrOD&?JL05f}{^qQXj zTM8oQ?bzlDK$w|Uc!rO9SPTDC4u&+r72rF!%m%%B(oa(mozYxBPW#~)LkE5VcaIC} zuZ_OS?q5{{4n{As?+*v_QTF)py(GaVFm(Vi;qlA0vDO$aV%b%e@?V)V(>HIEKjBm8 z7l^YK4&euXNA+F5xK=QGR35RzL4R9zweZnB7g>Az-L$qnTD$1YcgecnV6~N8>l(dI zRpKUg1W+?4e|N)5>vI0jH0`kntV?%wC2O-mH{ET1il&CD9ouNh2UKQ*9{@gj1_1oF z`x9<`{))N!f6{sh;0^g@=Gm%;G58M++-JJ6rkl2xEsOe)DpSWgJs>1Cg@lPp$HOp2 z00_NcTxfoCb^88m?Knbtrto73o>1RHy!viO%<0)ij-xZaZbhI8GY(O>XZ0o8W@ilL z1QSLlNYK`f=Rhp`%5{74F<`H)-gyhq5d8w@!T|4-zFBXmnuHkqDO1+-;IgVuSV%Fe z9#<3a7K;>3t?K2V1GR*YGy;8-D#E+wh4^ghFQfthmbGOH5G8wX%^+o?lQONci!d97 zd;S(WN4vdKczXlD(_gR_kYsjmV6LI-sO&FDdge90_~pnt<|7rsH4;|IyYjJhK8Fq; zme7O)*l+>REh|c0gz_to=@jm_Lv0KC0)9cSQh9N_Sfn&V18mvMYhe$6a9C|{XAJ%T zC(ED&>LBb$4)~CYjF7g5hKN~oE_&P|Pv`+{6@d;0^ zAJ%E#*Y1Fe6c?Kelh1-;#cnw6q=5Hft1n83Ox}4&SYeHQ!%WY@Z#tT@fxr(3Z~l-h z1rXDaLdib3IS%9n8j3V3E`6d-Huz+)RBXqY{|9c(u7)cTeY#8-J7J6zJ8 zUl~gSKA=a2?wuav ztOo%1+?7gr>L=&GK^%#&c>%`=^T`gccM}Dw{RuTqTXW1q35~oF4}gYSnhg#E1~PX= zpi|bIy8M^eDDU#cb$w5|X8k0(WQPnxVSO7$4nD=hzP<61F=C)93sECCQyJH-Bz>JJ z`Y$GBf!oLT#fI0|od^0lf}k#RbguLnK3aI9BnpH<_M_GRCQ{Ja6@SbAz3a0-a%C_s z?#MM^#=LOfw;bPpNZAEdc0vlHTb-8gEvWs%Q8q>r%jI&C6@ZG<_yi|YmnKDB9v>mn zbA1GqaE@rlON;|mb9+SnPzks-QhuVuy zZi}BG=BkwKx9wTY|sFJ zXNtan@iK+HO{P#YFu1xc=3#JWAmIW{vZ`pqOFXjAU3dFcR-2=m61#*fYrswVhF3hb zM(z%=K(UafhQ>TORPri`>M2TRqFH1L%JHb!>cx37Y!geH;%sMml2%m(k!wtB%=PtwlHO{srBaw}insEjz!9GGax+6x+cCxYJ^U_Cc4uoXRhyHw)z!J4 zfsO)OnTeDzDBCG>pFYZwU;Dl0G-mH*A_z*J4~^+qRv-w*R)mcy0dzXlQBSL5!RW(t z6Gyh7XNA_ph2!>;1ixq6+ap*KxYoaN;-G_b=f}=e=C{y2uWVAz2>3~ib$MK0Lh(@w zLi1^(zDzOTAv8PY(J6cv19W5-u!6r=*s%fXC*zjA}_#G^0);6Tn;YIZ<`p9>~<$>OxRJQB$P)uwo@;v795@ zs)n&H1`d0N41%HJBI+0!oo!5PGx?_BVrm~l;HG1O6fAb0#wbKMjh!3C(0?xqictTx zsCLJGJe0-KIE+zCqrC%j3WINc<;DrG)FfVI@XiFcK7agU-`H?WrEjw~_&U-@&kgRR zurN@miezWsrF#?2TIi1#Y}|R@eeo2Z zzsK$+W0&2|%hoV@B2KeGMC^))Wpv3`-GH3(nwZ`XGlesZfNNPO7p$?W^@=n$Y_ zc=9hk1fHVw#nr&Wqi}pweWGf7is6DONB}AA+@@*5#6BQf>WFCAr6sV@O{&5O6BspRnhZLYzV$zir6Vxfq;<%JU)h1Lf9}{V^tz>?onI4?B-x$P-Uk5mn_0dx1$OAT{E{{86?TZyA z%t)T9ILyR|90qzoytRt+TitaaVO2|4&su#>8&J6;_^rs!+lay|2`Gb&?70kRZF!Wm`{ahPcz*0h=DEC6w*VIfQ;w$!~dMNLiT8+KWw zZF>Q>(d2pcZ9Gw};Cjy6>y$ktX8(ciq=8q>tA>=5Ez>(Y92-)(@p}*ksQhXw8|Bt7 z?2_vs-P2)r60FTgDwQnCtU3U?Y3%O$@P6SRdj6?tr%^tGs@pY{Z2^ zxI#5YOc|(DZ41HjN%^kte9hVLnjViU~WkOez$OE!Owk^XTHUoh%asJz*K`P^YD~8jSb;SLf_gz*QdT zZf`1&;Nvp}$soO2-Mbn{7YG*iCdhDCjKwwlJKu3S^ZUP-Wur3d$M{Z%DpD4-Ma8$1 zrfmBU^#R22OGUIwIHRXm)IcC=_nKe3g97{Gkw{C8Y2c){LS&~o5;^4p0JiNLbK_dx zlkL@Ou?{|pSDne^C_6`;hs=CacXSV;J4xo0JJhPTK((IYxm?-QZ{idmNU8Y%~cH$6(OvNMAi< z0R0H5N+nJ`=}x-awCgLRM66(?I)x!0|6=UP5#S+ZjA!hf0QTDL zwDJ@f9K0yPF?Ii?1z3{>n5yBKl5ZVJRaa3u@m~&tfDiz@Av(y$0~TtWu)hR>3>btF zGT@NO^!<(8Gl!_T#Z{=)v8xBWy{t_3UGvJ@S{2l=afMJ$GcgK9Jo-3mk{l5$W z5qQMZV%O9SbNwmmWr3lqGe~Of%>b}*$zc}t8zA5ZKsG$68z6k1nsvfKJKU=pgiqUo zjGv)Oj=cF6Vt(td*%(HmfCb7ik_<>yJC0h=lM&%-r^eCbh4nND-(iuYe|F-Z9s$?B z2>q#VV9}P&d<#G*3djOHFTv+ukz>Vsf^F(5`rv!-$Ay?7Pjw$R18B$)J2NZzJJY|w z>(q1r_1~3UWoYxy@5-GK{mUgZBLmV03nn4c;bt)9MD~+%mg!74Wb(`rke@b-L-+jbH_NCBN(|^CXzM>B)4|90mn1s{+PP~L3@{WsY5eptSo&-`B$jF$K zg^pRr10qbADX#$UfiEDCpGbUgaW4oD$wUMteknmRl*n$cZj2ceun!=ScvAo2OO}9B zyr^AH0FU$-tnJ|Nk2n3R;|9=z_l;2vZf9>$=O&+XVFXWM2?e2p_HkDMupS8F8bE-b zkv-c1=2I007OlS~lK?FF(C1{lb@8s_WSLh6?D@?XUvCx&6U(j^9bf7fSyk^MBX{Yp0w>>cMPLy^ga?$F>9j;(uG` zJ;lBLcTam5MFsXM`qUHKhD+NA@An?_%@mloo7KvYR;je@IZ}S1!|8lvU|_Hhkbp}B z4i9LtQYjic9iN;WVqd?M8a@zlTn3EA`wRi6<+vBwWAjeg8}>j$i^a>!Tlvs~O&nyf z2yw7ID1zQszoyoJ#ylPX%+oYi;PD24hM(=~{MR2ORLE^>+=^q$z~i+q(18Bp54e0q z9r4lV=3E=u8Qtxa1)#RoO1;wOaiRCECVNL~Z| zu(o_Zd+=_V9b*%gl$O?nFKHvn0ifEjI2qr}zu+m26xkyi!2uG~2ReFLLF0+@&&G|< zfUj}r6Rp$z3nZiC?nwb()=orCyCM<| zTnY&|r`&u5VtG1YM{4dguagnkT+bR-1j047wQmkM-k`y~vpu3Cd<*OSF=;Q_#6iDO z#Z7@?(%bq_uO}PlZS9R*>krF+(Xf-h`M)P2uoU3X9nf{3f^09owla&RLW;!!0@x1# zlc|EhJQgIxJVl$NQiRHHG+*|9*5=(GyQRu>z^ws$RB#NchkkUMCGs;fVAkOV`f(yf zh&HD<=w>O*&;KNs-fzBI`mQ1o6`Kr$p@0!dWZcTGQD1WhQ|Fp@D)EfW+kqLC4I^0AU&||-Uy6Bx6(e{h zGivys?vV3pK9c{SD3T4Nd;f!?*ulqNJY_a!NBQic2!Do*Acg`ulul~`ZnnEi>#;2I z8bN_sOLD%m)F@Nmox<0_W-O9x%4lhhLLLf@6*36hIEFcWzqdYl*b8ffKZ$f+2oJxF-iE-nKPJf zlJ>g;D6oTp8~*;7M+!%k^+b`X+Q0d*;20Z3FvbqA0#wvUZEZF16@q=#*za+Hd& zuoG`@;Q2c@A!C4?G~mepaIXV0|NI&SoeEyDJ=-F+N+4drQ`H7qxF}lI^Nk7bR?Pf( z<-1i7OoKo-R^cE4~OwQpYLM(J)F+rWJE7(;dxXa zo7o^vdHvqSbu?(2CXZ+jdhYz&9flz_qGq)Ajtr?Cfm+ zZ=hj3P%7Du;o6Aki=sd51B7DbZy@{*i0k>e*dB1|@U00|ciT;t!9Y`!w*%&q&9&}V zIL>K?bMD8D5$xi-xQO9rUG5P#R9RLwKkP(x`3}c+Kj03be%B%p%f1nI+dAealx)`# z`!)yTQJ1Oss@t9sbLFVS?A!T0ymMHo1~|z9nU+%3R*ze zaXYUn%u#l&A^X=r%hu!r^>wUi&?<9Jr>zP3qZBa#fcr{gZxasCO7D-QM4N>gJ z$CqQO;`M%&pg-?qeYRYWUvMRw2aAmJIIge;{Q5v!?dhk+(Sr{OdyN~}4fMD3 zJb~P~#`6E3 z!Wf^SKYRwdA#4DBtjh^hRu zoVzztVFOUgmeE{ykgb~881vc06g#Baw_SE`ufQT?3PwA(0icd{?A%RS|8A#e#zwDn*pIg*W(8IDw&Dz zJ?i+)1T%X;m|y~Ul7J@AURE59JE7}Sv3=r3wbA+LUadT6t(*f2_HDt~BWFN|G&eMy zhys%Ee&IaO7W~u&4KTPe2pRt|-JHW~J( z_+VzGGHehiNLoh~*;@>g%BDd`=obe5$^(KYYQmcTZiJ1GHKL}RGs1+24#9ZVSf(^yQX^(f9s(}pxWcktP$rl6sNK9 zTo4khTE`=BQi6L5^aT+9vw4da+JMW^Ar-RUGtO~KDFeD{#2t=#8F4cEGm$OKf!Fi@(aW=%u_QfWRcp}JONYTOU7U4pp zkiq;~^RsE2um4s)F+0zC97=+;I7i#>d<)c!kTO~OzIeKmSAa+*M3K%(Uksyku)=?l zB_)yLwNB3J0%GU&8X<32j1r6`50_mMP12Y(r4iRfZVd;Q2$!&T9@#LMQCA0);mF<) z5_McY{fhi#Z_(E(M(O3>TdboSpW2Gf9<>0@2pwJ0n16w{4jPH2!;<37bs_lK|G#Yw z8J}zZ9|(=bqWo6{^>pYfwke2-UB;2q}dyfk@)OdS0r(Je`_qz z9;-6{GA4k&m+ft;5cUP#NFEaDdfs0Se2MN`BFpOh;v|AVg02IidZK%jm&Lj z-_dLq3>^nloZ#R!S+<#_dr@t#h^yvf=7FT6E+rQfdqw?yK#lhP)5+GmO5LF5wNyPj z+D4*KEFvg6gq)X+I^QOEiy&3A+Aa*1pQ=fi@IWHAps7p;hC6$;X`X6L( zwAw^BvZg4BMh;UF{qJ>zQ2rME+Y!=EuI5%+T>OCtBlt%2#lip4j*$N;wSl4c1k%vg zdCPMPw5jC*Pu$xuq{8K5KRI9aVu*i;+-mOGX_~6}C+g}FvYVjYvCfoq*8ti6kp+%5 zBNd@d1|Q;ZV-xWwi*3^t^oL!xWOT~d(?;k(@w)dWy=NQQzMF`o6vXhm)3Kb%_&P-`M(a^!^ zVX7D+%*oOB6Y=hUQrC2zwxn$_7pmvWWYystP%7%zXNTRPQKsr`tc5Tr5rKEvzv;#G zc}ESc$xKvK=0$e9wN2wGRn+`NvBMl`qnl`MT-4_?83()1e(JiLHTXg9ji$?bkLT9I zJ^8wd6IGrc9kI#5#^_%vEV9(GDW=3yx|pw>DHiMy>a4qVbiR;Pau1M)I8UD8Dt8s%If ze=C|tl>|jYKvg?v=eB%g(|8ld)@k(Z^sAl-sjMvNa9_6+=E4Ne%ZAq2VMjXGMdf4HrId+lTiz(6{4iI-xs~*B(8(5| zE>sr_A6f)Al*>d8xZ#ne?&yTJGziEz1UQl(R17Y{7Wdx8?JE@L0;Ko?843E($Cx}%U@4hllm%CUBvNlP6uJ@5$AJq#of>C?lnSPyE$xbl76-=Uh>u9UbOvSmu=M-&JGkR+SpI^=nGLYLSELrA&tXtc z=H>JgKq`Z=!^ZDckjZyaAV%>}Vi985{No*iqVfDJWZo1&G2E~*+esqf^@<}**8E<> zejXi#0GU-I;{x%SAWwO@SIOB6PhJXJ#E}X7$R4M4<|E*A(hLvCWH0Neuvxt{fO3wz z934Je?!vBd_tWRwdSFSo{TOQ@x`vY9HJt3|^3kvOM3jsZ<%dK1q9*d*PbrrQ??#}F zpY_4HOO#`=Ydu3E^R`oG(G?CgCEDm#AD5T%nH+4MJ=7YBr!qEOQ#V6n=YR1^<8I4z z1@fT_;~hK$a2Ky=1=Ft!QeDF86*`$NXbM!I^kKpKf1^hX&mS8rk6h>=eXFfFGiHJa^#_E`Aq|Zk_E~B zFJrICF1AfpS_^T30<-J|45I} zeW9QVESu^uzSe3oRnDc~<;Nm$Rl$SlPR)iYw&69FPf{3m+~?=!ijOcC$h(_qe8|N0 zW7ef6y@!p-wyrc@|IkQU>MS2xh;d1^4tR{_Gr?RM!H{^N1M)vB47omOc0DK2ensQm zR1h)W=93Tl1^n6%Bd;VDd(E!KrxL4iG1d3p`tl>TZ^r@xv0kv}~g> z?ilg~^85sc#qVamCXxeUL`K|v54ZqQsXQv%vZMT7JGDJBJ)a6rqF}FtlW}O4s`cS ze!sKVZ_~QxtQ}m!RakdD?ykiiG3-oVoKB>}sT@&y%#_9h7-0f8z-IipWWp6~G$ELi zHdXBFRPr~-dS83~uF85CnaKYEo)`K>k9JpmxzqOmQc7pw@dI(yPnZTpl^uPJtX=jS z{OxvfUz;XH>1{HS5G5cGW?KM2$q#6;SGX-$LxmTw0+K2KQ>e{+{9AOO2f(0?7k{y& z0Fglo@M(|8ZPMqsGipGFbQX!61#q+mz|nT`^U+bbJ<)KqKI)G9NIXv>I6FuiH$(pt zBL~tOm(Fbn75>ZpDwjQx^AsxeqE@R9NVGR*6rX%~qw8Q$jV}qNf%0o4!2tP3(EK07 zNJH!_i(T}-I`6R1+529@oh?6@=(AI)Gu5wIMzXgC7eYfa6=5UFNYZjtke>bX7Qo*js_;28RHB?Ct_P6{XSvqI3Ef^`-?hwv&W?&^J!nufz?P- z8%Ylfm=ZFb;MD&g2AIxwGs(`6&Pe{>{uwx>dHMf^h)p6PV&}rWL{yO`g>Gr*XO9Mk z4iyGAC~tXQcSApijuai^CA28%b2JRVwlwJA1tKd?IL?X|+$geeqnx#$l{LTo>G-xK zE|>NQT)XW{Iec(w3>x72eD8ETOK%hgq|x|exlVN89DE74@ar@xXeJ`Uy@n^|)c#0- z7|JDClhdBOku2C7WzrbB=8~ZIuJn-LxY*1kqEqDWnWrmkmgfi60Altn@hYbZ0(h!YVTW`FMPP9TAHsz9ET;BIbvT~(y@69mFu5W=8Q&Jop#KTVfQyY~0V#b~dKu-4DI=lX*G z|N0UWnV7%IssYEU5gsm%Zd(bsu;<*-(`SR_({PLO@>Cc4Uz$*O#E6f?0i|+*MEY;E zn19;;BU)^+dJzkBzlmTVXpjqmZHqdvRCpWjY+Rt$HT8A|7favs^H(IkJ^1pdv(=vQ6?iT`z7Qto zsmcnVt1Ef$+ts#v1SZUprYegA5eT=kUpK9i(qo-ees-C-g zuYX_XQaCn!RkTRDGG)ZG0M-YC3ZLKH6gIL9rNiDqTBq^&w+6Cf9rHUFUwg{E8D!r5 z7Esb&@G3C*Bx%03ooS2wT;+JP7NFT&NK1O!HxGo`Idibzprj;^_hu;qNiA6c9(7G^ zH@z5pe`aRJY7DG5wh&H|0Dh9L{!42Dpse#pb-(6y7wI z3^NaKFneM#@ljD<)tj8Yu38$60Qm1O=EA_23+nugBwJP;0|N;(!%}xUW64s(%E9qi zfj(bi)P}2Q*sLVaR4KZ6`_1*3o4UF)w6wG`3tp2=dHpdni?n6u>_SE7WdrkxFzeH; z3~x$&;0#=WSL}tvqG1amMXWam2LcE*J*9C1EMSxk8(MDfRxI$0KF&Ur{jxh4PQ!a9 zH++9aaWZ4T&U6k2HW{DAN4he=IPtUbye4gvZ`}!3Qdt_((;|}#o`99O|M9-PHWo>4 zeQu-=WWvoOX}#LNjHT~tlsGyfGN$sio1HF*1;;ym)FbITVLmjuI0-RvI>e@6sMCwx zW5973(e=f6sq@8)VC)fG^s(4#-d(g`x-zy7gNV<5Hue@+hq}Rn#Q{ov(n1?afbw~2 z|ILn?145FV&&C~;g%qaeJ(e+3hX_lAc*}s-B<@gdCtE4IY39Z4fCmG%bQ9j*V`Tr5 zyV|)I6yIowICEd0r!c|*a}eaRuHpwKBtkwJhc615kd%`;bza{?+qOA*8SvP-PzE!H z_3ArnKAMu#xMPr`6zp&2yM4oJ;kmsH*m87rbvX!F?gx;b5#!2dLN~-njH|KvtSgK; zz5R&&sV!wHKw<$>#yJq%7<5_$R0{wIvm4agjE8HVKYyM&M3|b^!IYUYLN%Go)gJm+rO= zM2p@619r0S$?>vl?oes^;UPSc24CCFi~F&(v$CG)u%OOLe&&DXEFNJm7S2-}x|7 zYTnono2F)_hd0zeQa>F9j8>?ysHo^}srNIwvK@{AFPiJ99_%m!j)nj<6D6n5Q!9#3 zVEAL2a~jImX-*ajArkCz!V0!gc(y+83(pl?YW(L&AbOBGc|)6yb4#*lp~&9(kVS~x zA-9lb-AOxAINy2 zI=onJBT$9~Le9h<{c`v*QTsLxQqP*DbpnG1CxGhSoNycH28T~j3d%PBoPv5Y;RecM z`AbmR-FM$Sn(I)v9ZmwLA>E1n@C-IlmI_NFr1h1hFXJ5ii^?|?9(jjkmz}kUiSdG1 zHT()3bg{R^02`(O^3Ve_tyt0sMv$m?#Q&wxU&cVIvbxbcZbOGb2$r|l7>3_AVzoU3u)&zlvJB64$cZvhXgq5SAh@h)^9 z+Pd#TZ-r3C#e0*kVBqlTVRU0Jlq*?Myr3G<)p{Dm^>z1%AV#zl_OkCa)YT2j1(uY0 zD?BKle)svF!Np;3lC-@CGu1>(OAAko=)s-h#s{|;IJN+cx5^zFwY9bVZntL=J9|x} z!zn>M*Up~nCtmK*)C1`c8eU%e7fY7zI!1dzTGwyzwMxT+=G*y>w0QMgGnZQr|H%QKGD)uVu)| z?oo%`&-xt9hp#*Zf)vtCd{Ln8__03)27tpr5_2;|*mIeA{C+DL-Y^#-mGM*7OCF>R zKB5GCYH_K+8p=|N=wq}4i70$V3iNoSRw}>XQs7MeCTEq#9j*Xf2xtD;P=W?+QFa@0 zY+Am`cV~No@=O$#HETK)~q`KI4vIE_B0&7`1Z)-O(G1E9I^|usS z-lFefs8QmBJgCS_F$T8$7ZBgj4dHd~AOy1^ZfQAbrOdK5$m1-ZSH4FO&ngy+r^P>g z+AA8aB)ZCSG|eZuq(yH_b$@;XPEi9YL^KEs39W+uJ@C#AX}#xCHlY5nQC1QSV!>2E*aaPk|sSeA};5HO+?8FS|5m7e)V<@ zZ`A#vLmej4uITf* zn}73i`Z{@ycN zk6*#ppa-{hX{fx0w(2ic%>0Jubr0hfH|{m%evuA~)*0<$cdu^;Y;N%A3siA|VSRIt zMe3Y@zyz>eS6=+S^r}kkHB>(^iq*i5p^SJDpiqs{mDKhP#0@3LaRPpreEeGex~cE> zu!1e;1Ws5r19@e+wpWke3ray5LSjDUy`YZE`5eA5*9Q{%fa5{I{hW-***V;nP?s`c zl9kI{SjvLl{`3uVVFHoiBiZk2sK2 zG=P*mzg$%3CAM{h(>I*NEBXtA`2)ZHD$9c%-}dJ8{#~kJkfog4jJX zTONWJW4Kqg8~iH96xyGEJdjRQ&)S>|k8}EZ{My!tlGTYV<6g9a{|Q0ycF7qm=A0_F zBzHN9o!J4(l1fp#%8}oiqwb}lYP`95_S~7AGMKG;9JDG#4^i@686$GN#c-p-yK3ZK z_~ijY#vQXz3JUqdyP_S3Akl7dVd)D_I>+|OiFi%2VM|7(L?TQpLa0$=#GV~aY*h1(a4U;CtdM?3FKak*It>TM>d7GlgQ{lF8?8+MPXyrF#kY}0%BvF?zc z=mz@e%4?4IL2qq0a`>Tqw0BEpBB6>pfvW7P@zV5kEiAq7MmMvSkEs_hfFC*BX2%7+ zz>uiR$U`Y&eQia?Q&w3=N2ji+X!#u$4nD2>+9WFlo2d+l#v5e4cha6m)(U7G;~OQ3 zgObikN0zS4)w(Zc%<5msev^)r@{SY=f!;^_FEx{CVe?}bE#(f8W2yQE28x?^z^`x6 zmM&r4SNNQd?Ks#iH30NOVlh6sD7|dU>5GtZX>a*UI5*R(8lwhW>Ux&Sl4*+<>g?uT?n~x5$0l;uVud4bQPsTyJ7%J7HnHF#vHIHh^$3j z%WudMXEZ35+nWlO@6)~-LJGEm;T!XU3MjW*x@{~Zw$jes8`NO9eLCkjY*FiyL1tcRAuf~ zvG~sDaOPt>qmc(~-_3R*CFetz+oUp0L}~!q2odB3tJCtyNWS2-prmrD?DP}yad{;k zCTl`Q#F#!5%xJ+z$XqCpPdokHVa)Qb{*!f;Mo65+HQ$kR<+aFfQ9uo@wgvy=z?=O! znBbqEG$LKRBhc|7xS#QVwE2nXCk$Gt+#vMs5II{I7}u4@=R$S^nQjG8uj4L9pcY#9 z_b$#5^1H-AKT#Q6lZ*h{g+TdfItDjo+kfUt?z%oMRt4%N7%lQ15 z>23tTp{6z&cTquYU758ZGu3;_$7y0m&Lz@mR7BA0GP zN+DwyFkrIrkYeHSEugNt zNC^R6(X9=)%^YeN*VE1m4(!>vv~nx-^AppzthZSmB4^my$Y`4EeDnoB1-0wN@4G5r zhh?qf?b|;tM~fB)#{Bdo7NacNi4cr*(`|Z|;$Bkwji~KHK&ouRNlK6{W_(s9Hf-Q__2at!2)QD{`>{t|5s_+tjq)#nN)xl4G-O(aU-%UB}qC?h)KH55to)9Tcrfq}?}kh%2XpMKJvZ;Nw(im9A6yo+}VL31;z}r(t^KVW{5Q_ zdwTiXl>d&FnlIk|k|*dus0q;SCAb`0bY0x`%P&KVA*ba+P))>)Yo|po5Ktfb*c$p+ z0>A&qDVG1IWwATFPjlM-yflt*mN9{De=6pjeh4@Lwm%<7{tc7>CdkoxD(yc*5Pa^m z0Ww)(teLFwla8ZlHLrrhL!@P^zV}(RL&?QQ@QzQtM4akSgu@W~Ss%A*BJ@+?^Q(rY zFbKKRdSmbd0ow2B$)=)wg$k76xewcho_w7>6#_-9-YwHkTQ4X(1$h1f5@BbS8y^*k z1;3C!ODLn{wII@vOlBs73v-wY)Zq$;BTLoB_JU@|rJHuP4>4)gtMf3>;J`18T)dWO z;02TJ3tePFPO1y%l^Qu5%GH%M8KiwP&v-kY--JJSC29(t#fM)+)pT1F;f55LHobcR zMt1g70@bH1aHzRCX(9gHfOc-Z=<}uUhfThhrq_@XK2~u#A)#tm8ip;k6Ar+Ks&G<7 zb0C3u-QDh{2I^Q*8hMQNX27(}-;hqeEeZimF%HG^O*j;$c`lwVv+%}xrEG|O`wLnF zKf&?wqw!qgO*393yWI&4`&El4P=!F($cXo?{Xi1bO4NWEjDfkAkrULi&p^1*3*e;i zQqkMkbGdDQ>Vhz*y@Q}E1j3WxFY&n)iJf%sOw7q6NVyw8-=tJRT90Q1a(?K$dXNBl z1F{Do@N*qhAm~0nAj26N8X73CK#R!l$3X0#o1d>HcXH?k2BP;!fxbt-{zaSnZYQRJ zoDT^sF@nur@MW!3iR(h|m&MARO&~B{hxt6DRg6N8^^`qQ9T6$wP+XUnPp*j-b;s@* zGXtJLZS9k}9_O#CXbumq;9g7ZB-;;B(|hkxZiM3DN@VPErq$p5yvLy8otxy(XG$@w zmn8CSAkxdIIUEV`Iju9YRQwMAGaXy9scU3k>P4-)bwAEZ?a##rKgIyEdFx=`|Kz~j zYqOhY9;PF6r)QR}VckGb2tgQ)%9|2S@?gEDnYdh=cIZBX2F^y~uhs9!=eahU7f?-H zBp3*}oC8fNp|JxLW;I1IURo{-MsPA+ZEeayxa6C`KL?>~MNUqR@@eXam`%jgI8wzA zi3LFd_k-!#3KaqOutrrS+2ReSpYNCCWOQ7esC5OP7&jxUuo7HYBy+gV@0YDVWvd|8 zf^Gz9{Z{8r!bRxn24HJ%-BJm2TkzvA;KZ;Ar8982e@(vvQsU&i0Gbajqz@t5u3c zvx7c{;913wyi|PV&uF8#a-CPIcq>i2lipf)VYJGRv^b(|k-{BdhS8Yx*}9J8wgnro zbkqUlZUgTiv02KA*CaLu6y{;tA=s~6Axsu82tTX9Ti!$4W!$w_FqjVm|MEZuNjsF; z6;}5IC$N(=`{WyoUpSkyj*un*eH$hLEhA42=;MKWNsIN*p#oRLu>>_3g4vHiF0bId z4#7HRillF?aT(Tw{!zq~J#@-VG$`CPcn#Tl9ET4rW|Uq9a39l0&AD_7;cag9v;K7X3eRswl#T&oF zBf<)f2t9a%(u;{9ayfOm1d~Y+c3i2yv{I>udNOT{jz>&f@OB=_#rJCs@dzL~^=T-u z@WrCnCcyPbl_B#h z{s~4mV!x0cDjOn>un}~jwgb0i>!WXuXl@58E1Uy_yg~4jvXk2rH7*LaP(Z-o%}W9; zDk~vE=J7=LC$QZc&I7lOxa2liXPoX|TW(j}CKXHgHlxh^3kGdGAW;O0wNPHB2QgrO zO$y1$s@nln5qIg0_f&yeC7(`~31p%b^KkwGQvR>n?&Tt$ zLV;4wynuQ4M+_z`xTHb904>BD=4Js5Php<$pk(loGBbtu2XODPs4?OaG7q88If%~O zZeMSD!#tP-sFxm!7qf-;qdCuAKS@OEoCG7uLH+ODHFM#0xBxe$miw8*04D%KT&f~fw) zi4kI?OwzgttDm2Gfd@r}Y;stnG@Ce^{&YslH6V^xnX3f;CT5Y}h z9qL%Vqn*>Dj_&VFyJ_m8qCMRzC!yccgkP*?8ZN%OJQk0wilxzS&LwIFrm~Li-p)bL zz@`lU9>p!MnF=DoE^j^-koi#q9;{wSkD-iUkVwsN>z8UyF96a3Ur=S4D!6`##{#rn z&q##pMe_Z!iU~y(QmGG`MHp-dH*wG{dSP*ebz0nEPp#N0Ny=-F!2M6u|B+rKZ4{G& zc^F2v=fG_BglQx|on`zP!Y8bY{FA;~v?f1HF?>n?M;ZBYXs~|Ry`J#=Y+^#A)A3wT2f6>0ycf}HEu3Vr26$sDn>#^i5BY<8f6^8wz^KJ zzQv^f=;zlrH`oQELtmrNF55AoJd8R=J;Q-}OiXUz=MVf9DrnHR54m>)-c1$XXK$Db zIAmC5FmaV-RViK5*(kg>U|2GeEIbQ~0Pgtxx3Eb#o)Z%`fTc^+1qnwgOT3~i9;#Gv zHBzmXQi>L{GAG`sX)!AXF+2ee-rj=%UJI{`8Bf7Dq=>hmMrA(BG_P`fbOQKnC17RZ zNVBk~0ZN_f$~I5GH`HCZ0c0$a_d_8C@Lo>B?{LwDa1hXa5QU88!ezXKq@1qQ|Z&8(e?=g}^{x-v?i639KZ&9Vv~`qPFSpj(XlB=J+D7sv(nmiKH|uK#)Y%Oaog35`wFL^?9l+ zA<7~l^Vo(2Tvs%F8$Gl2B;`}*s*yya&u$5#3&y<_zk&IfPO^0dHbirJk(--aQ$eAb z0ie;C&CSh>ijwzzj9;!h%KGpof0_D0TW0!nPLgX-239f)E;B~X$WFxr;ug*m&Z#xA zU8(BXs%QSG`J--?SG~X?gQy!UW<=v^jhdZMnvax&WMO8 z5$XynciKL$r4;FO;Y-woz^dKbN=t08X?>TSo&8$OxuY{ibN~vxJ@Vgww^UbbfYo}C z=?Sa)N;#}Ub^gQSYgA{Zf#WW|%xRAb>_D~`;mVKYV{x6rL@gX5YX8#$EM$P{Nmnn5 zpO@FDF*DQRvUT4i$LCLsZVF%@kvpgxp)JdsnO%f!j}&C8_DboJW2oUeleA~Wi&aq! zNS1vv$L2lAn<`*-0HRbn$@XK*07Owq^7#Cu@~?J201<#J@cw>dT2j@|0yY|(Ojd+u znz#lZ?t5aq#NV=Htkjg^@khaTTA2RQ$x7X$uhj>@pZT5-cJTO`SyNM^ z1sy0!RjUtBN(Z})=lUJsi|TJE-+{6yP1P$(0=;$auL1*Jc615>()DdrOPg1 zq-Q?A1p$*CC`R0pJ$%wZ;&r-H6GY065{a9|pU19t-X*-)eo_BOtRum(cqQ$6PvGCJ zSmsL@9^+D2X=aemyqKu#Ev}2_xN|JL`A1ZU3Y3IdyB)3J#rDei>lHv9wQphdj-Sk5 z`1Nc^=1S}QANAuLFZ5yhSqaVFo=WuVh_21;Hd(0X!scR3VGV&ArN7Q^A3l0~apD(3ClQ=i3?$ggSR7LCA92Uw8oZ7p_pW z0zwq3U>1>$eIC`~!ab7=5?8ovNOirZQocjj|m=lF_XXCjTtKr5%(8zKC8n#t0v+t56fuetr z0(m{$O#=XR#jgvdXTWQf#8|7}9O;T!5?~jff$ZjZQ%y;Tl!IXv%;aT33ui@jHf|T& zz`%gs@{lwJcQd>RL=^mx;?)ua@J+ly36kahr>v|%ICo$UBI6UBH5Dd`YpQ^b`}6eU z(uN0lN9t+B!V4rT-Nyh)vdBbY8YbD0OCR(>o?mZgp2L6OH5}x%I2w2@&0-E|o1(va z@xTR8X^LmiA$3bF@S=B5k(Id+I9(n_DMDyq{=b++=04mlAMM-EL%018I*@_^*-NBK zu87UmL~OXVhV`|&w5X({0dd1W+A2N$_I)Iap<^sf%=Ymi7}u-bLP<(Juw&mU7kD%F z6l@Ukl_R>QrUI}xF`0ooZm|d4-n`&pspvkNs*l_Q?3{{(YHn7zCG* zyHT?AbhCB^2tp5$^K;m`)vzw@fi>$ykwZGz25Z4>I9K^aGhT^8wsME*`|dnQ*b;hr z)Lm}fgdi=vATcnmPAwuic_<1=$U&wh9EXryhC?sdbUf43l*(=12i4B4TDV4>tX?_P zsd+w??xBWO%S3B9MKUNf)IFfsQG3`J?2Yiu56P}-S-Yh__m0;lnJt6SkP8EN*?G*ZW5?L|T`R zDu1nfy?G42d7&?owGB10xP8?tU?TNao{Q;wRQFh|K=)3)?wz%YiVBsO;xCXL52lw; zSZ|-dpT1P*1{}qR^T!@2bi%-&yYMLeqN|as_Qf6BGf|@;^{tdeo+9VN0~CxQL2GaP z`N{7k;W3D>o-25r{tV(rE}o&vaZJADfq1PAP}b8}Xi0!A=3sYTS{x1GjNNA5E8L)Q zQoVoObE?-Be5rvKE-VJ%9ziHqB61~CuNQx@^vQy2+o;mvsSK2i4-^QyVnWDRcn?W^ zodA}vY9@LgUCxv4X@#l=5tM2?_73d12>H@`jj@8G??Mu%Mwf$T);o(b585)w_8p@~ z)a|2;ZuT(y7J{qlTSZYbtP>h5p9b)by7MRMnj|D99*to4RV7QtzBOF#6{9aj(u%y{ zK9#UD%LqW@`ZU8vXLS>q;}4qQmv8< zIWr4VmNC$R`A9Nk<65e`-vs4Q5(IO+2NTPPfK|KjJz+jRVpmZoOqoSG;0Tu;Zm>ZR zv&MuVqGZ%2g94wu*jQho^6MP<-pP#H_)BW6?ytbMp4~K@c!vDaGG(Q%PH{*d+|yCb zCqjaPWUgnb6Lf0p!QMFs$Dk;=Qu2vIZn>-#mm_=&wHY^)d)xfo!U`K2EB;#I?d#Up z0wZKfs{F*?dUTDYLInWO6xAhZZ5XXdS!D2_Kw)^fV)-vFz9y*J^K2Fx2llo|!qekBB?9fAgE_`c>h%+dnATVz)Z zN07TuNkZMnt@?+?TWnJpcszfE<(Z@0o3u2ei~t46^>%4M#w?zELKwKrnP42n`>>HC zXu&&!?3)k`1Cky>VBSE(qlrjGhdMkU$%0@J5mf~aIh8fz>lzx?C@%|AiRcIXtiB4u z!+Cj4)HO;zHJb52ho^{`^|a0^fKuo3Hx)Q80+=XogW^YYt+0hPDmx(^RhR$}EYE_a zlKGQ#=#cHr?}HvH%(U2vK!|q^V|*BK9K-4rZP1!=?1b#baVh@AP;(Wsv4tY&wyfFa zY~k*RhvaR2Slm?LUa5>nt3Q$Z?NF8nl2dfPgkl9MD}~@0th6Z0S`EKCy^WCp26q#Q z-G{a%L~<=77aul|!yxZl zJD1BQ(jh?k^j6h~w_S)G|Dh>wm6^M{`#Wg-dx^RyX&~jQjHKb|4-J57POx9*iBt;@ z3JO|`7EK0)4FgN36qq2Pif<>fNdWcX73I|w_)OhPX?G@VZSD2iwS$W%0FoqcL-pYr z&_-O(9WowE6zX(gyPAB94KC|xEj665iKxl7l_*RL0a-?s*KlWi|JgdHEaq5phgF# zV#DO;8?*%=3rX^(_cL1pW5)7pmSKO}oO}Xc8NJU~HY-tWOV~X^h6W!Uyhngl2LJ2< zVQ}!y3^Zpw#_kZ}X9O{nvHt71vA&u$az#v*lSzb(e3F0;k6AgY-mpV7HzEHNi|W_j zhkDOENLf8RN3umExjp!U1MGMoq4+%`{-G0Pp}azPW^W3*jA9O8P;%U}CQW4$l@{n= z%Dggc3D7L6E(Xg>#d0F3RtJGb1ZAO_1G{3S_N`#jnE*q}4-Q+34_YLwzlFRaBbrtu zFFUKhEOOJ61t{BQGuh?tUV4#eqUT|#S@}zhi35-uEEHD@O24Zm@W2~)p=9Q>jMJ+| zom?it-~e^q%CSl3cPF};hKDs;RQM+7FmFNt#BB(UILLy+w5T0-saPD|)HL!At44joThYE#ftQ#r?mRg~3+iqx=ZHccA z?{?0j*ORFMScc2z!roC^+2^nbHYSdss*|?oDlUWH^D{H2n5{{T3;FqSCq+6~#JzWx z%OSPT=mIPgZgf0hXLp)&D#E+{b;mufaar92_FGsTDe%1HYcT)WSmTKW^iDsl9$aH9 zH?Yt^6HDh4Pd7109Cyo=fO<}z7^O*Ba{nF%Q*J#E6FAvURA?uX{@=;w?NnT^;8Ew% zE;rZs1hm9A`k?}?yoBOd^MDBmC04M411#Mn3*979k@@SH*>r4i8kPUbfdoDCTha$h z){0OAF27jLM0Gq0CYc?Kbrcb!TyS)zafD-8Ijf^WZ%O&ScBGO!ug@OVYyh(j`7m!E z$tN<3N?m`?Tq|EF16M(u*vfBA81cw&-e)rFY))yVvLfveht`kyT zAsE=gj)(m#SFXN!@pk*P6gIMDJAAbvj%q$Z#v*X%X$$ShM4OJzLxp}3- zr;oGR)Xs{qzW4pSd-MbbNwLO6@c z&;5X@-*QEADzaXwkJsWPBQ!c-_*+P$;R{gxY4eJAFuLXH{**7?Hk&5eCNkX712hmy zbwJXUYVo#zMM-BmM9HR5yr72YtVUC4B&^wvm;<4u-x>+Jmp~l79DURL*V^|+J;;~x zU-$I~L`1eKKmT0JPYh^RAJ;uxi|x!2P8WAHFkimvScG5>FFADo^)g%e0)pDrmzu8| z`Gkc}@?uWLXCJ^+h=9yh8_u6tu$0vD{lL+|lixSh%UrBX$TU=3C8^GSYkZ6$jWT6z(;L1)dZa`~Q0=-`b%5m;znW(D{Sb?oGw07T(ok4Ux#kR$a-`8S6*9xtfq&ox9F5>i!yxvcBNa z4#^nyB~z&m7^{~3PsRh1ts)N))am}5g+vcDOfDaoX+*w)Z=mAtjtoU&(Kt@FP4xbC z$Cw6pC|Za)eBx`DYMc~G=Eo4KxtONHu4LZy46jX6yc~s*$xzv2Q;_ z$mAr9cWl*n!_DFA`~8ILrDo~(7i*GHJs-Lx)lN6+&S|*|#EizCn3NdddzD>qYp!h* zn>-k^oIUSkaitxXc@NEn!BC)ElVyzU^V@71k29*#MdM-u)>b)9@rwJ|oXXrgU{OlV@Yt_@ekE^>3XKzGUZM+O3k?1+|+W zmu367Ua6t=Cu@3z@*C>U&uc{@@U@;9<7zA2lvTbNmq5i`IYn^WfMY?sJtG zBF6DhjEykIzoI874o5IgHv5%7dq(|Q6brOB9$k7h>;h?*w|>oi;RqVFC<>Cb?nq(v z`F@%IOHiA)`FftU%#Fy0LlY%ce|*>u5(a$HRBHl?4x2>hIu|#y82; ztjj0Te7^bpOSI?O8MC3(qsh0n)1SvjtHT4tA6}20op6XQ2(l61eG%3V)%DC5VOLce z@|ynXYFF`587Z;bt$B&5*A4glb`MrEqmXl+{E#o!TX1aIaQ|<|- z?4k0qvN9y*wK8vJ4nZ580j?OSu1^(bRwhjCEkDDo^`UAwaD;o3+hDgzE_a#dV4N@A z=Q)AkwMs^v0_EO{RV9Y~ivE0J!`ruSGg$Xg035(v-ANPR`5TgH-TC?WlcdYRNsu4S$}KKMv|OiOUVhngH?hpT-Bzs?$t~r{3nJgqA)A+cF#1`$_8%VNHA`0{tR!`63|2;x9asXG`Pp#*o<Nk#Q; zRa}FJ)TCG;(HanuIc}^~oxa{mR~@cFA$WNu=w&>-to#yGKsd^C3f6rujLPYGa}6$Z z2+%%#{ygIZ%D_T~<7jrn*^VnPzFA>>|2r4-6gCvf(E#A;CFnX{piL50O&~sIlKrw( z|CEX(V;cD@D0u{0x-A{xG*>hry;g1b$8{puH9NvSiFbur&>qPOrGbV>t7tcbkuaVh zzmOHT_LlFKM&CUs23fWGJulD&aff3NGr3%-DKbtSsqeG!Mt$qAOb;Xjof&sh*oYFrC2i7;YRSb&p6*EE)Q2&=uQ~ zxgv{7X25Z~@rntXY$=Sp2);mrlc-krTfyyH!Ug%0*pPgnmdT3^$?>HLy7` zinj;zN*0kP6qj}~L<8*NB3*q!0Z0T+!QMyt>0kDK6HUs(-vyDxYbpsds5TeJg`n?c z0*(eX3q?ofP;KzpUEGpHTvte2NK#5UJv)CQ2o+^&BoNbRfe7Kl>lbgTVizN|27g9K zA0h85+nzu-`bVnWRPGW}ZdP$%$O>G5d zOuvOIcIZh>Xs*pN@b4LMqP7=JgacbbQQO3fK4!2qn^$3~ji{j_#9N;9UW+mLH}c6Y zz%t1IKA|^QX7DXQ(7p*Jx6n=y+3+m+^@eWK=7n-ogG!>1QxJSb{tPS891+%GXMeuV zE6__l8}Kp2#}i<$=n`*(I0axft(!yv4TLA`^o4kT!y!HmP;vGN!#fUp?B$BWu#+f^=9sL25~P2hAUc(T z3}=}@FGe{$0gCt@Zj}r;o!?ScA^S*pwfTNu_%JX4=qOXAWq1N)r&d6SoT9-k_Zvn~ zHY$m*qOQ&uc6)OmXiY+FnFavMOr-(v+yiLp&{X#QyOx%g4;WqsbRk3CwJ%8xE6S*a z@va{%Ce^fKn6W~i<>;`8q zW7-q*8^1sk(+g%(Gw&mS6otXc7P*j3LrsS#fR2p)B*tqYs!p%;ksU7BVPO-F@e~C9 zJ&1$z*`ww>-KDRyx|!PDaEarM=PgS)&!LM3F!%Wnsgz!l!3!f;Ff;4SEk#Nyt8 zDuL@o)HMfvL>wyD(wi5cA}Mv1^kel(G2B=ec^wzmf}%C^7zB;EKp^=B$x$UbhBAc7 z2%@YI(6H7k@zseFQ1e#^ykDgN7}qVpy}3YOg@-2~T~Kt9n%J<7CZTB^+UDA$gyd^j zQLY}Fm#P7}I-l?J4a8kyE;Gt!SX)e)W&Wb_vGy>`N+M=rOfiPSNJf6-lp68>9@A<7l+6`NfI*!S!Iv-9!Sb z!H$Ng|BQ;p#oZRJAy(mesC!1$TM^_q78JeUtn`1j0IvnrHTCrH1kKmMA9tZy-xdMd z5>-rp(4?-e4%;2_r(iD^#yI&;xOC!qHx9-kv8TE9^*-f1Y`hkq>Mh~+>C<@jDjSMp z98j5F!V?I(+PxKbYR$-ja)1Tg29F2U(@Q~$rMezlhG@OkPFlR1puixzQx~B8vj{(9 zO(Hh4ON1vdL!@ruNn3_{R<=h229wmKXfoVrQ3VY#9}>9&Fcshluz9KLCeW5~*PD;6R26|5+e4n|?3|6e|F{YAjEMj#ZIm0zM^yyW4u zZbGJP6SC-)Ty-3s7KqD)^d&1bFZNZMGPP!V5w18==vJFKsm(Vz0V;AT-NYiih~3J& zyGP)r2KFZu#Mr}>sCtEyN%g4>yp^lVg4^d6qjsjl~LjQ^E;P`CVkdlv->`6%>Qy9=mrK*J% z6DRE^p{HwD)L#MZhH3Qw!EJ-GLSN=)XZ~Nx+2Sg)l%-qIM12WMT|eXS@;ktH;;4zfpyqKw_h653Em z>sVS;l%f)no#*|b`}g}kzjL1FpXZ$Cocr9Td+upI+x5Aw>-~Damc=Euc{5RAB!B|S z2WaG`wHj8?`DpHQoQ!h2WJKNP@sB5fF@)b%qkQ5SuHO?@0&Mfll>XDhi)&x~Y%-vq zyZe-}S*-xj)TVF-8R%1{2tg!qim@^mlHY3ugDEe2G6KH15AMSJhn*WDMmKdY4#-0D zV#v|=QUZ0eE{#{2LCLabJnqmf_z;hfLpm4xz8PZ_;RFcA)O#Ta8NW-zeuOgKK^emO zS-p`x90PpUM)5vi54-C*<{?~H073{*c|7#Q2onoi@`XdKE=VTvFZeSu$7cVFZH|-$ zPW`ncIED;W-vC@R=g#W|2?YPOSENdzWOxpB2=@t=ox6o>D;6E+kHUWd-F@c{_S3^> z=JMevc$5{kJ^X#E`BpRbK#=kLiwq`@Ksah%9{2DtBPGJbWa3w~umc8jr^7LJ&ITq* zyKn8k{(gdFsbluGwozc`yK+x-7WCx*x4y9(Xf0Qcq;iHH0=oeB;`3(K(`p$_@pJ3< zo(>F51kAYXAI>qq$h8s@V3WO=wBzveQ0Ipl{IIoH?w!%EO5 z)gMZyuf9u+(-g)Y3nmH%>ri%q8 z`Ll%e&3?r0f-kh0fb@GB!Q0{q4POWbn)FTlpx0|@K$xZX%MPFZhJjvIaY*NUFOt@4 z+4o`~s_J zHjk2@QKo?A)Kt!~Jn-KxS1F|xIIDxS;Ss+A{^;NL5$_Teg}K=d2Be5yms;Ek75X;MH6g~OdYCxeFUsza|x{k1dD=3 z7fnk49nhi8K$mmQbwu+u_bYdamLdheSnol{JYTTT21an*r?tWM4=3oNNb?{Gk@n=viAWmgK)n^)t4)C_{0lVe} zAht71?XjXGbO5FM3$zq-p{t!J)6f4wv5mbRY)&AXdqNbedBtivrJok~0(XF+V+Z7~ zGcwZB8)MwoF4oqI{{N?C!gcDvv?%SX=HTzJp8zlt zwg1w>hWB+wEt0Q7*2cTR7C{-8yT8A|#yYZ5dNvT<286R`)2^* zZLth`j4rrjD%~_@|F+Ums+_lVdFdD{U7Ma zCH+dkcw|Y?y_URF!+Mm)G3aOyCS>%_hnC=xj~gIp(2qpYpMiG4$59Uf7$Q}qPd(dR zh_?=eRw zAlnOpU52^&`LQ{o9&RwECQeQihQ2*4UbzLiVE4mH2Ci7$1I8jmq$uNX!zF5`Y;E4~ z2IvZ;NwW6>)8VH_+N#V|a~2pS>}W^l;Ct@e9kcC+xV`OOI0;fxun}^}YgW;2E-pX7 z4M*#H)Q3HES9Z)IiX3NqSNAa#DEL)@t>WM+b;jf%G-@oLtjtfw4t9mYA_ndb_0v&j zlBdT>F(#0>{vP#}|AQAm7ytWpjgPyY{pSJWO2_)#4G9W;(I3!^Cu(jZ41A=B$WZ-^ zr`cP3*bfLT77gdt0@+2jw4T$%OkX`S1wvIi$?yP~WZFkeKc6ai_x3|aS`4LV)BRxY zPfMGjyY$*;mIoUd3al82hm0Z16}%{j_!ZC7q)@@~+=PN3u*n4}`g!Z>*VYJo0xTpX zle#HHe+L9aWZo{ zs%7)%QEDccK8jBT(A5}#5EuR6_bs3`oKQ`?T_J;Pt09Ow%Wfs)ZsJi<}kiWO!+PO#&=UDfIpUs!PgEZ~R z_B$bZy`>*xN&#Ou*x5Vl!5R9^!x@tp%Dhc>A5vUft#j$v0J~Ngef-7e=}DspMPX)q zSCPv*7bT$biPq4dM+^F#mV(VXN-vwMt!B)J7vBw*xf@)8g!Clf#lQ?UJ2+hYE^$uP z9QwGrKlolb3Fe4ea!FL0D22BbSiAvCT8bvYfRnDvX!Ppy#m@6e4IUE(%+6U6WxXM| zo-S5`)Wb`d2N57yU)=g}@042S8&!7tDQeh8xK%X#H^Yh7#40XxTQ#3F1T!1rj-6eK&sXR9uxPod~%Kbc2 z9&H_GoUD6Lm7#B|Y&?fKOV9F`iVAtdc1WKQt$jzza*WdN?cbAN$pZ#lxW@@X;Q{pFQ+2g+3me;~s#{;;np$wfPBT<@VDvufIoj@;(F&qM}~oE&RKi zxobex+4o=+7RsmGO`1;l!qNP*`;Lfv^cG}*)GQ!P;*HaGNp)jPVw4hbtdg~U@B{H) z3)zDKon#|0%1`m|4ycF`qaX=Vs5?FV!QKsUbRQyxo|mh9J@5HO{>&L}Lu~v8AdUld z(WJE?7?wvbldz@IE?_q21GaScty8LUTaHjO9kbJGgt1im@$v0ZmgEC64a-clf1`Ep z{@$~v^eJwgZM`4(L2@wR%@x4tI=aqsjGB2tV{TUd&)@~AAK!P>=H8SvDbS4aLywu^ zE}#g?ph-*|iI4nd%MAMNwO*pBl4ck#5%WMy6u+Lw^{|HIbt%0Q0ThKZ=pcsXq zvk*7Y>n!X~1%zo-vtS2Ey=xS9oK8|sfwe&eaF&L6h1W&Wz`OkPcZh7oI7MUvt(0aS zUXxSReP5}~*aE8Klr5Ae&4{2*l|cBIgME2(qJX`rCZrLUQj=<7O(wvU%{h=6Jp?0!87ng z!=}qmK?&gi=6DrU{RrgJYCw?sadV9}t-gr&SHZCC-mkkryL(=eG5Ha^hg-;oU)5zZ z5LEvdQYCy%x6IL*qHDexcirm^2qlAmKXQjUU_)G{3wSB+u)iPx*Pie4K*al4f46f_ zNiMnBeGW#~_QT1HqqS~{#YbbG7g6RNE4d43GX*QCZFkha@g)f0OC?MT72Ci5&5&=l zPB6frEh?TFP_t(JCqhr68Ye(yyZ_TE=##{cqWjNNfa+_~E1#X_C}o()Z?N*XJWbtw z;v8;;@}+9+#T`O5#Kgh(f*J88!pl^@XA^#t&j~a@`ziHb?3*)dz|slTk%)`=OUi%G ze{k}?Upq_FO_^xe2?nR#$-a(;yxup(D}U!57f=xXuQ67TG=w-E8(lM_hsIco#1Zp6 zCFlZ#ROX%==3azdc5%tR!T-qf7(JM((Izzd^cRHWsnZTo?zVnDz!iRpxjfmT1GVeI z$bO7{h%gLGIl^*SK@Fp_tZ z>As!y3`QspG`1PL9W0bGJi{tqkx%n5G%oBtxr)@{St$50QAAyKpkhZVyqjC-;Rq;A zUXnoFkQyBG86h0de*|=(Lpbg762{CD3;-CJ8>?THt*WY`yU=v{s=iu=bx7Kn5w6Rq z(&`J=3k1LC`MgyE#LvJ~cn)%zyT#O6T@LSDch5Fl_xy1@dpsST15lx?aTO1Ncw!Hc zOf}3DW2Af6t!C&qf~?VnB3Qo5{V=N;A|_){eGJnN+nVh6OM?_b&QJcm1#e*~=OQEw z{R1EV%YOX4M%Ua5ixlz}hM)^)*SCbheC$|qSbOdIxvyMi?m42qx1=h~$xd}S_XIXr z*I=*t3*d!Vg;%=(#lN-?H+<+0(sf#^wO%w6`XG~ML z6G%Kp#r~Fbf+QUrKOM#8r`rfjo0l+);(U(%poYkKwR`Y0(JDqTY>rFqx>6I6BH6_x zd%wkDhJtX{GmZF<)dm}UeA6TBgrR2gom4!m$iQS8j_~=xUHSS72t@_uAuhfxL|1Hm z>&wi}h;M^a84`WGIG(6;o*t~b-lq1u_7>b}d^JCM1 zsHI!Ya1SqPRm8PC34LIUAVrwJ@FNY!Jfpc_vfqP_lD7_I;IgX7b$Y?wWP$VZyRZU& zg&JUP6HI*5UYlxfkP8c^{{A*~Gl`aq(@_wvcd87$Tl5vL)KiW`yto|Q&)t+vR!_4Z zO$Z?#4Rb*TY(EPO?u~x$5c~Ku$0aJs0Ra@f+?JAe&4&MIobU;jKDfyGrW!WT+f_9+ zC8e5%Uz-GhJ3bC#@+L6pGsi_*nXL8}{K94f;}+bjX2(V>dz^%=`FCED1w_an8_qLu zV7o41ekgz-1eoA46qogruA;^2QEn>)OqAm&qWyENOL zb;o&z!C}RJVtLuT(rUQxYzouWf2I_i@VF=Uz4%4-K*dKt{%q;U%yM9dzQ>;3QJ#W* zKI0y8mX`^)Dq2*v9#qW*&u!79`rd=v_T+B&=K$W!P((prac5fj*RM6U3V`i&pd(p- zsiy6Xn>InD%SCE;I%`I{QCBh_8F;^qWP!_1+SB+q_Q=cJABx`0rxl)05+O!Tuh`7)N|3w2`Un+bAE0!P6-+^FWYy<@FH6791MzB0$!N1jehF zJaOJ_0l3DpQZ@B@om_;TZ@`b2lDqeZ)y|y4)MKm72WHqx;awFE=``-F3S4d~-AC<6 zgLK{_&?VN~=@KLPHWj`lv!d~KNbgv*o*!-;Mh=$P1x2C@`>v$nt~3ETqoj}ZH5*+Q=p_^u^TFH-e5x%bjfA)u*%2*DICFF*+n zr=mZUVua~N4sp2KWj~zOarkriK+X-qzm3K@S%{OpMh!P#Ca%{MZbKd{uj|Fe|Eh>Z z8sbuQ=P_jPUK4^JqZ8ieO~X127A4I&tA2jaCZbvNpadF2>i1_(o(2-o>T)?6IM=6<5SAS zum`|Kt2{OR>?MTV{ZC_O;Y~yHg}A^dHwR)ImjdDDUrhr5d=bA|}t@wu9%6_S_JE zsl8!)3_}+#b@t+AsdiNR;hFXi%Q4pyJ|VY%IN0Sa9v4;zR`oDiaCG&Y|KRc4a=#nog^lAMlabuULGEtYI7mCgr09Y ztD$9xyA9TF&0dc$2P*juu1My`G={=BN`?od_a~W2K*OQ^^mnVp;IkO3*p2y1CD0#h z1SW5V@=K6CTY!2+xecHz-&7e=RTPbt0wh;{f8Wun^W*mtm^dE*>2=a5Nd}1hzGkld z+*G%nTaSM|5Bd!vLJ42`%M$;P#eIX97w;Yx)_~-+zU+!Q4?t)dR5udD2LC%R=?|26 z^u|JYIRJe@|BAmgP0yS{7a?#1{rlnB`^;Fih#4Cmd5<`LI6DJ7sK7i6A>J~uqjtv` z0Wp^V4b^nedT`Z)jn&03;Qf(#?OwD5NM1)G`tbd=PP5@BEleUtoKAomLtG%!{Uxe6 zJ3IS$gF{I3-1i76f<-)69jjWj$jh6C z`}?A7gJVoJ1Y)(`t2kuBJGBnOdCY(O8>f&5*f6_DI4OmWA4F_zr$FQ79@>FQ23eKO zbLI3`Y$v{5wx%oWDB*VV>Sh6|1&e9FscGn*o8P$_Vw+9lX)0Cdc zmm#8xJ3Ic=MRX3KKep=u9Iwa}=l@(u~S3@5J52{c1D1C!80JqZVp(9jjlz9}YcB1k8 zu-*HDI)2k^MAT!&v+I@l;U^&Aks8)mOnV11G3B8y@ElK=h~U9+OtEpMaMw?t9OQ4Z#18C zO;$tH;@3iPwhH;I&f??k#$@-{7{oK=3vdjw-bcPQGgte<9{(r?+{lwDrs#&R%a%tT z(_G4p21$xo5dNDRYX0Gz@H_B&9qP2AW+Jph;;B7&Rya2OWDt6M3e|$-DnqtC77@GH zJE}}9n~5->yD*f=G6vD1j(LRfi!55B8nlIvJB8}S@dk+hVxz}>%BJ-5pig)cG7XL6 zOvHUyNjvQf(jx!|x}$&`TMGBCbovjM8r){l-uQjg{gz+dgbQU}t^}?S1RMJxhehio zWZ*6S-mKW8Sx|4e{TxKT1Dm*YSpnZ%3D8Yv%D&?nLaX!^} z4G5sOEjaa)3pT_8Cebq7`yQ=pd(S47F7R=#uz=G24g7QvK-VJCO?``zZj4q2VLP+rDrHz9kU}L^;YPK#ku;(}>}Hyl5E`Xrp@h zC(cgpV;d^bh-w5wTAr~45j_i_qxdAUmFf3tZT_)t(%b+&i^(jR7>rZ5pL0_g50!;W zxm9Kr4^^;W{Hb;A$m{iLpqH|%89fKqM^`}Cde|{| zUmG_mWUTQPXi1N;60Ud69mcYPsQ7Kk@=BLB2^^L7r(V7+CQ(_stT9Iu;(ob*39EP) zeDd1Blm0pi_SYC;-3I=?!pfEpVgi}l$tM7~EwKu!AfH=V_%fg^DJyH>rM2*oMmexwuV255Y67d7qXwy9Dwm@(u`cYye;s)>=uRL(LdB)Dh zj?&PxBMeHs9Y1Aq6+3A@OFlF4+=j)ayWmc*B34KD;tHee-5#7Fpv`o`e)w>q_R|3C z7aB1?1z8#rkD3K0RU?BaOTppAqc${U!dy({&tXQrBJP9rK%At|w78eNl3A6IJl0ER zZ-LP=D!AmLdmEDxzvsGEBGU`m+}020Od->eLfEDX@yIC-u(J5gPsK)P03VmA(IJs5ZVxvQsHFFf0J z?BOg=tK#!nh2(Z3+Mb`gXH8hKPo`fxN{IGou%?d0l1vxb>5RR}5WLfnt$Y=f4`SHX zsM3)`j28aKEp)cG?m^n08~SzT}0s%&pRH{c*mHVodpHn+ZFpOUgQN=i54N(|Zb z*>Z@TSUzJeE1F1z-37-c2zk7fR7N6}UpTQqFhsw{z5RWKw{!JuB=Gphpf!tGUHEc_ z6!?nfMbjnCVZLIk*dp>;=~;~naup`HzkfA`OR~aTmt%-a!d-L4@(^2=Rq?oM&ONW@ z@Vmv%l$9E=rE-<#T#p2Yh1qAo`vT1F4qbt-<0(wtK%R{A8R)&licEK=`Z}J0>p8qM z49LM~KJ6l}7NAukCbQ#~J;_@FAN^tCi3R3B(zj5sQ6<5I=WUSm>dbvkY*%vDeuzh3 zc)%#f&7)fjZn`%xP6;{Zolk7~&(N2v^v~=4;uhHxAta+4pC;5E31&|PRp#Ka7o;@+ zap?;9=6kSJ61#2P@$of=ipBEQh0V3XDjUeDL2>eP$JzV@mnQ?fg}gRyC}CBoDA91D^**cQFd@oZNe>6psjSMzBQ__VU(-$IC=Xlu(r4MT^{Dvh134=b9%IMOvtf^G z9GfnfISPZDpTE=Wjb`%WEZT|XA;D|y;F1kF6!zYaGA5&Cu>k44b9VfvC02)_(NU7gmh$L1>}y$aykm|A$F$C^*HMS6W?Uq`&_qYw-gJAj z1kI*a@ya}Cc`#VnIy$zk!cIHZgtYB~CEV2($Sh8@7>NjD^^qA~d}i?e%Rv4zy$`DF zaK@xm<+DE;b3faunEZLc3Rt@BDmT-yKq5GsX5yWPjIH02juD6auV{;J&_Ib{0J|@q zPftU?w1@WuEuV$hiKmc3?(vBJ1^-lpE-FhqQKQa|=tLAzy{q@RO!mhljT&6kspO<%EDuK+;AwnhY+X=85A67~25fpz_Z}+g-j5Vp zsK8uYI)W&gC`>i?U#1fn*YiPnC*_hkji`ZNEvU;y!p5phSxR2eA^VCEQ zF@%4#5G0u5y6YoSl#iMPKWX~Pe3bnzw|)SkM#@F?dBFY5oyAAC#Tsn8pHY-j%HgRTrb1- zE33v7V14~m6dT4VJaBUpDZ zD?C|gKZX8lx+uN7H)bH`LGecH=ad73obRD6+VwKzw?6+{_tBd;Z~&Se{iQF$wCX#0 z88`Il!GNzj2MnqiC>)g2~cNwwJ|G;gu(UQd3b=UfdGm9aVX>f*N{i(^IcW zAFrE>3Z1O*I{EFI7R5tu^p^+Msi$mV7PUf&M+-hkB;rE$(O62IOe*j!Mt@G8pKLy` zmOS|R&lJee14!EQ5x3)nMi`d}iJ1@gX32^Cm^|NatG^{s@X1^OCq0iC@%b-2K6#6` z%k4e+INr^jjp7jn9lA|%>9v?{fXOj(U`hZ5;DOby z?y}IgK=K}M1+R(;@S2i6!|!ie`TG1ozT8}@k)1Hrk4orrTn7l><+JLulT&wAyE3QF zZM3=gGQv`KFWX2&E1Ak`KY6v{;7^`PQseDU-a7%3kRIqq$`uMH=T*8wt2m{?m^LS>y35pW-M;l89r(E4vuVWN{9X9y-towUhnb36J!Q=6Pl&yU&W@ zi*!q~?y}rZY`)HH9)Nv{ =UOxDnvYSYa^!n_yN64_rEvGcp=yhU04Nxz8ZK4u|* zVCt_f_Y1>OQ&V~eEBTW%4daU%BBT-ak%$99#8zvQtCHAzGouCvowG)<(h?G@hL)CS zy<(0h*2!N|x#YAI3Q_L)oo_;P)ic=O#$AKr=Y-X|p{yNz&0Gt{8kN#9V z`uKZ~?AXIon$6@}eUtOsqQ2rcWQ>SQJSNox&15HuB(}0k=SuDE%Hlo=)Wd8K*%zDk z5=m9>6{iwqoSMJAgBSxju$Pe&?hRVFpRIPBMZEIllHn{4J3lq^%ZqXS@W4Dl#}vw_ z7LiSZKk0%im-xf+YQ~p{HNEU2UBaJj?Vs7X{?uKAcXsv%gIZ9vy#wYJ!wZ=b@kIO^ z*#O42kh@dL5gi9}qAH&9jwgsz9_IRUu~WLAExdO|@;(I}j(GCMg&69Qz>ht+p#33t z%416O_A!jc8@skn(#E{$lVX#VaXrLEnfI#%_GL!FnopNwaCJpCuqrlvy38SU;o{lK zS6Mr9o{046s8}(1vSs#}e2(=lmNw^VMByKdU@GrnmVubQ?W||qR^`6kh>MrKGnM^_ z0ceY906<+trQEUQ(iXO=tI+W|2|*EIzcG^&2KDV>zfZA>ivZ%I;T#&0FZ4O*+^Lw_ zTXA?a>C=qlXzjx#)R1G4;XqN-T=JTpq82v#Zt%WaVvNM*Tm-!jT{w+dXtitWmK>S2 z0Bc-{1ak<*JYK^o(b6jA?1TD&xZw!Hucw`CiT0h6{$ws0637vBpSot0^{ClRmc5Mc zMv?~t8e9u_IhY=f7I`zth;8l2Wgi&3hm?@(SW^B zg62jlE9vV&W6TJAw@qvi;q;Z`FbkB)f(%Gu)OH~5j^)Wi&MI3t(IRtj&|C_r8z8X=C^~wnli*C zs*SZGqhr}QNXB8j7%RRePMN?cctQyDBy(PlWIm_aLl-B!NA&bPTjAiyKUoN@S90C= zVLD>{#H6gHzx(kCINw#07g|sbn9+=b-*-)$xPjK%MRy(GM#eYcC;w$bsv&)3w1di9 zRrsmiuu1FPpWc-y%yO*0uc5&%yT@VHeA$>^+0Afz!M0#LNr{he!)ymuWiS$A@^S zsUD98{SNYRH}V6)_psVd3=UKI1#G*l+K&=OU3)zN4`+OP`J~3~$+ls7=p1CL8ix#^ zA*IZ_UvT%U{m7WoaH`ScmZYvh*%hAJ{TLqgemcb9w<_=AMQBwbj~#KL%IIkv>xCVs zat2@7E+x8uN7~_3*AEe$oU5W=sdgKCXBo2RbVlha=tf6Os_8xX1pD+UFOV<_UoAI}Q@d>G?)fZ}swfj720Jtz zfFII8IK+$8Q@@QdIQX)V6B9G=oiXp=&!5}`Gk|250#B^WE)}un3Q$23E?Eg-PP6IO z>N0jFL}H7Z7?$J7-1hBUUSJQV4ymX{B08pJ`1?`ai6sbJUkiL{C3}fCH@g0|kjryd zga3pKFZNCa@rUHYkwz6HWu}l; zyoE@zR4JbXTYjy;wc7<61#h;@t!wg)>_zUnxD7lrJ=dsbVDycVfky13D^{DlS@mzB zw@$G0uGzu&5q@?T1M=*j@7a}r0e#^kOxIyXfcq7pkjI2!gC9B?&>#zEe;-Xp5}GZ( zI~}FAeZKkQwNnp7EcQ@^Z*f7_g_nOd--e>otOQGs%LSd=F{w&s=5jZQ?HFk7ZK1EK z+yZVna1Gh(`5*WqZAIYKzx^AQ=bK*VtVl@O zuc#VumE%hg0oaks*B`#&4|JT$DBho?Qvpaa_FiWRKm2VK=v&2<`#LTM5o70LVthM2q8?tU@oDK)<4LGJ>5GY;y*=gl<^!dYK;WMHnyqNAdWgu;mH zWwWpXU@n`s?U6ruQ`*>HiijO6l?H<${+mZBq$-kF=3OK_gxvUgoi5B=jua~xbD!`XR#^#}$BBd+9!ml0db z=8^m+Mnp5XLaumjh@+7Db0}`{1Q?;!bKZYu&WN~>$8l)`DBQtz}Rl|cK-)Jz*a}Pw|pz;ec`(cVB2j{=XMVX zFU$j9N*Xl~{LCUTjj#Z}ym$VLgq&PHfWJ=waXkP5j6-MBfA@g@mLwp*cfrU>cAr+6 zk;v5c*4#E?%cVFu_qsZV2RwwgWk=l36aV}ed!^A0;B=vSFtNq%>QAUrF6>xSL+{~v z)jSQ0=KLeJMzBJA3jFJdipcUm^3>8McX-my%nrpK4iW0#(C@@bUOjx~csNzaR6hY}zVw5jF2_GsG5nAVklsfdzx=m) zJVk>n<_uU#rSmHbw)?GiV78rDaXmqd+*(Olp24*s?E4FH$f7FdsUNx4<^(Y6vPVqp zK)sd(L5x0EluMzv@B{p_#AYB%&=YGlIur7~y@elo2I1gtmueNeWs4UlgFGvcLT#lindx3NXs4bNT_j_I1c6V};1pC2kGT-f7 zb;|8evrvB*tm=P|_erDIAU*qnA@y~=u;|9DIa)`TpC!pKP<$n;jZFmC0&}Pm?%%MN4W)L*l@k}^6%Q|pe zE9hs6>oAz)9~n-b3dYPv(0Ki{I`)r#-<4Sj%b)B z#2Eg7Z(#x63KgoSiE9MIL4US;dOl1qL~-2-;Q&n(k-QrU#C}+5*^U^HAyc!>m$xWE3xq5-uO77Mwogz>-!!F&>VlNTF}|DXwt5rdajP|?dz#R;{_ zh$HxO$^yg>n~5Eejp+J#Nyds!k~)o&{8~FRS_|2IwfPSUC_?jPV2|CS+c$+h3KYw= z?tY*^R|636!a_%Yqugth0msb2@M|ie3Ue;03Qbza=;O;bCk40V6TnCnjLi!}?;{Gz zdeM|nP25#jNwy1z(f1RWz}@+Ih(1kr(%htvFv*Z`F#=Hk;?Nf#XJ~PKS^3FSD;{@H zl*wH$WV5HjB4|kB7jw#>=J!{~fQIvPe(pVjcoC8lw952fshB%pC23#a%(-jJdMGH3 zBopgMD1#qYo&>1BOBkf%k~*{(7GNbEKd$evyjBiN1}VSdkPrFfd51NDs*Qmmyd0xq zWYeeVayN}5zZCm`!zF~lQg6RVj~uvvZvAcTE~MiUVN!EnVX}A9sj1(jk5UIUkQu9% zxw&34<_HQq<*eJDV4V`cx9W2@k;Az(ORuCc(T3VmiH=(&3_=9NvXj`-`h^+GUEm5L zO2B&T^blBi|Rp3liLuK?jJcDai=w+s&K+~09izrY&)^7x&XRjUx{n3T@) zWykK}0^uBEOpq(Cul@_|{B74P|0JTWk(28e zXzHqr7`z@)VP=6E^|?!;lly&cp@5cC?=b%T^!nzG7O0;W|GbGP3IlNd=KjGem7d7% zR_I@e!@dHp7}Q&oHGXS&t4~j9MXpaayW233q|g*NSw3?$Y(if)5={SN!6(=Z>VRN% zeNqy^1jN&T)n^sT1MKv9lZg3)H>lT?RSE)jOZ z@zSvB`qGOOKS4S*WQ)e@y(n;QsLh?ZBt>B*SHd*T&;`qWMrPk68}BPa?lRcEh1sg! z6i0SiQ4x!$jsv&LrL{k8JmNhX8y*}($$9i3!RT~G-(>d@-_JmGtPzrb>Ij@MY)(zX!9! zFUO`!e_(QcIr+#*P2{8MvsWh77y0lBMFL`GR+sufRou=$aUl7e(+!{-C51ZYeYwSi z?|ZD@q|T3c`R-H(7Cnu|IibphU=E}0nD=J?KA>9kyK2Ai(FuX73Ms5u;aLzIdcPgT zemUrKWjcyjuB7w~Y>9XN_ZGkjlW$RyaE(lMCYq91?Woe$<5e_$_jeDUrISa8v+G&8 z!X@OCKYrJ%qA8Kn)&Rp7(I6F~$lxJtuQ>02eTQ@Mkre!LP>GEa3Sw z_*SYNgX$;*2EFe^>|3~5CSb@Pwd?D|M9*5_1XV`k|+#%R+xA0FJc<;y~)cA4r$O+w80FU-X^o@XID=^ zn>bDEP%jPKh6Ti#=0yJSH}S()58J~={ZbJN1Wic83e@J1*D~%1s*8cok5lcdM}VdC z{cY=9P+48w18{AW2A|7H1npZQDa39?7lMh})w0Pk^Q-F0x3_`oJ^;O7-#bLo?Wir- zTf^>g6$g9F!;mZ<;R7U=E6_|fXvw_fH&`G9EZRn(njdOUuhJN0MI+Ry4^FeC5=>Ii zY(64FkQf25`ZTx^s>=&xPUL@YDtz4=Ar@Ypt4jTQ) z&Oqf{EtEZt{Gjk_1j5Gaw?G!?6xv=J=}u#MBMUk3ogv@{oj$V-*P~<=MRxQroJLa8 z+h7OtIKmYP5Ykbf9x6UC0?yJmL{CAs2to=$$O?SQz2cg$SrMZ-ZuFRKuq!i28GZpv zqlL`!cyiv9_p`H=)k_)9)O2wB3G!Qlv+YNmR6%!o7eQs0o^evDgirNf zDL*o%lT#a~xzH~h4ipK$8v{iuR@6VBaLKYhruoK&vqM^2#pTRa_QPbCZ<8TOa{{(L(O?V@AQF3Mbz3HpEJ3!NZjLF&e&w$u_UYR?`n zBV(Md&FAPis&HUe<|#D~O`LS4Ot#cXKvW`8z}NGIt-9FDq=n7pi2+Ep_j*KYc^lf` z+ZI3~TSrVLiG}QsZbZzIzqTR%!KKj)#%yLYBXwo`Fp8DYl_7MaNQyGpkYt7c_2y=5 zh%oH`=+>d~sPjyzah~KS;;(L)RC@xuoz@&8GX=WJ*son`CT9Yz98D0wDw;|}oB##f zd3+p9gtNI;(^8d^EoASQ3BgPL=a*(|-(AH@`L2# zX7ajJWi)Zg3`jwR?F<={E|s}!V~d^JR1;@h&m@x94p!z?wv<}g+A5y|)`R;e2u`R<=y-y&p8dJJzWR=%D%;zJ^z>zrHP zHY3@epaRM(Lg7I(JvxP5$eNB?DMFw?T4WxK8@Dnei+X^ltqsxHf+*skzwg z4uV)N(76mRY|IDyjopukeBWY<58uY1kp<-Sc3f9BE;{bIe6q* zKWbd>9_X~Wbqhg?8+gE#q664*Q@Pf^7k}5Wratz80xu5=IHRoLh==9`S;_ucJ*vNb;2Cnt3T;A#yfv)J)g-oFN5DGFk>f=eFC+c#G3XDW( zxHve>h_$u9>T=i4fHht(c)|Y#4{Fo+esH55`@<>ga`rrw*qX$psQI%SQ6mxav}=2b z5h-))+ON4Nr2gO7G<#DrkZy$|0u!sh%nL?Q{++o~S2Pu#3sdA9Tn8$JNA={jqs1yi zxKxP2RajhwEwD652T}L38=J+BoS46^GxzN|W zfpgbgD$`#Lyrgehz%`<-np1to*nc4Pu~$wrnGw{$KVY?tO&dl6TLB|A7GZS;vxGQu zdpF3o4-oqJ`>GupypD9k6h4|Z6!AW$nXHehWXJ=pZna4@trgZw0ay_3@T{+fjyFf4 zEbCtXwCxK+ttQaH04$qa-(m*V=1-7CU$8J)l9iIWbCUlSpAVx%7$``B1BiVv*Nl9g zU%9u0=rYzX(-lO}_D;RqmcSB&4d;vIuXx#upaNmbLnk9g#bn8kJ7Ix2Qhk7~g)F8{ zrFQ?jPCrHXLkqk7y?+6-EBeMNLNz>TBV4YRB^zR>r-Jdy5-U-B#4-s>c!i9|odF6y z1+PT3Y)OE|XS{G)nrABN?G2PJze*2j641HhRDULbY-s`%EWzygS#{zHxI~$P*!?Ij z7^2U_8oAhU_fbiJxh*rvg?J~}TKwu%2?(;x>EU)3B1^X0qX@KV?7+TJ4&kEd#bH^l1*S(u75p zt@5=LcA<7|{i^lIlL*&iI9XPLOx6a_qn=2FFNI+V+)iN8>)A-`YbKuoHM*0@{*d%v z-`Bg;a9K{kjT6JVUa?BG>Y6ae^@4i;!;70{#d9s>(c|yTahNOXqK^adRzcUuyxXkK zSZuLm<#FKJC9fed1=hd=0LMH1g-y+=6=TefXv4SiCAWW!nn!h}7ayy=ya!(x1WDu} zB2*brL*rh^wtvIsNF{el;7aS4=mL2FQ+#qiA<^^v0t6Bc0OLV2iJug^F)8S`(f?iV z5uM&^z3Z$`X$SqKpj( z+Do+jl!9)B1xk$p>vJbH?z-00zVHMWIXY$r67~g6_&rq2Ly{m#kZ>w*h>jZ@nZ;kS z@Q4#Lo~$8MekoMDe*%osd|1B{TJ4;BPKwf!WE9M&!meM_D)3xq9kIq_ClSq?SzhQ< zF|LM<{>A-a`Fv?w$cvknbxFu|^z)I^`&=6K(O=is6(NG(1Hgqt7v5V>x?K~~;;;jv zCoTOCzqcm=7k8#XH~Q#p9R^xs=I~5=G8R=2Y`Nmu_F++0`ga1JwXM*Mp{jgcSURl+ zE=O;&;zZeg0$VE9R?-gwQ7lca1Q9diY{p12^;RksE7HUM8Y6f%E=XJs8-|;}!QsbfLrt$~sri-s~GV^|? zQvrJ>AKM+s{(Uh4{|5e6@Gm)i9FroFo=3!bRApM1p(Jq)m~@mR9Y5A(v{e<66Vjan_|ZeQwBWQkSS@zT^OAnRkYb*m7JbBsg`j{_*tWPWfq+~ zFjbEOB5{m%_;AKWx^ZWqKC($0hn+hjVO!JEOO`gb#tQ!E8;2r7R+bj${`EtXPsaFO z6A731FVqP}8g1=G|qTy=S_H?&ckp)VoQTooC9cte#9^7rnz5)m5d$V`SIy-7q z@7iHoK7gZ6y#c6X4lAF&<@hr)?8y%hadJWMTWh$o_oLxGIj75{v%1owC;INkr^OcQ zsB1Vta?M8sCZRmfhWez-%tm6pm~&w${v*J<>>>*zvPMCMk5WXp>ERhcG=g35CVpK`a#%a`>n_wyrT zC8}?cW_-K>%7dx~{d@(0ik{n44#FuP8d)pZu=x}Y&?(wz|8T;WEPBTCj?4( z{JhC~mkHNQ&S`>9f4>ZT`S>dE%#WR6fz7^$#w9xIRg|4}*)k87}W7aG6)zSsSq)3Vui1q)D!|!^v*H`$T+xrIQ`bsZ zQ*fY~%XsAk8rS!NOREN97gBIuCK>`|tdHBm%wZ>nZ~+J$^&u2qhlfl-KX>(tm34M^ z;@Od}Kd;`~LqLuP~G6)wYL|~v8CXq&uVNrtNP!!{O{`g;58_m_xdRfv0oiI zzK)DDK`L2_#0ZGZh|KHoJB8dOq`&V4-;+r$-A@ZTzbGe(h?9FQ<-f+xN9^)8cD2-b zO4o#2&S)Rh8NXaRxoP2DPJ%& zuyB_-JsYcg|7*>U%LEYTAnEOHZ|mTJUE+rkCK^uXlXFf2KOyujcr6#@W}lTak@&R4 zM!l+j@+ES{s3^Em{c>SjN1sQyx+pcgR1pCO*RrKaqut+l3A=F9GLGP{1z_Rojhm7N z>81DckkXx}d+jkiU8iVz)wsCbz_JSrXgBTqBVYoKAaB`lbbKf2?$x zSbWuPjNu-5Yq9KPJY7_2 z{$iKaeTdClRQ7Tgsb@uyGdkqGbl4YPVrps1=-}wciR^0NNvi>}L+=*Pk zoiCp~j4_?a!*J!xNP}Cm`(W5I@KkW3)Y5YK=@$`yY(%BVNjZGn7!w3vwsf|9hJWhrDfBl;pZzFeOdV$NRC>=Y7_t2zFZledHBbDxM;ys1Uc1gZP&sk=RIEcnbO$+0=}j z{Q$5?bGe=-tj-}I%&VJbIUr0khKWBtF$Tm}3lRO(4~$#~r4>X}5&izQ?H$|k2_$<7 zkVgVS*!XZ^Jrp4s?AUaHKC?4N?)QhC_Qc6GxDXz6e;X9uN}@N=zI6-FOe73?8vB%p zd45AhqDV;ApV^UP&r~Ow5Z=KCqQU}|A_C%6g1%(|&aNL4UNK;nkvB6F6a{T=UkF7F z2mcZiDD`|H?2wXRnvUNmpfPIX45}OZz->@ZTmeSJ`{r%{9iAcq;z&R@rm^=WG8~5b ziZo%mnbM9gVRSGR3U{@?aRNZsGt?LlB-oj72k_0|)6A=S%}6TrZJt3y-`5jIfoM7S zz|$=O5km5@*N^|ap;ZBPw!f5q>dzqb{#U=$XKP+{?qRrl2pCOrTDL$GjZh{Wdiz&& z^rV1J`Vx?ZqB$AYb{p`%7eVrPdnxTYHro?JA$BetlA25bce?8_ zgaqLoy*9QFV0a`x1ly4IsgR25N4BY~f^(cM50q$6`t;oFEb3+2AYR=BzyN!6J)*4z zenkL@-4e_Xe2~^YAfqorbjiodC^<8hfY;)^UzGud_Xg5P%#3(iYzZLHXhx!l5Pdh8 zp@P02pIY&z^-5LCl01qq?sBO~G!K`CwTRXd_g0UMy2p`1h6t0w; zB-mi~gmrf*LL0)mg%UuPr5b8OJ<2HHPvwma^xX%2`9UQ(HKo1&XGBo8@P(>c>1l+; z#Rz|PvG6Sxv5155L4EgI3Bski0dp>IdIk%)Zd4#V&={BiF!6uj)0h5_i(p*ugOzxG z>Hqu`R?FSkL=H*1Y022Fu%>}qKr+J! z7*3M~H^KNop%cKCla6uR8sLl=qzZOm@&z3TYvg1G;{zpTf+qcrb#H~%i$F&#I0+0= zU$+yW84M^=0Ig0vQ?U`a0UqWqlbJxj18-G=@qrR4puuKI{cDh^EpR9!mBdh|Hl6|I z2&2bGZ^0d Date: Thu, 23 Jul 2020 18:03:47 +0800 Subject: [PATCH 25/90] AST to python byte code --- Interpreter/compile2/ast.png | Bin 11720 -> 15266 bytes Interpreter/compile2/inspect_ast.c | 32 +++- Interpreter/compile3/ast_after.png | Bin 0 -> 15046 bytes Interpreter/compile3/ast_before.png | Bin 0 -> 22753 bytes Interpreter/compile3/compile.md | 260 ++++++++++++++++++++++++++++ Interpreter/compile3/compile_cn.md | 259 +++++++++++++++++++++++++++ Interpreter/compile3/pythonrun.png | Bin 0 -> 63445 bytes Interpreter/compile3/symtable.png | Bin 0 -> 50084 bytes README.md | 2 +- README_CN.md | 2 +- 10 files changed, 547 insertions(+), 8 deletions(-) create mode 100644 Interpreter/compile3/ast_after.png create mode 100644 Interpreter/compile3/ast_before.png create mode 100644 Interpreter/compile3/compile.md create mode 100644 Interpreter/compile3/compile_cn.md create mode 100644 Interpreter/compile3/pythonrun.png create mode 100644 Interpreter/compile3/symtable.png diff --git a/Interpreter/compile2/ast.png b/Interpreter/compile2/ast.png index 58669ccddd91b36dbf547134e8c34d281eb30443..7d6d2f19abdbfa1f456e573d5286de68d4457771 100644 GIT binary patch literal 15266 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
5s7tV-Cb(rdLn-zi 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
~fA5ODSuOsZzl*?EeC~oQCfJ literal 11720 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 diff --git a/Interpreter/compile2/inspect_ast.c b/Interpreter/compile2/inspect_ast.c index 509a210..988a747 100644 --- a/Interpreter/compile2/inspect_ast.c +++ b/Interpreter/compile2/inspect_ast.c @@ -1,14 +1,34 @@ void pr_expr_ty(expr_ty value) { printf("value->kind: %d\n", value->kind); - PyObject *op = value->v.Constant.value; - printf("value->v.Constant.value: %s\n", PyUnicode_AsUTF8(op->ob_type->tp_repr(op))); + PyObject *op = NULL; + switch (value->kind) + { + case Constant_kind: + op = value->v.Constant.value; + printf("value->v.Constant.value: %s\n", PyUnicode_AsUTF8(op->ob_type->tp_repr(op))); + break; + case Name_kind: + op = value->v.Name.id; + printf("identifier: %s, _expr_context: %d\n", PyUnicode_AsUTF8(op->ob_type->tp_repr(op)), value->v.Name.ctx); + break; + case BinOp_kind: + printf("left:\n"); + pr_expr_ty(value->v.BinOp.left); + printf("operator: %d\n", value->v.BinOp.op); + printf("right:\n"); + pr_expr_ty(value->v.BinOp.right); + break; + default: + printf("unknown kind\n"); + } + } void pr_asdl_seq(asdl_seq* target) { - printf("target->size: %llu\n", target->size); - for (size_t i = 0; i < target->size; ++i) + printf("target->size: %zd\n", target->size); + for (Py_ssize_t i = 0; i < target->size; ++i) { pr_expr_ty((expr_ty)target->elements[i]); } @@ -23,8 +43,8 @@ void pr_ast(stmt_ty s) case Assign_kind: pr_asdl_seq(s->v.Assign.targets); pr_expr_ty(s->v.Assign.value); + break; default: printf("unknown kind\n"); - } -} +} \ No newline at end of file diff --git a/Interpreter/compile3/ast_after.png b/Interpreter/compile3/ast_after.png new file mode 100644 index 0000000000000000000000000000000000000000..f79a858987f6b924cdbba82731b23b87983a3303 GIT binary patch literal 15046 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