Alternative SAOP support for GiST
Hi All,
During my journey of designing Pg based solution at my work I was severely hit by several shortcomings in GiST.
The most severe one is the lack of support for SAOP filters as it makes it difficult to have partition pruning and index (only) scans working together.
To overcome the difficulties I implemented a simple extension:
https://github.com/mkleczek/btree_gist_extra
mkleczek/btree_gist_extra: Extra operators support for PostgreSQL btree_gist
github.com
Since it provides a separate operator class from btree_gist it requires re-indexing the data.
So I thought maybe it would be a good idea to incorporate it into btree_gist.
I am aware of two patches related to SAOP being discussed at the moment but I am not sure if SAOP support for GiST indexes is planned.
Let me know if you think it is a good idea to work on a patch.
More general remark:
I am wondering if SAOP support in core should not be implemented by mapping SAOP operations to specialised operators and delegating
all the work to index AMs. That way core could be decoupled from particular index AMs implementation details.
Thanks!
—
Michal
Attachments:
btree_gist_extra.pngimage/png; name=btree_gist_extra.png; x-unix-mode=0666Download
�PNG
IHDR �� sRGB ��� DeXIfMM * �i � � � � @ IDATx��`T���$�wwh�B����[�B]������Z���)Tpw+�.Ipq�;� 7���gw������n���f�e��s��;�I�H�H�H�H�H�H�H��4��e�ul � � � � � � ��!@ � � � � � � D * "���D ��c�H�H�H�H�H�H�"� ��l" � � � � � � P�1@$@$@$@$@$@$@@�
��d6�H�H�H�H�H�H�� � � @@t2�H$@$@$@$@$@$@T p� � � � � � �@� :�M$ * 8H�H�H�H�H�H�H P��&� � � � � � � $@$@$@$@$@$@$� ��NfI�H�H�H�H�H�H�
� � T D@'��$@$@$@$@$@$@$@ � � � � � � � D * "���D ��c�H�H�H�H�H�H�"� ��l" � � � � � � P�1@$@$@$@$@$@$@@�
��d6�H�H�H�H�H�H�� � � @@t2�H$@$@$@$@$@$@T p� � � � � � �@� :�M$ * 8H�H�H�H�H�H�H P��&� � � � � � � $@$@$@$@$@$@$� ��NfI�H�H�H�H�H�H�
� � T D@'��$@$@$@$@$@$@$@ � � � � � � � D * "���D ��c�H�H�H�H�H�H�"� ��l" � � � � � � P�1@$@$@$@$@$@$@@�
��d6�H�H�H�H�H�H�� � � @@t2�H$@$@$@$@$@$@T p� � � � � � �@� :�M$ * 8H�H�H�H�H�H�H P��&� � � � � � � $@$@$@$@$@$@$� ��NfI�H�H�H�H�H�H�
� � T D@'��$@$@$@$@$@$@$@ � � � � � � � D * "���D ��c�H�H�H�H�H�H�"� ��l" � � � � � � P�1@$@$@$@$@$@$@@�
��d6�H�H�H�H�H�H�� � � @@t2�H$@$@$@$@$@$@T p� � � � � � �@� :�M$ * 8H�H�H�H�H�H�H P��&� � � � � � � $@$@$@$@$@$@$� ��NfI�H�H�H�H�H�H�
� � T D@'��$@$@$@$@$@$@$@ � � � � � � � D * "���D �& ���<�������~�& ����������o|�+W�pD�
� �d6$@$@$@$@$@� ������3��
��"��%��~C -111TsP������bB��$@$@$@$@$@E @�������l����#>�u@�
��R��E�_N@� ���cVV�ddd6c�FJ +V4�* |���I�H�H�H�H����?( �J�O� � �p�y��
�Y�J 7`��>�������@l����������fD@�X6�H�H�H�H�BI ������J�,�� 66���{�{,���gI�H�H�H�H�H�%�����S�wI�'�I �'6����)S��� pA����7 ���@ ��L� P���� � � � � �! ���3�@I�X�"��5* \�� 7 �S�w��BN�� ��S���� � � � � 8! k�\��� *1�GA+ ��� p��gH�H�H�H�H�\�-n���Z�F���� � � � � �@QX��k�����?�I��1��v��/����
*����^ ��C� � � � � �!X x�T��:.�{2%�P�"���U���l'��G�q^���!���+�����C�����S��K��U�����MA@Q�T e�#$@$@$@$@$@n@��E�E����rxW����&���:���V����r�9��3��vdVZ����&G��"'D�����*kq��� K����9 �<� � � � � ����Y�0!</;4�8 �9Z�����? ~C���]M?z/��_�va�Z���;�zb�FGS���O�4��H�H�H�H�H�#�bE�����������*�~�c����^�7�/ ��$��@d�b�K� �iQ�� (��G���KvVv
_�J�J����G��%�� YTT�T�\����BK���T������*U*K���S�����~t�g���������8���vh�4 ��1� �>T ��>y�_zu������?^������wd`��!�
LJ>"������ ���};���/(�XP�]"n��>��qS��cQhG���4k��D�T�B�{�u�:c�y��U)x�
��C��U�^(n���H�H�t��t�W$�c�X�*e e�c�, ���DY�|�Q�Y��~}zQ�`�C$@$@$@!"P:mQC��� � ���8E���Y����u+9�Mk�! (e� (e��� �@( $''���s$C�����+'=�u������,�H�H�H�H � DfA$@e���y%>!�/D$���J�~��js�. (�� (����� ��������9s���$� ���V����=���w� � � � �* J=& ��&�;>^�o���9 �j��2xP�v�L$@$@$@$@�� ���Xc ���7��]��v�X��W���1�H�f!$@$@$@$@�'@@��2G (�'%��i3$G���i����h]� uj�*�mcH�H�H�H R P�=�v� ��;v����I�
��?��\p��;x�H�H�H�H � P�=��� �@� dff��y�%��Q�����]:I��C\G$@$@$@$HT �&�" �2@ )9I&L�fV��( .r�� �4�M ��%@@�v=N$@� ,]���+_�����I�&��G�n�/�Q �RC ����V4''Gv'$���%55U���M �J���n�:��q#��W�RR���}�$))Y��3$WuEGGI���M����4�
���W���M���C��9�1e�.99���11�����[��?k��r
������AS��c���cA�P�
1L�j��%����{���Q,p���r�p�USv�9�xv��]e���U�I]�l_�F� �Z������� �]��d������j����a�= � � � ��P�� ������[�!�dfd����.�N-���q�����N�B���Cr��p�H�<���+��6��;K?gKt�w]�z�Z�0i��Y�^�����_R�Pj �f���i�&f���k�����"u�3g�����0V��rRN�s�
������"�'I�Ij�����}�NU��#��ii� ��1����T��T�V�l��U���v����/q��AE�h��2g�|��e�@Aq��!9z��Q �� @����N���@ �Z��s�<C�v.:f���{~����'�����&;;GNj�Jn����s_�9�
���w��Q��=��%IJJJ�s���1FPIjTW�*o�5m"���3�`��Zf(�������M��x�X �LVv�����yf*h����5��������?V����#g�\��V�K$@$@$@�F�pi-���3g��9��]1r
��[��E �7o���!�W�V���DEE�&�:�K���m�k�o�!�������C�-�6tY+���2r��6���OT!9G�Qf�� Ej�w�*&v���m*�.]�\��X!�s��ow���K������7�R�R>���k�������4���������?�U�'I�B+�f�Q�������X.�Z��^��HHLT���P���+/�s�>3��_����_G�*U���W2aUrb�\���U���JN>"6m�y������=���������T����������������_���:U\�-�$X��:��{�D��s�$9��V^��}����� ��g%C��dW|�,SE��E�e��?��k�6� _����1&?��I�:����v���|_x��b�:���_�y"�ji`���Pl�k6��H�H�H�H P�e����.SK(�@�
ek5n�������m*8B��=� ���`� 4������7y�{<(��y_f��g�q!�����cr�u�����;w�k/>+�tu:����K��W8$U�V)������~�-7���r
.
���;v�����WA�R�8�C�
���1 �l��e�i�����J� �N#*�����������C��sei`�
u�u��)^c��[.�W�v�������.W��$�3`+|������s����6o�&�}��,Q����T�l���m��X�i,\"UYr�������g��s�K�q-��������P�V>��������W_���O+vq�U��@�?�#(O���c���b�H�H�H�H�J�@�2R�U�t\�\y�w
� +�����Yy����3V`1A�*L��[���m��!d��
��K�w������7d���&��$���``��o���6�F���8�i����=]"�W�Z-����@���VB��O?����sCP�L�L�o��?��gd��jE�af[A���O��w�����i���jI��3/}��|���������[�SW�$#�Bh��dgu�o9v�
��n�NH�#�G���qk��N�t����L��R�����"}�gq������Ep=r�����Hy��W�HI�}���������([kmS=u%z���"�����L7nE#x��n�B:�k � � � �@� @ ?�����:x���?�'o��C��>�X1�Y8���w�m����a��6�Y�`)���Sc�%&���UM��y����j^[�������Q8��������7L�?��3y��5&@Q�?1�t�gU�G�B[����*w��t�V|_zm�l��U�a8l�U4�b���L<���k_dK�a@����.���6w�By�������x���������1S�����2e"�D5]��[A���a������3��[�n�3@ ����r\�?x��Fc�w��6��r�j��k�=���S���2#/?���9g�\�V^y�-��r�;������h���3�&0���
{�c�m��������f������sj���>�>���jUd���?�%b}<��=���:^�o�1c�
X�f!�����`������ � � � ���3���[X�. ��T��}�8Y�z
��%GW��v�$=N�*��u�F��(�l�g�>��_�f��_|��m�)&�����s�`d��CA���n����j����� ��
����5vX�u��7���l� �{���2~������gHS��������t~�h3\}��r��BZ'� �����2[cg�m�ke^]��^=�K�S���N1��V�l��������Pl�T���B70H���!����'���_b6��������(c���m���3u��u�tj�yZ7��_�f
Sv+8���o�56�
�ZW[���a���QC���kl�(�7�q\���(����.l�?�#�B�z��X ��;�(k�n(�w*�7jX_:k��S��:tho�����+;v�R>���jY�~�*�w�@����:s������P��2����*��i_�rB�U�RU����� �h��/�v�=G���W(���H�H�H�H��L�
?cB����4�����
���M�]#��Rj�(��X#
�wZ�.r��m���3�
��>�����1�oi���|��of�e�l����
4�N����Ic�������r3����/�,a
��b?N}����t�B��{�K���7� �y*�Ap������5�BU'��~��,,"@B�B�|����,APm{r9k�@#P�R;�AP� �;�����4
9���~�?�6J���W�zo[>�����w�&g�g5����k��[(�������]��!��5.0� `��w?I�^=4��Y�8��S��_��&./wz#�3}�9����\mW�N�����S�^c��j�o�'K5����>� �n��zi��u�K������[�H-->����������Uv&��J�P%(}�Q��du��b�l�}5�_x� 9������IS$AwM���1�m�����?�e03 ��%@���!����/��5��@}�m�h����\g��-���/5>�p�l d�:�^��p�����C#�C�>�/>���*p��������)�����&~���p����������mY���o����o��
���~���fU��r��7�L�6CM�����B��N��NuG���M�[�9g�!��5�'�zAwa�Q �b� ���?���mO6!��DL�Qc�4��9
��te�%��z�:���������5k�@�(�sp��:}��h�����u�
�W�|o�Tl�����=�������0�:��~��Uh�-�q�y�*�nV�M
'J8�:�o\w������t�=1q�����~����~��8i��(��}[O����&����L%
���c\�����u�7�;H���~�{{t����$@$@$��
����jg������m���/��� n��?��A���~��8�x��.�'��p����� ����5��D�/�l�J^�Z�N��}�W��U�K/�P��_!��n�I�ft��%D
������&���!������*���c�!��XA�A-,�5f�]`5]ar���u�����s5���}���[�!I���~F��=b5�������nC���������$�[eA�t�Y\�n��(a���r
���9KZ��I��j����f��0fa �O >��;XX|q�]v��G��*�<�g�����u��Yy��R����O�bUP3-_�J^�x5V��s�w
�O>��\t�����
u��m�8�Te�����r�! � � ���
��s�KZ�n�[�@��:��FI�����]��L��,�����'e���������\0T %���
����j7a�&[��v���� �x=��tQ���}��U��2[���+ P��]��������c������2<��
���������:\�B��O>�3�����[/n�]�* �*���Rt�+#�&/X�D���d2���|���&����~�E'~ ���%�4���K��n��Z�{;���� �e���V= lB1�
�R @���_����T��.��B�cS�5a�$$�1��j8�����<���+��5>���d�Z�X C$#3�(p����]��5��F|���s���~A�F��7k�_v��@e�\@��_d�W`|�������
��]�?H�H�H���</'���[�*����y�:}��,VZ�^]������R�q$1S�m<&y9A)�H�y9���m��G���� ��u��\��k����IS���x����)77G���
���?R[57������en���pHJN2���t�]E}�������T��_���0s��2?���fU�:�o�0�?r�H�� X%�t�Pi����MW���L-;>@�B���]��k����X��
�����@�����R��!��=���k`�Stl������8�~�!�o���X��{������� ��t@��Y q1���v����q7����;(��_C]`���WW_y��Q�<�TN�G���n���?�s����;P��j��o���mP����>����(�g�)�}���x��(�y� � �@� ��-=9��x��p���U����(-����\9�?[W����k�A9�#Y%�Kg���b���j%~@�>~���ys
X�l�f� �}!���O�=��o(%�W���!w�
�0�F:��"��%�7P�����G�~���-�+�xA[ ��N;H7��!o���Am���y��n�*a��u�D���6W��;U���~ �����Ici�4��@���i!;�)K�d�}�E����h���<��}R�K��-�t7�D�����HC�"!�c=}��|[ }�M��au� t��s��6�mu��V��@����W^f�#��c�����X%�v����t���ES�����J����H�H�H �TX�@�O(�pG^�j�)��9���O�p���<"�N������4H�� ��P"`�m� "��jUm����"j� � s,-��+�Sf^\��+���[
b�V��J��],O<����������V������-��P��~���{t�*7o.��k���%�,�X�k��)|4���<�]vv������B����yy�[������
�Y�8+B,�\��Q���1�[X>���Fxwv��c�/�����|��w�V_Ki�HX��V ��B����P�u�] b*���M��`����Z|��{��;��[n,�G����9z���6j��{~���v��
�>����I�H�H�H�J�B)�t�7�j� :�����R�����
��� m�m���V�b;�'`��� V_�`Q0����O����,Ae@@����<���%.��>�� �+�<�-�Y�j�B�"���u�|U�C������t$9E�il+
=��*m������<!�7o�?�� 0���F��L��c�\������4�6=z� h&�����U+��a ����u; �{\1�! P)A����Zed�������Ba��tp
�� �����L�?(:�hj�~��zz�Ue ��<H�H�H�H�BG �6���{��� sk�'��T��={�?�oh�
�/yZ��^#H��d�23�$G�@�5[��g&r=����� P�`���-�U/W� F"�[ Bd%��_��m���<}��Y���z�]%��g��D��<L����$��z�s�d�������3������?���v��������
�Z�6�R�����3Y�V�"
e<���H�@�N+O��a�0C�����[n(PR�L�<��=��0��s�,��m��H�H�H�H�l�@1��G� ���������:.U�T)F��o-�7���Zo�_�V�?��k�}�X�����]�2�pR�l��M�����\I����G������c�D����<P �.��}F�F�u� �!X�4�&(�5l`�X�=��aa��'_��k���5��<����f���H�����P�� �{��Z��a�n�h+�[���*N�3�q��wG���3OX���U>Jwi�j��,�n���J�y%#�e�`���AU:��� � � � �� ��
���#��m���QFq��pa���G����4���&<4~�k�c�x%���[zF��������O�`gP�z"2��f`��+���HJN�<����F��l���c��G�?��-*d��}�B��m}.��1�l�YTTy9��"=��]��3w����!�U��^��w��������ce��N��������c�m��bY����=a�>�
�,�b������{x�H�H�H�H�t�����0 !H���O:V�5�~#��S���(9j:��JX��u���z�Z�g�$�������� �7�+���V�!T:��Q/W.#�!W%��bu,�e0W�������_��r��8��|�������� �����w�L_+b���{q������!��mr|f���G�!}z�������wFF���<1�������mv
H��H�H�H�H , ^z
�f�R6rZ�K��y�24�
�su�?D�w���*?�\(2�p=���$|����+��wC�BP�`v��*�E�~t��@�p.���Q�N���{������#�e`�JS��E�'���q_��
����;��v������1}�;��6���X ��u�! 4�N3f����w�2������u�W>�P�G$@$@$@$P�� (�.(��*����x �u����_i����I6�;�rTF|����wI%����%Q���5�����u ����;+/�� ��2r��]�Q�QhK���u�;o�I����w�%�w�l�Y�T�a�?W��a7]/o������6o�w��x����l����3�n
hvh��di�����)��� � � � �� �E7��J`�?77G���S��?f�{�]���o�m���z�z������{��[������P.V���'�_{I��n����X��0���NN�+��� ��������?�j�� �e5
�y����n��XM�r$:����\h�����������-���-V��1������[d��7�����F>��+u�)��"n���sd�����_h�^���V���[�3�:`w��}z�Y�� �L$@$@$@$�� ��)=����_xJ6h`*~����p�R�ql]p��z��.={�~�q��u�?[�j"t[�<cf_�z��vml?W�E��B�t$����M�K�/�>��p�,,�����b� ?v�A��������U�X����;oY�@�F���!r���
bO\s���d��2�=���;�n6����t��^��*��j�����h�K(h�4i,�����o �2L�p��7�M�L5�?]��l���{�&�Z4W�0�:dV�q����2����W��1
��n%��f��5��d����~}���>��N��G�s�K�z.����'���'rXw0��\�}ue���nvy�/'*��{�J�u��~<�="K��KC�R��T�����
����]���c,'����f���@��R���$<{�V��}n�\@ ���_�V��d�{I�H�H�H�J * JIG�c5!0_r�����/K�+����_��<��c���6�[�!����+��7�7��F��-�,+ ���}���A*��l7j(��d����xRR�l�����<\��n�d����}�������;>?�������F�������k�<������};y��'���X������@l���C������w�n�S���;o���Q�R�h<���;����e��Z V4��L�D�8i����f�:�1����cm�Z0� � � � D* "���J�~�������7f��
@P���^-��J��������e��F�:�i�Rj��Q D�>0���cW��yD;��*�ImZ�� ��� !�.[��o�(/�:\{�yy��������wF|,G���)�~����;�.x!�s��?���&����yqa����B��]�ek�m��������B~ ��m��?�����Y������%]:u2�(Z�@�kl�����:��7v!X�t�KM5���:u��M��/& (����]��<����{�`5W���X�����d���2k�|59�������_;|���7�B�:����w�p�TP�
)�B��^/2J����������J���\��YB@�n]:�����Z(,��
C������Y�[�f��\�V���
�1"�^��5�|9����L�_u�z��q��}w�&��|����O�Z�(�����f������[���{��O�<�����C��
�x�����P��
�]�V���,`���������qU�U���c����Sg����b��a" �T DN_��X=�TO7lP_n��:5�_#�tu�!�L���:v8E�B�������{�E�frR���q����b�cd��������" V����^A�A����p� ���5[)~���q-8#��~������I:�i}q���h��#�Zy!VC�S;z���_�O�����I>�@}�D���+������]Zj\�]�w[�}�x�r�Vr��g/��)�g��o�O�.|E�/.��� �V��}f���e]h�}�R���R��QXq7�<�z��7�t�l��E�]���j���������y � � � �@� ��R_�h+[`*�MX�Q���>l���w?���@�;����F��z]� V ����lS_���
*8r�X�
���'S]!N�����';� ����J���'��:J�����~}O�1[��E��\�2A�������������]��@����On�Fn��z��. �H�����9�]b������o�=�������?j�8�#o��� ����<n;��]�v�q�
��� y6c�_�}���}oSzz��=~B�}u���e��y�: ��O�
�������T0l{r; VE�=&����
Y[��9]NQA[�e�2a��m�.���
���B�O��T��Uv��x���w������m����V�?�O2+���ww.Y���N�{��������[����UKw���3�o�}�v~�9* �}�v���I��n�(��A�Kk���1���� �|���2��XG|���u�71�o��,=N��o�>���U>x��R�za�d%@||�|����N�;"�+`W|���/7
p�R����������9 ��A�
��������5�'y�������DM�?�������y�^��V �u���)���g^��-����+�o������aNv��*;b�v��^��U]&�v�huQ�OF���[���T-6��7��b�;�q�?J����/�k�K��4~�'�fD�p?��=x�]fu����8WQ-�>�SSv��q4�����_����;l�q�;Q�^y�-�Z- �X�u�-�U_u�SA��[��r��w��A�]9���*�~5����?p���=�w6������$@$@$@$P� :���F�i�C ��W]~�|����X �~��8U���%�� I���|��|����>�3eG].Z"���5|�!�W���]��OU��?��--���<��A������7�N)���u���;��,O�0{T-$����������
������~�Ow��9����=����mG��u�����T���m�v��W���$U���eG�����f��
���U��k���en+�x������W��_}cT�f��g"�_s��&�^\\���v���i3��_~7�*q�������O��}�g�����#��,����
����P(�:j�t8��t���e����,�G�~B� ��`��@, & ��"@@d�wX����1����R@8INN����V��h��<��KU���+�����z�!i���F#�c��vZ��]����U_LL�./U���`��d�����<Ew6��h���w����nm���@����O����^H�~��,4����5���j��V�%cm005-����^��X){�7>55�NpG^0yo����}�0�V�*�L�|����_$��l�J������e^���v�����5�\�7^7Tv�Rb��i��p-���u�x��O�+F�S�V���������P�$$&���&Y�|��HII1�Z��_NN��i�R��n�^��<UU���[n� ��%!!�`lA �i�V���_e��/0p�������:b�@����&V��u��H�H�H�H������q���v�Z�G����cOL��N�nCp�R�U<��G�Va���B?|�=��{�O�4U�G�/(d�|���5c�#DA@�,���F�0��,���+V[q�������U�d�����
�\m, ���gA�=k��*��
��tK�u6�z����q���n��V�P*��m���N����u��wB��6��J!1P'�����{L]�x��&`��^0@[3t�|����[��'O�Q�w�1"?��l�����w��������*��z�NP���J�;o�I^|m���i���]
f��-s�-4�����
���8�X��X��������j}�9 � � � �@x`����2_+�p#Z<�d���S������1����O<"g�y�an%� ��
��a�o����i��;[c �?�0��'���;n��mR�f
��/���C�07��a�l��
�4���~�
����]cq��O��8�=��:��QC�w���z�*�:�Z���~s�w��|J�v���O�
����>s� ���b%0��_c�T�q����+d��]�O���j]��KG���& �$T DRo�Q[���e_�����0fU
����~�]��������{R�T�{���m��Y�v�l�W�Je���s���1q���o�L��[�������[�e�)��8�6/( ��3t�X9s� y����f�6�p��~������h<���}���*���kB���&p�%7D��T]]4n���[��QhX���X���}�QY��=u�,I�-�(��@�pi����%�M$@$@$@$A��egCp:�>���W������C�*n��2���t#�rf����X�����B��<lW�q����_�� �C�{��'��WO���6y��7e�����D�7-f����N������=��A����p��������w��r�9g��i�'N1[����2����Uek%��������<i���\|����t9�[�����_:vh�
����Se���*����;��Oa����[��n���C.8O�w�������d�en���{���
B���U-���; ���3W�L���-"?&�m��������th�^�<c�3�)]4(bq\[��D���bQVE]���]�u����*��������6K�_}��F�o,�^}��m��
2}�9�t��
T���"�8}����$@$@$@$@e�@9������f����[�J���~�v�t�����RI��.N��m�$��q�yc���n�V����#��|�����{]��&m�h��6��V6�58Zq��{������� k%J��o��E���u���h� ���m�T)N�jt��&���;wA{�n+��G>d�����^��a�X-���)��j��V�B�;�U�������d��5�F��[��~=� �"����`� ��uKA����jZo �����?y���a�������{�C���[�\V�Yk����I����2
��:����i���'����C�%�=�M�7n2z��D�&�w{-����o����Q.�
9���Z�k�����owB� �r���4`����o}y � �@�$���v�0���:+-Wv,>"�7�|��&��H��*I�skKn����E��:*��R$7�`X��zk�jQ���R>��b|bN����
PP���H�)��Cp��VX����4/����QB� @ IDAT���4� �%,42�2�Rx�A��:Q��*Pc��a4�� ���o��`��+����=F�P�y���o���N��H�H�BM�/@z�$�>*���o��v�Z �Z�J��5C� ��1U��=&yP8x/����>�R�t������o ���
�\x�H�H�H�H�H�_ V6�u����l~�b,B�g>���U����
�#�1 �s�Q � 0�qH�� 7 �SeC>�Pj���
�(�d�kH�H�H�H�H�H�H��� ��#� � � � � � � � A��,I�H�H�H�H�H�H �Pn=��� � � � � � �@P���H�H�H�H�H�H��� ��#� � � � � � � � A��,I�H�H�H�H�H�H �Pn=��� � � � � � �@P���H�H�H�H�H�H��� ��#� � � � � � � � A��,I�H�H�H�H�H�H �Pn=��� � � � � � �@P���H�H�H�H�H�H��� ��#� � � � � � � � A��,I�H�H�H�H�H�H �Pn=��� � � � � � �@P���H�H�H�H�H�H��� ��#� � � � � � � � A��,I�H�H�H�H�H�H �Pn=��� � � � � � �@P���H�H�H�H�H�H��� ��#� � � � � � � � A��,I�H�H�H�H�H�H �Pn=��� � � � � � �@D!OfI$@$@$@$@$@%N�\9���O�W�lU��q��3�BT ��Nc�I�H�H�H�H�<P5�X������<��/�j�H\u%��[X\K��n������,��C�������=���$@�"���-999�����V���na9$@$@$2�MSfI��c�y,�� �"�V�;U�J� ��(����
��L�)���Y�R���+s���i�F���_J��J.��yy�B �%o����6j�T������������}�������������������H��})=�v� 8%����dW�?O2R� p����*6�f�E�j �!X��P��
��q�� 0+��.���m;w�g��i����� �G �;��]�/����D�������$--U�����m���������e��}��gwU��>�t)�V�H�H��� a�5�����d�~��[(-��.�T� o�L�&�c�.Y�b��_�Xf��/���� ��P��?pP6l�(K�]!��/uj��Nj�B@ t�$ �0%@@�vL�����A�>}��[�D��['{teV;qq�e��9�� �+���Ge��92[�
���;L*T�O�uo��U�`��p�R�>s��^�^�m�!���JTt�4n������C$@$@�� ��������k����d���*���d5 ���*XH�`��>� ����1�x�2IL�#�������#������`�")9Y&N�f>�������C����Jq����b�' � � �@)'@@)�@W�OJJ��?�J��0Y223�/t�����0'�RF -=]>��������fv+1����3�mc��%�|���I�XsEEE��_����� � � � ��g�9KM�M�����c�U!&(���y��1IOK�L
t�����\�R�9���������C�������c������}����V�.& �� �BoI��� ��v�\�@zz�l��M��-W?�u�u�ui�#��U�g�|TP��H8�g<z�y�����( � � ��{T ����$@%L���+��y�L�6C���h�m�Rw�<��
��r\-�.b�$@$@$@$@�� ���XM�4G�S��/�� �v���XQ������uk�������
&K#�gddDZ��H�H�H�H B P��f�@88x������d��Y"��_).���>t�]r��C������k�q�7cd�"��$@$@$@$@e� e�7�(rrr��wG��)�u+�h)������
>L$@$@$@$@$@���Y� � ���9���tt�[�� �lI�H�H�H�H���@�����f����G%33Kr��9J�p����jU�H�zuMP�@T ������A�J:8pPN�|6�����R�vm���|'%��'��uU9/7O��7[����*��R�f-�R�����sc�����=%��`��l�C����/_����n��V��5kH�5�)"��9�>��'KZ��W���������1����������/����;&���B ''������wI'�����.Y9���������Z1��T��q�?k��i,�[���������}n������T�s��������kT�f�*T(.�����wvy��)�-2�l$��k��������O����C�$)��yw"���3�����Z\l�y���UK��X`" �'@�=���5m�l�7����Q�����|�8d����3�F�H�V-e`�~���U]�i��&L2[�EGvg�
�;v�����;.3g�5�c��U���uC���'�q<m����d�.�SX�u!���q��~��w/�p�7&���//���w��tb����R�����g
.����G����d����kw�XJ�W(p�7
L�!`��[W�7k"]�t���0B�7e�zMff�,X�T��D���{uo�5%%E2� PA
KP��u�[��4n�P:u�(���F���}���2c�Y�f�n����������+S25@`�+V�h3��;wK'�?���
1��K7U������jK�S�:����#�����Osss�I��r�-7z|V9�m��p�,�>MH�#0J�TN��B� �UE�T�bS��e����oo9��i����L�<�l�h��gfe���[����+����[$o<������r��g9v��-��*d����\�6��#�<�2 �=��"P�B����*S��m+�N��c��3g��w�<����D�:\�;[�X�\u�����"�<��p�������E�i�w�"�W�6����
�]pK\��1._~�-
�k{����o������"�p`������?�|~P���[��W_��wQ%��M�e��)��=���x��o{����{�e�:�w�\�7t��5��o�RE�5�n�� ����T���~}u�/]:�*����
�����I�H�H ���"���m��]���/���K���X���+8X�������I|B�,Y�\'��d���2�����Nb�%���d��2�T��N�T���������bb���E.�9|����R0I��/��fE3�?���� !q�|���F�p�P�a�o��xk�������12y���m��uvl���?�;N�$m��>P`oyL��j���O�!�+C�?����d��.Z"����l� 5a�X��8���r��
�F�������H���5�(J���e�D���H�^V!���WE�w?�*�T�aV�*�a�>��Kah�h:z�������(�d��z��������v����B4vp���O�He�]���lU��*�n���1�- �m�i�}v1����2����Z��&X����}��Y���q�������r�uWK��I����~e���0��Y����
7�����D��� V2?�>Z��3�xGX��Ek%���J�������^�q$��)��!����DnS����n�q����J������O��X
���FI�.���Y���Hu�������-��3������
EX����y���2?��G��. �{��~2�+�{��q7-T�u�%C�( ������ �y�V�C]����*��nm�B?���HY�d���O0��w��������i%� Jq(w��!O��Y������r�Y����/-q����& ��"P�/gI����;w�"���f�tNb&l���I&>�����@F�+�t��'�xXz�������tB��/��$L��M&1��'Z'Y���Q���qV{���j����U�g^zM6n�b'�a%����z�������+C����7_R���p��@WIQ���L"���q-��9���z�:�1s�<��}����U6^����O��I�f���!��1:Yu�Zfeh;t�l�����5k�j��:&��N����������?�
���0v���*��H��z��f�-�5���}Jz���UVE�C�U���]�xdW�6VEnvq J�?�B��[(Ij��'EDa�"��6b�#�D��.[!W^~�*!�s��������3�����d����-��w�m^����������E0�`��*Y�qc����w�n�Y�
N(��v�����u+y�������8�����*3,���r�z�F��B�6��.>�254���U�����O��+�\ �����1p��S����K�*�p������%�Pt���J����q����Y�A^�� ��8���;%_��cpZ���~�f��[,�?��4k���H�H�H " �_�H$�o4Vl_}�-��B&Q���� $b��YW�����2s�\_n�k��%�a����O4����3/�j���f���q���=�����4+�����d�5/�o1\6�}� �w�J�'�0�������?��e(H �a��k�$V�]�J|�)3�� }�$�09z�<��sjQ�I�,b�{q�������?�[��ZM�1.&N�f��>q�sW&����n��G������_5V)��+���������+o�m,0��\�3���>p��F����z^]5���~@�>���!�����w�toRBb����������[n�V:�U\��9�`���w ��P^��~�� ���
�7�y_�F&����@���S��-���~���� � � D"����#���6c������}��1W����� &&.Xe|���d����fU����`
���@�3^k�O'N�&O���$��k8�;9t,��^�,x���u�w��%�^�z�<��s���F��'�o����1a8U^y�U.�i�^��K��g�N��3A!��o+s_�4�����A��vD�S�����W'�(s����k��G�=%��>��[y���L ���\#��k�}W����p�����4^C-#4���(ovj����5�S������_��`��g��e��s�6���X�������������O5��1��p��������c��X@�� ��:��x���&N�m[��H�H�"�@�f��B�E;1���e�_���������C�8��Wo��C�������J�����<u��_nq'�0�}���S���D�G��&����w?0&�����#���:���u���V^��uHh��,y��������Bu.���
K�n��+��`*k���oOc� � ~��Q���m(��F(��*��+�xS_0���'?���^z%�7u�5h�����U�w^ H�u�p?q�T���/L�������eKu���r76Q����������^��b
F9c��Q�U����������(`��-[������&xV�Ix7�3N�����+N��m{��4�G�}�V�c{� � �@Y"@@ z���$����_F�2���� L����?/uL��?o�"3�G���Q,��o��{� �O�?���PLN!�AQ�����m���ID���������3����]B�����J�n� ��m����o&%����������_�.�3_v�E�����w��j�q/��B���K���]�B~��p01U�J=����@�k��o�[�1���%������@����e���Qc5(���]��s�q���@� O�~��=�X� ��+/�X.r�)��u�+S����X89��+�g�x���Po�<����\g���1��������&Jq�K�].#>�\��Y^�(��e=g���k��S�bM0� � �@���F=�H�i/|����O�0��lW@0Y��� ��P ����M��0��[ nPs����+
?���@W����+�i0�)������wD���V�/u�09�^��\v�`�F���[�������k��t�3Wr+o��5&���%]�Ry���u;F����]�c1���?���������5� �8����`��\���B��J�!Gl�_G�!]t_m�uZ�,q�������mZi�{��\��sC�s��g��avIp�f����7]7T��Vo�N���
�&�C�r��j��Ku� �|u���>����7J\�NQ%|���e�V-�����;q|��d��;6�,�E���Fw&���A�$�4��+`��8c�lU�ez������j��)��r@���W^j���4���X.�4^�x&��rL+V��%���}���������n���>��1^�[���C��� ���]��� b?@����D>����K���(�F��y��-�������-u��������g�`�� � �@i!�^�*-�(�z���U�x��b��
��v���49M�Z�Ig�J�F���c�Y-���I�;��jU�4 `[��6�>8o+�Z�-|{J��9���^�-��pw����m[�7�E�i(5�{�WS��s��E�����NW�l�������Z��9L�=7Q��Q��>s����:i����w�l�6P� ���Y�OL0�|8g���:��}����GT�������z��^u����#))N���,��=��O���:��9#�m����?���������F��r���RA?��Y�u����b�>;�C� �K�dt�|�6�q�v'��O<*U�tT��s��R��:�6?����j0� �|�gnP�aLyJ��V1i]�{!yj�u}��Q>����JQ�B�e��w�a��=�-c�s����
�^-|���'�:m�U����?����E�p������/ (�����q�P8c`?�0��p��?�6�<#�V������k���6��Q�m|<%��Z?�Rt�y:�y��`�O�1d���m������[�5k*5�W����cB A��< �hs������<"�:u��U�w@~�5`����#�'M�:<���
��+V������t�3�& ��J�
� �&Z�1A�d��3����"��46w��#����k&�����f�/�9(��<m�\��������c"��c����Q�
�I�M[�f��6�����a����n6f����]����>�m?&��4��!&�x����E��b��F|���,c.��p�����g�p���g��8N�~�Q#`}�����3�1�Ed{��b��1�?a��_�o�U�8^!����������~=���o�_[���~��:Q���H��M����}�-���E�vm����}���^}iaz�N��*����q��%���K'9��3
K���J�p��J�`'Dx���#��2�VCUqsZW��3�+��j��F��R�U�j$"lM �Q{��;�V�&������[�5=_�[/��]8��<�
�����������|}n�����E�Lx���'��v��v��u��CNUE��/?/�U�2I��{q/��[������;K���r�y��[��N�j{}�>��@�5w�QPX�+����������\~�E�Y��]p�������������x3��|/�����J�E}�V(g}��^�����V�G�xz��]n��:9I-��5��`e����qP�F5y������������C�����L�]������T��P��<�� � �5�g�e��An&(�����nr9��D�W0��[��NV�3{��� ���Dm��E���a�EGYp%��X[j��+�f5���Z��,���~=��]��V��"�T$�����Ys��*�k��b�����do[V��W+W�=aY��q��r�����XD A�C�:�\%���5j�
�#.��{1.��<#��>��SE~c����K/�����d�����3��N���m{����;T!NM�{t�&��K�qw���(����9+D w��U��y����V��7���APN���g���!����'��&���-�S�W�(�<]���6u�,�����K����}�z�`Et����������Kp�rm��y. (�[��t����_
<��t, /(�~5F:��A��j7�(����G�xv�*.:&(5�qL��9^�aQ!&ZM��#��o�B5m�H��g�������\�V�.]��,��!v�q�@��J �SL$@$@$I\K,�D! m��������[u������?���fo�]���N.m�a
��X2���6�Q�pLX�9���L�7[?pwu�=�-2����*a����W����,����������y�w�n���V�4�"f�,^"�u�JW ���!��U+W�8=~��W�8
X��]�(��]�n�����e��{�sc���.��5l*;0s~�
������E��P$��<���[<i��-M��=�����j����:����:
��y{����p����Qe��g��:�z=���}�z��-����3~������\��Y3g��tW��4�n�8y��u������fWmC���q�uC5��I�����P�X��i��X_�8�����Re���03��r��m��k�N^�H���Y��FY�J��1��tBa������I�D@�
�g*����0���F?���5G��Ak& BA��0�������v����tk;�"�KX��w�r����]%u���u�"�=����V��G�5��U�)�Bfe��!�������u��o}s�|Rki�~�{����$���#GM�>��a���0���%���
+�}z�t������C��66�V�^�rr�r�J�`j�C���Z�q ~@)��|#r��.pHw����3E����=�
��Y��u���'3�u�p8x�������q7�a�~�=w�Je��m;v�{�R�Jx���K�*pG}f��kL��G��M�y@\XR�K�>t�����s��g���~���9q�t�������56b~x
j��^�p�����I���E�G���{�z��]P4B��w�7 �"����t}�y?�2�uT��3� ����ws2t�,�s�@�F�3�i��@d�<l�d�I����bs0�?a��8`A,$B�v=�� �j&&�]:�j|P����_|��$�'��!_Ll�Z�nE����}&���}��������m�fW�9��D��=�5�|���#H���mZ� Vf� �R��M���-uk����U�d_��y�&�b�j��B1��V���[qt��'k�[�+�������l��e��k%ib���h��%�y�"��2/N�wfdf�,����~�c�s����������2��9��g�q!q�i�����ly��t���U�Oryb)�
Q�}O
�I��
�'�{���:J3�oS�+�+����~��>�]6�O���gw���������`<%�t����P{��<����8���H�|'