hung backends stuck in spinlock heavy endless loop
On my workstation today (running vanilla 9.4.0) I was testing some new
code that does aggressive parallel loading to a couple of tables. It
ran ok several dozen times and froze up with no external trigger.
There were at most 8 active backends that were stuck (the loader is
threaded to a cap) -- each query typically resolves in a few seconds
but they were hung for 30 minutes+. Had to do restart immediate as
backends were not responding to cancel...but I snapped a 'perf top'
before I did so. The results were interesting so I'm posting them
here. So far I have not been able to reproduce...FYI
61.03% postgres [.] s_lock
13.56% postgres [.] LWLockRelease
10.11% postgres [.] LWLockAcquire
4.02% perf [.] 0x00000000000526d3
1.65% postgres [.] _bt_compare
1.60% libc-2.17.so [.] 0x0000000000081069
0.66% [kernel] [k] kallsyms_expand_symbol.constprop.1
0.60% [kernel] [k] format_decode
0.57% [kernel] [k] number.isra.1
0.47% [kernel] [k] memcpy
0.44% postgres [.] ReleaseAndReadBuffer
0.44% postgres [.] FunctionCall2Coll
0.41% [kernel] [k] vsnprintf
0.41% [kernel] [k] module_get_kallsym
0.32% postgres [.] _bt_relandgetbuf
0.31% [kernel] [k] string.isra.5
0.31% [kernel] [k] strnlen
0.31% postgres [.] _bt_moveright
0.28% libc-2.17.so [.] getdelim
0.22% postgres [.] LockBuffer
0.16% [kernel] [k] seq_read
0.16% libc-2.17.so [.] __libc_calloc
0.13% postgres [.] _bt_checkpage
0.09% [kernel] [k] pointer.isra.15
0.09% [kernel] [k] update_iter
0.08% plugin_host [.] PyObject_GetAttr
0.06% [kernel] [k] strlcpy
0.06% [kernel] [k] seq_vprintf
0.06% [kernel] [k] copy_user_enhanced_fast_string
0.06% libc-2.17.so [.] _IO_feof
0.06% postgres [.] btoidcmp
0.06% [kernel] [k] page_fault
0.06% libc-2.17.so [.] free
0.06% libc-2.17.so [.] memchr
0.06% libpthread-2.17.so [.] __pthread_mutex_unlock_usercnt
merlin
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
Hi,
On 2015-01-13 16:29:51 -0600, Merlin Moncure wrote:
On my workstation today (running vanilla 9.4.0) I was testing some new
code that does aggressive parallel loading to a couple of tables. It
ran ok several dozen times and froze up with no external trigger.
There were at most 8 active backends that were stuck (the loader is
threaded to a cap) -- each query typically resolves in a few seconds
but they were hung for 30 minutes+.
Interesting.
Had to do restart immediate as
backends were not responding to cancel...but I snapped a 'perf top'
before I did so. The results were interesting so I'm posting them
here. So far I have not been able to reproduce...FYI
Can you compile postgres with -fno-omit-frame-pointer? Then, when this
happens the next time, you can take a perf record -g, which will tell us
which lock the contention is at.
61.03% postgres [.] s_lock
13.56% postgres [.] LWLockRelease
10.11% postgres [.] LWLockAcquire
That profile looks like it might end up being helped by the lwlock
and/or freelist changes in 9.5.
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On Tue, Jan 13, 2015 at 4:33 PM, Andres Freund <andres@2ndquadrant.com> wrote:
Hi,
On 2015-01-13 16:29:51 -0600, Merlin Moncure wrote:
On my workstation today (running vanilla 9.4.0) I was testing some new
code that does aggressive parallel loading to a couple of tables. It
ran ok several dozen times and froze up with no external trigger.
There were at most 8 active backends that were stuck (the loader is
threaded to a cap) -- each query typically resolves in a few seconds
but they were hung for 30 minutes+.Interesting.
Had to do restart immediate as
backends were not responding to cancel...but I snapped a 'perf top'
before I did so. The results were interesting so I'm posting them
here. So far I have not been able to reproduce...FYICan you compile postgres with -fno-omit-frame-pointer? Then, when this
happens the next time, you can take a perf record -g, which will tell us
which lock the contention is at.
will do, and I'll loop it for a while and see if I can get it to re-occur.
merlin
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On Tue, Jan 13, 2015 at 2:29 PM, Merlin Moncure <mmoncure@gmail.com> wrote:
On my workstation today (running vanilla 9.4.0) I was testing some new
code that does aggressive parallel loading to a couple of tables.
Could you give more details, please? For example, I'd like to see
representative data, or at least the table definitions involved. Do
you have any idea what index is involved with the _bt_compare() calls
above? I'm curious as to what its definition is.
You might also consider using my B-Tree verification tool on a
preserved data directory:
/messages/by-id/CAM3SWZRK2YxKegj94_2wKs_vbEMJeHc1yE23ECsS01wRAKzkjg@mail.gmail.com
I'm inclined to think that this is a livelock, and so the problem
isn't evident from the structure of the B-Tree, but it can't hurt to
check. The tool is bleeding edge, so don't use it in production.
Thanks
--
Peter Geoghegan
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On 2015-01-13 15:17:15 -0800, Peter Geoghegan wrote:
I'm inclined to think that this is a livelock, and so the problem
isn't evident from the structure of the B-Tree, but it can't hurt to
check.
My guess is rather that it's contention on the freelist lock via
StrategyGetBuffer's. I've seen profiles like this due to exactly that
before - and it fits to parallel loading quite well.
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services
--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers
On Tue, Jan 13, 2015 at 5:21 PM, Andres Freund <andres@2ndquadrant.com> wrote:
On 2015-01-13 15:17:15 -0800, Peter Geoghegan wrote:
I'm inclined to think that this is a livelock, and so the problem
isn't evident from the structure of the B-Tree, but it can't hurt to
check.My guess is rather that it's contention on the freelist lock via
StrategyGetBuffer's. I've seen profiles like this due to exactly that
before - and it fits to parallel loading quite well.
I think I've got it to pop again. s_lock is only showing 35%
(increasing very slowly if at all) but performance is mostly halted.
Frame pointer is compiled out. perf report attached.
merlin
35.82% postgres [.] s_lock
23.71% postgres [.] tas
14.01% postgres [.] tas
6.82% postgres [.] spin_delay
5.93% postgres [.] LWLockRelease
4.36% postgres [.] LWLockAcquireCommon
2.34% postgres [.] FunctionCall2Coll
1.79% postgres [.] _bt_compare
0.80% postgres [.] LockBuffer
0.52% postgres [.] btoidcmp
0.49% postgres [.] ReleaseAndReadBuffer
0.47% postgres [.] _bt_moveright
0.36% postgres [.] _bt_checkpage
0.36% postgres [.] _bt_relandgetbuf
0.20% perf [.] 0x000000000004312a
0.19% postgres [.] LWLockAcquire
0.13% libv8.so [.] 0x00000000001bbbe0
0.11% libc-2.17.so [.] 0x0000000000151134
0.09% libwebkit.so [.] 0x000000000106ccb7
0.05% libgdk_pixbuf-2.0.so.0.2800.1 [.] 0x00000000000139c7
0.04% Xorg [.] 0x00000000000efb00
0.03% libglib-2.0.so.0.3800.1 [.] 0x00000000000876a2
0.03% [kernel] [k] __ticket_spin_lock
0.02% perf-12966.map [.] 0x00000625db944621
0.02% libskia.so [.] 0x000000000021d15f
0.02% libcairo.so.2.11200.16 [.] 0x000000000002440b
0.02% libpthread-2.17.so [.]
__pthread_mutex_unlock_usercnt
0.02% [kernel] [k]
copy_user_enhanced_fast_string
0.02% radeon_drv.so [.] 0x0000000000045002
0.02% libpthread-2.17.so [.] pthread_mutex_lock
0.02% [kernel] [k] fget_light
0.01% [kernel] [k] __schedule
0.01% libexa.so [.] 0x0000000000006e1d
0.01% libgdk-x11-2.0.so.0.2400.20 [.] 0x000000000002f0b0
0.01% libvte.so.9.2800.2 [.] 0x0000000000039028
0.01% [radeon] [k] r100_mm_rreg
0.01% [kernel] [k] xhci_irq
0.01% [kernel] [k] native_write_msr_safe
0.01% [kernel] [k]
update_cfs_rq_blocked_load
0.01% libglib-2.0.so.0.3800.1 [.] g_hash_table_lookup
0.01% libgobject-2.0.so.0.3800.1 [.]
g_type_check_instance_is_a
Press '?' for help on key bindings
Attachments:
perf.report.gzapplication/x-gzip; name=perf.report.gzDownload
�:��T perf.report �}mo�������``�X�l�,���$;�L2��Y,�AK��X�$��^���/���b������@&j�V)��{��u�w�����
��:�$�l���� ����������oF�������{��l,��7�e���/���q:H�E���������.��*L��pX��|�)L�(^ �� �>�O_&7��X�{�L��T���Vy/���OA���$�0�����,\�����I��_���At=��^�����!N���o���Mg�B��2N�E���jtq9<�9�o9���&M������V�/�,��pw-*� �q2��p8
��C�������f�_W�)\e���;����y�����:�����i��G��/�������3�2]����������.�3�9�>l�����kq�Q��:?.��?���/����������?�����w��q�������F����76�E�z<�������-��z�,��:Z=�����8����4�g��$,O3K�i���U~�������Cz�/��n��������okR���������$��}�7��~�x,���������������7��}��i������$���Q���������������}���@���e��? {����O��
���`�����B��U6�|�j1q�y�W7�������e�0�?��W�� ����|�_�������pXu�U���������p2�n�~/��??���� ��G����|&'�>���$~��0���-��X����cf�K�|�8��$5ut��s�6�.48�U����6����w�ba��V���/:]�_2?�fT_�_��f�3Np}?
V??�.�O���u��&Z��"�s��������r��uH�K>���B����2����� I��'��K����0�%H����l�J�q���x:��}�4�;o��/��G1
.,�����*X<���l�['��3�~N��������
��,��[���I����O������������LS���2����������y5��������8�/��{�O�v�|�������0Ohy�����03N�[?��vT���I<�G<3����w����DL��Y����=N�mlc����t�q&���W�s�=�b� ��������'q�t��?���8^cN9��R�N�����7��S���Y������;��r�`���w��R~�����{�/x�i������i��
�=���e��2H3����`�$B��Y����4��� ?�������K����=}2��������L��Ks����!J�v�q%a|�O`����nk�t;���x�����^�t�t���9�N�L��1�`8��./s����y�*.���E��T��a�!�����4�&����-��O���$�^����n��r�+�r��#�uD���
���`GD| 8v���Afw���]0�3�v@��n�}w��� ��3CPn4��qB����(�=�?�/�S,�PP������;R`�u��RG���D��q�s��vN���+�|�����cQZ�����ha^������{�����&�1:�QH�N���<���L��/
��\ ���$NH~-2$���kP$L.�� �Qs�&F2����0J+���X�H,�dF2�������HFfa$��0�fTF2*�����H�da$��0��Y�x,���C"#����pY�8xE2#����d���L�3��8!��4M�@@27F2"�Iaa4M��DFiE@J;���C1�X��A���������u�!>�9YX��8%L���/��Qz �0J����0J�K�m��tF��s��X��($F22#������(WBba$��0�������`u����XI�3���VRtc��d=c%��+)^��?��XI��u/��P|8�+)����DYI1{��]]Iq}�M&X���� �Y�fi ��o��� �z/ M ��G�������|�@����7�d9PuJJ�P�����1^G"*�4�PP��#�tNJ�z��i�V��W#EtvG�ji������~�VR������y�H(m8AA�rg@���#�����{:� Aj�� �4�4��+�.o�\����FlT�Fl}T�v ��[�{�u��X�3�=n���9qB��+�`�ov$����su�B��?�g;'T�~;�/�`���U�Q��+��}��\�
��U�Q;7T�n�`�U�iq7N�bEl"PZt�+�`���
�iN �/�`��
6�`��
�`8�x7D�E2#�"��+�X����BQ������%K$kgH$��"�Y��6_������LuHf�74�FRC2#���g !$�p�Y�
����dJB�M�3����1��f���Kf $��:w�Oc�����x�(S2Rh��7���1�d&��t���5~*W\��A��%���5:�y�����)@Z2+z�����?��:�{�{:�P����
�*n�Tql����u����bA�:O��d�����Aa�2LHP23����)g��$3�;����t��w,",���Ch�6|s<u)C��px7�n�����/��c}�������T�ud-*�������eo����X�^���v��#b}{�oC�#��2_�(�&�Qmk�����MB��8D5�AT��������0^G��jZ���E�q^��,��$c��o��KZ�Ji��8��$8�$8Hp���9^G�rHpz/Hp����s
$8�$�~Kp���G���Q|M�:����I���wO9u�tz�N��=����a���)�����-�t���E�k�����:GOj�n��.s/�[���CS��AS�45����u���)�
MM�M
���#�tN�������cM���L��
�j��v
L�0h`���{�WC�40���nh`�udN��5h`oQ�(���I�S����M�j������A���]K�0�Z���{�AC��{A���u��=�S�ki��k�X�{�w[��Jc��j�
z�*�U;�U��
zU���UZ�^����^����>FmxMmEJ����B�]P
�+b�-�����lIe���pOYh([z/([P���s
�-���^+[wX��fP�vL�0(`�d�{�VC�0���n(`�udN��5(`oS�Q0��A~�����^�
�T�t]0 �o������-��-ZX����M���5�0��0ha���9Z��ZX�����7��j�v1L�0�a�$�{J\C��0���n�a�udN��5�aoT#m�u���l�\��`��]0pZ��r�{�`����k������L�0�d���{�iC'�{A'�Nv��=�S��i����X'{�7���%���3�i;��&]��n�=%�!��
b���|�?�4��:2�@L���>�i5��2Fmx�^`�@� ��A�J��6���"Y���@��� �����P����@���=�1�i�^��t�z���i�r��� �������6�{Io\�1S����I��=$?��t`�����O)�5���@�����{�l!j{`jG�A�%����0�\�C��@r|E�T�1�>����me ����-�Y���jP}
~���r��C�U7�z���+�r��su��=�S�s��B�U�s�n��[�&h3dS��T��!����=�|@6���M��=���!�M�l������Wr��"�N��>���
���V��p8������ nA���%]��n�=%�!n�� nA�:x���)��^�z,n����-A��T��A��j�
����U�A��j��9����Z�M�jtGQ�~��������&J�n��`�������w9�AX��u_Z������5$��A�.X7��������^�� �<bO�H`Z/H`=���&���p�dX�3�j;��&]T�n2�=e����
����|�?T5��:2�@U�T����]�����&�p�=��&}^��?}�D��)��P�_���sU]�
�T��]0��o��x���M��U.��r����F����Fr6q1a2�y�N�v�ww�m��n�w0��&1 ?��U����X\���o�����
Y�%b���{A�$@�������1�m�L�h�Y���
-��0ME�eh��x#���!� ���$�Fcv�|P�Q#���LM*g?���d�6Q<�G��
~����S�t�>��{K��+}��TQ%7{��������/����QnM��[n!�0��E�oom�����}�G�����I��$z����D�Grz��#'���5A����@hM�Ch��y�-/Ir�C�=AM|hyy��!,}���:a� -��i-�C�my@I)���D
K'�-�/^�L�3>�����G�)�{!����n +������~"��sk���D��Zv{c���������pkKK�9���L��=����74��I[��:y�xK��r��3��3BbT{cR���maI�jo��f��K���ei��������&���}i�1�Gr�X����L�~����;��x��0���i
�����+j���h���E@�C$s�K��L�T27�T��I�*�9t���A�J��K%s�K%s�K�z`�v�K%s�K%s�K5=8���9��m��L�d�t�dNt�d.t�d�t����Z��R��R��t�d��Z26]*�;]����%���=s*����1�Jv �����L�J��K�a����N
�t���*�YHT2w$�8��l�Tm{����.���.������>i:]��s�[��������R�3]�4���Js]��u|3��%�D���;>~l��66�.���.���.��K�J�B�J�@�J��K���wY$s��y��k��p8�&�.�$�����l�L��4�����4�f~�N�EmhS� S�Mg]���[oTnE�MT���$X=�����o���N����)������:o�]U����O��4NB?}NY��?�g���f�,��s������|�8��hZ������=��g��\R���w��8w7���]w�������sw���w!��Yp�� ����>��v$<��;q���\`����=!^? ��#��Ic>S�@�8a7"���h�B����g5w������C|�s����| �^t�u�B�����:�����{��J&;�HI�yH���q���.�����ti����� 9+�%sZ�/��J��[���'h#�$�Rr
!%��RZQ)����R�m��d$BJ2!%��jkF�O���ddBJ2!�iF%�$�RmMh��dLBJ2:!%����GH�:4!R�Q )� �����$�R�1 )]K�;�uA� 8!&����4M��H27BJ2"!�I!�4M��DBJiE EJ;(�� �C1�)��A�����CH��u�!>�9Y��8%L���/��Rz RJ!���RJ�K�m��tBJ��s����($BJ22!%����DH)WB"�$�R��/�����-�Ei[�R��UK+o���l)��]�T��RzT2s�Q�(EF%#W������XCT2+�(�C��JJ�A��If��d�V�O2��B�5�\��ek��E�0����]
z��vf�vf�����?����;����3�bV���vf�vf~��4��o�����i���c��o��R��q���G��
���d��X��B�r/C�C�����?N��������������������ga���&��2`i/�\R�%������_�$�P3U�)��N"
7���r��g�L.�g���Hx�#��n�55����������A�H�Q�{�ud�v^�1���TA��`�Ou;�Xw���iy�O33������� ��$)`Ni�g�)�b� 9W�� @�
���B��)�>G�'��d������y�"O����/��m��"�����( ���K#�U�6�AU�($Q�7$QH���#�$Q�A������$�0^G�H�Z�$�I�)LV��{M��L?���_���{)�js���MI��x����H����3�S��on��Q!\&�~���4�;l�El0^_x�����H�m���d���6�d��P�t����PB��(����+`��jyKkfYS7e��f�S�
���QU���������Q���5R�z���N�Se���������������G�*�m��eS����������a�� ����<�Z�U��a��%[���W�Un}@!WyZ;������LK'�-�����;�7�W�s�YMP@/<������SC~eZ��~n��.h{���������g������O�^3�;����K/GyK���U:�U�Us��6����J[�7s_RN�u�?v=�������/�_%X��R0X~;3k+W�-#\������������� /9|���|��P�D��V��b���n�o�Mk�w�?�}�����7j�z���V;�|E��8y��v���<��&A�;�.8|�d|�����K���+0�z�5��W�2�z��|�d�|�d�|}[�����������������K�����fS������9�������9���>k���%s�������u�yv[w�^��{�~m}�����l����K����a����N
�|��A?wkg��j�c���|�d�|����4��I�����3�R.��-���+���z�1��W���z������/)'�^����c�����|�d.|�d.|�d\�^2�^2�^��lxu�]��yA�Y�W�����Q��4j����}9q��-+]������.Y�6;������6�`_B]C�&���2&�k�t�;Qu��^��X����]����c_���&_�K�o�} �/a��%�{�I�D�����r�$g�x��}��������r�]�85s�e/E$a��Z�C����V�ta����:g=���Z�zC�F���n��Z���X�B�F�����j5������<�,��p&��`��6|�Vc{@��p8��� �:����5xh�F/���������@���`���oB��[��\�2��������w]����L�'b:���D�*D����
���+�� �:.tX-��D�e]��b�V :,�;l���?�U}.K����9,�;`�����C��9.�`��c�x�Z2���������c�������xh^Z�5n�M�7 I {�{�?�{-������3N�G����}�&_B��|�Wqs<���Z���%���^�%V�uU���(�T.��\�JqH���rX
u��O�ko\� b��A2k�(��
�p�
���pt
�
ggX���z-��X���2��
���pNsJ�|�
g� �p�
���p~/o��q���+�+mB?�'D�oR�5�b���g2Y����&O2��{�x�f�$^{�S;����c��y�s�����
?����_����?
ge��2�in�����g],U;����e�
�d!�!$��.�J �X?
�G��8�����w��L�q�9.%G���7&�F�����P��h\�����I2���aL��,Hp�j��x6��FL4��?I'*�D��������h�������8����'���`Ni�g�)LZ���� kB�J�?��9
��a7���� �$��LSP��C��\W���$C��������\������d,�Bngd.$�0�mk��7���X�W�!�z �b�d�/��� $+i�o�7Q~��������JHf#
W�qQ
e\v�2.����K7K ������
e\t����O0$����K�e\����P�e�/��I��1j���q]0�<�����G*�>��bKAV�Xr-�}z6bj(�
���SP�d� �7*�/J���iml� Qw�l��/����N�t��/� H'@:A������t�� �Np��=�S�N��B:A_� ~+� ��Z��E���oR�w���@���L���4��3�u�;����]o2���O�/sq�D��#��JI�@��6���
��6ZYuC�Fi��x}�uDaE�������=����
��:2� kCk���s�F�j��
�����]�%c[f�������&��4�VP��^P�JCz���#R ��^H/@z��#�tNAz���}M/������,$3b8�2�b�!!C��!CB�<�x� C�
2���|�?dH��:2�@��d�>���T�����2�=[���m����c7
�77���}�E
����.�$����6*����6�Rk�zc���B��y��?�(��u���*��L}�������H�����U���e��+93�g���I;��J��h��_;J����aZ�������������D~�Z� ���;
ple�]dgjG\��`���������xB���e���!)��� �����������V��I��Kp�Y��a�}\����vN�tL��h�efD(=�#��<���hI�Pp^"ok��']�qnrZ*FmRVF��� �Gr���"��m(WB�����d������>������)�3P��Hd�d2EiE!S�&V2E���)����8d�d2��� �L��L�H�!S4��d�dT2�� ���I�HF'S$#�)���]C�&D2E2*�"7��)�q`�d42E2&��k�t���w��^�6�<2E2"��I!S4M��D2Ei�v����)j��f5&�"�L�5��C|�s��)/qJ�|'_&���@ S�$2Eic'S������{�d���&��)�QHd�dd2E22�"�LQ��D�HF%S$;p����ws��MP�O1,������h�4,�y}�u$��f��E3:����'�f�h���E3�Yb�?,�+<.(+<�5��Ue��1j�7Wx��h��}� �� �� x{ X*�[��������w}�{���~/�ZnCo�V���4^� �X(
�
5~(U�3�*�.�
�Y���e�P�P��R�/{��`H�*D���J*>I�
[}u8O��8��[��9N��F�QpV����[�����p� ���cO<��^&B>UC��������K����� *N����� ���y7�����\o�u����!�;���9��� ��Y<��g�2]<�����_���M�����I'�} n�i(�o~����^(�h�w�84^_yWW�5��GO��8
q�4��s��! ����4���G���qZ�q�����ws�%���*gaP9K�������"�SoP9u�����r:���9*���r�Y�L��N����>�1Fmx�&p�.'\)����BDl:e����g�z��(Mo46yj������2���s�������S�U���
����u �2k����$�U��2��#�tN�������g������<� �j
",D�� �������"�� ��|�w�C�u�#s
DX�A����S�1j�7EX�i�
�$,z��v>����������H��/$CH��!�s������^�!<bO�H�Z/H�oZ2H���z�����V��A��v�5��������7��g^f ��0\�3�:u��&1��������v�����$�Y8��_z&� ����~�QF�����o��Q�u�������$��*_�h��4�-���x2�(6��(���>�'�J3OB1��Q���>�E��y2����4���[( �h�1�y�����������&n�����O8wi�V�����dFK�1�Q�����H�{<��9�ez��u�����&n
i���������aun���MpXz/pX����s
8,�8�7�aH�r����&I�c}$3�>G�^�R;���{��/-�yi�����R��b,l���w��^Y[�,`(J���7^G����AoX���=���!���^X��������{���<��� �5��{e��`��R��R����:\eQf�g��y>�?"�"�������/��m����b �� ���A|�������Z���i�U+��Dl���q�M�=�?��;��4\�S�\< � 3j��QK�2$ ��0$�����7^G@$���T����G�������
��Tp���-�����l���
������dHQ(
)
�(�|M?R�������My��r"R�����n�(8���9)
ZC�B�S�Jmc��o�(����( &��# !�� �����0h-�R4�\*�q�(Pr](!�@J��������PR^�x�����BJ R��s
R�^H �sJ��u ����� �J����CO%��z�l��=����a���)�M�����i�@�L�N>��1j�7eSM���0�2�-���,e{n2##���Lq���WW-�C�lq� 5rgP#w5��uD9���� 5��{:�@��zA���yS,P����A&�LZd�� ����:"i@&�dR���n���udN�L�5��}�Iq0��q�L��1j�7eR����F��l=�^L���4�p4�\4�Ht{ih[AhChR�����m ����N?n�$�N��z��y��[a�| w;�6�k;��Ci3���fX�Cd06�a2&A_���\
�5CZ�5�W"h��&�J�����!�2m��Q���;RP���FPh��� �
����)#Ea�c&���I���Nr+��j��)""#���1 ��{�l����!��X�����p�a���b�0�KQ6^��Wf�.4'x�:,�\Es���x!���j���; �FX��)���V#���Hau�6��F�^�-����a ��3�6�3If ��] vE�ZbW���G���]�]�r��]�����c�Jx&s��_=�������k��Y����8y��7;��|!���}<��0Bl�b+��="�F���@�}�KG��?��n]
�w9�j��YB�����`���`z�`�n�; �F0��)���L#��������i���2�z�`�����-]4N����7����7�D�Sq|#���Q��N�G�:���2l�P��\Y=�^�&�7�<��j_k![����v(�q�; ;�G�t���A���uvL��s�����v����E�I�z(���s�8
�<�d����D���&#Lnx L>��#L�D�\����I��,����f ��]4���'X���9O� f��l���6�t���6A�@�����b����#b{��
��G�t�����������^�"���i����Nl�}�M�.Bc��o��}��a�Uy�-m���.��C��� D�r�5�@
� )�8F���
@��\: �� E��
)D��O���?��K�@�z�@��<?B��!F��W�+~y#F��)B��#�����^�f ��.g����� �k��v������C��\C��������sT���4
��H��Z��6�h�%6��
�!���z`��Q``���-�-�-�-�-j�Ul����B��M?�m1C5���`C���� PQ�#@@@@E�{� �hx T��*�*��UP!�.�����,������0�3
+T_i�u]Q���eC���c��0a|�a�Q.a�� ���u5�B��O����Y�x�M�m�8J���?��so^^���|?���y%�Qc�Q<���cz����eC����c����{���Q.��� ���u ~���Po����OE�����3g��Y��k�h�=���P$�����>�.6����p��-a�i�J�u��I�����s��v�W�����*�8Z���h.N-���$sgor�W�����G� ?:8~ ~8t
�Q��Ge���*�� a[�I�U�.Z�Wl���@�:@�Z7��z�"~E���)����"~����kE��o�iA�����U�E3P�3��=�Eix##_���hc�vc-
0�f���G� ���`�Q.0`0�n]���P�4�y��c���F�o^�hF�������,����W�^RR�m3�&K��,�?�'��������B�~��o E��l1 ���E��"``�N�-
� �����r�b�,��R���[�]h�i��G�M�(P����y���0�
�
�
�
���uU��x��s���E3@@�B{��5Ch�B�c����}���Q.��� B��u5��� U���}a��^�!9B���#$GH��`!9Br�N���!ye�
���E��G�G���,!��E�g����j"!F&�2��5�+5I!n�@,<@,\7��z�#F,��)b��#�����"�{_�;W�����.�WQ%�'���e�`��(`Bq0�|=&