PK@!Xh ##agents/openai.yamlinterface: display_name: "灵造" short_description: "小红书、抖音、TikTok、Instagram 与 YouTube 创作者研究及运营 Skill" icon_small: "./assets/lingzao-logo.png" icon_large: "./assets/lingzao-logo.png" brand_color: "#0EA5E9" default_prompt: "Use $lingzao as one main creator-operation Skill for WorkBuddy/OpenClaw/Codex-style agents. It can route free playbooks for topic direction, account diagnosis, title/cover design, draft rewrite, pre-publish checks, post-publish review, cross-platform content packages, weekly content motherpack distribution, and knowledge-base packaging without requiring an API call. Before returning final Xiaohongshu-facing titles, cover copy, page text, body/caption, scripts, keywords, pinned comments, comment guidance, Brand Brief deliverables, one-stop content packages, weekly content packages, visual-generation text, or Xiaohongshu sections of cross-platform packages, run the Xiaohongshu platform management/risk baseline and content compliance risk gate. Use public value first, product name later, and no diversion action as the default content-management rule; rewrite off-platform diversion, WeChat/private-contact guidance, incentivized comment interaction, exaggerated guarantees, or unsupported sensitive claims. When the user needs public Xiaohongshu, Douyin, TikTok, Instagram, YouTube, or WeChat official-account lookup, comments, transcript extraction, article metrics, or creator image generation, confirm scope, estimated credits, and a small first-pass budget before calling Lingzao CLI commands; stop before crossing the confirmed budget and require explicit confirmation for plans over 200 credits. Do not promise viral growth, guaranteed monetization, bulk data export, monitoring, platform approval, or copying another creator's content. For creator-case analysis, account archetype judgment, formal account report evidence contracts, real cover audits, viral asset reuse analysis, direct account/note evidence links, explicit own-account versus same-stage peer horizontal diagnosis, advertising or brand Brief breakdown into creator-content packages, Xiaohongshu operation task trees, Xiaohongshu platform management and content compliance risk gates, zero-beginner self-media onboarding, next-step operation workflow routing, copy-paste prompt scope boundaries, comparable-account breakdowns, single-note/article breakdowns, complete note or article analysis, shooting/editing/storyboard breakdowns, benchmark account discovery, beginner topic discovery, keyword insight reports, one-stop Xiaohongshu packages from a keyword/link/image/inspiration material, keyword-to-content packages, mother-content cross-platform distribution packages, weekly content update packages, five-mother-topic weekly planning, audience persona fit checks, Xiaohongshu title design, Xiaohongshu profile bio design, graphic notes, spoken scripts, Vlog storyboards, pre-publish readiness checks, publishing keyword design, draft rewrites, benchmark-copy template extraction, style/slot-based imitation, reference-image graphic notes, visual generation, travel handdrawn maps and food route maps, image-generation execution and Agent integration, cover/image style routing, post-publish data review, Word/HTML/webpage/knowledge-base packaging for dense outputs, product judgment, feedback iteration, creator distillation, content knowledge bases, monetization questions, human-touch follow-up loops, and post-diagnosis activation packages, read the relevant playbook under <skill_root>/playbooks before answering." policy: allow_implicit_invocation: true PK@!X����33agents/openclaw.yamlinterface: display_name: "灵造" short_description: "小红书、抖音、TikTok、Instagram 与 YouTube 创作者研究及运营 Skill" emoji: "🔎" homepage: "https://lingzao.atian.vip" requires: env:
- "LINGZAO_API_KEY"
bins:
- "python3"
- "bash"
primary_env: "LINGZAO_API_KEY" PK@!XhzM�t�tassets/lingzao-logo.png�PNG
IHDR{C�sRGB���DeXIfMM�i������@IDATx̽۳n�Uݷ���\���U�c#@!U@R����U��$y�?�<�oK��"&�8�-qQ������{��~��1���˹@�<ַ����Z�c�1���e�}s{�T�������zB�x@aW��8%n�}����m�6���g;�ٸ/��ݡml�m<ژ1����ܟ�e�<��ٞ�Bd�zS��Uhw��������A�}��l�1\�O�zӄ^��f_D����l_�>D�\����5��qa\ �"�g��u}l��?4��|'5������Bc:��������Yr+��#�ƹβ����;z?���!��1E�0w�Q���� }���snc�b��C����]����OH=(�� �?ch/��:G%�����}��X2�?�XQ�����~����%��A'Z;���dz�r���S�ş"<�UU����5Oj}��N������]qC$8�@��k�w8�)4���@� N�r\��������DW���Nz��H�����-�i�U%���_џ�V�#I���W��g{î��ng��6��q>Ρ+����)���{&n���Ɵ����+��.��Wȭ�qN��� +��0�G��/�vr�s-����~�˦��:?���5�y��\jn(dz��������(�1Q�^%o���v0g��|�@�N��1DNzn�y�T�ϭ�����r�O2������:f�>,s��~�����jT{�����=O�{0�aNo��:g��ޘ8�ڞc<(�4�cP��ew��Ch�}զ{O���7��)�Y!���S����?�v#s��"�a�s=���Ǥ>�?�Ӝ��vy����=z���2k�3]wwܠ�����z~���;zi�'�� k�\�� Y�sK����=��d�s�QJ�㡿QV�CA�Q3�8Z��G~ iu/R+y� &l��u��x��;ޙ����!T�3���3�6�8�c�ڐw�j3���o��:ʒ�4W�� \��9<]dj;_��o�:�Dkg�o�;\��~{��BP\�l���(G���֥%��"�� ,"���2c���l6)��mw?�a=v�3u�11�����8w�z �������4�����{��Y��H�rS\$z�o�<㢤H쳛�g\;��-�q$�0{e�Ao���p�VG�6Ϭ��u#���{��K�<{��a���;�]�(��Gh�rK�uw��& 6�d�c�5�!�H�6���gTΓ�e_U(ЅD��f��vU'j��+��ı(�L ܁�W���KS�9��<���v�E�iJ����똄�Pt8,Ǣ���I��T���G�D�Њwo�����b���� ka�9��+�rA�i�z�;��T�9���r��q�� 0/\e:���N�/1�E/μ>l�ܐ?��?r��L�1�V����\g�+��-e�����1���B���?+n�6������l�g��ހ�� ,�TF�a��g��O�@b�UcӲ^U�]נG�#-�I���7^�xX�97n��fC��GL�K-��Sߨԝ�����48�@�o�,K��j0)f�?�ݓ��¤ f����a���ПA���q��dhF��%rXaF�z��r:�o�Յ�0�� 5��{JG���:Q�P�7Nu��\DT�7k����rQAq�.���L˂�,���A�A�:��f�q�H�<H �6v����9�&�6Ӂzs�hYs՚D����U��JH�Ag�&I� ��r=2��Ii��Ρ̳�"sހ��A� �sQ?ñ��6�O�ϲO(�CP�hZܽ��z��.��g|Z?�3�A��R?�����������c�_���;�u}����������j�0 ��m���e�-ě�đ$��G�gO�I>���v�Ή;=ǡ�m<$ܘ�9���y������{�ĄH4ex��g/b������A����g����0�N�Iѱ�Nzk��%� �qf-�SG�����ƗN���ة�<�')�4�7��]R��uo��P��c&��gqM���vD�3�ɦ��x:���D|�l3=Ǹ]s�Ζکb0������o�#p�$��+
��P����)�i��R��C��0��G;�(��^� ����<�v���?�8�L����3�+��v�]�?n�,�ݥ�SU��;6��0��{a��P]���r���F��6i�����m�����;��$q���2<�]R�Z��+�f���1���ҸŃ늡����8�#��+�A�:<�Y<nfE ��� WCZ&�U[��E�c�����m�8Z���0L!��:���icn�s6��őGo�$���c�vp�]��-�Ke�ʎZ���QRt�+��m� �6���M\G�ݸ��&����"�+ib�5|� �#s��l@��1������� o���t���TH�٭�U W�#��N��|-�QDV.�&srSQgʼ�>^�3�4ź2hT?�����D^��5|)w���|�+��on����<�:fe���p�����Asq�e�qI{�y�l�}c�#�^�i�n�}M�{���Z�ؽ"��xk�\�O�3x��jxu3���_���>��[=[�z�-���}<����H�'�� �k1�C�tn��ɋ�(n0��o� F�|�/Lon���f����x��X�-���pPʧ����X�\�t�;�Å�[�+�ӡ�aX�ujp7T�<�͢���(M4��|�e�9܆��v����]�Δ1�Yz�h� �~���䂿��Q<X3I�5P��lfެMi,2#���{PM�5�vɱ�U1Fcu��Q�o �yR�=�:��<��bnM��@�g � !O�pү����|-o�̓��;E�� σW;=�{�ZOc6i'�gS��a����+l+l��t> x��<�����97ee��j7q�seXK��e �@h�9���g'��!:�>����7�}�����N�%F:6�6���mG��D���$����r��~������"A��e@��o%6���$v1�Gλ���}��U ��m�hIur4m�����˟mBo�Z�Cdo�JtF�Qű|�\�X30�� �j����ŧ�U6q�� ��NN�)�����u���1P�����U�����yt!���'C 7.Z�=��R03]���zA����D��� L.�f�<�r�9Jj��V k=s����x!ֱ�܊hײWʪ-����E��7��IK�2��(^z�|��:z�YW�tϹwt��H���oO�:'�)�vw�|��#����n�ݍ��~4�O�r[�}�V����ry�S��g����Z� �M�T����{3@�j��B�]��8y�A!�>��� x�I_��S�0%Q�Y����?���@w��<�3#�lHd7������f$��=�飦�P���)�\��$��[�:V��LL�g<��>�5ƞ#&G!��������~{�A�#���TGa����@q��n��]�:˭�(�ʠ�����s�w�Ԧ�A�'�m��AϬQ5k��k�ٺk��F�ĕX����y���f~SA�9ӋT��f��B5,����Zj3筷~��֓��K?4@��rG���tTȲJ�t�����n���6� �C�uJ��;��qEiI=&�v��u>��U��>�ov?��)o�C$zl�ltmWa����n_�~�����>��Zv�y#0ͽC�-������Y$�����"5�a0�tɑv� G6/wm�9�)��/Z"/Z���{�Zk��s-�aPt%b�X�s�iy@��S�;19j �@\��A����f&�����M�yk��[��{r���~K��/�~;BJH�zJg�,p��C��R��r��a�fө�2���b���_;<���"똧;�rF>i��OS��%B�qP�E;̰֡+_�rg8��y��:1)%~�fD[&�k"�܁@�Z㎃�2"ָ ��ߖ�q�h\���Z:�!�OyC�<o��(�M��g��������PO���\�X�Q���/gG:�E^M��q��ݥP�N��8g���A���u���\�L��O�"���֮����5V%O �uY�x�a�F�Ulߣx�ji��ʱ%5�9��x�4�9\j֙��:6+}S���E?=o�)��[ +頦�s'6�5C" +j �dRy[�Kϗ���q�+]���S��c���́!���K�����s��3��2�Ղ�?vj;� P�1k3K��C�f�4\�x$�TFuK� 3��Z 6�9��~2;�4�#����Je���J ̉�X��_��{g��(0y 1:.�ӵ�I��x�Q@3a��D���x[@�����j�=��:U�O���xVw�M3���1��+��f��Y���:�� ��n{'�d[�9.���N��˰Ce5�}����Oy��y��-�ş���khΕ�%��X(�,���G���"J��yLofd=Y�����"h��B<�Q���f��1m��v�8E��Ń�a�Zf����u� 'jI�@�[6�5�>�ަH��MX^������N���J5�����@��|u�EB�s}Z�Ba�Cum(��~�S aE�\�����ޒtɡ��̀vR��ٙ�;FZEf7K/��ֈL�~'n��Q�ZKr=��GDy���T%�b�f��0'��J";���T0��S^zJbVuC1�������B#^�1�&�ܕ�3�73fP����.O��#���>�Za \��=Z3����|�T��+��v�ښ�"�}���<纛��B�?����=&�Ÿ�w{��߾�:�xCr\i�@�!����� ����K�.�Ym�/��ً��#7�( T�l�?W��0(k� ����3��qPѝO~Ð�7�JA��[-���Uo�╮Ѳ�ˡK�~c�uË?�o�����饆a)��eĄa�G/�GC���PX�\H40>z���N�<IBFع�d3�;Ea��|�,�aJ�+�x9r�X�8g��JXU����ZG��#�n���Ԧ ͼ5�Hم͑a�D����lFE:�����W���}֒�.�j�WQ���m%��h����"Ł��0��Et��.�C>GV@z�<�����k��a$��?/�Qi��5��3�§v�[O�W���+)������]�Y�1�#��+���)؞s��}�(�sg��v����go���w����4�Xi��zr�U�06)������c�G�$�a6㤌0K�R��+�'-�T�sg� �8�y�g�tKnU��+�U�ѧ1u ���f���45k���Ь�ٜ��� �L�vzu�ԓmz���J�r�pKOI0p�G"}�}�'�fҌ��d��WH����F!�D9� mɎ�2��E�]�Z��u�$���� �Ng���7�q��1:�%�I��+����M0:��E�#Y�n�z��Β��%ba^�[(�-���� }�7/��qHC0:u��C�_����U�EʃMY"gD��o�;ڄu��Ǐ�/@�>��^į;����#�C�q��#��:�a�yٸJ帮֎8�n��o����EndOF���ʉ�)���M�t�b��e�N�#4Vy;�ơ97��g��z/��Jg�.�Dj,!j����^#�ѕ��}���!Y֦Đ!(̵1����tl� ϊs�xo�e��2W��h�Z^ԩd ��o�-)]��D�B��q9�C�F��@��0�V�,��r�ܧXB���d�|�D�X��m��Tz��,A}�b渱��! 0����Od�s�#���l ��h8���Tc�i=̰��~~>Ћ���;S���s��'���1W�'�"��N�#� O�(y�ǥ��)A���O�%|j���1QO�]څŋVhY����,�d�kS� u���}�}@<�v��ϰm��������-q�f���g��~����� �|��k������D���P�ˉP���&�I��ɭ�C��c�F%ʭ��r �'��ul��$.ƪD��Cs@M���"i��?�`�f��F�S+��h'e�ke�h�=S=�n��br��O�3��qϜ��<�#3�Uu���B.�f(��%U���1u�$βs姰������nW���e QK��L�e5; �O��iq�b��Л�P��ZWky꯲�D ��-e��RJDS]����M�)QEƬ���V�$U�z��0 ��A'����H:���^�:U�1��E��D�� ҵĄLU���L;�Հ�l ���� b��W�:�:��[��8鍹���<����{����9�?����ڞ�v.�[��μ��r9m\������K��&%>1/�HKNv��&���hh�l��-;E� �/���6�jsLl��L���:瀬D�ڕ!S��&|ج�8us�a�'�,")�Y����~sW"�v���O;( ���#��jf�J/'n����et������$p�[B�q���y�h�D��gZ,�~�yn� �ľ� 9rՑ�$����OI���wZ��X!8��b�}�#�/g瑅�NCa��5�:������6Ȋ���UMj�b�$�f����]��p #).��(2��1/��d�!�0�9S�ݔPP� 8PRp:���X��@~J+���h �ulG��)�ic�j��1���)��<��1����U�g�9;���/d�m�g��/�3��'�K��Yo�v\H[k��V���~t|�zy�#/8�y+!t�5;J�@��?7��A��F#����,њ���3�T8�6$i��'�<%�o���Ү��;�vs�n�kX�[�T��Dݘj����Z(n �0e3�4�}I�S?)O�3�P�T�Fm���6?N5ۅ�y��|�0�>o��G�s%������6q7�$rK�d<� �~HwiGHv�f7L�78E�8�������3ݜ]� ��g�:>h�3���E:�-qJ�]a�� KN{���Ú;rcL��C���n����s$���!qr�_��� �/�ڶ�rp�s�����&^;:S�e��L|�n����ڠ��hӍ���R�.,�u��S��N��1Nv~�3����|n��^�SG����R���n�(�盖��4�@j�:�E�O��m��+�n1c�x�D��U�QsC�#��̚��S�����r�g��[0<�)�j��5�Q�n�ʌb8�{����8;�:ԡ���geΑ�0��z;����I�Mt�;�� ��K���h%M�O�����=o���NJ����[ɮ�0Ν�K,L$�V�ڸr�.SB�~e,bW��(��)�$�i�����b�c�b�3�ͭg��SV�J�D�>��b�[�)ӗ��Δ�8�����! = ��k�Si�)�S��WTX��������Hk�ʊ�y���c�^��<a���r�d,{����sh��ƽնq�?w���u=e?|h$g��Z�}��������O���_u��/ x�W>Ka.�!�bH�'�g͢�N�������k��Y��^y5����E��$�Q�gz�1�p����v�b�b�愱<���5�0��L�.�v�C��J�V5�U�){0Ks@&6yL2�;iW��5�-~I4%���J���ǙT�uޕ�$���x��ҧ�v���_H�E��~�qn�!8t� f���7��Į�g�J,�f�cv�Eu�ae��1��v���D��h����:�Abgz� ��o]��L��M���Fi�JIT�vv7����cqಭTGwr7�N̊�@@��֛ޚہv�5?y��'eN��.K�]���oN��Џ/&����t�H&�쩽=�تW�s���v|�<�͓�"\����R<�{>o��ڭd�> �/N�ᡬ��@ڠ�U���sZͺ��:��Q;3��=Eî)F����#A��m.G�9엳�5:�P.J+�T3 �t�0�$9J9��)@Z���z:�t���ĽM�׆'>����nebatƬ~�����N�w�f��b�vC�f�/�LV�o�X�b9�Ҷ�����Rv�o=��!�']���ƽ=������帑��E���]l�ڶՒ71127Z=+ME�#~�2���Eo"�r�nwʋk�w@�<I�Z���@��������Fx��l�[ �X;�z����y���s�7B�:�vP�;���r��o �/6�t�?F#ϩ�{�i�AgB�D��G{<(����nX� �{�-8E��<�o\=�����P֕����}%֛�h��g� ��L�=%��L������6,�Q�\;�M}=��@�j1»�9\�����W'<����p��($vd��ec��i���K.' �!���32�GD#�(�<���2&찊�߬z�(Pe� ��1<uN�Sv� �}�P�[��T���@B��)��h��)�y�Wzr��:�.lן�&����d=����(���ɽɬ�P�\ӅEw4�L�/5Ћ��s�O9��h�97���Y�s��HkJ���Jg"z�N�X-^�y��߱��AD4�)�dv�+1��ba�O�Mh�S��x� r)��¿�T�H�h����<��x�fu~>�?u���hj�2�r\��HK�� !ǹ�����uL������If��|���7�A��r ��-?��_�K�"���Ǣs1qDrDm�mE������wa�^e��,�O��S���-��u?�N�Jp����bl���VY�+<���eEtO5w4���"��kXe����=&3Rx[�S�y�9Th�@mx���WUj��L;G{{e���_=�̖���h�3�Mj��{�xG5�R�� ����6�hL�8E35��ق�_%#Φ��f��H�;��s^Sw.#UC(9�&�� �H�},�#W��U�&�1�Oc��V�zJ kKg��[������aL��ヶ)KL�H�3�SxxG�:<�E'^�y���D��Sk>��9�3���1���v�Ic�0 ��x�g ���6�+|N܋���bYLƕ��n�W��\�۳e�)��ηҞ}w~����Q��rI��+~W�������w�'�ޖ��Mhɦ{ð��tY���=0��{9�F�]x���$�|��;x+<��������j�LKH8J�F��J�(L�������K�<��w�"X'd�W���0ؓm�S�^�)����3��a^fVc���� %1R���oA߆pS�� 39��҅1)�_� Q����'_g�:H�p�2�������z�/V�B�i2��L�J��6����X��Y�e����(�r�H�r��hy�%����P0�i|Q�<D�m}��x�g��,a���S=UAHu�� sJ_� J�lF4jō�8&��U�� ��X�?�i��\5ݑ�Vj�~\��\~���\u��+�R���r��37�}w�:k��-����:��̡�s $�O�5ł���k�b�JL� /|��PB���X��%�k0�b�a @.CK�(KF���(n���J�ip����,���� 7;�F���I�,�j����N����MlP�0d����~)+)��s��3�(e]�D-�n�lW�&��jmM3�Ġ6���E��)ay�s%IF���Ni��\�dHv���J.�c���J[�U�b�V<��k��ϧ�d�\s���7A��W�Wm )Hd4}H5O,��D�\E��[☴"Ϸ9�&������<c�m5�4Gu�oP9��o�u£�L�k�ͥ>b���r�(�J����-}�Ĺ2�������h���7����{�>�v���l��o� ��"�(���fX����4���H�t�v����{�,�pv %��|u,���^�bV��w�5��ث��b�GAaf�T�G�PV�"�B=����O����a��g4-��WC����3j�U%5��ɜY��^�-7]Yg�ᄭ�]ش֠?�~p�V��\��00��Ȅ��X�M��\�T����N>y1r�^_���҃#�D��5��χۉ�6��'�\0��"Ey�z]�'��!�c.��s����T�[��QG��gV�i,�n�\%Q+���5<Lt��5U��<}-q�r���3��ʳ�"�wтz٦��x_�:E����BJJiT�)�:�W>�@S'p�>W���nb:�Sf��@�|).�-��M���=�s�2�1������G~������RZ͎������}�Ó=�#:�:7�ۡ�D/���e�܀+�t�z?�a/�IJ؋%�#Dh���4Eۭɍ�Z�U=��)�o�&Y�� f��\��۱UX�ZЗP��1�VV��g7dE�z{V����S�G�ʹN���t�q����|������b0�cc��jw��Q<����0�/��sXy�W����+>���kd6�I����(���I �?C��j� 4�������7��0bM�3+ 5@=���$z��Ů��E-ѥV(2 r}��Ss�m�@F�@(}?>OA�9�!N<;~b�<����TH�VX��!4�������UeG�{)փy�r����D�RB�/���F�(r�Į<?�4�H�}j�^9O�3�ǐO�ϡ����p�93/#���S�9;��W%�/��n�ۛ���Z0'�3���<K<b1���W � ^p�6^��b���ڑf�cV�UƲ�����˷�9�9�.��dG@��@�p#�C�ؐE1ʐZVm����J�U>��cu�Ȱr̶���������ǒZ�1�I�P��X}=1'�g��m�P�e%kS��0~�Br���W ���0Y���ܗ}�A�Z��ӧ#�w�ҷ�Dbh���~��A�F�S[\��0z�p� �(�+TY�gO{^���)�yr{Vs��t�@2���t��6Kb7��L{�4OE��upJ�|�D�.�V��EC��h ����E�ƍ��T�2:�G�$Cm��k�RS}NLe���킈�UL�Q��фc�2�o1�9�#.π�e���6T����|�ҧ����ܥ�?� �t��jRn��c���ۄ2���5㺖쳜��P�kF�%�.\����7JC���]�kmG���Xt%GoL3&4G��K���~��r����hz�w�����2�2dhY�f��f6;%t�J�a��:J�'�J�D�{�s� ��\a��M�+L��L�SG���U�G�|6wDy���}��̫_d��+�}��dnr/�$�LW���sg�Ɗ?����f��i ��q+h���r^�ԁ����d�1� s��!��l���{Mɒ�] V�c�X" �4��&2��Y�Y~��Y:��ū�d��z]�sي)���l>���+&�ܺ8Vpм��X4�1s�w�A��r�~�Z�sq�1���N���v�sh�<E>]���C�3k����c�Sӣ� �n�Y����5�t�6yA1 ��-'�^��ː�B���:O�K6(�YH�o&]�O|��֍J��:��b0�4G1��Qc�\�3P���� sJ����23&�&� ,Sj�(mO�2�8s-rs0 ��8��2�G�g&?�7a�-���95�)ʒv_����>QzL���R���A����;�~���v�������$߹����DjD�Y�g������ Uw!9�T�FdZ=bШ8�n:�$��L#�jJ4��)v]�BO��#��#VU�!��r���\l�k�l�S~T�<�[qTO,>�0�:��I�f�ޤ��qN2�k\E�� $�2̔CP���6� ��� ��m��!��0���F\�Ź��R$� �e�7�u>ć<m���<�oݝ$����n}�%�2�(�=-��� �3�ց&��y���Gv��+�:A��Ҥ�r�q�n:��9� �r�jr@he��<�E�R�Ym��,�q���O%�DoPf)��T�"�Y���ׁ/F!�O>21���,?o�&��4�H��$��PKd3�}{G)��1!}̀���l��|��g�_�˝���'�7�^��c��6ebG�i�@�,rc4��Vq5�a�Kp�)�so�#x��;��.hh8H~]r��p�T;RO�X��\?FP@�l�"��4U��h��,�0��+9~����h���,�٘$;9E3�)�9h�sள��ț��:H���� �����0��7F!�EM5���(zq���ֻ�H��+�T���^LNX�|s�w7��i<d{��Y�p���پB>�-�p�8�;m���í"�S�?w7�����R��洫e��A����a�Q��8U���U��q�\j���4W��S�����@?\?�_�Tgl�%����k��'��(�:�fvu-���=�edrO�� ����6�q2����:£���]@s �G���È:ҡ�f��K���|j ʒ��<��(��>bD������O|�/�������]��A�]�|�o � :D:�C���z�$�0�uĜ�d��6"{~�" �0l����PT�Y3�v~&�Z(O�] �nԄ��Y����撛��°���IC>���2�Q����Wb���b6)�^PT��4�zV7���.7�v�u�t߄KN�QZ�$?���q�35S�����xG�1��2|:�ZKI!�( ��@��V����?%�Q�>j8��s�;C����ߗ��}���Q����XVg~�;3W��/�K��E#�;�N���#��9/p�t'�U�t����A��B6�c0.Q�b�a)nm�ؘp��5��ZubN7�1<�շ�t�9��O��yI"Z��K�O��7��9�k�%J�f�� ��)�r9ҵ��E5�]��k���u�a�g�P�";Ż�-�i� ��Q]�/�ѿz�w��?��_��������^���2��>��|fPR�af�N�A9��@��xiz,a�i��tA�c�iI~A�z�����i��ƶ��ҩ��@� .c�dBy���F�� ��$d5�^=xgg(�i���xCv��^�B��>�yf��>���[@�2�x ��s��1��\@A��.�L�3m4��b���1wT-�� TU�C��S�ӽ�g�����e��!�Q�#U�~ѷ�C���#�jg{�>��6z��-��:9;~6 �o<��SY�#Ĥ��R�w�iW�P���ŵ}SZM� ����Zv���H7O�<!Mmz�MR ��8��~;{saZ5�Py�D�n�F}Ty�nFtPoqr�e1'��Ҹ��۞���� '��Lt>�Z=����#U�㞽^�ᄔ� ��㷅� �3�-����(|�'����͋����?����������|�;����^㛍뭃�~��Wߤ�RD�s$o����^���4��}�e#��g�t��@tt���^��9���2ُm�Ϻ��,j �� �'I��[���O � 5U�،MWd�5����8W�RF����DY�[�8� R4Q03,�bq�s�c���f�J0@Hѝ��dt2qN��U� ()p8�R�C��EF��W��ü}����[t�GD�:�0?p������[h��u�(&�]z��G�����a&��f�?��*�y�]U�4N��T5�)�k!^s=���7i�������0�#-��bP��Hi�J����)�-LZ���GC�&BX<`酕���t�KZ�hV����89��AOR�I(����r� �]���O��fm䈕}hć��+�N͗�ؚ�q����FЋ��ݽx�_���^�������ɟ��/��;_����<��|��_rX�f1�A�N�H.�R��2=v��x��,ukiaT�x_Ȁx�?9=�)�+7M^r�+��� e=?��Ep��DQHT��k%C�����d������]ߊ��=_X����8t��ά�t��2 ��']��h�]����8� |<�3���-xXLH�Yl�v0��v�����bJ����s!�
ż �b�3���=�D@F����� �c�0�1�~!<�01x���©�E:.�\���7a3 r�!��)�>.���5Yt���B��ϫ�N|mk�����@���#x���/�rH(#"k����唥��ߙ���wr��ۜ���)�D�(V��g0R��� ��a��%]k<7�U�t��2 tsh�^��^���U�Pg�ٗ9�� GqA�\�u�,��n�l����7��������'�����W>���{�����������kǯ�͢<3��]KP"ݏ����7UpQ���!�-;� �X �����"j�k8;�tBx�<D��)�dZf�$�R6uڭ�Q��"B(�#jn�Ht3'��䍏�=��g�8~��N���yB��kL���R�t�C3�$Y��| \�ùU��p�,Mg�Bpx����U2w�YT/k�U��F��^Ps���Ƴ&ae[����;��1��+�cˁ��qvn�l@��Γ3��id3� �����N���k���0~�/H��\�����fDPJ.kb�ɽZ�h{�w�NsU�$�-DrkIYľg1�QX������.���0<5';[�6�0A�Λ (�ڕ�5u��nB�c$n� �"+�|���.��l�abHy�[ۂҝ=@=o��W�o%��S Z�^<����/|����k�o�����_������~�kw��������� �yˌ�j����ړ�p�Ë�pX)%T� �e �8c6ӗ<z|p6�:2��҇[��c� �ӎ'!'Ɖm�^�k��@���=��֩:d6GE��X��������Cc6������u�x�v�%�P�ͼV�uI�̜��l<u�>Lo��C^2��%V)�JhDQM����'S1f߸� O!ɓzPG��� Bȟ�K��:h�&I�0��X���a]ӝ���2�t�}�]�;��s�����OF�0��ӡ�XF� 7�t9��f�M3NhX��?,Z�4@fT�������r��®�r���)G�H"n��,�J4�"�d�N�d���_%�\#_�t���R��ҕ�i�����t�V����Ơ>f��=Z�1�|ϼ�ʯH
�E�c�l�\� �"�L�7������a�I�$��t��P ~����k���������_������?����O�g�?|�+_�z������b�p[�Ī�&��k�3�5@k ��D�����^��r��#r�.�3XSYO�\���w=:���k�QUd0�@唔�ã�����̂�̀(��&iaA��&���@قK���A{r���^�(��4l�y<�z=����h�Z3)�A��� ��5�9u6�#�WNK4�#�|�h:�C�~�Sq��I�-���o � ^p=�㎞��>��h�'�W�׳��6r:߾�O}�hF97Sl�AR���خބ�4�:�u���+L)x�ZȺ���\���u��E��"g�Q���1�0�g��@܆;�|Bo�����Ӥ9���1C�O�hoT,^=�Vy2f�vWw�@��\��f��J-�����������^X��[��ظ��a,, _'���$4��5d��e6jF�c���ߗ)����~����g�������{�������?��7�^|�s���B� ��:�m�[��;Z������$��E��B}O���qؘ�Vn���ǫ�'�|�"��eF��>�L2�0���+K�1S7h�t̹/��3l�I^�F�F���4��#�܁B�����w��3�h�t��X�a:4%�L"VOo��Lj�����7�D�ɫ]��Jh���t���/�SٮF�ߍ�A�3��G#�S[�pY�)�����?~�t��o㈭::�)�?���骳��~�u,1.-�:���gx�d���M/�f BW}$[��%��p�I����F�J��AS�()��]��n�e0�P@IDAT���3~�9p�cz�q(]fCM"A봛������r�cN�D2��m��k�%�v�{�0��P�7(�����?��p��}-Ї�~1���n_eg�{�������ҧ^����~���^�����?�?����ů��/�B��]E�^P�HH5�ı� f�ꖼP9��¹v� ��u��~A��8q��Է�.̪��p ���&�װV�5W���T��NO����o�U����k��BЂ�xV�kf<)��lla�H]�թ�ڄ\�0J���D�V}�i��ώ�(am�y(�9��Ѡb�W�y�L��L�&/�'֊�����{r����U(���pw��a�}ؔ�����1��w�/���g��̚�2���\������hVp"�T�R���"b X|%L02f����e����b�Nɲ���b��T��ci"%��V�!260N�uv�/BB���v�'b �S�o�W��fK�s.�"�{��g���X�$��������Q:6!ým�\a�oq�Бfs~�W����}���?��7_|��͗�{�֏~����Ͼ��o��������<O�Tn���r��rd|6i{-���>��Dz��ʍAI�G����-E��ՍT��Y3����AL�Ir+�1r��O3f�CiY�n�i�tL����ь���P,�bg2Ei>��Uߣ%�o~�eɐ��4���ۃL $��Ꭵ͎�PǦ�dTSx�ׅH��(%� ���F�#2T)�NY����6�����{b835邲c���}a^��}�R�7����٘�����ͯ7}�L쌂�/�Lwҙ�5��@�c�1���)��:�"Q��$s�0�����'��ƺ�HIS�0�Nˍ '�G�8��@RD�"�^[p9�[�8{d��D�8����Ҵ�II>�$�:1ڍ����2���K� jf��6ʕӽ�4#��4=;��)X+�l6u�t3���wm��3[Nw�\�r�/��y-?��㯼w����>�o����?��7��_������ܿ��o��m�Y@�9��Ι�V�AR�IŊ��a�2ǐ���XFAl��:���9��)!��H�!�x��0v[�a(�%Vs���{�J�"Ny��D�_�l�f�(,1�K��G�Q�5��Y��� �H��^�S�A�A��ZH���ė ��c�l�f ����I�M�C��HUh�JRu�Ět;K���3B]ϧg�R\��WB2n��8c��gh��grm N+�:�_���L\=1����C�L����U��=���\������n�����K�y��+:���R9r ���ٟ��J�\.+�4�dfX�)}�u8�"�w _��'�.D빒e����V<ޥ�n�R������d���D��\^��E�����I]�y� tUm���n9���|�u僛=7n��go��[�������[?�����W߸��ƫ�/������������������Jƅɛq��Lk��x29au8{- ����P�Y\3�+ܐl3)!4��4P!��i�(��R�YF4s��Lh�Ac1��]�9���� T���b����]�q�E��~�Rj��&X�LF=SЮ��% 벡M��״�y/v��R��/Ш�u4�&q9�Ӹ�Psr��?^84��#.���[���N_��<S��i�9�����H�{�v��zB�s$�[.��tp�2��y�$m�}���z��Ψ0���8�5�� ߉��5A%p������fE Y��jE�e��� I��Ua�P��F�U�B����$&(�I��j�փI���-���x�i�b�Ug����y ���w_��#�Q\�o{�3�� N�5 B&}pmQ�=��DcӜf�FO���&�o��e�ϟʟ���������ī�y�߽��}���k/_}���_�/?���o?��|��E�KjY><f���p�����ڪ���j[���� �1��Ļ�� .�g&��H���K.��@w����n>r$�Fr�N�V���Nq}��J�����G�� �ӞG�� -�m��;j�^�~ �y�PT=�o_�C#-�"N>k������?�����z�6N%��q6��q�|�N�q�2����?��0��a\������0�r��P�9w�D� �+1D-��n�����E�_��{hK ˌ�����t�ʩ������U�Zc2LΣ�O�9h�x|.�Б�m�VR����.tbq���u��8��hI���|>\/��'Q�xVVV㱠�N( R�|��MtC�B�I�x���v�2�8쥀u��va�N;���кTC�1��(B��L!F�\��j��7��x���eBdCO˷�o�}�_�������|���ײL��}���x����������K�B<0�$Q �Zs&i8PB/e����H^)3���W�_R����2��ۙ�z��b&���a,�:#{j3�Un��4l���c&����8��qɼX����Re���IS'�b��#�(�!�"�pJ�K���~���t����sk�Ѷ�#�sҐ�V��C��@��BUo�d�t��='�7.w�����c%�<��y��b���͜��y�_�i뜀f��t�ɐ���m%0��u�G���4�߅]��<V��}a�w8�eD=ޣ�5�z�)PT^Y7���4�C� U��U��SP !�#�pw��A�):@�MI'm�Y�d��+��,��9̤e$��~��@��_���Ѹ�J���)VI��1�$oAM�q�Ɓ�-'Lu���a9�"���V�P�����k��}�_��O���������D2�_��zwO擟����������_��1����l/&�� �\iTť�~�Y 8� K�֫���K�ID�2 �ԂB�Un���^>{�^�Fcb|�t+;���2�0C��W��@����5B �v ��P��W~:.ʧ��!�NJ,o<誡���E��D�x?3���W����5�:�Pg������m[�ɳNv)�'�3~0�Q�-�L��P[�{�G;�=��xÔ����\G��x�ߣuR\�L�_ P�A�K� 3��H�[aRYLa.&�[�Ȋ�X�t�/��T�mlx�� 9E��J�d�B\b��\��$6��P�#�ͤo#17Q_�T�7<�I'r�JbT,VJ� ��lW�iJ8�����U����5@í��i�d�h�T�DZ���;j9e�5Ug��l����6������G�}��g_�}x��X�4�Won��������K�S���������7g�NF���W��1�Wf� �٤����:��ƒ�C��yu��@�d���-è7;�L���z�QQ�} ���u��j���)44��d$�:�r�Yp�(Ϻ[ �%'TV���W�O���?��^�By^�1i&��2ۤ�h1+RVg91Wg����Hʵ�&3J�6���M.s�w!i��>z�&�m�=���0at>��rv���SkГ,'-٩�@�؉�"� �B�LO� �qU� _�L�wI���Ge0qA��R�Pɴ^���AT�Fw C�r&G�|� ��ց��ڦ[�隇\6��Q,��7%��GeZ��NoH9<}��U疅t�P�o��q�k�Sr��,s��Ѿa�& ���=������9�bs�����t[X�Ph�bDt�A��'���������_��,pw�����ww߸����_�������|��_�����_��b��^2 ��Ҳ��tmOj�O�L��5��8Y,���w�b�� �>��w>M7 �{&i�h��dO6�V�-y<N&T�"�H���b(�#3cq�%E��:��h�b��O�<!:�xLS��8��<0��ZEP����UO�p���uZ��1s�]����$FQ�R��C&i�)�'b�8�h�s���Îv|�����|���3�p�����r��eX%ZIj�'�#�6�6�ʺ� ;sN��+�hN�b:d����p �W�U �^���[<��z'Pc�D3��k�b��U���U3-y��!�Ӵ�!ġO9�\@f/���ԭ�|8J�9R��N)5�802u2֑-�(:��e�w�RSM�L@ܑtt � e���wR�\�;)�U����w��#�{}�1^�}�����{����ԫ7_��Wl������7Qy��Wwwo<�տ�o>�����C���~�T��M�]��n�v~��PY�a(�sՂ+#&:��c�>�i2+O��U'����ڬ�U"��9tu��C��W�)��=�Pۅ�u+A��é�f��������l� ����+�2��C{els��u��F �]��VFV |�N���8A[v�F�&M���TA٨(�S����[� ��O�S�=�S��ĖpU�=���������<�� �s��8�t��n������+|���Tti� H7�w���U�� p��|l.11�l�rZ%p?y���@qp�É�w�-}�L�u�� iBNj�]�F9�sb���X��]$�U],S�"1㫡�O���H�4�3�Tޣ��J8g��C���&4~7���qQ%�T!�D|admc秾YT�7�v����ً�������+�W�~��W��O��?�Zط��ݽ|v�w���|�o���{�}�x(_��-�|t�ޝ�t��iIO�����@�@�0cs�U�6-1fL�Wt��<��D�(]�-qƙa�ͪW�8��+F�U���l�6�̕��������p��l=�!�ɞI�C:��Ɓ�sE�Ԉ8D��SS ��0]UvG�rFܝ��S�E'�jZ��2�n�b/Nk�1N��?����x��4���"�9������uE�����R�ݳ�@(6W&�w�r����Q�$P\xD��H :�l��gQn�"r�ϕ�"�e�����s�:ul�b�1!G'r<���}{1i��s�}ٗ��T�T1� pJ�/]+���AS��mϘs�4�]����fU�n'LI�1N����V���zB��J'�}9��1ćݏ�3�PY��)̷���0� j��d�R;����O���/��ï|���O���������S�o�����/��'�G?���{���o�2���2��և,��:��iakkJh������ ]Ոd�y�IjPa@�Nr�d��t�R'�(��e�D���4�1l ��9j�s����<�9��Ѭ��iP>M�5t� �AbLW�$5�mdI���N]"e.�V�(��(��q;M��x�;J����E�,�"I�jR��Y�a�����J�.t�����^��U�Gn�Qn��o��2�d���a93ީ8V[�"W��a����\@���8�r�UpOu��k�5�[���0��R9墧 g�ŘM���yb/�� �� �eS�B��6O�MJ���Xs�J���@���Y+[^��t'D�Sʂs��a��K�K��Ш)�:ܖ�Nߓ�2f�U��T���|٬�����'[��?:n�(D�?�_�}��?�����_��O}�����7���H\�ȳ���|��˟�����O��o��|������� �ő� �e���D��-�(�㣇��ĸ��Kji5�:a8n<��rbD����,���Ǡ�Uf¾�A)��2s�I��ϯ�K6��(�4ޕ~��5�qi�;TP[�H�����>-)��Np�|��F,��A겶��2�̊�A����J�j� G� �i�'w��+�[~V�X���I���� �L��NKƟ|�_W��qNW�L���1Ѯ�5���c5���LX>�~bP���'���E:��Z�ʔ� ξE��g�!nb��W@�[�_'�[�EhZ|�K����qs9F��!+R�FGc ����<Š��UH7D��~�Cմ��vbs{p'͂A74]��YXR�ӏN5��n6q�.���s�T�r��R��Oi���N�����_��y��ݳ�ދ�+����������PJ˳ ﵒ&?z���ͻ/_��_�˿����_���y�;�دX,8?�d촐���o�Z�)� <��Cz�^Y�t:D�x����B��b����bYO���۰��� 7��Xh�m6�J�Ե�0(u,��QM��9��V��IE�u ��\�����!R�X�{l@�<����X'��Y��R���3/��.'SNԃd�X�ʠ�[�8{��a�1c���4:=)Ԋ��� K\�'����������$�&��;#��4��Sy����:��߲:���ϒ��}[�&^u���e�J�l?'�p]��"K�HHk�S���H� x�r�[�z�@U&P�)v7,e��0����gȫ�u���:��Tm��x�N��:m�7)�D��= � AbĶz���x�dTɑ�w�T &Oln3� ��R�yP�m��A��I�@ R�E@��ۋ7������������x��>����g�}�����5�<��'?�K?�#�����w�Ï��A~2L�Q�%�j�xW�YH<'N���Y�5bY�s�TR$�� :�%h&�Ȧ��s]PBf�d��r�;�u�!��G(��)5O��V��N�5�CL�<�9�����{�Ĵ�d/���v/g�$��'��)AU��]Z@��^'/�fU�D�H���&��o��=�K��̃~i��o��J��� �p�� �+�to�+����g�ژ�&�W��=��:�Lb[L���Cn����:g���B�� d�P&i�]�.t�&�Rl�8Ո}6����!6���M��85a��f feLp%�����=�ALBL�ȅ!���+�r9o��=��鷌����M��8.��sO��(�3K-/����\��u��������S�Ϟ��?ȿq�ڛ���{��{������zy��K�:���3|�7��c�W?�������_��o��<�GFÉ������"�$��X "5�t"0,�T�|���@��<��fp�Z:�Y?�1#�d�(����������=�4�̱����wZ�ɵBv������ď���P���]ڢj�BNǴG��U��u��@R�5��ܚ� !&�Js����X#��&��MN�-Gڀ�YyV�? n�E�8'�����a�#��K��C[+L��vdw� 1p��2\c�\��yP.hu�ɬ鈓{�6n� zC:�&�%��%������\Aɶn�� AƂ;��B$^��V\Sʨ� �ƍ��EGE��2�Xc��G Pv�.x�Pl���D�؇�o���D��z�����cO'�1��˧�j���;ct8����.0�t�I�t�뙺>�U�3���?�q�����߾��;�~����{����'��"m�?�z?%8�H�{{��W�>�C��������/��7��OKd0��P^��D�q:Z��<Vi�˔�yVoB���D권lE�sP��LôXˎ��5�Jx� ��|�'d?0���Ўx��fҘ�䤋c� ;�=Y�5��n� �Z��I�M�b��C��X�TA��(�����xc�Z����IWz �aq��v3�$ �0��b�+���!_�_���<�� �|�'�A��F�?a��#/L������1��>߬�1c�k����e�E +�\�"G''ۤK����;�.8�V��ޞ��1N�Y�0����Ĺ��=�s h��eV�8]��o��Hcy�eڛ�=�|��è��cx�P;UU�悌8!�b�o�BdѯɑY,_%tE(�J �c�AKt����Ŝ�����?�~����w��叾�ȿ��ڟ>��_��O�������e��������ߺ}���_��}��>�W����{�~?�K"yR��T�u�f�xvb�kmDӕl����5��dt5r�% l��?z�S@|�A˷G<�Y���M�T�tUe� �H+�'�� [=0��E�k:9U��L�6�+4G��Q�Y �n"zG��υ;����#ӎ���d���-�rDT�"Y�t�^�s�F�9��~�{�������ٻ��֥�YUk��^k��c���wlw���n�;�8R����Q�sw!q�[$�DH\Y(ʅ�8$��1)mlc�C�}�����^U���~cV���w'�5k�1���ƘcΚ5�V���Ԙ���F�s�����l�^�H��h#���gQ�$��������;u&�f� ��a1�m G��U|�h,;����8 N�q�nQ�dE'�UMw��ct�(������p���0�J!� �f�ɕ^AD�{����X]��g�6p4K���b�?1,L�a#6r,�)�c����Aӿڧ]E�wdBt� �PH�jZjz�qி�[��C��)�x4����$�����O����W��θ��n|p�u���;y�p��'^��O|����L���ĭ��5 �dz�/��ix��I��Ԥ���X��S�J�x�(��Se� f�0���[��B���ttx�PRJ��R���,t��lӏ�BO{��iGd���!V2�Ө$]�:/є�:+.u��e�\\K��Ħ����VE���%��T!Pφσ�����^��������<x��ƛ�E����?�����MB/��>1Y9�r����&۳�C,q�R u�G��U]�U&�N�RW�V����yVM��)�0Y�F;b ��j��9{�r� �"<m�q��ӓ\�q;�1#knE�tdm�M��K]�gm�l��э&VA�~�:_�-l!�π���J H�V��ó��#B�QS̥N�.��tq�7,��;<5!h�5�&> G�k��̂�7i�M�"��'�(f�g��7 yC�37��/�<z���'�xw��������a�7�A��Ba�{;��/}�o>}��������� ��({��5x��NdGW��C+J)#F��z�I^��-�H�B(�I ���0xn��I Q4�S�6��a�ʑ�uR��J�(�Ұ�ӻ��l���B��,2��dz��+�n�bDJ� �F;���v�$�FÂ.���sf��������PJ����x"<~A���4������l�Y��Y���:�H���+����>���̔-wAq�� 2��Dn:��ܖ�n@���T��ELl�-�A^��/:4��éԗ�w��F����pje�>�9sٰ|��l�N�Bח�O ������f���lr��S��4'.UƋQ��Pb����ۓ�(���X��W�H�,=�7Ԓ�b������&�u�rs1��@�0y��r�i��wY��s����rwys��ы{�?�����?8�^�� �7u���Ͽ���:��V��s8��}8?"����ߺwo��r,"�:��O�O9:����U!S�짛�6� �>J+�i�[(2!�F6� ݡ�y���U�T{�:g�|t=�JAgo��\��WL�L|��L%�� d�i#����7���Y�JNt�� Gd�I�Ŋ,oj?��Z FH�U�~_D"�����\)���ҶF~S����ђ�Z�2��5��V͟wK���n�U���@2�����o�����I����17_������r�l7��T�J��D�R:Q^s�"w�Uf��1�p@ƛ���(�Nnc �1";GF�V㯛��ع$�=e���̸�# �ĎB�h�ᚱ�D� ���j�nt�,���h���t/��� l3y��Nf��Z���y��p3�V�%��5��7 ���QQ�'�X��=+2�z�{��?_�<y�����͛�����/�y���c�iD�^���p��ﮏ��������W�����ȏGp/����+��E��?{u%$g#$|���O����ڃ� =�N�JkKzN������0��/#R�%�P����é�������S%9תu�c�cZ����6 �I��х�4�NRfo�͔�Z�X�Z������E�? ﴓ���4M��!�����T�!�L�D��Zc�\��!��U4������Ԣ���WJ��j�Hs��� �� �EP&�l� :a�C�o�Tv�H^�\#ݒ�(>����I���M_0����X%Ԫ�G�5���(��tSB ;�vK]fC���lS�m�y�S[CV1�_�����B.�0��UW%���G��u�F���ktc����R @vk ���a��� i����S� �K�J��_t����� Х���p{��G?�����t{��� �Z�ީ�������I������o�ү���~��y�Ͻ S�َx(�"��gx<d�p�g����{�ZGx���VZ�@tnK� C�m�1���PE�nQ,r�ݰFF�#)i�<�z������-u�֑�UY4�ٰ�dhe�{����M#D-�B,�®b�-�������^�a�P�-� �d�zb�-'�~d]�6��N�Á�D]�h��� ���Wp��J�����$����G��u���"�E�d�g ]�fC(��稁�C:)0��]�",�4��!p�! Er�vKS����~{���̝л����!xn!��ޒ� �U��C"�bYlu�L����Z�HA�J�" �c�Tvz�Ç�0RZ����F�Z2KiL� �}4j� Cb�m�vkgՃ�.}��87]�V�5\6�G+5:���?��ɞ[@~���p�_{~��x��{��~�ͯ�)W�y�3wtt˳�sɜ�RJ8A|yo�����GW_���������ǂr���[�}Z�/�C���@V�\��Ez��Z �mm�=3�d��DS���j\�47H��8z�E 0p��_�kh�N|���#�?�Pa�'�Ї��. RQ����z���������V�౻���h�[�� ��2��K\��c#I/։G��{J���yP�Q���u'���BGkdP���͠ �rf����uGmu�_�W���T+5uh(�9� � ���3 �f��t�BkKS�P3���b��DL��N���=�(���N룸:hW�F�����1����:��I�"#V�E�M�B��T����]��]���6+£��.����.�z�H��Xঋ��1�R:2�Pn������ߩ0�k�CXaD���l�h�P"��� ��x+LGn<M@�����ʛ���xt��z�CO��/��o���rx�����F(l&2���{y�p����|��W��?����9 wf2����3�q��8l��R��� #V�bh����gs�"��J����d J�ZX��4��g�4�}�G9!�AW)��=&CR�<���t���&S�WQ�MEt[���uɴDGYH�vW&���:rDW�GY�Y���l���֑II�;@ȳ0 h/K�Y���jI�N &y�t��0������f�8��@{w�|pGjuj��F.�ҝ^oV�N�ϾN��D�(H�S�K.��͏驾�v�4��H�]�\�D�Ѭ�V�#��x�#�d��2R�1b5�I\ٓ ��U��&<<G"C��&�L!���-�X�r�Etlb�����N���X��!�4���#��\Tۛ��a���4糖e�[��W1�\a�W+�'!�+�UF�b���D@�t�h�,ݞZ��K�݃�������Վ/��<�_^={�տ������?8\��]��]�����=���Qu��(�>���?�η�������(b>�}@d��l��4R���k�AbC�ƌ�'�ȵl��(y(<ґS���ه.Zi"y.�酊�s�I �7F�S �b�aG�d�9v�\��w����ɷF�R�����t��/ �5�;�81F�y�6����s�У���طA�WsUaڟ a��Ct��=@�� i_a�8f�}H���I@X���� ���@t��?<濽��(�tw^�a���9Ի��Q���!��^X1�z2�㯞Ԧ�$��meq����h #쭃�N��dHjE�#�$�r�k�L���Bv#����8��M%�dL�q���B�r��)�Z�gF��X�8���嘖t�z�ׇ���3����6���Ę��� 0�$����9OPs� ~�#�c�j�f�5�>��i!u>����Y���л���/������ŏ�����������7.cf��g� �Gl��{����O�����W���_�����e���й������P���k���mA��a�6G��W��v�_ʎ�4���A�u���z�a�. "�� ��� +�p7S6Q�(�d%z�9%�F��W^�5[)D�\���#�=����v1���H:E'�eR�T���P^ͻ�kxh����L�fm�I=�qo��� �a(�afO�z�գ��Cn���%� #�tY��E����Un��y�+�'�D�6#�5s P�Z�x'�A��C�P��X �}�Q1�@�c-M�d��Z}��o$� �E�)WLad�M��P9�!5�6���#҆Љ��nv�=0�FTH����tf�zqB7�I�=�P��������5��P��+1��]�J\���1B������\��r�t�̤����8jX�4֞�5�7�8U�V��A�-��v�}���[/��w����Y�s��"��R_�џ�\d{}໘ow��p���������s_~���������\�:�7Ǎ�|sl�:7shĮT����,̩h࿔�ת�(N�dhJCݤ���Y���lP0�XE%�'0�q ���Tȍ'��+"U��p�t� 3�e/�ꞓ�M!p,S�'���d§O���V2 ���9�z���M#"5,���� H-�����[�t� �R/6��6 �ź��'���'v���U�[�;'�P7��}鄱��A5f���Q#�l!��$��zz��펷��4��B���z�K �9l�� M'z��I T�S��ςK�O�b�9Y�q�ءF��b�����"l(v�� 5�L^@mڦ�@\���a��MSO6��HU���xj:0[B��ӊ���]#(�=bΈ�X�Y�'ؔ�"5toO�tŎ���,i�D��u"Zat�I��VPς�t)h9�Y��)7��騊R,���W~ ���.�|džs~ȹp?�>��9��h��w�=?�u�9�k���q{��/|����>�x�$7��i~nh}���&kP���xy��� )�IuG0~��Ɏ!��Fv3t�M��n��I%"6]퓰�<����A�"�M&"a����Vҗ? �c((��.��a��3��T�d(X�y���]�E ٿ�B ��R�nKz�����r{V�k�|�Ԥ�0�B�F�H� U��ݕ��2��p�9|�rr|�V����+�P��ͫ�,�@�mj�M���L�����c�o��KB@^a#8W�K8P��;Q�0�QTJ�&��"gJ���4cH";�����n�Ҋ�۱�D#+mS�@k�A�Hn��n��� fC�f���$A���hA������Pa8 ��7��Rj˙QR(L�V!�ȶ�+�,��54��X�ֶɝn�K� ���I��������~�l����8��s����?!�|���mV���ѻ_��~�x�;?���s���|�ϖss)?51?;qq�G�,��p�S�.<I$�K�8N1�w� ��}�"|�?��BI�¶[�3����Pȗ,@���~���9���!=>a����V�ԥ�,;�4qV\ۭOR�%qS��~��H��kop�&��ܙ��ę!'Bt�D%��F��.7ͼYL=�Dd��$Yl�{�cB[h�U"ְe�4j6�aג�u��z��=������<��ͺ�7㨓 d�˒ �8�_FU�T(����E��U��%э�F�O��A��Sn!��펭��I�x@ ���{�B�?�##/�U%�!cV9��cO��]�X�E� &�l)_�FP���U1r��9��i8��&v�W�GUR,P��6#Tw�;�蹩�y!W-�'��7��Y5�zCFDe t����i�YL1�,�?Ox�����O�y�|��v.���G�3��y����m>��ֳBp���� o�y���a����?O�]��G��������3瓆|ސ��r#�^��b3���;<"�������Ѹ6$Ґ6h��hB92;�o�ax )��7V pc�#��R�@�'� �l��P�.T���P�% �,����+'(��?���(Kt��"��o�Ѫ1|mp����{MlH���գK�l�ᦍ^�� ��s鶱� %����O�B� �Bk���x��w(��J�-����� p��}�MM|2�Me�ƿ4tp�d65wZ�c���e���/��)KHY�2k�[����o�D0V��U����O�#��p�)b�(6��wpG���a J��0G��y��d����5T�Y��u�0;R�ׁ5����a������T%�cĻ-�h��F2 �P��Ŭ����\ <A�g%D"��#9���a�>� W���YH���3��cy�<�Ix�.X��.�ݻ���..&�\���l�/�~��v�������O����v�z8��?����K�x����c�\r������u�x���_ ��Ļ�4'�3"\���i����H� nx��;3�("p�pH#��0�Q��#)� �9���Tي C:q-u�efK,0U��MB9����pB�~�����)l�2��%-�_./X4��NAB_!�<�Zu]�#9��MKQ@���ƍ0pE�l �W������>�.PET�0p:j��1���x�zI:��z����m� 7�NT��j/����D~d�Ձ!5y� (������������4d݁C�K9SB�Bj��tp��ȍ����ARw�;Vfڀ���-C���"5�w�F�Xz�W}�� (�ƀ<&rA�G)��V�#�E����^JDX��; ���Ka���H��I���̩+��#p� ���³�Bq����X��&�ۙ�b�u���������?P�����_~���M�>z��|p{{���|����?<�ew�����~����LJ��/��5�8�9�w��%�n�"�$3~�������p#���h�Xi�d� �X��|�w4Km�� E�4��-�N�a?%��{�t3:�w��j�B'�MA��:��z�r-�d���4���Q�a���-�a���%s�G]\��hSB��o�D(�LEЃ!bY����V�e��𭘼��Rʸ'w�@)�;Rexv8~��T�z�(ir���Mmk�q��[�%�ެ&٩��:�|�D����г�%Zj!Q e�:U�Ԗ8�c��>j�q��-9�����7��u��1�C>�Z���HXp-�a�����f@C�Ь�9�vC@5l-4F?�q2D�H�<b�c$T�"m�N�AL�4� X"�S>���Z�6��(S�R��iM"(> #�.�"�+vj��D���r��N�T!r�݅�P�����?}��Q���㽫���������<�F���6��~����0 ω����ɠ��K?Χ�|8��~�/�Ǐ~������=�s� ȳ@���䍠�m����&�KX��5�f��I�!��4���R� �0[�Ȇ5ɭ��I:��M��r@��GM��K�ި�]0R��qm�q$��wz�$j4���Zh�^h�=�R�֒}�N�n�Q(���i��K�m��2ʂ���G2L�Ŏn��[vkށ(ɘ��s3�Dh�H �b� ZvV�ACp�<�u6Rʵ�:�b�}�R����9�h��5VG%�x� e�I|�U�� �vd��\�em�?'�Ad���k�����@Hj�p����#',���R,7����E@IDAT=��өV�me n6f�szQi#eL�Ki2��� �B02��!�J��F���6cS�� ��u!EJ&6��T�xu�c����6�[ ��̈́E빕��=�!�aᥜ�# ��v�N4�<PJqJR�z-��d��Y�����8+���ܥ��ypu��K��Յ��4П���#�|�χ�A��9�T�7n��:�����ǿ�?�O}���+�+o��C�#?J��^��^<!�m��PIFK�Ӿ�V�i�UBl2��������^f��g�Ǻ9H�2�\/�Q�4xa�\l��δt.��V�x��R������u���r�S�cĥ@f� ��+��^�9w��.ktc�?��b�3�Ps1ƗV�a,̉���Y�Y�I�)���#�E��BC �r7�BJ���?�f�6�M��t�� �>CH3�-�S�p;;�|u@��!���h����r%Aa��D2�����B&u�Ed\zh�� �]6/�qը=}���Pi0�S ��������%'C��Ph� SC���/�e�C/,C �j���4(�n���$�UE�)|��I�iaF6ncH�КIRCjVG�Vx�3�"�R�� q���Dh��W�6F���^j� M�ҧ>+��Q�>](!��@��+���� �[NY��ǐ��^{z�������>����k�\7@����|̹�{A<Et{<�����{���O^y����_]_\?;^=������<��SW�Oyg@�����'���MBr�W���hD !l~AII��ڜ,��=cU~ �!�! �Uh�h��-O�6z:Y�C�g�B�]j��� ��>>T隡��<4�H�f &��ٲpщ�@�����"6t�����3M4�6��]�h��b �Iܮ8&7�Mt����$(��M��U�n.e��oG��{g���pc�kM)L�F�'��=�:�A2d�;*ʚ�U4x3M-}�d� �|Hh�!��;K�]h�+�QA�N�Y�j���qM��C\�Y��)= �y�W^�y�T�(?������]X[w��v IP�w�8=�PZq3ڨ�4��;,Q��2d5�9�7o;t�6����u��G6����ucDť?�?@�0f�u��ù�Fn�i �r���/�n>����~~܍Kx���B6������z<4gn�� ��X�@�`>
~�p��������[�W������Pr6�'}.�$��Q�K�$��38�5� �xq��sr�!�NV�HDMb��H�u��đ�Q�'�*:�`D�&5X�ئ�H}А
ݡ��t9��]�S=x����$!m<<erB$R$���� ��#Kl��tiMH`8T ��Tw4� Q����G���hVT�M÷�p��4"v�t���%��N_8�t�ԫ�1�A;���h�����X7��?�O�r&t�Ӽ�ժ�V~0a�e�T����D������ M\��юL�0��dW+i�<�B<�P���E1L���k���Iw���K ":���s�ǝ,
�NYNn=ݙ8�Wo�O�u ��C�L-"���FUu�UB(�Ȍ�>�B���l�]�~B�7���߀1>P�M�^�������چ�Sa�zf��VIw]�庇s���@��� ����{�q��䛽o{��뻮�q�v�̖E?����)�ߊ�/��4�A9㽷�}���n��㽛���O����'�O�s9���s�n�]džLr�l~��������ڗM���n��/����+IԵ�<�"�x�BH�u��Aע4�Ui9������pI �3&��iv�e�����<fy��Cɾ��"&����RH�ĭ����⢐���pha)�Q+xS������qI�iV8T!G�p�L=P��f����÷�p�|[��:����@D�=ht�������T����o��ؔ@#2Hj!�6;W0���մ���%��!�w6<jN��Sk��\�He�����#¡�hu�jaq$@��+2��-r�,Ր�oU�D��?@�Q˲E:Md(!�Ft+��+1-�t����[=�8�)�-a���lj%�"�s����'z���s+��[�TA2�IRVd��$^���.�D?�5�1H9+X�'P:I�\��7�|3W߹��-��Û��:����^.��>Ы�x�J����OΜ�f�L����SC���|=������������?z����k��F���$�6"=n��'�҄(@�}��2�ƈL��l�; ��=mm �gY�<p8��J��hv�9��y3Z��i1�9�j<��\aC�eE Ap�KC۩�.�.+���.~�m|Zvi��4���\�S]�B��lv��O ���Y��b�;~�[Å�,Ա6�P�|{�8�R��@ |ugM�&�Ϟ+ѭ�k,zi}�.�鼉qNI��������Z������'Р�W�v�(B��;I �̅4'� �� [��������r ?ĩ�q < QK˫�%)��&\P���;�x���бzv�+l�gA�52���^��o��@�1�]�%��l�J�5�dW(� ҹEB""Q;L�@���ٻJ�V�ݺ�#��A&�5�j[�#�ڹ���c�?wqy���x#�:�?�~�������3_NF� ������u~-.o��|� �;�4���'��_N���������F/�n�PP���)>��$�7���,�i=�?��#�]�!E���1#X����$(.�T�H������� DH�H/E6Y�����y$T��7 X�B�%җ��B���é���Ę8UR^?�Pc�O[v)��'2T3@�WHDy�b(�+���ÐD!E�d8�����Sk���:�8�F+ʜ�EM�4 }�Bd�c������;4��V��@����E�a-�0�ff��ق؆ + a�L~+$ ���c7�5<"1�)�u:��]<Ę��^0dڛD�h{� Ej���(3�#�)�i�[E�'�æ�t��HՀV��{���N���{�O�d+��w��=;8S��V��Nѵ4xg|@8xO"��R��=�"8!7�=t�����m-'��z����).b��Em[�B��S"ˢ��=�M��7tt�\������-���y��^��8�x|�s��>?���'�L�� ������ �����o��������o?��?����q�|�����.��<�����_��>Inr<��Muj�}U=�7��oh��!Y&��h�@4f�Lu��M�����[���t�)��Y[Z�8B��Q�Ӷ^��i� �N�i���J�P�Ry@��rrHL�M� ���E��R6��LZ� "7��cRNX�"�Z �˖(��h 1�RQ��h$�@�(�+NGwʨ M�f� )�pM���M9ĴS'/��N�H��f�e�:�F#�";��ґNga�v<L���Q�K:&�gR�V����ex�����"!�N@:K�K�r��f��D�bwA9 �'�p��p��Ŕ�q3�^j�$۽B����e�����F��1j�G�� ��nL�A��( 3�d{�E��7��t��^ذ H30.J4�hc�lWm���rϚ���(p��г�{�}��#@�|"�'��s�������~��+��x�s�=��ٞ�:g�^�%~z�%��~~��+N��.�o펿�۽����ǿ7��o��|p寄�1Ɍ�l�� �ٌ0����͔H� P�H!K)��q�&UK�{�1���O�� 2�f �3�9�1�Ɣ�zs> �ZQ,p�d|�K�ڊ &�U���Q�뀶D�㌅��ɐ��Y�z@�<D�ZMf����,����I(l���)�O���� ���fy!o.���̲ w��/���Y��9�;�K�~?PV�W@ ��!S��L5�)]�d���F���6�v� !�JhXl����0j4��U�ԨSQ��]hb�pL�.��'�O1@"f�G��>|�S5-�A-D��kP�:�H�M�/0�4��0�����?;m4/L�(�����ȧ�n�A����t��T��p-�@��8_�>���ϵ|Yg�&��N��{ŏ@���I ǜ:�;BY�Y�#Ɗ_m�y���;?�C�ܖɣ����<���?���b��o-�x�'��q6�|-��}z��q@���ox0{#�ȿ��n����7w�?:�����g�Ow�o�e��^��iDޑ�J2c3ߚg�e6ff9FTįM1D���O��b�S3�m:����Q�(:�ap�҂�WP�1���>p��3ep�#bUS]d�ڜ�<2 (�(�̩+ ���Z�P��q��Ć� �i(��yó3���(����X�Dd��V3z��J+��C�=S=� ��4R�w�]�H��y�3����h���Q�YA��SA�l�Ч�I7��a�K7dr��d��љАf�'��88�E#�0�@���<�rB�(���~^ �@Sc]yp�B���5Z��K'��sd�c{�D�:d!��z���rr|@x�OZՌ.s}����'��ߙ��^N9I+�@S/�.i�5�P���LLh�K� ��'��a%��u4�Hf�o'�H�y���\>8>��_��{�ɗ�ʯ������L+��'Q�z���9����q����Bs�͟Y�������/�{�|��'���8��[O����<����a8�I���͜���Vbq]��uY7��l�6J�X�R�ƈ�a��%?�5S�<�Bf�������n�(#j�#4��Xd���� ��B'd���͠���ً!&�#��q�!����V����(l6�"4Jh�֪���~���d�mr��Fn)jK�"�.<�҈�W�NP��"��l������YYdH��̸S"�mrƁ������4T7��Op)�jm^��J��#�x��d(UA2�����Ésbv�Ti�B� 6B�����fu� ���1�.�!8;��p�UWi?IDL�qN/��%kI��^C�kqT�y��Z�CV2� kb[�+�f��k�H�Ґ p�uIb����z�/�AF�b���=� .5�.Ԧ�J��e!�._�y����7��\�$��%����:맯�����p�hw�����7�e�����k���?G~��>�_�??�H�lI��.PN���P�J�_ �G���}}���<�q�����������#�i�ǟ�5�S������#Q��4��:2��I��$���(c���H��8�e0@��b[�h�;�tѐà�!l(����_P��������a�p�Ȟh�4��]la���n�p�"�(�UO�!q���V�+-��(Q��ϰĵ\ �IE%v�8N�� ��w���7]zx�͠��f� ��|�VG�h;�F.�y��%9���s3 ����F8è{���y)C3.0�8(��]S3ҳ��g�8�i��^������J(c��=����C'c�i�����X��(-�ؖ�?9-�Zʰ&.���Ώa��i7�5�Z�B'�Ŷ����M�I��ZEg�B�0 Մ�l�&҂�����fgT����.h���Ca5�j���E���Y"�&'�^�z�>p�ɑ�O}�Е�#����C����y����տ����|��{���Ƿ���V_r������] ��sOƒ�:o�"�ɀ�xv(�泄�o��߆{�p�7��7>����+�:t?�&L�C&$16X��RjvS���o�Jf4I�r�&�P��2���(c�R�S}����4S���MK#�m�#���.T�'����7;Z�ʃ\� �/X�v첆 ��;��J���ȴ�P���̌���]2��i�@EcM���҄�xf1��m������>V���Q������ٳ�<K�L�wl)���e���L;�$�;��,��7�ڠ�EJ�H[�P���6\va� ���&��K���t��Z���@~">�ƺ�b�ҬFXu%��4�q��B,P?����B�RW�U[zZ��B�.���u��4834�Rc����,�')���Ԏ��h�{�"�b��X'/53�..�lf}W���X�K�HD,��nW7�-�h��~Y����\L�,�cq��?~�Ko������O�3�����+�]O��&O~�?��{�CNy.���\���_IY� N���=�y��'ov��;���}���/���:��?��-�q)�X���1�3��5m���� �Q�"}�@3�@���b�t)��3!$����b��R����ԫ���f�#�|x#�؊� N�s$JW/#"�u.t�B�%Ν4���'D�Ħ�&�h��̅H %�p4��lbt��W��y9�g��TJ?��)MS�ԅ/�p����H�,��Ȃ�mһ����!m�a���"5ҡG�[<�@�9�9왂��\�0qZkW��gv4���:�n�3�P�<�� �QX��79���q� �x\up���J�/Ώd��1 %�<E�tL�j�D��!<y�Z�g�7䌝HwS���E�����+�R��-6��u6��2�,Z��(��KH�(Za�5e aH2"I�PB��b2H̾K?2��⧕¹[䝐�2�����������y��>?̙Ob�.o��֓���ܹ�Ϸ}5�nr��t�>�Y��Y����{���=�՞)�S{~��3"B��:�.�����Ǧ�s��./����|�STNK9$oz�P�'�L\�l���K���L�!c��M�( ԭ-�M��m�kyh3�% %M숲�|�^�&0����1A4-6�ǝ�6D�Hj��-�@8<\���r��4�S���J�%�����>ƌ7&zԋ�b@I>X��P�?WhIO�BRR��'g����X�̆���e��gٗ��(�@s����P$6��ߐ s�M�&���T�������2i� gI�����%�ٰm��H��Ǔ9�k� ̥D��h�sg�61ɔ��!�:T,A��@b4ϔJ5��=}7��������h����r0Q+���GJdu� ��ר���ӂ���ޤNj��S$H�8�.�Ӝ�!��5گ�������l�sN���8��b4 $�ʳ�b�s����:2�1fy����[��4r���\<:^?��?��IN ��?{y���}�?�v�<�(gʏ~���A�ʇ��c^ҘG��OG�ԥ�%(��M@�1�~)����;������^{r��(�=��lJ8y��&���\3��&d�[�J������?zd�O'Mz�S�!C<}'����8Ɔ��D�(L�<�B��dD7n���G�;"@q�]�Zb:�g� (�Q�Ț�(/���J>2Rԑ�&��� ���kDI�����zZ=��'�(���NZa0�v�Z%�o��x��VE�kP{�<��������0 �v� L�7,��4����J$�3�-PFNhE8��P�F�t�N�?R%bL/ژu�{�3�3��:|eB� >��A��e٩V�؏�e?�������D�a�1��Joo�Є���PLH�'R=@��Z�b[2�{X�/$ �:�T<#��S�� p�IM��De�w�� ��N��fN'�ߥ��g�����Z��\����_��3?�pu����xx�ڇn��O]f,�#n�����>��_����k�������A4�\H�џ��axmSW�B������n�֛7����/br����/��&�d��h6�f mK��l&S�$OC4��6��[� ��=�vC��sV��NT[���~�<��Eq�ilO���촲k8�>$����H�9��]^TZ@5_�?��Ғ��"���m��h�~�i�!8M#Ѹ��HS��I�=�Je��H��HAs�n�7,�'=+�������Q��S<]&�1/��5l�ګ��&������5C/� cf_�������J� J�%K�:�b!��ď!�5�}@'���� ���k���4F�KN�3�j���&l���V��t�mN�����Q;��0W�5�(��ºɅ�Vh�^�餇�U�5�7iI�Fs�W�I=�E!熬�,�躎˦b�C�8w���Gاz�9ώ]�}�X�"��?�s�}���������7��<��y�?���O/��������r���{�'���� �V%�\��[~C����?i��?X��ЧHw���|+�ws���g���7s����v䧁�fr��!�J7aN����1i;��,R�c�(� �!�t�(�g���dU_ �.F�kf�s V���@���4�b�HD��u�;�Q=�G4Z��q�5����� i)�Jʚ�xZci9�'sg�K$��D��
Fr����@%�_7& 0���N�몃�J.n=o�B�x�+�㺈U�Р���@�ԑ���P�-�i���t$��'��Ś\�-d$���@X#3hD�� DbR�e�u;�j�ʂ]�t+^9.���r02a��S[��Q��F������4��Dd��0Q�7�1zjG�����Cl8����"�k4�B��Ժ����)|̫��D�Х��t�8�g�H2�5Nvd�� Ï�)-K, a��a�'�L�$���<^��)$�=��s��}���- >���y�'��?�x������?^v�_x~�z�������W������i�������|O@��x��h�L��q��(�u������}+��Ï}�+�o���@y�� �;��!䋤�LMnJ .���X3.MR��W4}c�E�B��dAYDk%���A:��M[p��ZD:p�G�&�]��A�G$��%���8��o@X1���u�6/̅�7�d!�&���A ڑ���"Mw�ME��ʆe4Ȅ�1��ߦ�N���s({��� ��M$���u�1k��t�,/����Y���#�L �%�,����i2#����p�(eh��d����G�Vu��DNsȫGPd�6�9��,:�PF&�����"��o���^�h�/1s��L�鎸��O��&��fe#���3�4��v,J�I����V70��_�RU���bK�"��լ;Ȇi�|"�o-��%Љ �7n�e �k����ABG$��� �PB��Gw|�Ż$uI%�id�_�t2��� t~�!Π�',szX?���s��7^>�=~���k?��G?�F���.��/�S��������<�ix8�3���ҟ�r���aѠK\��� �:1�����H��w�8�}�#7������Q>�� ����'�����d���5�E;�y�f��w��CT;: �Ar�&j�V�݈��)S��2��P�5�P�����d4�h r䪙�hj1; &X�3���T�f��=ܐ' EHW)�O���~�<��L;#)��Pa���8b�q�q��n�5(�&zS�H�x��S�Q��.-ݑ ��k;5I��т��E>"�wx[_�VIX��F�����K��nQ���4j"�k�E]�͕̙a3/$Of�ܖ~֯�p�P�x���E%[�?LF�"�u��GM��QX̴i�cA h̋�H���H��$�v�"f2���۵>U��8�N mɨ�ީ��J�n���%SsD$�X+�EJ�o�TޮM�oX@��y& A����J1bU���b�S�U�r��rM��-�A�����~��G�����>z����������W�n�����ϋ�ݻ��c��V ���K~הT��G<�%PYf'�?���n��E��&��~�'�A������'�{)�M��� ���v;�f�J1\�� $O)T�0���L�-�^թO/�R�_b��h�(LU�&ݶgF��� C�o#��#5�_c���x�j��8Ets@�hm{p� �Zu�>�@c.����P ����� ��\,��&���X@y-�����$�cE�K�� ����^lև������ř��e�V�e�L�nr�d, �n%T&c������u��2h�IQ Jt[$��(�0<����r��I�@Oc��~xñ��K���'�qN�Ю��a���� bU0�$4bD�<b}4v�@0Z�$d@lg�x���]L��"�[�+HKn����T���+SȤ�-���&,\� 7 �̷��ا�eo�����=�OC���m�x�bt{�@ؘ���Q�{�;?��s燏������ ���}��o^�}n����ݻ���3�sȷy��G��&ײ��s�< �y�$��:%�-=��1���O8g�^���G�������}OZq>JMp�Ğ�9�۹CŇR0h�R��o���hx����ʁ��IO�}�Fuď};���U ��� U�A>)�vVv�w傈(i�䘆��6#�m1�c�f%%D{hV-��_� ���&lA�XӶ������a�Bb[ֳ�L��6���sP{��P��U�@:���>7[�hc��t5c&���'$��U�Z�B�V��mvH)�j���Ӱ��)[=A볜s�c�[��ƅ'���(���q"��ZG�'D��THv����h�@��i�M%v���īh�%�'�E��[4�E,��)���b�|�X�(�@��:K���ܚCt�Rq���C�E�Ҏ�Y��EN�#k��p�.�w����}�X��Y��e}����G7]�� �������ه���-?����_>��<��G?���';�_!�h�+��^��à����^_d"N,�M&Ԛa�����:����G�w��v�U�VyKD=�q�e���S�r�tN�dw$i���0ȵ(�WYg|FBz�MM�Q#����M]�v�FJ���h~��4'���T�pj�aƛ��+��LeC�f���]�8������VVLA�&61�IUae�AAq�)m/��A��J4� � ��0�����f�/RɄ~�FI8�����K"T-5�H�Wg˲� �\T�����&�1�:a��Uq;ڪO��D@�?ŗM� �8��!�1 #�6�6�����h(͇h�{�!+�9���q����;J0�8�kx"h��!(�����fCwz%�r��rn%���ƸpB�א7�� �d)���?s,Mu��VeͰ|I�[�;\���Y!XLPb�W���a?��Ȥ?}L㈎a��D~�4|�u�%����E�����3A��s���2�s�y����>��s��x����g���/\�U~�?�����_�ns�>�����|�?�n��I�#�<,���$�1P��x�ɼ����Q~(7�r�����4|B6>���y�o�b���(=����o�沢u��]�ųU@�#=��&�O�U�5�䥅|�m �NG�W�L�fl�o80SX1���0�BNg���͏|'\�'��7���h�V��px)��b��l1@��4t~�+R���@�'��� ���p�(�8�1�نFu�X��[�c�e�4|H9���A�4�O= }1V��8����>�Ȯa�����e��MWC�6]� �ӓ��,�e� IPd6��'�}^H�49PPaTrr�"�+$�h�:ZE�n#BOH�2}�0���"��wYTo�����a��dG�N֙qyκP]��+Ye� �FW7�Bg��p�N��� }�~%\����Y����F�p�D2����:d���������)�<aɣ����ﻛ'������x����s��O~0��=����{������|�����|��'.�a���w����K�k@��X.I'�AP��x�(_%{�o�}����!�gʙ�x���a���#�y�0�R��Wۥ�s�t�-��� XA�Z�P,;L3þv�F�ƣ�m�l� 7p����T�ةq���NV�~���.���k#l 1�Ʈ�R߬�W1P�:]���:�l#+�q�$����UY� sSf��cDH�Q���s��� |�å�6�É�$��Efb�������j��&�Y#g~�b����v)2 �a�7 ab�+�ը�s��'┳8�]�쨫AL7�l \�B����Ir���@�19��6S�XVZ��iB�}����4;�u��9��j���ԙg!d]^c6�����gbҳpTEz�,2> !l����$�����1.b�S�w�!Vԫ{�,!J�X$�4B.�����[�Y.����sҞ.�?w~�Ư���'�����U~�����ɽ'O��������7{�����/v/��ݾw������/ w����c�D?.�Wn�x��ҕs��d)�$�N��֔G+/����P���Ǐ.��$�Tr�+.4�USa�"�Jq��bڑM������]A�NF�-�!P��H��"w���TE��� Ǘ��D-���ɫ�K�q�/Z@�4 �$���TH��sa�_;dc�Ĉ���v&k��%�&!L#z�BD\��%J��+�@D���$�@hbuB|� L��Gi<i��W��kDW�g��Ʉ�� �.#zf ���.�ʐ�2�-�%B�j(���K)���+Febհ�<�5W��AG?�.B��L(�4 �ء�FL��u'�u )B� �eit:���� /���8b�-<ӈ�.!,�!��l]f8N�u��Y6�&[ia���%�մ��F�Ƅ���ԁn�#�:�l�_Ϛu��@�7�X�|=!�|��?��uCp�BW[���s��$�� ��{�9<7�)V��/���^����'�<������O������?�O�x{��_���^��g@���1���zF& �ھ�8�E��!�_�c���u��U��H%:�#��J��3�ë{O���\�mJ��ƛ����!A2 ?�$\�KD")Ac#k�nr�?)�p!:�����Ŏ��)���H �W�3) �C4�hԈRe�p� ���n!��x�<j����P5ܶ��@ �4Bw\ �����j�Al�DH�ưސ�$0�bhJ�hE� �a�TiY�坮2�0� �������!��[E�n�=�/�1,�a[�Ԉ�L2�\�>N��� cfx����鍖���V����������Jx[�il���}���V ���z�� e�P�����kX\~��)h{�OD5<V�x�Z���٠p4Ӷ;�hCC ��e�@b�����)�jmP�V�)�C�d�h��XhEթ"2\�T:j���� �Zi�y��u�f�uM)wr�>���?�)k��bM�����u7��Y����77���o������������'�z�w䊁��y<�w/w�>?>����c~����;�����Đh�Ǟ&|�ܣ�-��d��^���i�����w�G������?q5� �z�#�Ā,(�@�!d�(B��ɘJI���zV�iQb��mx��,���@�V=�xscZ�Ӓ6�vk���͘3�n�Hj�Q̎�;\̫9٘Iy����U5ĪK�a�l˵� ��>��.����U%VŒ�rS9�VH�/� �+��n2�Y���Y�eo �}^{-�������6�x9�H'�aL��L�sJ�W}�Q��(�,G2�42Jέ���U[uH݊�S��u�ɡC�(g�U��5c�c��NPjt F�B1xjl�h��C}�h������2��&[�_�d� �g�&̢l�h���Bкyl(�(z:ފ߈5 ��4]L� ��q���e��T�Z˞��G��bp<s��g:���X��;<�";<�����D���Y\4���U.�������m>��|������������G|u+�?{����������ϗ���pv��0��$.��Ĺ�'s��HJ$����3H1MZ�/��?�;��D�eE��O�Ml3L6���Cw22�:R�FkOI�f7a3 D��N2o��̀$\QH'�����"⸁b��8\���g������Mz���²0.�P�z/�4�� ]��z�Q����۫1b#��?�8d����� �t��t܅����P�!R�2?���8�!�C�"Xwl�w�,���z�pl~{y�?���8Q�J5N�-CM1DK&d�& �[����&�0�]�0�Niu�� @"��,��Th�-}}�� �q��(�b�:P��Et,�T8m%�g�HC����>�DWa�L�Ԅ�+3>��?�I&H�v A�OY�4s��F�$^��E+��o�H�15X��Fktl�뱘��a DĈ���f ��VDX194=DL�C��ϯ��r�r���L�bOp}�'�����[@y���O}y�~������7���<�?y�������7���>���s���/=?��߬0�<W�\=���S�Pf@��sQ����[�]$��m���??.��69�<y�����$�>Q�L�~e��!��X�%2(N���<���Զ"�B'N@��҃]���0��1�Q�]&��K��N-'?�F�.s+��ƀ ��� �� �^��k{Ǔ��#���֥a��3�z �Ҁ�A/4.�&\��5QQF)Nl��=)"�%ЌA�<�ʼnO�vC�F[!_���M��rgkr�n���-�JL�m�l�J��Yx#Df!+� � �9� tH�B��1x��@;RVF��9��H�f�=.�O�!�T!:0�� _)&%�#w�T�p�$O�D-�Z����A ��¦�P�P8�C ��W��8���HWOd��:P�@I�P?�-a��-)E&dA���X�xZ�G���1��b������ �N$C�����2���(h97����$�����:���Ư��C�7�����'���o|���տ��K�a�ˏ��7�~��˷w/���y���;9��t��'�xhSO���&4���O��J�sG��2��1ט4�K �l���㛼 @"J��L$SqI�v�3��%����tqQ/�B<Hs��q�=�FG�2�VQ�<F�H7�e\>\XG�XC�o,�U����\M{PD \~���(i[i "�Λ�4L�4�� ��8=s�<��^�:�l�:6���C�e��Qi^�v�G�`���L�2��f;&j��4J�$�@��vl� �����)�eNe��CK�"Y�����,�L�5����P�'�بZ8��~3�XŁ��R4S�=Υo�IQ�a,'��^E=L�@y%kW��q!�������Z����,�h�H����X7i��6��)�=�QL̺G��pH����p�c ��r�+] �6�����@i�5�Y����N��2_�bE�q�Z��Q0M�R �\e�o#�̥�Ȣ�y占^����7�W�.wWW�}���S?ל�{����{����>���|��+�����<�|���=���>'����[��d=I���[�zF�q��M#C��Bd��O�aֻ��X�&�R!+�.�k��U<O�D, FC"����!�H� ��g�1��nj�"��8��m��J�ֶ��oK�.HZ0����@�6��U���0�����x f������)p,5%�F���%u��h�� ��Չ�����O!��t�5�tZ�z��Ɔ��.v��D�F^��4� �W��&{���pa��!�}z�̡TA0F:������4_SL�8��j h<� ^yr�Cq���K�ut��� N@hv��G��_�$��p$�Ө ���k�\�L���J_�6��$�ȴИ��2�\lB�Ú�0�KO�ʁ�m�<ZK���(UKQ�U��.#hIg��mf�Y����%��4�m��ᇩ��{��\�J5����w�@IDAT�k8�&J�}�%�"��V��+#k}�V7���|������m���X=_����>��On�_<y����ï�W_~��g\߿��7������G?_<߽������o܉?#�xg��;��R\vh�����V����чBhL�l�B�(�S����"3�=ܘZ���V���H� ɕ8��0���N/밙Tq_+��h��hā&��p�U������0n�5�6�EB�Ƙ��l�]�l۶�u�1�Z{��}�s�>''9����h��/V��,�����G_ �� �X%V��H�Z hYDJE�B�H�Z�-��@�d��}����~_�c�}r�s��[�.���Zo�����c_�����ۮ{�� �2Ꚏ=Ah���f�L[L�;5mm""m��r՜�3�0@���sz�ե�+�����%펟(ZTz..�9���˙r���_P��@�\٫f� �{�Χ���m��?�ϕ��mWm���#�k���"iB�d��g�>F����A���d%�KA;a� �7����2��VT��+�����:�XD�r��Gn��<���D$��!�>/���7����#��O��\�R��,c6��i�A��j�ƫ)����$�#�i˦�I�A���D1�͝K��@+cX �&��� �$�}��p9̗��{��~��˷��𲇻��u���+����ӟ���y����k��6y���y�}����'�'��>�w�y�����2�S�(����ôʊ���ڳ�<��o�x�aV����l�.su@��e�$����uG��/�Vh\U�o���5[g�dOBZyS�h�z��J�"�W���iN�1��ѯTD/���K~� HCc���Ϊ���h�(��e� ��E��;�{�� ��pg$Qd��=AH,pc���6t�F��̣�#y�4��TJC፸��O{��9�;D��J̷���g��Z��ǝ�D�A��g��1qs���DBl�vTa���]������p�s֯���:��6���B��+�Ցqf�>�|�<)D�G0�r�'�r�����,My�88�.r�r�@� +��+�����}�?���U�0�3B2��韎#�)z�k�H���v�Wt�k�P��}0ҟ���2�������8e�ԐB0�K+��z@�N}��~����/��Uf��{�g��g��y��{���W^�x�����|�+���x���6��G���?/d؞���3��]=<�̎s�7�Խi�5��+�8�sҨ7�Ja�( �l��Yk���4�w�}os��:!Ĝ��!���E�e����|.�j�))��iB�i��(ѹ^�B+qX�9��"��h�hu��dX�m.o�[�w�7e g��n�(�{�gH#�E�pg��/d#3˙� U)5ەob ����id�l����X| ���B��ȵ,Cɫ��;U�4͘�]���ۑ�{���1���~����ZV�sr��B���O�Z�<Mƕ��p�}���J��J����<���͗�2~����$�X��tA��Y�e���7��]#D�q��Q�kG.�@VY�!EQV��p�K!��:˨�(E��f�!&}<_5�eO�,/���]��rk��)�(:Y?�l�a�֥�n#$�<�z>LEW�[��9�Pv��Wgx����A�#�g�,��uHj������������ϝ�[����}����?�֯�Ew~��1�^n\&�����?����z�|�qx���l&��N6^C�������74�a�� �&� �z?�'L��8�+�S�p�W�V�d�����0ky#�z)�� ���Y�|5�p��K�$/C�����ul<��v4hg��b��2��˱3�1��}yz��l(Y [�yx�Ux�qf������Y��oY\�����=;GXA� %����Tա� {��+��.�A���A���2z����"�ҝ�4ų�)�|��K����������U�S\II�$Cu9�p��]Z��w,PK(P_��l���5d��P�BM;T��J��(���9�:�1<�ae�"�0�ŁW�Yg�H[���r���N��(w��CMI^�XXOg�S�p̈́�p���j�1\�=,a0�n:ѝ[˾�O+��]M��-��4m["#�x丮 �tQ֡�����b�A�aݵ�nÐh���_8���¼�m���o���ON�}��>���v�̛���w���߸����v����uy��W�<ڟ��ޯ\O�q��_����r��,Fc�j3�aE��{ѩ}���[u�Ɋ����7���o�i�!��U�P�4���U�m�N�Ro�REU�+ގ4�R�2=�+����u���x"�O�7��$�� +� ���RN;�ϋ�rg�(g,&�J'�E�2l#�}!�\��d��]��Fu]:�J+ҟfR�P0�m�����2, �P�TT�ʹſ�+k*%���ӱwKuɠ�,� �1\P��U4����%��=!d�F>�� �V%Ŭ��NM�wL�L��IGv�fRc�ZS˜}3��ݜ ����[��,�e���R�ɥ���U����YW�������<�lj]�_�����s�`rE&���\[��1iB�]�:��}�Y.'X�=�"&iYq>eW�0J�㐚��\�:� ��6�� a�Yῒ���'� (kpJ����a9�1 ����m������6��8)��ݎ>��[t���6��θ�ݺ�{�7�����Χ~������~�79�>^�vx�x�}϶��=?OO��>���t�7l
���ƥGW�
�}W6�m�R�]�))�:�s���c4[��5�]��O���Lz>���t5{W���<6WB�W�fV-��ۚ\Qi�IyDE\0��.[�**��9�8l�T���%���[
��P�qJ#�?����)�/r<�HQ|m���Z�\��}�����Th99C��V�@������dYM��+��g��e��ϝ�N02@�����3�̓��C�UD�4�(_�oe{�zjN �����!c�Ja���A�����ƴ�ʍS�]���'��%Ѣ/�x�l�����9Y�b1uUx!�:�e9�o����f=XT���'�IW��]ir�6Z��d�.����k�e�\O�����Gi�7�k���06Vp�Ǩ��@ӓ��Z��2n�ڝ��P��%-�1g�0$�(�K���R�V�3�yT[�����3;3��"Ro�0M�yGn0磘CO���k<���?��7=�g�gޟ{������ʧ?{�~��/�[£���N��v�������L��������� ld�,_��Ri"�eb<�퉀��.RX��by��Y��Dp@�y��p�U�t����#���hW �/t �o��?d��-K"��,z��a�U�)B]��0���.(hF_T�7]-$��ӈ2���l�!W)Κ\^�J�R+I=�ZDcP5��D&��f���K^�"a�����+��iL-�T1�b�kL ���p��첓�R�%/���vư�O�!�z<�Ea���IY�m�O��4��W��hR����� /5����3�Yr]�kw�m�&��#��%P R"3��X����O��+Pꊌ����#�}�C Q��������Q��t����2&�� ��o��c gH�8 ���O�Q�9�AL&+0�go�.���P��i9kcصP�g#H;�XF�����z��kd0�VW�[�q2'$��!T(Rׇܖ�u稡��@�mޮ���߷&t��>��?�_��8�g��>��+�[��������n�������"'��zv��\�=;>~�_f��y�?�k ~�����Q ���3 ��[!���GH��+�%<��Kpлu<�)��n���|�����o9Tк�\�K�7�'�.��nB9Ը��s�� 6��)Ȗ���
;VǚR�~���\6k��L.�8ht�, )+��EVI'f���v>�1�%��@S�PAL3���Q�q�-k�V��o�����2��������чs�Y�;SG0$Z��煁kҪ�����X�E�hQ(u�5����;�������@��<���E� DR6�TH�C᪡8s��%�����Jc�2?�%l1�lE��nϸ�$"-��[>�� &�.4�S��k��\�wi/��,�M��5���b&1�N�>Y\����i .�L���jP���\."UY�t��%�,#�[����J^���gf��Cԗ3+cC�GB�e��K�A�A|&G2�� P(;���Qp��x�UV�������^N�lM���ϝ�-N����+��_;���[���������ډ�=0⾴����N������_��K���~OL�0�2��u��o&Ʉ�~!(���6j'if����z�TX�Xe?�p����}|���U^B ��O����٤vp��&��讗v/�(���Rw�X�ꎫR@�_nN8Z��A��v@��B[�3g���Z/�)�����BH���e�0K�n�9��bQ�Z��l)E��~�Ð5�{�PT�����d�E!kɛ��v�l���+���""5 ӈ�B�rpj����B��b�C�$�۳F����bDK� 3��X����D0�.��l NᲒ�ɞ���WJ���� ��C �b��<�]DIշ��M��Cٗ�6jISK::J��4������jOBr��˄Squ�A^�|���y��KP�U�!������12�QG��#��Is�2f�e,�5��|k�D�^UE��D��Qp�!��C,�k�k���<�H�������@2V�����V����ՀO��?��C������}�p���u����ܽ?�+o��ל��\����{O����p�������3�3aOF&)�{.s�X&k=���1L�^�InQp>���])y�d��n��V������=��'���G�U����({� c,�O��8��X� qW�\1"+��K.��ǵ���oAQ�8�x��wբҕ+��q_iK aS:39����0�t��.�������r[��U~�����j�3A����@4��M��d��Q������.�5y�j���t(�֩�Y ,#�����L+�Uu@UÅ����uc�P�J\܁١W(y(Wx$��C�L��j�$�0��"Uw��=dM�ULJ�H�fi_(�c��g��4 VsfLK]^��}V�s�3�{l�I+8o[��)�����Ƙ�VAx��y�ɸ��8��u+���.�����;j6��2�yE�x��0�B�^���/�"���Uߙz���f��-�X��XY�(h� ����,�2��;~V+���ϡ�G��揺�r��_bޟ���Ǜ���ww��xm{��?{�����<҉���o���N�>g�����>~�/��~��:WYs0&6����l&C������6>w�ȬH��L��5>͋y��+(��8�C�===x�;H�n���ĥ�?rEp�)Mʭh�B�e+�'�����ؒs����pk7SW����u�O��DX"�� ����E�t�|E2:�k��\:d5pՐ�x5q%(�=�g�q�={���-5Ԣ��)����ڐӱ(�Jp�[z�����X]�jB/xW"Q�%KTl!�x���C��M�pWE%��dN���u���=��=/�2K�Gv��du��ʧМ��h���:��(,1�Q�Usu�s0в���� ���G ��hu�笍����ү1F4���q��p%���sx�K���+l��$A�R@�?�Xm��A��A��N�Cf]�^,)1�if7�u0@���U��G'����h��0|�X�;��Jj���C����� dEɡ�Gz&g�߳~'I�̸�1�����<���ǀ��}��]���2���|��?��^�W_ul�GN������������#n�>ޞ��7~}���<�G��U>eKU# "��|��H�WK= �J7�+���HzD���'^�q��u������?���ӋӳK~����5N� �x4.���4d�a+/G7�$�A$ϋW�86��<�T9� sB]&�AZ2�Y��c��@����>���GH,�;�@3���,�)�z�k,�����ξ,�pb�ړ���T�B!+"����J.�aA�}�$�1]���OH�D��� 1�����9O�rm151|q�V�HL�����)�H�mNZ��̸�Ag�"��($31,���F�X�m�A+�Ƭ�p��4kT�G�[���ش�β�h��ؠkr�C�F�LE�(b����_�N�$�K��B.��'���i���n���䜦�����.�V �ѳ��Qȃs7Z �)QH@�e��Lj�������|M,�=��8W��iFt�J&A��PVa�a����sv�=����N���{/�՞�����뾾��<0�É?�>��ᵗOo������_v�;��_~��¹��ڶ����Ĵ����㓇��O���~���a���V��x�U�� ���f��S� E� ����D��t�g2��;��O�#���={���5^Dwb6��y;S��ޱW�P�� ��:����L�(�����i���$VA0��ɦ��$vd����8��(��z��O���b�S/��j?��ܘ-��!ӡ[C���ԖW���!��9���|�#(MX�յ�{�I쐴��[�g�sR+[�|E_��qa�)�����R��q,�ũ�b>�w0��t��͒�x��'���� ��Ys��i"�]+�ӌzii"�㩧�r~Ф��qN��ɥ�q���'$5֒>屠~� 2f�Q�B"�+�d��B�UH��~%�l�8�$I�0���� p|�$j�JV#H@�����X��Q��"qy ��1�e5��uģ.�Uv�kG�Y t���R�2v/d���\W�"�L�:Z��9~3?���x$���/� �٭7�s˗���u_����qOn��yy{���7=�� ���}����m�~�si�s�����~:���'>>:�������k_#�)Ga��Z����w/����8���d�����=�@�>5?az�� ���������/���O�:r��s�7�X�j�/J��ko0ݫ�Z��\O!�'��Q_E|��6�e6���J�����ਇ!�JK�R@5\0���[�q_��$9�MK�M���#� �4�W n��$��YZ߇�n '����v�c@EZL��V�^ES�ʞ��Vjc����3daw���+?�9����o����K����v���?yW��C;g(��W����'=lTQ��㺵��\�H[�ZJX�jMDV'��4�X)���E��ǎJ9�lvE��A�寰�h���gs����E�9y �C����(�W6���嫮 ��}���ICI��T0=b�9<F��Q�ͺ�zLτ�v�3q�-�9gU/��APe$��hk�?�$ ��#�';վ䥂>8����76=����]g�Й7�mP����&�Y����ۭ^�s��ë��x������7����r��/m������?�N�s:�䉗=l?>>�}��S���}����¸Ϝļ������I�Zd�@��f���HmuY}�V��fa�b���4ŵ��K n6�����?��ܔ�p���SQ�@ڦ����rf�Z cJW� �r4km'��npd����s�,�9�R6sl"�5�Y��aR��v�V�S]��O|��"�;�K���uW�����"�"�2>.s������d�JA��+����ڞ�=L5ߠ/�-x6(�V�S5S:���3��1&gV\ h���>�TK�ư�JUfX $��%LY�+�����>r�$����!�@frn���q\�l׀����^��Y[�x���P�W��Y�!�y"Q�Y�lҡ�ss6�=�XI�4cÓ���~:1I}m���H����.u�+@��6 � ��9P�A�Pv�Ԥ�C,���a?�V�: �-9�<�����#8%�D� T�+'�y�& h�5�ްUH��{78��� ��ɾ����@sF�|�e78� [>��O��'���q����|����n<����ˇ�^��櫗o����������5��b��d9��i����������G��=��'ώ�� �����ol�#�v����љ����c�%���e/f���L�-xDR$"�A����Nq��>��/}x|��Ǖ��,�>� 3��%��oV�� �hI���f����e0�G���j������d'Ң��Z�H�{ ����+;�^�0"+$�Iei�e�WK��a�j-xC[#�&E��ժC�ho��<E��f�Q�:��N�)�_˒х�,��j+!�6F䜘1[L��,eB���6�d�Aе!|S�]b�fnw����-:�����kr#��b��B#b�q�FY=�.�{�� e�9��yO}�r�;ȕ�qn���e��^b�S���:H���4clz�Y��7�DCW� ��h�/W�b��,v��ժ�KA!��L 5V�bE��t��Kh�95���^����PT��dKE�7mH�w�נU^��;;���$��Z��EK���T)DT��]�����|O (8X��?F����� � x��/����K^M���S@���a�����w�W_���+�o������o��ᶿǢMp�����N�?���ܟW>���gN���.�1������A���X��Ne@�R-1���y��˫5CT�b%��{\R�����;��7e����3O��O�N�x �|�aڸSu����Y�ae�f=��.�U �Tr��� Z���Fsb/fظ/��m���Vۺ}1g�D�$�z-��:7��'���5��Cgm,AX���CЬƁ�b�s��F��K�������r�@4$���+�3s�!J� !�؎�W� Q�.b)�Ft{��PY��V��.�v̴�T���g�b! =��N� ��z�R�+4��.�S{a-���R���~�K����LC�xCz���J�Z^�/f����f�q��b<2��.��7)�]�(�T�V�͢�����-QU6�lE'2]�:�dQ��P�? �J�[�i��0��w�2� S�Cc��eoڃ�@b)EZ�L2��Q7PW���& ��:Ƀ��X��6v�Ҙ-8��e��y���vyH�� w���9���\��G]n6��]�;w��<�����7����n��O{��SV�'v8�����������?><����g��������M�z��c���JQNx���&q3d�M0���ɾe��]{T�:�b��o<����m����Ï.=�����9$ox���=bʥ0��m��öU�d��� nb�9@��Td�42�GCc��;��ia���Q�h��cWx]���,T�(� ��c��$�<z��Wg��w��ۯ �L�Jڐ0+M(�gWv�����E4,A���)��u)&a���Uk��\Q=D��{0���-�����bO|��~��(;��Mu'��ڧ���K�16���Kz��t�Af�m O~�E2'^ �S��4-P���2 (�hj�I|(�0c/����J�v+��#c:@\�$�hJ�XЊ���h��YI �������!�������͂�r���.;z�xiI^>&���zZQbrE ƴXUsR��ՄE�I��,���c��Z;�&���4Xm�2�{'�(2��z��!/�r���|_���|�������u�7�l�������{�kw?��;��/��o��l>�7G��i�o��+���Ӌ�x�������C��?O|z�̑�<\�)�Ȉ��Q�#�Ax,��%�����ٸ��,�A���];y���q��|������9����?���r^H��O�&��9��Ky��G�^�#��X!��s�������bsL��hK-|��C�闕�6j�_��z�J�܄AM �!%̖6�S���0� �,�}�C�k��� �a�LMfde��k���\$��َM�>����3���J�I�\2��,����K��� �wӸj+#� {�9rpKo� �tlsg���u�L��?���VYOMe���Q��R�� �J"rbgn��n3Jn���]w�!b�I+_��s�0�j�1�Ե▿|ժ�����L��Zt��V��B�;�������7 J+�t�R�Vx�����|ؐ �^�0K�YS���U^�O�ecX%�qHE!�X؊���r�c(!C��:je��r|�zr��n5�π���u�X�:�>3#����3�C��K^s5@�c��\罞��b�����;�7�|��W�^���>{��g.��{���8���?y:�������ç�GO���s��ȴ/��_��͛��$8��d��u��&�j���L ��2'�� ɔ���4D?AI1��q����ǀ�7{���?x�����.�>�.�/]�(���@���q|��]k���������W�sҕ�n\�W�BY�h�y)F��03�9{DF42b� �I�hpy|��=������6Q&�~��qf'5 �P��dͩ�v��Ř\ɝ%��r̳E����E}�$�AUJo�M\�)u�B%3��h���s�4���x����P:����>O�ߴZK|��x��W����{W�U��1�K�@�Ф�������(�%l%��~�� ���t�0'ZFf|�-e)c^��O��rj��[E�:3�2����X��n�yJ�4X�e��Pvlj���+Q� �I(P���_-�넌�|U^�A\������&Y����W�E�%-g�c�������:2����J�β�>L_�v�����x��o�[m�G̏��q��n�X�'>���/��ϭ��{�I����������k�.߸�]�p�w��/�;�J��?����[���'�C��q�F���ϓ��g��XRI<l���=m�ޞD�LE�S ת����i�'���!h�:,V�w�¡��?�r8~S��<��C���>����й ��ǒ�oX[��Ǿ�4s�W�O#�V��.��+Kx!$o��%R��b�@��lՁ,i��T���{{鎨�d4tM0�\��j������2ui.=Î��Chq�UŮ��R��\b��r�\�5�GG�l( o����I[�J1���u�+�\!t'��!.�����t��|rS�S�|03"�jYWWK�����<a��E#������1ʥ,�3�b�MI$�,WR6� �#ư�>����s�����2;+YM,x���D��ݮ5���FQ"�(�,���y��49���L��#�D���#�[V�u�1~��x4&:�W��8,����с� ���N�d�Q��8���ԣ�8m]��'D-T��wgCƤ��bE���o~�J��L�y��!_�3��a�3?L��ۘ�������O���/��m�=�g���������ӟf��}�����3���}�S��ܟy�)�У� �d���D,�VL���\κ1ӈ=��~Q>˝�~����ps�c����7}t����5�Yh����G�ϟ]p���)ǀ���8z�@t'?��G�h�n���|p��tx}������$�RF�u�i��S����/�V1�6f�)i�wf�(���9�F\;�n-'��8�x�/�<PŹ�9��- V�8%��N}¢� �jlW�8x(�-W�tq3Ÿ���"R���H��ޥ0+� ��R����j��;m���hHf����^8�(|����/ ���2��Ut��q�!mL�jn�d>� �0UZU�o4Ŋ��Vf8(��| y9��re ,��9K�08I(�>�$ʴ.;���U0y"h��U6u�~c�+��u��N+�8�y)"z��4��baQZ5�)���{�ӎQ5�FG��l�\^-��;"���22�����E�ߓ}{� �ש�����>s��˜�2^ \�m�7x�'���G]X�z��嗏�1�ﵷo��o����I<9X��m������?�<|��џG����>}��i"~ ��� ��K�6�+�ih� L���v>�%"�Z@�6q{�+%^�p5�a�������?��_������Ǘ�'?:>}�=�g��U3d�9���?L��s�[�,8��p����L�6n�4�#0����ed<� �U� �cXIyH�����y� wFd� !���/���d�5�)s8F�t����[V٤jUv�]�ѨcOȕb��hiH ��^b�a�Kr�p��LfS{,�D��Zrl�&n�+8{�k]�@U�Ѩ)�bRk�=�Cv=��B[�+�hM{�$#�-��%��9 ��'&P)R���iz�^LPw�&m��ֈ ���z$[e�sidU%W��$����'MݏUM��%�A�>�XE �����E��2�l��5��n���;gɝ�5�����E�B�(ށ�����(4�At�,�axu-���&o� ��C|~4�3|+i�=��T�觰���C�Ɣ�����>�����G}.^�n��7����̏��x������k�߿|����s��~�I��8�?�����.O?z8<��>x�{����/}>��7��#��i�����ZJ 1,��h�-6qw�O�i ��NtFyb����j)���b��O��!�}q�{���q�")��m���S��Ͼ����3���x���boOט�����V/]�q�zi���!�8��ޤ�5Ew[K��q�V��h�%�1��hc�e}��zd54��r�[�@N��\}t�v�LNI�� J�˪6"��FUW�Ɛ�ëA�6e5+���ǖ�M��v+�JZ����+,;cP /��vq���B>��V�__JG�!OZ�\�ÍCn�_r�� G{q���/T���@�V{�Mwa}Z֓��v�0��H0ӆ#�V+����{P���£c�)���5# �5���DC�5^3ƍ�Q٣R��eTaE-��e0���}i���p�]}�Y+�c���dho���4d�ޱ{�h���@�Y�]�1�_Oh'������Vl�T�ќ�����L�'�b:֫�Y�u��ۄHg�L��^���W|�9�� ���K=�0�����]{�����~�7��=�t��<�cg�I���r����K������?'�O��/ߩb��������Oٚ���d��_�۳����P8M=0cŧ�����GFyN��́�G�q��n2�6n�����������\>������������s�˫�K&i��K�u�h@�0<�HN�M�FU�z+rmS����c4iPR60f�R�(�մ� %v[����Uݖ�Du2\��)daV�/��#$,k�A���4�qi �3�%���e�X�������ɂ�-��C���-+��d�ȓq�|>g"7�Wщ(��O����8:���َl�jS��1=a�pl�O�/7�i7�1����Μq�!�7M��T;�������c�]N�Lx����2�p���"O&�.4$� �<�)�'�����p:X����Jg���_�P���jˢ��������e�T�FB~��b�L�,��3�ԋ����7}f�=l!�l��ɫ�RY|֓!ʐ����Z���մ~C���v0h��1gC��Q���=0r����x�ω����x���~��6���^ύi��_�}����7~��Gޠ��<��������x��v|�s�����3��ʼn��>�7�C��k�2D� ̑��)&�m���#l����QެF,�����]�z:���u=J�{�Vy���í��������˅����}���W.xz�&p��/p��"hO��|.���}�����e)ϯb��E�]��+�!����jz����-���W���UE��r��i�Lӌa����4�GV���&Q9#�z#e? M��<��TܑP �^�/ ́�e�H�X�KR#3�M<3��P^���B�&�����R�Ԩ��1FX�x� U�6�����3V��~��q���}���{Y��P6ͼ�%��e0Vti+�8���/g�kڌ��Ke�K��DE��W���b�f��%��b����z<8&�I()E��O���ށ1����Xz����'�jk��Ϙ�C~���qE� 84YEX1W@��5e�oB_����8������'$��e9�M��;����� xe��^af�8�}�:�s��X�_�b��ow���sgܿ�W|�9N��_^���_������{��L�@O"����;�����?�]n�o3�Ϸ���4���8��g����Ê�T�{���J�����6�J,e�C���"�C�'����5?g�������p�}�v���M���w?|���=���K@�a�f��IM��}{�\�pD�gɼ��U6����ՙmM�j8M%Q�z��HV�7x��<�� ��v��b!_�)1��I^�r�L�.�,r:;�]2��AvPCL�����CfR���d�s�w9���,�$ʢ˝�ԕ���'���W""e���v/(�b�HI�+�i-v&ug'R^�D��"Aǜ�LT��L�U#P7��8b�Gy���F�:��VEM��,ެ��E�踰�����G+c��DUD��7�J��px�d�ѰN,�F��:b�д��Z�LN$u�Q��Jc��HS�#EÌ�#˙8�D�2P���M^�����AS;�%W:T F���]t��Y��Sr�bX��)�+�T+@�T�x�e�E���A�g:]��qʣsn�2�h�L��b�/|��"~��G}|��C??��K={ҟ[���s����>�7�_~�ο�������o��1��Ӭ������S��?����!��w��.����A����:�rHoճ�I cՖ�gk(M�-N����y0z{�4�� ^�gsG�) L�0�3�O��{Ǘ9��Nb�_��ʣ���/<�����G){��/�������NJ[ն��f☵E����)"#?�"n�QC��@�\�DH�M���]�#�Y��vj��(�b�M�ZƁPv�eB@�uKZYH���I}G�l!�Z �a��,����rj�"K#� �҈+F]ȾZ��Dc�N���hv� ��R���d�m��P�+ � ���J�����d�D�ƪ.���&�/�O��bl� }c�<�3Pn�3j�He���$YV�l���;,��L RKP#S $�5j��q�^�H��X�+4�XR����F��%e���¨F�h��®��S��rȘ�����D���aք;%�PQ;cRC,XtdSh/dN�z|�%G�i_6�5la9�mO�0�I�����Hw~ޙ�&|8��6/g��x/�"����߲���~n�q����/v~���w�}�?�����:���"���I���~�}�x��tx���O����~�ݻ�~��9F־��s(rr{Rc���� Vj�9�u�I��W��ce���l�wz=�߮3�s�0C/:"A����W���z���k����џ�ً'��/��P���OSֹ���y�0z��Q���#�:j �&�}�����%���J�Z�B����8QZ�"��(�En��mu�� ��{&8�ײ�+��6��J]oϊ�X�.]��Q)]��V�fBz��0u՝�,ju���ڕQ������̷Br=dN�my�ġk�P̹�5����[e��Sp�}��Sq����c�����(hG�;4La��dW\z�@vI��'k�:2� �B�j����,q�J9�%�l�@�q��������+=��V� ���>!;��cб��kUYhgX�ܚ��Q��=^�$]�Jݕ� �A-Dm�l1Fp��s�:�W�;�, ~��p�Id�+x����i>Vv��9��9��[p·W;x�����>��O9�z�g=Oo����7~���֫<�����O�?{y����G�㻗[������=}�����w�џ��z��6+"�&�� �z�S)�V�M��"1h�@IDAT��14�� u(�H7{S�����7�ܹ��ظ�����#��y������w/�<�x̫x���}r�w;�Qty��Ż[���/�Ю�7��"m���mK��i����d�vwl G����xV%�3Y�4�� T8�M;Kj$�.R�6�p��%�]�K�m:2�EI2%��rҙNӲ+]��h�%�h�4�3�0%����P,ò�i���P�VG�OPr^o�0[�i1aX'p$�k�g�jX9��u#��������.�����!'��i�:�+o��Ĝ�$��"���g�b�R]+"^-V���������>X_��]om1�����������D��?3�w- �c���/����Ƭej�yޱ��Z)�����B%=��2:����,��T_:u3no�'f'��!����ɝ^�\����Y?ca���}�;����f�z��v�W{z���[�_�����O��5�\���^��['�qL�&�?�mb��[������>�>|~�:����a�����?�����^���P�S5[E˪Tk�k��� ��~����J��σ�<�d��t7��[��[�����D�qq�?���Ļ�l����ez��|4w�Z?ٹt���.�O�-���G��e74 �<_�Qd����PҞ�Y�qI���u�R����s�< �InbJs,�o�i�M���B���|���"�e�dD�U�FC�(�g$P�C4�L��/mE��^n�/Ұ+W�4��i��Kp������ќ�lmǗ&�mΑ��ø�< ��=��!�C��O,��u/�G�=VvJ�<]B��'�v��)�!��q=\Ic{����a+����;� �V�/Э"�%#�nq9�����V��p�^Y։�9� )��g��;�� ��r2�>ff�Fp�v�Z�H�ƪl��Q���Du�^t6u2����O�uX�(0���潊�r�ۼZ��k��~yƿ�e��'���W|}·��L��%/������O���37�������� ��ƌ�$�oo��v:}i;||8�ܥO|2���ow�� ��?���O~呜6g>q�M6Y��'Q�d� ��p�@V���Hʼ���/yQ�P8RR� �{7.|��o,�v8�s��ӣ���諏����ۓ�Dّ��E����~�˘���;�C�c+�����N�Z�Z~-�����ͅ2h�K����/�d��Cs�M넡WGs�X�Da����e�YQs@��o�������@��i1JCݵ�F_VM�T��" i���H�3��ͨR�#S���f�Ar�Vc͞e���c(�eh$���C^��}T��KbI�M� �����l�ST`'2@r��_��2r#�A����-R5�Ri� 3���? ����%ShOy�7͂�� ��Kp��]�ō��l]��T����M+�I��Z9�����GL������)'aL<�݂�C/�9�S8��w:�"����٬���3�1]eI�6c���+����l֕|�u�������%�@������x���ߧ}������K�������J���>s�o���o8��/�%/��ԃ���v�K�������]ߙ�g�v�A>��?���sf�8�n�w�$��<d�<9���v�KMCS.ߓ"�W4A�+���"�<M��M��=pC���߿8�r�~����y����������ڣ��|���{�/A6�뽪B�k�i�Z}�t3��~n6�>��(�c�,�%#���ZC[��D q�)��.w/bLRj�AZEL�ǟJg�����/uܩi_'���;+��^Ӫb�.��R�}�m�I�����%+�Zb�~�����8Kx���V\r�^�?��p��d�]����A3!S�Yȗvt�H��-t��l����� L�e�v��=w��(�c%�Է����j1r��uj9����.Yz�R�Ie���{�eL�J�v(0Uu�AkA���gv�K'-��kЩj&5uF?��@�X�Y�LU=Y��T+��Mղ�5����2��~�Tq�f�h���z~;��}?F�3���ثa�����^Ȋ� >KW8�]e)^ t��A��s���ޗnr)���<��+�����^q����{�����_��L���3����NL�|����G^���џw��C��{^��=�%k�}�s���ͬ�%3��\��E�(��X�'{�?=���L��>�f�g͉?F�;���3��_����p������ꗟ~���|||�h�-@ϼy�%Lπ�nN�\}O��F}���B�6�-��RVN������ݓ���1l���#���cq����llS�X��Rt%�0����}՛�/���f�$ܝ�袥@M¬G ;.����x=���w��[U\�"� ������l�S]M�8+k����28g�A����U�-� e�3�#6ked�4�� /,��L�'%��S@莩�����ݨN��&S#y�v�F]��1�ʔ�=�,)V����[��K���Ei 7�� q\R@+z��b{D�v~�F,[+���F���A��#��jP�����h�Y���ɂ��n��3�MV�(y�!gDZr���Q͜T�B�i"3�9�)�����H��ǚ��so����z)0#>�z�[�������������n1�s�~/3�/�;�rw{��n~��/��O3O�)����v���ӟ�+�������sG~�~F�}�y�����ow}�i�.d��A��'vץ�ě �-_8�z��h"LK&�y�z�I�y��'>=�o��;_3�[�����?���+�ï���k���#��{_������'6^������ ��?�O�04�/�����d0y����4�Շ�}��@��jġP�)���K�"PN|M�ev�D�'�25E�By�6.��c��Q��N^b������&��1��LQp2%�����<�T:�#9Q #��낲�6E���u%)3F�m��Ͼb�0�K����V�B����l��Ve�xo�|A(���_$�Fo<��1&�T�V_���.�e�4�' {"$���ĺ�W88Y�㬙��0b.ըW�$k���(I�F�V,a!�|LiE�d�5M^Ū��U�t��&�Ͽ�"SLB�0�3h��'˜�Aji��ZI|%n�B�Gv�Yf��Ғit��C��Ap�V�a����� �?Ħ��<2M�h��}����3���.�94�3�����;����g��^�K^�No���O]�/>� �8e�ީCL���E�|�<���'��N���i�gN�w�A�) ��a!@��7��c�dS��ƿ��I�ߴ�3?�2]���)��Cd����3_��&||�S@7�^�v�y�ɟ�̓���U�Q��������d{������G����������5?��3����������ݱn<T����2�m�p��H�l��=[)^X����(��(v�<\�F�U]6�B�^��/�h6��.�۪� A�q)�W���,(g-D�,{�[r]�L]a�-��")i|c��k����Ԓ+Q� 3��� 5 wf|0�B���T��#���И�ݞ�T��YM� ��N��������\R#9�k"ЕE�yWK�+��8;J�,��&(8�Ďn��B��bO�GD/P�1�(S�$h�V]䋜@FGM�J�h�.���|r���(���nT��[')uף0}tqt8]%��F:��)�N"�=��e5v�B�0d�愃5���Ƣ�:�e�$נ_�r5������X���Q�o�2"B���w�|9��-o/�m/F�~�ş���;�{w��|���O���<����[o�莙3��W۟=m?z<|��}y����:�3^��_�f�����o��q��=t���I�>4�-K���c��9)&�Ni�J+�iv���r]>�q�ߤ�G=r�1� ����OGd^�����O�����]�@������x��������s&�w�߾��?o@����S������ lɵ� ��Q��N:!�� (e�I�aJ�]I�l�\��� �����ZB:l�^�ije]�D_,�/��!��Z{��Z�#�����r�~��Ԛ|P�<���K�L1���b]9t���� ���� ?$aVT+ � QVp)�Q� }�'�r��?yWe7�а�Lz��[־v�:��+���5QD��B�d{�u���+����B2̠JvƓ�œ<)��脠����Jz�1P֮�(9Ը���7�pL1l.H�e Yb�j 8��QU��e ��Ţܷ&1���A.��ʹ��h����QʼnQS���語�ܳ(� �p|'���;���F~~�Ѯ�����p���L��J��s����ğџy�W�n��w��[��s���G^��o_a���w��O1�s�>��'���ܿ��:�sp�g��e��g����g�fz1�FXv&�}/"P�e��M�ma���c����������Α��������WN�O����>�ڟ�8\�B�_���G~�����/]p������?}��?y��y��������w6�����b�&y�;����Z�l�^���V2�rJ$l �T����)%��3"A�0���{:�s}u���?ג����TܹX�\���=J��������D1���a,U�����ئjr�epFɱa�Yj#Hb#�<���9� S_��q�;�� �r%ZA��1�)���jj��@��Rre�JjW�l�7�:sÜ��Ȳ�ʘ��M2�e �h�;��P�ό�W�S�������Ťx�M[����J�Y,(:��uc�� ጺJqL(��"K�Η�4�(烪����QQ����\�n�4ك(��L#o�(�x �&n'<M��$qf�߅i���d-�3jZK�ȫ5����=ׂ���謟�~�����雽�YO_���<�^�g��-��w��|��Sw���K�����g�>��!e;<v���C����v������ȴ7~�-�y�������qO'̝������ �T>��MsQl�I)[��#F7�9���sw�ុ�^�\;1�{����\P�N�ܹ8��>^�g�x5�;����̗��s�>���ÏOnO�0��y���>�Yw�%����q�j}B��e0R(K�+U}Z���d��|�su�R��YH�!���X��J�H�)�(�Jv��D�e��H�� �G0�s�x���B��.������~T�}���\��\Ce���r#a@U�]P=�I�)BN�!?2�bb�)SÄG��c˪�����jd���]3��A?���8ґ�/n�����WK"ZQ�;��-˺� a�,�:���g��,�J�#�B�/�ii �(J�r�H�b���,R1+eL�亰%&)�L��V�OOe�N<+QHOpQU=��F��P�[���tΚ �(/��O�=ݥ� j�DEh��,��I�_��p(���~Gç7��� 8�3��7���N�x݃��?罾ا;{��Ϲ0�ü?��wy�������}���|��z���|��}��ǁݸ�z�����9�o;p�?���zڧw�t��F|�����Ư���Py^�yO ѸW��KA�)�gț�mb��C��=��C>>��c���T��k��{���;\������7�~�G?���K��=������)����?��/�࿗03�c<���lp|�ݟ�K�עiX����֮>r�[Z�)�#Pv��:ʈPuG��%�C՜G��,I䫣���Y�K�&����ȴ��ѷ��vLmX���/°v +B��_I�=M��UwOm!��K�����wR\nb�9�J��[��S���T,��C�A�5�$ab 66��4HŨYn��;P4��%���Tf�C~i����Q���r7�%#��M�����H��?f����%��w�����C�9ʦ\���������"�+��V�|֭�a)7��J���QL z��,�.mKw܍,�>��&�\�4E�B[�����Q�o��QEv��e9�����u�g�g��Z <������<w}�g=y�g/���n<��o�wޟ�9� /�<����֝�o]���]����B���������Y��;>7f�]n���?���<�ٴ�/e�� ���џ���t3T7��W���Ld!vĘ0M��� (9������~��xv��ޮ�<����O�������~���a{�p�����M�~��g��_���ß����ӣ���9:���p�����=��>8����;�Z�\�hl���3�^��r���(����^�h�^�%�ݗ&7%!�����%��r�wl$sn�D~|��T�g��6����嶠�io�Z�I���v簶�VF86Ӽr�#%Ea-J{��,u1SM}��Т�ڂ� �"�buPbP��(��� �Pe�J^I^��Z�&Ȩ+\��ц[t�ʬM��? <&}��k"��w����0MTnW|�_%&#>.�Q�V_���% ��uݔ/� �p�dO���O���,YIX����T~[-/Q,.�����X��biFc�Y7~�Z$S�gƛ��^�D2R�#4F�W'+�̎�/H���j$�"|ĀB���f��r��~�'�x��ϴ���3e��o�RO����Y�-~��c��v�s^��c�o���g�}�;�_oFmC�̣��/O��a���ϸo�|��L�pח/yq���.�<"ﳞ ����63L��Iў~l�"%���@�����M�K��0{�f������e�w�wڇ�߹~ 7����}r���}];�s8����W��O.���_����+�>�������������/���n}����� �U��&4#�!!%a�4��14�AK�m��d��}kcç.P�V+�R|��r�n:&N�I�����坽��z�h���R����tι@_�B�9��đB�����:��d�K�a��"��+���1�d�Ke�Fp�J��,����NFQS�p��"-: ���ò�YΛ��h�+��R�3��=�C���Z^˜2�V��E�HJ�ֵ����̒��RN��Y�B�qF��iZ�zj}gA��_S3'�L|�'c���� -R+��c)�:R�D#-��Z�bEDq�Ӕ�⻒���eµ��L}�I� ��.k����Q�F��U�G������?�A&.'�� �9���i;?�8���bڇ�~n�s�f/�|��y��s�s���_������/�i�M��۟;�~��c�L�>�yxbҟq�w��=�y�[oHsҿj��aƟ��� ��i� {��L� �V.J����2i.��U��IF��}�C/u�S~��f����N��t�x��v������n����m~�f�q��}�g������}����w=��������?���+�Ea��t�f�Uyb6���y|7Jo�I��z��b)]��r:��9���Z^a[Y��P�0j9%@m�G���j�[��� �ϖ-2�a�I�,8�q)�a�=w��"_y'����34�L�,�c�!V5L}̓=������Q^ ��5���E����\��p�iX�qԱ�;����1b;��#FޛI��I�W����8z�>JdK県qP\-l�L�^��W�4ˀ +%���-�%y�S�<R۲�X���������@�!jA%����#QP�/��<I��g�x���5VU��n��s6RvՒ�:�tQֿ �ȼ��C��¸i�6�YA�hr�6�c�T�'F???ރ�W��s��2�?G�y��O�8���'�8���-~�w�����[�{�����q��/��/\�-o�S���F���p�?�~�����a���^��?�C'�~ëy���Nn���|G�c� @����]��jI.vbh�u[;Q�%7ʜ$sks�K#�d�g@�q������v] �������'&�����7��z;����]��_y�����x��l|�?����?��>����)�����y��j8�?�?9��w�"�� A8��g�i�]-JW��y�s,�����%pH�\��M�Iؕ�<h�ݷ� �M���xp�&�,�1?jz�T�_��m��\�.tڕr'�tus6�;����tQ�������v�� y¼�H!E���}@� �QZ��v�b��������ұ�H��Zf�u��&��00���ٗ��l�!M�P߯ ��qGN�I��䤕.q�xyۍ��kS�X��R|��R�QY���Qi�/��yK�f�IA�L$ϺdZ� �&9�y���(e��u�p� �F����h��m�#A��֢�"��M#]Yg�ͫ.ʭ�Yz�34 <��U�M��ng�}���}����>?�H��=_~���_�{z��/x�����ܯ�kU��z�~�x��p|w�<�?]�c����}�C�������9ֈ�Q���}���k��ئ�0� �F���O~Vez�J����}.P�AC��<G@F��N��>��̍��~�sF��率��x�����o����/}����ns���#78��f~���ރ���RX�9��o��V q�+g&=�%�I��]�~&����'��-n�Җ,}F��2}�v��g�@������ ��b�k�h�#�3�����JC���D�0��<�����@��Cc��y��-E���g��c�������������ݳ/6a�̀la'q�(�#JbE��ȑ#,a�Y"g���((������ȶ��̰�3��l34����=���z������z����>��������:u�j�]QZ� �HJ�%#ހ���J������k[�I��=(����rGQ5 ��:���&Z��!gW DBskY �h ��LȀ�%�q53��ZAb�sW�@"9�A��k��k+:5�蹤�lV�(���_l��|�(�� ����,�T���<������c����!��}��Ğ��L��(I�^3�Y���D�B�cyz)9���yPM��H�A�!�h�s���{Xߞ!���V��f7���3�p�+�����/����N���G�~������B���6M��n������>�|c�x��џ���~�B�]��_�m^��{���^iL<v���#Ym�0��c�~Po����+���;'�s�ú�<���� n�v�?� &��-<�u~3��������o=�;Oys���ƕ���%�?Y�ϻ?��{&��a������W�y���@�M��7�}p���4��h��iw�+�!H���Њ9�d��V�AG�!eY���G9�ro�R�bkH�Gd��"�� 7:��R �PL��v�J�lB� "�Q�6�Q��'��{�b����;���[y��k��"ź0�PL ��k�2���GT�v Cl �W 㹝�jDQőfգ>)��W�'�%�&۫v��v��L�p5_���@�Ǔ�f�~t#[�0���H��\M�nUW������#|U��7�L�]B�f(Rg��+n�ݕ�� y�L�ܨV�R���x Jk�+=U&�d�O<}��c ��+��9����L:�l�:�7;��v��M;���a~{��;���e��_�w�����0��+�OO'��Jgf�<�<|������~�!'���JȀ�w����<ᕵ�ח�9~���{^<�E����>��) �}:��yպ̾��ce|�q�0=յ�Qx@7�x�D�%"hn^��=^�=+8��W����on�:��tޟ���y�4Ooa��ɲ>�;���{�|�s����և����� ��E����|�+�ys��+c����}T������̬x�ҮİZ��=��R[�x�| �"9��� ۏi�9��ᐄ�jyO���d���cC�P�����!�$�FYI��F*��knA+>ix�l~-֕�T&C
��ad�fj��8�?Q�g�"�;�a�V��CO��@���a�ƨ9��s�w"�+8L J�,Fa]<���T����mc�h�#b�jIXǧQ6����Ee+�R�((4x�̯�� ����(�!G��-B��q}�tFt��+����e��t�,x�f$">�A[S�71��Q��bcs�Ƽ�j����!c��h���V�c�$�K�!��¡�A� ����xK�8���~Z�l�z�]_g����w��k�ו�o}��2����9o�.|����O�������3�y�(�r���ɢ�a�χx���^z^u�?�|/�=oz��7:������g���a�5�.�;�C�%@�#=�bz��mlmA&�T����YwR�4~����Wb=���^ �>0���W��]��;�D��z㗴�=�/������ůNW_\n���w|�o����������^�%�H�Н� ۊ�I6�Mk^��$���ʵ{�����ks�NII����B��1�RVU�=��D����-����fW��7����}�bz%�����=4ɷe��nz"�"��_�U)�85R�J��� �:~����G�.gQ [ w�" ��8���iV������2�ʨ���u7���Mh��I:��&���!�B�ERܻ��c��$?J9T� ǔ����N��Cكl�A3�tYkt��ap�fAh�H;d��k��"���}U)c��V�C��0�,�U��{�c���Z� ���� <�a��&�<�R AvP�\1�v��G��k�)E�J)a��\�Vb���CY���2���I��$�N�$юі3E���Հ��1wC�O�2��-_��,��C.�|�����yW�<z��z���b~�Q�� �p��wY�<-ז��b��v^��}|��?����wY<�����uO�=�nKɧ���u9E�9~ ��8Ɯ��B߀��� �F���L��o���.g~������L��Y�ya3]��'���^��}�����Wn�/=}�gX�ύ_�����_}�?����o�������T�MML�B#�T���Uֳ���WU��]�H^�.ǝJJm��_"�(PI>6?������9\��((.����.��I�ʐ�'�EPk�U�D�T�D�����:�p�N�Hm�@��/U��'Nd�h�@�{�A+n�U%��SUHQ�"%@����z��/��8 1��)��/B��@RY�Dt؇y�9HA\�+y9;���"�u^���b�g�.R�0ɔ�R��@�Ǫ�0�����I�bA-5 �VU�7��Rǒ�k R�W� ���cGT2�Rr+�<�*d���&�G�G��6��K�hg5.b�������G�\'LY��Xab� ��X��/&y�!�e�:��c� �ws>d�����w�|O�'�L��,'OL��u����}:3?t�������/n����4}r�}��}�i�eyq�՞�-������!+��FOB��������~�E���=�Z]��h �aE����
G)�^^=�;��|��YW�8čp��b2�W>x}�7}�C�ڛ���e��O���1�e��_�������~�k�k�/N����}:�o~��Z��ӏ��2��R@�ci��X,�M��F���R�96$2l��?��I�4hL[���2[O��+\U)��Y���eX��8d��U<�����K��'$� 4��-�(���Uu�M��"Z�����s+SOv�'�"(�� �&� �~Ϳ�L�HOU"FL�֞��� �j)���8��V�E��Qy/�-�HDv���,��$��Nؙ�����@XC���:�B-��"wb���VW�X�zX��b�Xb���E��SN���N���uk��n+�,�u�����Z{Ud'.�IG:PqP%b�;z��1\�9������y���p \=Y\�����GBI�V�<=��M�dG�"�����˨?�uq�O����g��Q���>L��c�?��?�+���?�\>���#������nb���$7��w���i�W;<?ͼއ��L�0�g�O�g�ϐ�ǻ��rό�F���bq=?S���0�_�q��qs�r=%j�Q|�z��Q�D���8��m�<��%���ɚ���c_��ܛ�����^���o�����]����/��_�\}v���Ľ��<��'��wokxח�?��/�{ ���ԥWp�}�R�k}���hqRb��[L)��� �Gqӆ��ZY� � �2����EM�ʧ��4�yS�:<�77�B&$yk �:@���<��g�D�UD/PD\��$l4�%��B�H��d-ժV%4'~8��M�h��<�U��$��-ØG�1(X^���Q��-P�ՀAR�JhQ��y Tm"x�&?�Wt�m�Qâ���ěʯ�M����BG�5bۼU�E( (�%T@�D;r���Riȫn!b�� $s @ ��Ղ/� B�&jS?�R�ܪ��q�0 M@' T�fr�i�jV$g�.Gr/>+��T�����zZ61J�P��_�5k�<�Fp ��~����9&�8u������i��e�|��������gy�'c&�}��#綏���ǎ����;O�R~��y��:����;6������mnw3�Ì?7~���;ן1q�|r��5�ǫ:buT�J�]u��1�ċ%�X����Y�����_z�7qߥ�^8�cھ!c}��9����������YNb��~ߗ~�O�����N~��Θ��/�z9CO�CY�O��;T���g=ԥ��P�$?k�@�(�%4X�m��;v�S�s�J)�#0�J�@IJy�9 EE��afy���2Bڅ��d�uI8�N v4i�9t�6+?�D�($�Zla�YY%1Ҫ_C�����i(��Y�c���5�1�\�!z�+%J���K�,�(KyWl�Q�^ �,{�D�e��E��VY��"�����)����1]/&@gD�C�ꨰvI�:�W��w=�;���52[ƾ�٩���Xda���&��K=ʉ]��Ҫ�1]�@�pe�Ѧ݃[K!/L 3(�":���h��˟ʱy���l����� yϱБH�L|�Uƺ��̨?l�3�cg�bgp�'����~���bƟ��|���t��t�����S�œ{��ty���l�T8�y9�3_�K^ˆϸw��B����ͫ��B����]��x��t���Nk��\�ԭ��H��)T��UHWD��/e�O"�����y�,���П!?���������<��m��\�\���Ǿ�w�S{�uy���ɟ[�����孟6��\��hCm0<�Y�α�Yb��\,�-�Z��)��JS��'|��m=Ŗ��2݃�C��^U�+% ���^��bZr�OJ-�HdOB\���a��_xԊV�]�p�0���\b\�!K���Bj%UϞ0V��d�E ��L!n:�,���hr���X,�Z��a؎c}� urj�U�)�kc��?֩���,��d��a9ۀ�C@@��%��e��!/~���Yn���Xjs�k6>��Ww����'��i�q�2������(�mC�L�ڊ���z�x����!�t��j��d�7&��B�җAh��8��HR=�䐖iID(��e\������5K��I�C��G��Κ��c��K^��X>���]������BO���x�����3';�ï��k���?'���0����e���j���͉��KB�_�uޟ ?���=�������A�~;춪պI�&Um�r����"� w�P>�"�?܁cPO��������No��X�Y�_��U?D�����wL��ɟ�{�����������g��/$�3��u�w&�������q�+~��%�q�ޣ�%�o�ўs<i�J��ĸG ��p4S�� ��"��ٲaz�<��h�ww��W1�J6���"dY��Y+�J��r~�d�T1��>5Xf�^e]A��h' j�4�j"�bŐ$N�@@��_P�C�e�:�h5/�d�tߐ�D��n%�6 MD�ᄰF�B!���J�,�p�Wy���#�Z|�Bc��b{-�����Ap������:��;�Q^� W�D ���D��&g�\Dƚ� {��!��X��'-y�[I)����@\t�J����� ���? �JP��� �P�M$����Z����G��N��(Xmz^GJ��Ly�rB��d �s6y���!?��p������ ����;��Q/?��J&��2�_x�3p�ȗ��\~���{��?�@��4|��,�9-_����>��a����M����y��>.��H�y�F�� fy�W������]v�&Q�c�f��;���4���(���o��X�O��"Y����� ��y�=O{�{���|v�}p^�f��vk�����>������?���>�u�����0�c�g��;��3퓙2����Č�n�v�#�(.f\B3;�"����/,�9I(EY���TH�&Z���Ǻ[.6��^�+"�����5�3�y,-\��d�?; ̄�4))jɦ0X�ްP%���9�8����5��� �=�d�V�����f�ۚX�D��<'�rSbvGm��A^����(H�5���Z�W�Pٖu�'m���� �L��l�o��C̀�:�C��D u�kJX�ɭ���WlA�c0P$U�T�$�4�#��k�]+�kI��J� T3�^��B,R�� Y��x$"Ւh���nA����Fצ�z�.��4P��Vo�<��b��Է�����n�{b�s @������G|M�I��f��3�ύ_g~��>�{��ރg�:�]���6o?��O�NG�G�Yx�ϳ����?�s��>t��f�|~��g�����}�r��9��:�����=��I�[��#��s�?��c|��G�;F��}��Y��bF����=Ϥ��ͧ��/w}��ɻ�� %�>����>��_���}��e��>�弿�>�G_��Q�:�'����X�6H+@}�sjh5_���@�Ŋ���+&,���Q<�m"�I�r2e�I��і脂����x-Y"J�&��"+j�kI%�Y[<���k=3�PuT�]�Z�(&���##AK#A���Ҝ8 +�� �nY�54aBQ��C8��C誱sx�M a]�{�?�$���!��h�7�C1b��!��Hw��;�-.�!�va�� ը���ؘY<Y�EptxS�g���.q0B6,So�"V:�@o)Z «��m-Mf��U VPvJZ�f8�֦��h�#z�5El9>gxW.y��@�G��Z��|��ʸ�g����Xʿ< Fr�1܃">������� w3��7�t���w���?��/��#_s��������i^�0_>���_��#��c�CY��;�1����-����BO���t�k�y��A?!�w<t��;�z7���Y �mu���QZ�����T��Q�zO���qgs��f:C�l:�|�e�+W�8�w����c}ɳ���3c��'��0����ez{F�u������>|�ٯ�W^�^�J��K���������ٙ����";'�����Ә�щZ2&����6G��VEp-��P�Vɚ�04:Y�_�9����4�a�N����8�T�Zi��<,E Uύ�����C��V^Dz�J���jR[�Eպ2��R%��Eu�Cv�7$ki�Hy�UN��1�UC����J��&�s� �d<f%�(����$!���@H�m�#�ڞ����o��-%��Z-�o�#ka�,J�)MUPy�0�(Q+�Q���K�X�� �a�h�T�z�uܗ#\�ԡ;��#�U#K|�"} ^|�B ���K�+�EH&m��l5�L��2�� Ҋ��K�F�8"�J��-�JB�Ys(���}�gό�w4#��>�3��3<s�|^��+�z�)�c���k~�1/���/_s�.�K���O>q�o���]�U@IDAT_}��Y�����片�>����Y�3�f���?K}�Y�y�Г�?C~ ��n�{8��-���ϭ��p�R�Z/r��d�{�dq���J����(L��{X|�l�����̧����i.�q��8���OoV|^p�g�=��-�OB,���?�����,�z#�_����w}3��q�O~�3ck6_Bn���(V�� ;�IJ����g��x�Ā�I����{2I��"�Z�49}J1��UPK�K��Њ�S�9@�&ڒ���ڠ@V�7ZVk3l���w(hf���L��U�r�8�5@�Q�l 4��-� +D&l�K��X8���&ml%��P��н��J�I�]8�"$@�ˑ}�D]��:�� ��ۡ��>�VGG�Q�2�~�Ef� �C��jQ�H�R�V�д���ޞ�B+����C"���&������r_�A���Rt��a�'���41Н�fk0���n0�OeE+����U�L�L�ю�Aژ�P�W�l�1��{Ch7@bݻ֓ �;|�{��Ɯ���F�����r��Z�s�����ه�8��o�����O�����3�����,�sf�����1�g��~x�??����� �\ �'�����hwX z���βD�R�Z3q�4!��&�K�k�>d���,%����.��W�e,���Y����^,������OO������m~��_���Cw���͕��W_6�ߺ5ݾ=��q��>+�2��ῖ9��?�������d5�\,�"�/�.M�#�Q,,h�G�I����QT�ҁ"��Ҏ��̐I ��њt�b��&A��2Bk�1�n�(�qn�Nk���XѪ��ؑu��i���U�������R"ϐ����R�9���E fȦ���b���%X��"=��7�:1bz�%u��$MWI��0´�^C��ȝ^��А�(E�Ba��K�<(f�p����N����[4��:Su��tK���2�Sib���e�]���0&ߌ�,.BSך��7��d�$m��·�I��+1MMct��n�ʰϯEU���5�4qz���p+h��B��Wqه�O Q.j�g.#K�w}� �?{�?�5uڇ��?��y�7z��ow��pv�x�[�o|��?~��ݧ��A�ˬe����r�m�ˋL��R���x�J?��t�X��� �}c}�����%@6]�c]��f���p��H�6��6�������Vp�������/s��.��^��a��>ˁN�y�4MO,�?;�O9=�s(L�䧿����w���l����=0�sw�{w�g�g���>���S=����6�j[1EV��a'�m�� o��MO+n�Ɋ�d�?(�;�>��ˬ3S /_$5X��Ϲ5B�sB��44̩����]���k�K�@��Á� �D�A��=�U�ZJ�X��+T�G%K���6$+#i�bb��S�$��Zp4�Q�ٷ������,S�����GO(d_\3qQtT&\�Ʌ$�A����c��9:)J�7n�B�zv8������!�~������kp�?���4�=��A�4���a��)��$o��v� ����ٮ�LEGp ��Bb������� �C\����+.ΩS�|�uZ�M-+��j�P}�܄�d��=��H���t 4���x��^!y9߱9ʳ����%?�~n��B���f?����҅����'�牣��5{o�ۿw��3�����e����6m����8�b�{�6���u��>���{^��Y��O��I�\����0Պ;b�f�_�>�Ia YLFq4�.��K#�V�(��:��f��k=����4o���[ޜ�o�����g��vq^x�x��y�&'#���a�c����������+~����������{w�{��;�8�����t^���:!]i4K]-G̰.�fʚeKSH����iN�JSn��[��T��U<�$��f�-Q��d'�dmV� ����ց;�>3>+Ku@�X@��:���e8Ʒ�e�aO�'!��rF�Ԫ��Jڴ�Q0�$Ƅ��++JV�+_pK�U��ŗ�-в� ���!�NQh�3�v�S�J�^9��8�I�&kKh(�&␠.�US��z�� E�-����[\�h���V�2����E������a����I�X���Z��Ykv�P�}a�NHA 9Si��eq�+��1�a!5�?�hl�pj�Z���VHw4����Q��+�R=����0K�ߴ�����)L��}�D��6��J�|�{����O�3��W|��������4=r~�؉�������|v��-o�2y�G�����e���Z����r��z3��ϙ��h��.�q���rڇ�}���t��a��DzQ����+9�:B�t��} T���{����~cW;�\�fɿ7{�����p�=�?��N�k��{���u�߿��O��{><��c���u��ܺ5߹��,��5����b�3?��h���pfh:gcM�h]�a�^d��Ax�$�z��9��$���I$$ܞup"8�+̿��_k�����)�4H�hU�i��6���&�.6ʢ ��}�Gl����A���&SQV���Ⱦ�0B7�A�b�1�Q ��e�.��B��abQ �?�nND�N$�V�V[%]��p!��"�bl$E��05�VL�r"?^wP���Z� ��Au��L8�*���� I��`mwT%���XsBpwEZ�@������6��
��d�
�1� ��L$\F�z�9Jf�IA�jO�9 2t�yè� aoL�;�ޖOF�$�s�9fėV��]�iܷ����?�vp����=�)Ǿ�5?��\�0=t�����6�A�IUIQ�����iy�������/�g·e�~�w|�%���=��I�w�E���P1�uVx�'��'���h�u���$�'c-��;퓹0=��X�C�5�v.�t,��r�O:Wz�����G�.L��͟^�|�+��x�����������+�����w}�D�c99���ݛ�H��r�$�ք�ڂ �@,vŚ�R�e�_��P_��CtX�)���k2Qm��F�p���y������� ���<F� bKk�Ge�� '2�Nƽ�����Ė8�R�5���V��O��yd��P��_D9 ����,z䤫�RU�0�����q�WHd7�� {����K��a�����P���tѭp\E��B��ƉM2G{����DO�jL��;��+����Aٮ���~���[�qm��/��zŎ�d�j��w�[D��D=n );��3A%-�g�2@6�,��S���(nZ�Axx�d�$B�iT��f=pT}��.##@hDŽ���#�T ��c�X:Ԃ��vD� d�'��Q:_��]�:�o���gx���|Ϟ�/��>r��S'~��{�Y�!���<�Y>ȫ��ٻ��/�}��3?w���]�E�#�g�����߱?�����/����oH�' ��#o�.�S=Otj��3�������%$���I8���I.���7����9�z�~����<�χ�7/ܽ���������{W^����\�6��v�?ݽ��u����f/6��#]��a�k���U��c�z�� ��G"+�@4���^� ���a|��I$+���%�cLTB"�E���S�j�!6/"-���SM%P��:E�r�A(�#���NЭ�� Dh⸸+��L�F���,��� ���"YU�T��6Q�bR�� z���An��쿊ʒD�e�rKH�Z}��2uU��3r�=@��� iLY�8�C+J��N�� P�����J�L�2�u;J�������VEP����n(cy�x�:���YQ�V��,�+Nx�$���,ُR��Ǩ.��-JU� �����@�i�Q�� �U{�-yX�^ q����Po��2a�^��?6V��eW��Y�E�����ōY�O�c��}џ��v'���;��3�Y�9�=/���3=y����?8��������4�gY>�/y�L����3��jB_f{��4�e��>�K��oH)�0-��Tfa�&����,��Z)�h�)4��2�q$�O^��%Г0�u�o�k��h�����6]�9�5��syb���i�����k����o��w��7��s�kק���7�7�[���{��B�����~��������j0�����E�&��LI��1�Z�:K��b�� ��t��&���RZ�íb@6Zl��<����IE}�� ˾͌zY��j��T;��.(�j�����ch /vˇ��G B�yTQ+>N�Tq���Z�|�P3�a���ek���JO !Ϳ�e��J'k�°ͮX�C'��dݕ�8������\xU k"t��z��� ��P�Q��G<�3e�q�&�W\�5k�����Gtb����r���栱���0s�.�4Wz�L�4%sH4�<gVD��>O��eI���T�e�^�t6$�Hsb�,�hr��8J,T�d%�� ֈ�T&��^��rd�4�_��PzGm�Eq�t D�.���5����"�5?����,�� �ϼ�����܅������Ͼ��#?���O���>џ[ž�����7��_d���t݇�f~r����� �qחI��8��?d]���o�fD��O����Hk�~�wn�q\_�@,����q�c���t��K�f��k�����R��;<��д����� Q �x���K/�����4ox�9]���qc�}{�m���yЗ�Y��"'��1�����ø���e�m�̳��k�d^˵=ێ�2}�.#�hy�=�H��͂�6�" ��P+'�R~�2�P[V��0����l�b�Ƒ�}�!����t��,��RnA�5���b���N�N�B[˃+���J�U���"<:h1�-��p�;�q��^�!$�&r�F3-�y�S��^n� ��З��yն�r$e�^�m��+�젒���ƌjM�!�2����,«�!d%}Z��oY���=(7J�0q@�ù@�4�rJY F<���iS+���e1��2('��x\O���-�IQ���LL� �8/�eg���8�=�bQ�6!�z��{Avԟ�~�?#5/�G�{�^.x������O����mb���������}�SG��k�7ݿ�/9C�?����x���j&�Y����u����֟�C�'����?E��R�?�z���v��>�,��k��I��1��й �����������v��!�y1�g(.!�i��^N�A��~�qy�2�4�&��c�l������w���_���k���7�[�����|1�wڇu�&�g\o��Cq��������!�-F�Ʈ�m1i�m�$">��O�X�PKBVyx��}�̓��ho�VH�Y�^� �ad9�Sj�[�RQ=DrJ�$)�2M,/ТI į^E��.�0�����0�FC��� M��QČ�=���l�7Kz� ��4i�%YY�����RĒ��U>�X+i%�t��C��P�M�q�շ�����U��k��v��\�12�;vu��:��W\�����kpC�6Ш��P��X��V�а�=f�$m0HX��z�(}Ӫ���q A� ����Q ,sKCHm�9dB���p0�C������ �8BO�vł͞A,����k3e�cK�"�[�%���:�N��l����ܻ���N�,�<}n>s~9Nj��<rq��3��k���Sӥ C����˻�o6��� �ߏ8�lגIW��ڇ1>.��Ոﲟ,�1͵N��Q>UNS���jE��lت%9�W\�)W��KA��f;]E���t��>���)����ɺO����ű�<�~���g/V|P������{�>��ދW�+<�{c�u{��BO�=���.��\���W'�Z7��ͽ�Pds�n��~j�3p��A�_�m ��h"E�zq'56�n?�M��06��f���O��S�9=3�Q�PGBe����q�(�R��bF9UrGiT�6��]�p7t��̭%=�X�)��Q؆'HqIg�AA�v+�� ��� ��>F(A,z)4\����t KS${�F���V�PQR�z�+g� ��Dr�ض�hK AZ���Ȏ�&��ak����}� �W���Ȅ�z&�B�s�X}_U� �B������ԕ���m��}�s(������rQ�:y�+aӒ�A�p����C�j�D@UP��k#���ʫL#Bu�Y���L�٢g(~�0ŗ�}� ��� ���!�>�|1����%@���i�� �ߣy�������s~���������w��Ne� �;������9�y�?�n��.�~����w��?����q�>p_��=�\��H����k�'k8�����k)���2�碩�}�J.�����d��f�{)ڵ��އOz9�33���nM�[y��x��9�\����o������G^���zm�q��|3�s$�u����,���?�F�G�������}�clk����-���[�6����}S��=�_���H� 5��r�dҸ9���W��& �:�ku U�R�l0PD�624-��_���fń�����u���%4��R�P���Z�I-�t��g8�,�I��0��ʳ\V�ST<K���[�kcw��8�ڄ�@�+@c��#H]P����1���?���oU���կv�q��1 ���le��2.phOy�J�c�Z&J���p�a�f�(r��D1��&�M�z$�q��F�Q�e�Wn��zj �p5�G%�G�@2��22Y�z-ϱ�2�i#%%mN��'�a{����8��/ȉ��yDf>����5?,��!/n�9�]�~�����n<�}�ԏ��ȏ<1��MO��������|�}ya;1�3������ ���gџSrC�o�k2�1/��i��dkD�f����c��^�S�ef¬.�lOB����c|j��C��>���� ?f����g���}�'��y�ß�z����5ͱy�����7������m���\��bf~���X���Y�ý�����OL�� �mU��\���+�46@m�ݐ�'��Kp!#6�����i�"�ޕ"y�1�$�����;�XL���Aj��neP�>|ɗ��].z��r/<,�T ��D�C����%��N���r�.��""����.�z{��hQ���ʙ��ENM�j��Cy]�j��qH!0�ERo:Fy�, ��;+:�-)T ��)Z�g��U&+��e��R:vU�U;�P�������>(H��ZkY=)4�W�j\���{�(������m�4��C��B�����p��#%[2Te�=�7x��a2�+�Ŋ[�Sg�%S�aD���q�?�0� � $���nFZC�������i�<��_�s���D�z��y���ųG.��ѷ��G�H�SȬ���//�g&���|�?y������$�ӊs��qp�N�����;��}�c����1VE��4���Ag�O�GIY�5� e�}K����rOJ;���]'|�������w���y9?��i�;��L�>vd�Cϼ��W>��/m�_��ܼ=�� ?w�;�\�i�g�OO�,�X�d+I]��G��m��EH0P��&������5��6����k�.^����/f�y��{~T�)r\S�ڄ^�����!�a%j7� õj�������b�ݶ��E���V�$�� t��d�i���(6��B����eh��~�����T17EV� �M�G�ټS��p�[��7/Y��>Vk��Q�N�x���K��wp���d�K�(IDE�:��~���x �kMI%��-3��ւs)�L�!Yy�q�� kA�R�)�3� �Y)r���J�CA�V��Md�X�z��I$���0��� ���ҡ�bʡ����!T���� .����q�w?aȏ� zG�������X�O�f�?�O^������%n��=��ɿ��c���3�pa93?�����+���_؟��Ϸ��;�C�su??b��|���1�u�>��k�NG�I�fـ�E-�{p�&���I|\p�������W��vy����^��~f����33��,�y���� �|]�ϳ]���u��yʗ��!/&��٧?����g���� s>7\�y���~|������ρ?�>��E@N�_��Z��:DC;�aR��P��@qQ�����I�"�d�M���6�Q��e|/�%�35@���t�A�<S�4�!���LV��t�I؈G�X&V���i�-uH���Y�F����)�Mę�L���a"E@Q���_�unX��y�?X��+sRW,(Զ91���N�:-�J���h�c��U�8a"7�n�� HBdXVlR�^Mw��<���?�Pm���: ��/��.ٚS��WNArX��.%�&�Ն��L�k[F��Ŷ��T{�a�DW�2��jv+zLV�9@#I\@R�)�ؒpW�U)W��2��S^� uS�0g�̋�A> \ag�"�97L�� {�AP\B�\�b=�|��]����|�����ܓ?|����ۙ��/L^\<���'�[��G��T6>������e��z���-�����$�;�O�"�;�C�==��w�y:���jӵ��b\��5PI�u���%͞T����j0cؤ��N���i��~y��tc·�{�1�s~Z..�[����i�Z>o0-��?������?���}��l�Ϥ?s�Ll�8Cѕ?o�Ϟ;!�B��3��xA�1�a����d���$�:��'�Lz|�MҒ$��|�Ks���,�J3cy7ܧl:M��£�R%-Ȕ��kA��ID�8����� ����B�:@�+����p���2��W�!�e�G!:]�uCqT(0<�M�ڤn sK!��c�Zi�P��Q�J((���/���ժ�� �RH�ֵ+�h�j�^b!����Jf1�|�C,�UY�� Ɩ�G��� ��Y����ȱEW����!je�3��b�ԣRj�N�8�%�@���b NA�)M�Юz��TI�-Vܡ�[���Rǎ�k���kSk�h[�OHr�1 �0֞����#��Ux>�|��'�q������\eݧ>G�/��.'�ϳ.�9w�����}��?yۑ?绝������'�|x�3�sᖯ��1���^���2�o�6�~v΄;�Xw���X o�]�ۻ��(�ת�I��iv�\�fԟw�5�g�>��z�����b���s����iz��]_������|�ڵ����?��#ׯ�~c;V��r��#����Mm�������̟��}����E���w-���B�xB��r��Z״���j�������_��/��RVV:�Jnm�?[с%b�%�#2�<�$3��U�G���M3�8uJH�1��ERz� ���)#=�]@9�ZW��F ��SR�F����i]8�P����Ԡ��-pi�([E��r���� �� nPu�� ��-0}�2�"����)�_�T�%���۹�� ��VBo�Y��N<��8Gc�LF>I�A|���m0&����xIa��i5T9AVq݃�t E�K%%h��Z��@�nIEU�YP���5hVpd��d���F6 u�E�!#b���?̯� rqtt���o��?h�w��Ҏ����}��&7~�}ʗ�?_�:��y�?�x�o�>��7��ٷ�}�Y��j2M���}�2�^On����.�g���.Y:#!]�|sY��}Ƭ�0�bM�D��0v�M���Ǔ�V�R>���9�zT����q�Ǭ>�H��>|Ǒ�y���W{�1�,�yj��9͏90^xځ����/~������}g��M�?�>y̓��tȟ /���ѕ?�f�Z�^�Q�4����5�/��J�X��������4����S�QAr�{I���&�d���p�6���6P1J�z�Ԛ ��BR��vV�f%IO�j{�"�i +,%��sD�4����1�<ݟ&���p���Ҏ�T���j��B(���Ô�ւ�$�f�|݊6�7̕V���G����r!0!;E�ޑ���JÐ�2�99�zպ�<�rW2�dZ�+�+��r �a)bd�k)Y@2�o8T��]�������\��(�J���L� )J�L�EkY�V �(�A%q�bW������"-''�las�܀rLR���o-l� ��0O�e� V�Ds�=d(ghK���>� ������;�L{g�'c�|ڥozȷ�N/}ڋ����_�������8�"N&OX��K��g����K������x���#������jb ����=�=�Fm�q;�W��@6���&N������O�$�� ������+x�����\0�����p���j�{=/1�����ld�,�c��_y��+/�}{{�;�w�۷fn�����Y����^ ��=��A-�3�~�1i��_#���'��M{��Vqa�3y��UR��ț=P�W��+�M�����:�W��P�c��/� ��M��HAi)Ŕ��D: f�)�Yp8���/��E6T��(M��l���S(Z椐��T!�Tv�'�L��t'����Y)�D��� �&U����ҺY�R�T([��H��ׄ)6U���0ܢg0��U�#��m5���&�+G1���8��E,<��JPN���К�ËxF�F���)Ѻ���z����^����?Kح�� P�e�7C:�a" ���������֢e���ҷ:ò�#�dl�u��"U��G�xb�gܛ��1��f i)�2�� ���9Cx� Ag���~KBz|���9�䁯�w|2��M<�{�� ���K���Ͻ}����;�'|�ղ|��e~������:/wc��~^hO�S]����rR�"$惎�k�a���<L���D���q�����G�O�^�/.���\?{G���ēO�g��wz�ߛA���O��߱?_r�4�mq����^�;�~���??�����^��Oħ�Äs�����/�v��s��P��k>�-B�Mo�Z�i��m�����m��(�n������:3��7�g<y�q���.2%����׆18H�A�@ܐ�t���>�y��:�:��s5��N�P�0a�{!(L����$�Y���p��V��Q h|�ўCK!�$��2��,m��A:!%bS�"����衿� ��<W.+L�E2q)L�-SO�Y4ĔEH�M@$�t�+�0%���&�- ��x8Fa���D▪m4��=P$9 � 67^�&�A!)�����4[�.{�?D�_���"1��:Ռ{Z�7��},gY@5$�j�d|@I!�J,}��"��A!'�G� WV�HQ�?$i��Y�ũCDRD�WY�V����'0�|\⩍v'�� _�������?/}���~��7���g9��t�5?ۇ|˓'��o;�ێN�s��/��Of����������������L�;�gԟ>}���Y�̈0�e:Νע�Y�++��8�p^NJ�MS49,��S3#���u@����&p���2��X��Og���T>�~�y��e⽞�C̲�s]���������{~�_=r��t��>/w��t�C����ϜOg~�;����^�'��/5�FX��F� �N윁��k���al��������x�5:S��lN��ҎF�y��^d�X��j�T���]/e� }J����vl~CB��u�������镐o��+�d>��g6t�8fOL�a���$d��A��=�qz�Q �??���C<�3�QP O@��?��gM�W ũ)ee�u���P5 �ܕ���%��ᏞM ��8��?�r5���� H���8�Dx[�|�2�G��Śo5�B���YWN�r@Q<�p��'�g�VLD�J(N���Ƞ��L�R�U��!X�RdR�݆(��JN�HT]X�同;Z!�$ C�Y�B�2��%l�����C�Æ�(�f�+���M�b�Ф^�� qx�8����-�?�<f~��x�k>v��?c^��O�\�:��Х�>y��}�ͧ6��07������Ʌ��^�y��{����z��3=Y�����z�E2��=��8>2�3Q�L�'�3�gN��W���1Z���/l^��u>z"+>���y�ˇ������+�����<3�a��8M�g>���R�>����=�~�ڍ#��MW�no�Zn�f7���2��f�G��9/�V9f���h_z��OM6��6�k!n$,Yh�-�2�_��6��/�t�����=�Y�k.�y��,tʏ9r����㛳玟=s����ϒ8z��S'�;v����SG��4����������[��\�v�ƕk7_�r���;7nݹu��-�E����y���\+xU�����c���>�.���x�����"�]���)Ś�d{'~� E�i ��3�hܧQ���_(�f[y�a��iD7�/�����=����^$�g��VN�ƶx�)O2Z�0Bmh,rG��Ke3L�0̒8�҃g�Z�(�A#�Wl���G�E�GuN<.i�#kG�q�-�?P�$�����"kZ����c?h�Ѹ���h��rc��5!� �&xުP(h5tr��]��ayZ�N,� ��,h�u���'����^��ȯ�a�2��k|h��U?�=�Aȝ� ��?+>�����̇�β�7=L/l����N��ۉ��t���-��l?����OW\���?����Ɵ:�'!mܳ� 252Έҫ����!w1��xR�b�����s���l���C:�7��#�]�ɞ[�����L�Fg��faY�S�ra��u��m�}�����7o��{��#��Gn��>7n.7nϷ�����{o���L��9b�����F6ڀV[���39��� ��:h�Lڝ�?m��:���!�&�n�po�O/��EnQ��G�w����{����>��#���2�-+}Ϝ���8�-��{����]{���T�r�~���"��Djo��+1��)��N�g�}�ح�ǯ]��W����������ѳϿx������#w7����������| ���r��֓���ͩ���(�W�^�=�I�0p�-H�b s�/T���k|<G� �Z���$�������0|�l�_�VB��B���L��QAA,O@iؕ��Wf��U���Z�lR����":EC�2�jr��eX�[4��u̡m�����Y��WE���a�N蠦��ɒq�J��B�7�FkH�)�( ~8�㡈L��Қl�R"ipد^+�0�����Ȳ����q ˺Ɛ _�lA@U��a ���������i��l&�BG<�-T^�r�ʟDz�B~��=9�yʗ!?K�y��q_�v����g^�y����>��ל��߱�-�������g��Oo���M/f��y1��p���줷��H���?�+��6�{�T_�um�Z�p��R�ب/.�I� ��@I�s�X���T���N�� /��y�<��[|�3C~�~:�K�����&$b��{z�����w}��ۻvs�~˯�0�㏷:���/���n�Yz�b���\�8��XS���9����Q �� M�_t����ߠ�M÷wP�E��N�Щ�N�튿��s�h�g7�>���#�}j�|���'t��ij˵ݴ%���,�֘UeR��L�y�z�B�f�q��:ql��#��?1��������ݻ���x��/|�_�����}��=w�ƕi���t��nt��';�/�A.��lbz&ut��ˑ�#s2c�9���c�횛1��?� ��$����8����n֏�X�;��(1���M��I<�,�T�;��� N�HCʚ�H�q[��P��dy��<Z0��L؈Q?H�5e�J�i7���� �����9qe'�b��P!�d�A#Y���J+�4��L��� �ڃ�p� �%�f�$_��=�9�+L���4�#(nq��� n͊P�� �N�؍�J�"�?8��A&E+I �N�:�'�a�:�g���B����߯��y��?'��]�=0��8=p~����^{���ȷ3�s�|n���2}nY����to�s^��yΉJ�N'��F|�KL�,|_�ef���%14y��w��"�P�b�:��αO��$��Ǎ�> 3������Gǐ�����!�y�C�9�����!�<⻟�����O}�o���Ͽ��їo�n��O9:_�<��� ��v�ރǷt�pW�K�w�H���;\�]�-5��APi|~���G kso�w�z^�$[&U���J�������ϯ{rz���Ǟ��<�8�Lǧ����ek�y�T�}vw��j�C5p��}$E �I�j;5ap�v���G����GO�������ۦ�ɛ�������~�O���>�����ֆ.hkO���r5@�"�psxLnhX�wEG�DgJ�MO�S��V%��듷b�4fBSlB�Q���15�����a�[�2�/�MG1�b�5D�y�8h���%7S���Ac��q�b���-7�X a��d�I�b����4��B$Y:Z��z�ǖ��߸�4fn����P~�"$�����J7�U������9ӌ��'�rPb�m��D�1.�F��5�V�|"U�(�ڽ��tI ".+ߝ1Z^nC�H�VV�R$�Ր\N��GR�U\��T"����Y�� �;��%� ������K~���/��e���.��xi�ij��ܿxǑw�u>� �?����_>���~ߙ���6w�ܓ7�8�� �bw���a�(|ډ�����(i��7m������� ��!�\�ؼ���'y@ɴvyD;�NU;��lO�'��d�'��� ��pa3?�L�<Mo#~N��·;|�捿�������膏8^���v�w�8�s��>�~y�Kk����O�[����a��l�[A�G�Jl3�E#�����kb~��mER˼���FB�B��|������[^�����o\.><=�����ANV������Q�+t�����(�K���AI����!6Q����0��,�����=�@���q����{�8��3Ǧo�m�]���>����w�������O�;��ޞ��S��n�o�����r��~�o���4��|��tj����@��F(J�ޞ�����M�aߔ��1�L�P�o�t�Ep�#ݒS:��d� v�����0q�6c�a,S�2���&+��"m��J�s��~�����e�5�9/ZY{�@��(0T��M�ÿ�P\�s·��#��@KU>� �B����]���vr��r�]q������R�J�i�=���fI�'v�%X��Ծ��iQ��C(4���vc�Ǚ�����+���$j,X�Iq��x^��}���y��Ě���>�}��#O���w�3q�>�l��e�����]?��_�u�0��\�1�sJ26 ��Y|R�7�F ���� :3f%��:�j,4�p���_"��\w8#}ok����;�C�f��::����Kz;����Ol��ҙ<L���ǻ��ey��]�|��?���䗾���W:���.�����,��gL@e3�,���|�����l�V+5ڱ?�F�4��,������LN���E��#swz�����Ft;�<>?|iz��#ox���}�5ә���9˭���\i{ F!屏v�Φ�)�2Z iITW�Ӵh���lk�53#>�@IDAT%�s�V��Q/���� S�^�-��9,�>~dzǩ����m��g_�������}�_�w�چ�u��b7����N�z��DF���8��AE�9�C]�h�Vz��+����tCq d�J @\!�"�,�p�q�gW^��t�%uߢN�Xa: 8�&�p?Do��De��eD)[B��}��roƽ�2LE�a�H����P$��Z�A0��5X�R@�=�ZTK´����ceR]Q"��NQv���+K����wj8���_���l�6���A��Ȭ�7����R����82��!���dԟ���W19s<��^=(@���t�O)�s�'g�ر!<�L#�����?vy�3�?~����[�N����z��-=pᱳ?��c��[����v����������:�9��vp��H��$��U���{����]~�;eL�pCj-f����M�3��Ɛ��� ��.f1�_c=�>�;��I��#ݙ�cY�� .���9�#�>��f7�>k=�����v��~��w��嗏�tm���˵���͗z��~�K +�����o:}�;&�����ڮS�s¤�u]��� )�[��;�S}@x�9:�>��K��S��/OO�az�7o_������͙���8?�����r��hI��9��\��)�?7/!��� =Pk� 1S�ѰthL��x6�L���h�]q���8�(S0��PF)G�4�#˓G��đ��������~��?����}����B�yF_����[YJ�զ�E����t���Qu���b8�N}i����J� %)����ǟA�E٠����q�(�/�/;�(aA.��ܬ�y%�B�ʼnbͦ81C�=�lh�&�Dv���<V����8�U��v�P��q H��7�b�M�/r� [�ƾ�]אh����*�$��w���!)�Q[e%��>���܂�"S�H%]SW�z'��'R&�R�IH��q�L8�!���[ ��t�����ʌ��i����љ���:�}�1>�ˊO?��Կ_vd���r��q����_���:��&��h��v�������DF��g�}f��j�2��fzr�S�;�2��rO����HMKZ�up���?�?-�\P �e3�n!�v�o�:�I���Wa:�%ag 8�}�?џ���M�pe�M|���i��7ܗ�[���]�~t����������|�����+��ߘx����r�#KV48�Pj��{��מ��Wb>�Uf�m�F�tF��G3n���4Tj��=zs_�EY̚��q s����C{ox��[���k\��=z�k���ɧ��s6��^ο|ǟq)b% 65'� �f�A��;���LQZCd(Ҷ@���RG�0���5��oO�����ӯ�%x�st����c�w����{n3�������s����~���X��={����v� ��Y<s��v��<��u��F���fʲ�Y#~|�� ���,L0-Nc@:N�L���������p�p�y-�S8:ڀ���� B�F=��,bQP���G��Z�Wd�>Q�ȊB�9lARP���� ����lઐ��G���VvגF�t^LUaUSSSl�Z����؇�C�Cd�V���qC����ؽ ��r95G؍��Yq�8!.�^�^�HB�N��WF�"�L��bV̐s"��y�����&���"����Sv��<A�����Ӊs>������������ſ��'�����L?�]~j�����w7W��vOf>�2�w�Ϗ9��� �h@<�͝_F�ƋQo�ZMՃڅ1�{�Qd� H�z�;��s�b�1�C�'�%����"�t�Ϟ���������ˉi:��.�ӓ���e~]��Ӄ���K�����������[���؛@�v\u~�|ߝo��l �,y@6�ف�@c���Y��t�fHz5�nܐ��^�J�f�f݆6�0��6��-d[��њ<H��Yo�����~�]�w���=�|U����:��Tթs����?�3�f߿>��n��0�ij!�J^{Xw<�aw����@0�]Q���رvN���rF���:�]uMw�˻k^��p��BǗ�5��Ɠz�3�s�oJj�UG�����IB���ˬ -;���� Q���!�>�����S���'���+���4�NTc�J'����07�hn��V��7�o<}�7�������~���|X_�6�i�� Z&k�UE̓VA�3 ��QA���R/�ß"[(�F��Rӯ~��]9I�:�;�4 ��r&�qe��9v��K#u�2��YAe���\���H�ī�i��<�3u#h�u��ɗ�4�,T\�-+7�,t[J�x�,R��6e�dbV�P ��P���X�\9�R&��Ԗ��L��SB� Jbrrz��eR�� ��8tŏC���=^���H�'��4�$O<��cj:����ó�1�b��|����|�be�?_��X��f+{��=��=����.ھ��z���=?��}��0�k2|a�{f�;��O��yg=���xZaZp4|��}�lH�YD�|Z!���b���h����7[�ɫ�(��D���������h��/���\bUd������C�|˥^7\O߿����07Y;����W�}������|Ý����;i�\��\������J&��gպj�.���۾���ޟ{D�����j�F_��iy��.��E� /]�n��ۣ=[[����u����� �"7�^VL݉�������쭇R� ��CX�6��&�s��P��+�H�as�U�:�f�'�d>�&���� �-$��n��#�y5���m���uG�:�����o|�cG�<3bD�� xpDh�J�(墹��Bǯ5IeK]=+WHQ'�[PM�����+ݢ��a$�R�<4J�@s���̀ʡ݃2�6vSa k��� P�k�$�$/v���r�(G$�ըP�PХNy��U@E8�6F�x<���A����?�⺳��ʒ;��<��$�#�袆A�:E�̘��jN��U�a0+ת����WR�N&;���P���B6�(6U �f��\�y �\�Q��(�YXaY�O@�,3���'�����뱠�i2�����<;=��/4��ot���K���W~�E>�Э~x�9���l��6��d������m>��o|�VUA����Ŏ��Q��X��F7Ոe��(:���H1Q]HKRu�w0G����k�'~�Q~fz� ��G]p�����ȁ����K��E��liǰϧ�z�'n��_��ܩ��ؙm����>�3;�dʛ(��(e5�J@9�����������-_<��&�cUNJ%Q7�����.�{��/y�Ƶ�M.��}8h�y��O(а�KPWΈF<�/�Շ�����U$�z%I8�L�ގ��������Y�5���Q�Æ�-YL!C�[r�$E�� �#! ==�4�ph��Ur�-�j�Gs� [�Z����O-��y�}�K���o���n�l�qn��6q����5E���֜�1�,�> ��)X���N����������m8��4��pæ�G� T@�W�~q)aL�A1)�r��'�<��"2��h2M�c��F��2�ŰȸZO�"Nu�r )J���v�L'x��N��s���-N�)d�fOA@%�? �ѐ�����X�Hg5K04�A�fj��: �Zfv�0N����L�ڈ�2�.�N�4&� �� Y�B����KЬ��m��Pɟo����=u���h��E>��0�o'�ƀ�����Ε�v�>?�/�v,��������dr�����]7�0^�I&�8���]gwOF>\��Ow����c�/\��Dx��m��ip+������Ą��>==���o�ZB�g8�Q'b���u0�����{����a��-{y�������O�^�����;��\������/?�G��d�q\g�W�8�M�q�ɖ��z:u�\�F��6�1 �W/��?z��� C:"�J�Y0L���g�~�ߵ:�w�_]a+,֠��EZ��ͳ�h��j�s��c6iؽ<��2^Y�Iߞ=����5���5��>�8��y1;�&v�3R8:��ݖ��������y:QP��;S��g}���"�9�B�9��efJaD���-E��"e����;�(f�8��|���~a�ۻ4|�x���s��'������������{Kl�0?����Z�}���E�������p C�|Z$rrQ|gk�FY@�b�{�S���ǝkA��҅,�gF곣�Ŋ8��ap^�����0گ���W�!~\ɔu�K,����%[���="�&�M��_�`�o��;> �%�K��X�_� 캔Њ&.�)O�W��ѧDu�i U�4���@�����Z��F���f�h�+䍶8�_�Vi^����Jp�N�2!� 94-WR�dd���p�#�PL� #����?�����a��>W�m�Uv��\x��������V����a������n���������G��F�%�GB�����JO�����Bړ��u��b��/Ak��K̯��V>���M�~F�g�@@x���^&~�;���/�[.9��;7,J_9q�����>p/c>���+�|Ņ�}��3���^t0��u-�o;���[EtYiy�[��Rꕵ,W����=m��Zw�����% ����>�,l�cэ���6��w2<�5��,��ۻpp���������������j�o���=�s�[ݘ�;�ޝ��оP^��5,)ܣ��8�s�X8)0K�H���l���l���Pf!��#�$������?dG\�yS+4p�w��G?g��A��[��ڊ��w/��M��>����y�7������?���o��y��ϹTt<�+ �X�篺�|���H��D����a��eB�j9��D)+�#/ ��ROyF=�_w�9� �������Blh4�4�!yA�LL銪R�O�����-����Ą�_�5�OR�67�� \���s�$>�oq8t�V>0jV=7IrkG�E�U�������qѢ��F��V����MM�d��T@MF��^���HA2saI� �-���E�6|e���qey �~�5#�#���S�Lɋ��n/2�S��~�<@;�zX���;48���=sjz���Ż����ћ�=�;0>�������_4��C�[�[6���ޟ�>[���0K?��3��xؕ+2!!W��}�R�k)�Q�\ц�ޟ�T�;��0j2jcX�i����F>1���������1���inlG��r���~�3�5?~�늾���o���q�]���_����C�>5��֓g&gκԇO9�+�8h�y�@��b%���0MU��Lh{�s�7�h��b�G���ؘ���v�Q��OڣU�����|J��&��8~1��'�FΘ�]Y����([����]���>�wϥ��]y���,]~����3K˧&�#��v��� l�P$�nldPn��m�Z��)h�!H��T�6��YU��@�BO���Ȋ�p۔�$!��ra�(����tQ�D�%�%f��B�{�����^�۞��_|�_����=vd��6Yc�n��>�' �An$��T�+r�Rp���G���JK�$�r) q�J�H�Z��+�13J�<沂�f��'@���0��M%�S �<��LEk�OP;"0a���+���� h ڀ6£��{����O1jL�P�(C��Tb��UT�Zމ&��RGt�D�$�6�� �\�HIњ�(��M����)�"7Q���θ�.��z3�Q�Qٕ�&lQ�����!����F�A�����#.H��&[K����-AV�;���w��_]���wٮ_}����k�p�������p��zg�(���"L��H�̱!rq��2o�4��8��e�N�I�A���-=���t�Q��N��3b��6yx|}E��]䠿��$�[��{6��_�wW�Nj��[���[��O}r͏8�N�����f[7'{�AY���Eº�WtƣGA���� � 36�x�"�����d����(��܉M� �(S��إ��)���EJ<;f�a��e$�ae0�CÉ1�n��hc����Ǟ}d��YNh�w-�9th��]��˯���^�up�S��o��Z�es'J9�CX^�e��m�Cx;�_� �&���]�2�]���(.�J�AN��(0E��P��ql)/�����.�8SK�kG�e?(���R��~���O���o��������s�3H�&'O��Ȕ:O1&O䦱�u��D# D�GNu�@&05O��Z(��<@TQ�v�c�◌�Aڠ�15 C ��m��Dr��,�D����J�EM�!���V�W�Nl��4Sn-q�g��y |:[Ax(مia�~�a~ª��!DWSBFڿI�$f���T9pĎ��U��k" ^�%U�"�WL4 AjQð�&$�AqL��P�k��2(jk������5�{?�^���.��V�,��V?�+~ߑ�~]��s���u��;���.��ec���ݴ5��V��Z�w]��=��Ǘ.љ;�[�[�0���i6��d��������b��B�� D���S&�ww���a<: h���W���P(�a�.��k�'���n���-_Vd^ֱ�tc�_�:����y�>�я<�9�u8qʎ?c>|����b����\�ʜ�0HDy�DM ���bS^�r�e���,�~��G�����f�B^�41O�2����R3�H3�@��g��c��R$�{N�0V>��z�S%v>C�a�daqeu���.x�U�]� ���ʍ�=���������3�썺<��:��$�iM"kB�0���XX���m���Z��(/b�!H��P�37�e}���h�^ƽ�]�=�l��x�b�O�o�?z��?���}ߧ?7�ژ�9ݭ���}E�o���;�r�}qm�B�R��G�x�ǎ�)���:�ڰ?��ʲ/P��I,�⇨"1������_�x�zy����_'�$���?����i�˚��$T����E�%�\CZ��k4�Ҟd�$Q�w�b2��~ �,�F+�D�<a%;˩2S�ONRFP��&Z���r#5S>�).a���X�&���Z�&5Y -�!� U\��$'9B��7o�s��.}=���5�+�@�q:�M��/ʎ��aw������i�����/?��W.�ԕc;[��;[��6���ݹ|�em�'�]l/�oP�R�54��h������+8֬�f�P��P��ւt\�,J�l�� q�4X�』=}p�O-�4�0~����5�����G�k�� ��L���7��x����cs��{�k�Y�O���{��Ӱ8?�>����c>��5�o~�~aqx��5B$���/��5?����T�� _5vVWgI�N�H-�����<�곀���>J��۰4/�42��,��vWO-2)���o0��'ٵt��b�$���7�ي��#_}�Kw�rǝ����>}��Ï�x���/���Kw�1�Y�괱���1m��h�F �h��&��.�4�RĖt+b͘�J�SO�z���@�J!e�~�����\���fe�;_��#��������h�4?4Z;�����H��زQ�0I'��c����J:%�����,��@�&2��Q�h�<LWW��P �� ��I���,@.��(���%�I)��I�\�S� "F:�S�"��aF��7�=�#��:��af�V�o�U�[٨���{� 0�m���,�$�b25���k�9��pl�$��N.f;��ҿ�ya�J8'A�a�l(rn�Rt�y��9+l�bTd��{�BNS����t�9}�x��_+� �'�u�谋>��W~���q��nu���Y�Nlvg�u�g�a�o���5�Ĩ�:�S�b��ʘ�B2�1��$�At�a� F�إ�>�y���Nm���a�yPg����u�?��p�a���M��ɶ��,GG������[��̱���'l����Ϸ|i����ȃ�M�R�2�;fo�&0��IͰK���͏&/�ry����/��j.�֧;B�Y���U(���r6z�) ~ܶ��c26�6C� e���j���w����M�nssD;����c�y�Kw��{?q����t�ٳ�Y�����KW�)��y�j�Ԧ0%E�2���R��HE���i�������qZ�d�����.%@]υ1B��\���mY����������ᖇ�m��N���"k�b�c�&&J�b3w��FV� �ĸ���e�\�S���-�$ե��4ldU�y����YOJ�����M)�ȝ�BW1�Z.a]2�m��b3{1S�Z�vyN ��j)l�idZه�� ��F��§v�Q2�J�<����ր��������6�d��ԕ���؊���xE=O)��%�]B{��T���p�k�{A�% W�$�,_�^�e�'�S���g�g��>������C�����w���96�g�����M��ݱ͞����3<��G�����D��5%�J�׃��!�<��bZ3��"�bP �f���MB8�C<H�u�� f:����}m��������|o��_d�0{<0�s�]�������E�s��'{�m��?f���S��Sl��d/�yug�����;V��O:�z|��6�OTE��hZ]a�D��T��� ��� W��x׃G}p]���1�h�^˔-��R;�T�c��"��_ЍɄk9}o������\�o[5�(���T��v8��������,����7'����'����������?~����_{�WF�����nh��K��JQ��s )�,�G� G���4��s�\j��6a/��Pq �f�'�?�; �����?�З�����H�� �oQ�����E& 7 ���9|�:�o�y�~��<��#h^db��c�)��$W� �.c����!T�0��۬8'�$BrJ�ai�3=��*��ŋ�@1��N�o4����X�O^��e�9�J8SE���dB��E]hr�(DI��? �� �b3��"�WO���"�|�X�R���2-R�"R�������Ke�T��4A0�F�U9v �{�cs���$;�� 4���g;7}�����F�n��g�pѡK�>�]�n�ݽ��/m�_��l����?']��ћ[-��pNSX��8�#��+�ҋR��?�!�i����F"f�k;Scky�jV�?~6��h��Ϙ{^���{����w���ޗ��w�F�slytn���>�����=��sG�tGOvx�|y��A��v�_��qm'P_���Գ�(q_�� @��� ��K��m���={���y�3��ر��%4D�@��|Ȗ��H2l����vS�F[��H [<e�rm�S5ɊF�m��(bC�f�Ƹ5"k�纙�ȓ��bC����ڑǟ|������ۏ���lm�����fx���O�0#�� ���)��������x��Y�-yh��k�ƵE����a��^.�!�P���]�^Þtoz�5�����Co[��UYXj]$�8�]Lȵq#iz��h�p���J�d�"h�\��v�;�9��L��<sU�:/� �V���<f��E�������+x�R�: R����O�dU������ ��c�(��J�@�) ��:��& #m�Vj�u^��R~��N�������%��8R��\b��w�(UH�[���G�t���@�i��wB�EM���a^�ig�1����i߿&Z�?�T��J��ҳ�'� ���?Ɂ_z��R�'��6��6��[�� }�|�����O���jt=)��,���O AM�6 a���Hu�S �3�^�U�Sߑ�&M²�z�8}Zߟ.? ��xX��}s��q���{|N\(��#��C����ֱ3sG���'��0��g��#�of�֩�<Д[�(�,�W����J]6��棛S�3O�Hn7�[Ǔ_r����;?���a�D�m��K�쓦�z7�i=Ѽ-�)��oY+h�F��� m�"���~}�)UT�($���rh>�p�&�0\�s a �MXW�C�擏=����y�_�>~����-�bqtd29�"%7�J-�(U]m{[ɖx<�����E����l�[c�)��S �V�Y[�E쥡 Nnv$��g4\<]=�^s�U�+K��Óy�c� 1���3B���5D=H�ܕ�0E����( ���S�-T��azDQ/���9@0�$!�p2�ț��.��)A<��J�<E��$5.Ȧ� �X��8���b��#����/�H�rHΖG�0k��x��!�@�y+�E$9�@��3�J��^����v�C�dA�N�a1���U��$q���CSB�V�:�P�8��UuJ:3WYW�ц�|��������(P&~��}'-v|� zV�/������G�l_x�G_���v��n��\��:�|�b�6�7~�:~@���b� #�Q��YG������bb��%c�Ta��c٣�ꔳ@ㄅ8�qX+)8}6���/�����:�n���+�~7�����ノA�1���=x�����w|��Skݱ3�/ye�?��]��Y�ɚqw����d�p��x|^����ͩ�-tTpקp�Y�2����]�k��;�yxsk��e�Dy�A�B9ld�O4��A0/r�~�^���y�~�QtѸf~8��� �pJ�3"?�H����9�H�j���IV�����v���ܹ�/>��-7�k>���o��+������є�ЋJ�� �^��a���ΛCk%h��p��i��Vp��C��Z�J�����������\E�����b�&g�?�3mX2T��H��WQ��H�I�X�DC<��k;$-F^f kz� ��^=D#J��$!���)�&��9�V�A��T�L��%�fBԼ yH,Þ^��'#�"YH�҆��| �ݼ����ߔ8����AJ���o ��Ĕ���[b1���0G��p�USeT� { nx˩�Y�E�J���9K!��T��r7�u�i|� ϩxq��>��ု��w��g�O^����I�@k���g�O�?�[=�a�_���r�Eox�r�e3d����6�'6�����&���q�܀�ws7�;�����͎��0?���)�@ޘ��^f�Cba��J��j(���?�Ml�d,��+�L�����47,yu���h�;����F�[G=�\�Oml����'>|����g'�}���82��rOvrf{����ӿE#������2P�k�=lC@�ʉ�H�xF������le����._��;8�5����9�<1+i���LÉXH{i��~RyZT���D���8� �哝��7}-\�N߀�D6 L��{ж6�x��O����~���\y��]���́Xɾ=�4�ӹk1�w�&�NF��M�T�F��j�2\����� Cmq0�m�O^?1����z}�G��R�6i(�h'�0�gO������U�Iz )�2��AJ�x�Z�����'�����q�Q,CL�y�V��@�Qq2n�70�^ e�ë�%)Y�O��K�f�1�A��ִ��F�I.Q�y�%�qV�@�TE �1�Hɮ2_�"^�ܡ�PϢm�����+�&�!���T�$_�Q�bҲM$ekJ1/�^��@���Z�ᒋ�I>�f���r��Q�Ȕ��� �8������4�Q��������%@�K��ꈽ���g߁�C^��߰p� �>����V���pt� ����g(8oMf'g\�N/Ѿ.�8g�:(\�2�~+Ii���CQː�(vR� �% jEӮ�C�fN�q�n3v[7:���i���d䇾�߱������:V��?��S���x�=����cl��ρ�>�ӎ/y�������a� s�7��l5P5!����a����ODu���+�{��_�����~��ϟ������ܥ7Q��ň���h�o�笃L5���fsL(�5 �ĒI��i�D.� 4� U!��-A5��4�ӏ�ⴗ� bh��ﺣG��~��_����,��ꋟ�8�þ��0F�V��RIA�cf2dB����MX�\ �������o�c��EΎ�X������g����G)A^d��+�X$���G_ē��e<h1mc�]��[����(c(s�����!�J���e�f�P�H�-��@�J-��FL%2�(H)� O�&[�-���6ܔ���£�B�>��s&��Ph��L(�\�ߑ5X�o�F0�R$ ҀOi��h��T����YD� ��Sq� �@�l&�B�����o������)R�H�$^^�f&�}���0�3�����k}Lu���9��>��p���s���Nj��#��tS�]{���w�\��_�����_���ō��-��ޱ���_��͙�b��M/�Y[u绾Ϭ��rz���eP����Ty�C����u� e p�gcJP�@��WcUdl�ܫ~��������e֗E�{���q��Q��}�O �o?������>��W�O���N��~ȅ�=�3�5a��}O=����n裧��2��r��1�^�W�؊�!)��n���/�f~y�g?{�ٍ9�X�ܻf�eA�2?U�"X�So�X3BmY4�����dK(�Y%��CR���@ [��F��5̌���[��2 ���Ʋ���F�g���ֻ��W_~p�7=�0�Z8� gy3���<�Eʸ��l�0�[d jx6オE�U! $�N�Q�IL�;��dz���F�5��F�t���y��G�#EP�R[k{2R�$���j) �rM8����Ly�|���"&D���@�r ϰ����@�"6xrl��F��MV^������VcjqGq#u#J���ܹ��R��U@��\�����S�B�~s����"OB١eL�2��O�!����Ů�����D� �#�JH~�,�Yd�9���7��Ö��)o�+<��J���l\��Jj4��1H�SVQGO��/�f�O{��W���]�úO>����;:xx��K���]�֦�X���{���y��/m�8��˽�۞��"��v$���&��; ��A]�:�-e| ,�%��̜C�7.%X=C�&�=Pi�Z������Ϝ�����=��z�Qx����ɞQ��ٳ?���O~��㣣'������o-�67�ԙ����07���3��3� ����@&~mQ �� h���P;���+�HV�ٱr�5/����o����<[ A;i��-lšK�v��hM��I����U��4Ѫ��7��@�)qnZ�)�)v�̂�8��37k�QHR�Z�2�a�}8�Ӆ�|������S7�v��g�������� &4Y�|9����˘j��<�40Rҵ�bV�M{%��"ơ~�0rԃ������Z�������?�F��.��.T'�Bչ7�0u�\���� �#t���/I߹ؼbcⲯ�������T槾��@����,�I}I^�붕QFR��XiH�69̂t^(�e0C! �� ���f�o+��ĸS�(g�ݰ�&C�4�BN�H�g�,�11�P;M ZpK�d�X@�������#0���C���7�g�DTU�C:Ѫ�%R��#IeC ����j�/��6��d�lj_���]/���?�������^�½�������7��muOmu5�Oo����H��Da� p_��i+�vt�3�! I"L��$��WڗF\-������ry�F�����p�N�r��]~>��O3��_��WGݥ����;�,�G�~����?�����N3�{b8q�AW�3ٛ��z�ի5���h-ְ���.�A#���j�� H����x>� l !��K��~� �+w|����13j�������np�!yb/fתu#����'�d��E��Z##C���ߤvD�KL��#b���D �.Fv��5�V��"�%�Nί:�<ٚlo}�_��ֻ��<�}�>����)� �I%���='�\Y��3&�Rd�6�� =A{wQ15J�bkzꘗ�Xc���j4�}���W�ᒋ?��{7��(hc5�X��T>K<Z18�G-�Mv��1E�ƣ�����C�a� ���� V/^n�+wȉ'Xe~IH����kL�p��T��%� ��@F�� �O�\��� )�}(�����Z�����j��-�da6�kc1�Q٣�SiBI$(Z����1��$�����0��!Á+-�o�+��!R� �)����$~H"3[���'ը�F�9�S�~Ӱn�M]����g����w�?ޟU����F�/X���o�n�E�A����᙭��Vwگ�������h�!���c�1��i�������Ȫ�Ś"x���(ʍ����^�$��4�T���@�|Ӫ��8Vv�\W|���v����������d<������?{�b�j��e���9������2�,u�Q�[}�1�hEW�}7�WtLMu�<���t�m��i���~e��W�|ni���o9����B;
6䔫n�r6�(����I�q �2�ޏ����$ίn �.W�WbGd@��<z=��Vo���,�$Rɩ�%�W=bN�:���zn}����}�_��\��{��L�b8( �ݳ��vj�߽֨Ln�>O��gSp���(f�r �#uT%oˈ��Ը{i�_��N�_z�E��?�۵2��$�u���D-�F/����9D��Қ��='9 �RZ�%���<32'�3xx�!�� P5d�&�Ҳ�,�E�3��X�^���H|�����K��ψ0�(M�p(d���<y,�U�櫋XN���دr�����-��B!4:(S�r�IM��<�t,�4�hL�D��p%��Λj'�d-y�2�@�Z�T��=�˪��Q�oLC��l�� F������x]?3���k_x�ai��?���_�uɅ?��]?x�.����y㗥�=��]_�{���)_^�_o�,7Ef���sl�H�,#?�κ�I��iձ)�<N_�r���J؛AG?Z���A���p��^:�\]X�4�o͢OY��$�mF�������Q����O~�#��=�̱�t������ ��֍A�|2�A��qp��i����o �질���8 Q�(Q Y��,�nYa����[7��ƅ��w��ɓ��;8�@�����w�j��^b���3�F��]G�#ޣXTE jH�@�@)ڔ���%Pu��4g�RC��� �D�8.s.�JB-��4)G�i�L�0���3���Ϋ��~�5�o��GY�C!�e�5�+?�M�w{�ǎ�Q��:�?�H��?����$$��S-K�}��.qg@��~cԽ��c�{���^����~��#O;@Q�3�l�h �"���0�F�-��4A� "��j�R+x���B9ek���̋�p�!b��I��I&�U�IZyկ�%�/�S��^K��[�&�-fq��g��l�� @�I�p ��E�2�����)�k�d�kH�Q2MV:E0�UY6pLL�T���C�#� �۔�'�2c�S��E-���R�bh��� �}�=�4�����ad^u�hk��~�t�Trw�w&�e?6Y�ɖ��Ҫ�}1������������/�e������fwߤ;�͆?�5����]�3���ͥ�mʶ�S|+;"p�ԭ�MQ�N����)@��臝I I���Ao���봧�j&�O��NU��e��a7Ų@IDAT|�{�� o�� �F㛟x�m��_�wK}���&'��~Ƌ�����K�O�����i�h��\?.5 ����:N,b�K�G19m~��H'�}�A���_�/\�z�^3��t�m�8��ȫf.�/�{L��rT��pخ�b2,�tZۺ�CHi��)� ����&+�YTLPr Afb�GD�B �S�N~L����3Yeό2B�����;,k���z�ƩS?põ�,�}e�P��H���6d��$��5pl��N�S눃D�Xy[X:�"�'F�1f�G����ʮ�#���<x߉u����< r)���T~���u&&���Y�k+�g�H�ш�!F�CCl�R)$7p�X��O+,��a�!������pd�SL�(����ٱù@� d=��������$0mb��9 @�$�0K �a��v�j���C̊���Y��\��)���1H0�8 ���B�n�!�� U�C��o��:��?<Cf�q6w�p���(��_�jkRM�.O[�u>Ye���s�z�т{?��V��v����F\�������kW����C���� �2��пg��x��U��D�"ϱ��d��TT'�"���G� )����ǩ����e�Z���hc�xU���yvv�����F��w�uǏ��~����ٞ�N�uW�|p��߱���8�i�TU]��D)Q������j�TC@/2<��Y%���6b��g���n5 �+n|�xa�[���Yך��EO��(�f4����L�)H�Q�C�ڬ%ZU��D��Jѱ�N��3����W,�߈�����HS4�Rщ%�PH"fS�,SQl\=�聇�җ}�K^pþ]_��飇�C�"�ڷ4�C:4��g�~%�A����87Jn˫�fQ4��>�w��W�\���Gz���{�����?��-q�����@�����ɡ�� 8ȢF�VM�ģ�,�|Z��ЫZ��0 ��fKfa�2 \�CҰ�.���DU���f���Ks)}!�ƥh0# �xTwƋ��D1y&X���%=���P,',<b1�f2I�7"�W b��g+��(L�{�+e(�rJ��� �Ɂ�b!����7�� �U�I5/���V^��8��")����/|��su�������{�����Ç����~>�5�k�;ºO_��cy�}���s&(���h�ƽ��f��bF��cN�!�ݲ�����,��{�Y=}]&6����h�R�:�,���O��A�]�β^7���Q���5��g����#^?~��#�������zv<fu����w��)��ljML��m�&��i���+h�T�(�"�5��G�kj!l�n���o�/�}�Gh��$�N�N_�l�&����#���h�W��E�!�fY�j���p�WVIe��T�&�Ի K���H@��Q��B�hoeN6fb�!� ���k��g��x~�������|�o8���mV�p-͕�h�25��D��Gk�>oj��$wˀ�1M��|I/��W��\,�|�埯�Ǘt�{���m�z���}���w?�(������� 種��_1�4+.� �#L���k ���(U�y�U24Q�&U�ɼ�,~ZBN�C�F�~�^dێܪ��ϵp#��(r �RS.;���⚉AE���'�F���x �a�/P�"�p~�&�j�����GEkT%��U��/��6Pb$�Ā�O,�KJI�����M� e�AIITPq����f���B��]� N���L�a�pidnq���������|e��������Ó.~�w����2գ��緺����͞��ۣ�9��-����K3��@�� �[�䙾�}z'F;����fW�9�ō�GiPW�~�;ԃk���I������笷�2��bʙ�! �V����G����kǣ{�}�����{�|���82���9�������&����ߺ���i�ݠsvu�J�S�S�(_��zDpŷ���V�%z��X�+4Z+��\�g�_�����}�����s푲� 0�2Z [1�V�$��k��)��ES6o�"�D��Y1<�I�0�j��D��P#}��\�6'3�Lm0k�V3-�@�%�"U�^O�a���ӧo���o��o������3��}C�#_?����ϰ�e�5}!MA�X�ڭ#�� k�|p2i{<�����u���z�h��^��?��'��0�M�M�"�K�3�VK���T7��������PFJe���#���i�� ��_���K�y@�3^��9��_�"W����2̯? ��� Ю�^L�v��hf�y�%�"����X����l�R4�ؔ���/24-oI�3��@���u#N'@&!���HU��TU��O�� ��h�|�?�S���������gW��DF=��Ä��7�[���Àt��dj�\m���_6��� x���_^��3�G����x���o�s��e�f�Ϻ�q���� ����A��~�z�)��c8J�E���5�W#��A�ƿ���k�8}�����Jj��t��������u�����F��ܿ������=_����Ɍ���'�-��~����Ly�V��כJH˽����8}8m<#�U��K"��85�. �m��t0y��y�X��0��t��߸��o/�>x۟>{j��˳�=�;��4�iI�I h�d�ʠL����[?�J�P� �T:Ia g0�@���-�v�����?��� 9��|��̥��� �������͛?wϫ.=��W\��0����1��+�V찿�i�I$�����\�9E��O�#�5��K��ᵣ���ݩ���߽�������⽴6��lc�p��;A�����DAq���T����s�S��]��9���5Ɠ��j�x���?�b+f+7J q�8�Ifr�����b���Ύ ��<(�� 5�I+�6���Z^��v" �±x^�-pM�cej�������ĵ43�4ڊ��P@ah�����A�]R��0�?E+}�+�pkT�'\����y�h�b�~I-r�� �)Ϝ��p��l���,��~셏>��G^�r h٥�5��=~��vm��|�{����dx���{��ǃ�~��@B�}�.iG��(��Pc����@�<�݆Z/�(�L��D�hcnD!�H�V =�pf�� \i��G!#�q�4̩�Lp���6��~�������w����=>b���i��e�ߵ�v�۔o-�s~��_g#ՎQ�� lz��j�2��S�O#���������EM��)��5�>fO:Z,f)��_yh�%��oGK{�x�{�9�pvm�W�G��df�1��Z?�T��Ώ�ړBZ�����2@��n4lL~DM.�b�_�)�OA��� (ܔm~�Ș�d.%0�G�p HO-�m�w?�����.}x�>���L���^�0�_bdn��� P!{ʣeO2p{G�Q�'-��l\�$�q�2���;6l~h8�8���k?���=�(~�.�}�U;B����~SWJ"R��"v6�6A �R�bƥ21E��� s4!�QER(X�@�49L��EKl�"lxeI�<f�:@�ē"/cᕋ#̓MQφ�B�>q4�4b-7��Z���2��Xd^g�҈a)������� -��J�S:H@a��I;O6�7խ�5-�\D%��@�SԹ��ʤ��|f��)�ÂKd��E5��j��>�0��aiXX����ݓս7\��ױ�e�H����{f�af�5��g�gf'ɎZ��>�=y���Z��w��7t)Dm���I���S������(�p�oW��f��}�7��es����O�&ow��<���{��~���3���=�rOv�d��5�uc��k=Ypc�������غ{5�k%l�����#��@���=%)&�اׁ�"���р� Dž��f�]�����s�@�Qñ��CM{b@� �VkC-&�76������K)Xhh�� �S�EP�[cI �@�����:QW����'�M���Lj-�1��~b�TgY]nϞ�,�e�յ��3�3��O����?>s��tq|��d�w�3����S�|T#ONnO�Ӹ��1��h$K]�t)EA]�T���HO=��&_̒������ O=1?�'oz˼�x�{��#'� �4&1zbY�1�?�yd XV�d��b+h�"a$V�,BE���U�� A�1��~����%�$d�N~ET�R�8�17�Hh<<�����M<���'�5�"61�����{ ��L�PK��sf�Ơ��8���M.3�2t���U���LWm�+ �zG��#D�ԯH� �ΰ�a�ͦ)3́{�<(�&D��4S�E�H7B@N]0d��u�� w�\4�/���s�z�}?�����ӽi�{2yv�c��϶ �p��g��E�Ofp6�ֆSt�h$�Κ����c�f����Dғ�wd��YǬ ��y�K��8�Q�^���uF~�}�x���G�z��������w�ϬO�N�����q�Ys�?���fg�g6x��H��O��kq͇R��6���"��29e6-�������VA�|zIQ}��4�mO-N�&ka�U'���#y\p8���A M"+ .��<.����'K��N◄)O�R�O蒰$V1S��Ng�Q�bL�8����q@�xr4^gLc}�2��7��gP�F5i��dhl��ks�'�k���ӧ���/���W������ �|� �be��ȕ.ʰ���}�@I\K I/Y���i+65C���d����w���7φK�����~��6}ӵ/y�7�r�{<ڽ�g�.���Y�T���b+�U%k�p�h̠ Є+(8!��������Nl6L��)S��b�g''K#Rɒ�$�ʢ\ "I����y�ZD��[��˿�m�S��[P�!@V���'n��P��A0�i���E�l�'3��Wb��/��e�Z�Tnj�^.G�Y|���z �����j�-К,3ܲ~Č���&�I��d�\L%;O�t��5��N��qD�EΈG .$��/�q���l��}���~��w]�"���6�?�L���3_Wꈃ��'�@�'�+�O�SC]��-�g7S�-BG�2|)�$ű���F-Tя����I<n�u/��������E_�2^Yw�<���x�d��t�=o{��<�������VoxyukO6w�+�Y�����.��� ����(�2��~��FU!�Eu���;�)�_��N0ٮ'[ !m���i�؊lne4^$�l�~�a"�:Ӑ���4��OϷ��J Yw�ȫU�8��5OH�efX5���UnL�������%��βK-IT����Ҵ�_���Ƨ,/��k�S|q� D݂icc{m�;{��'��̯�΅G�}���u���V�O~�����cX���S��A��j5��� �Z[|��dl ��p?97Lv ��_%�n�O�ѝ��7}��E��K<��������^��.�+T�����UU������1 ̝�Aed) y���u�G�b�(e1�P�+R#TjD$ ��j���ɶRg��JB�&��9c�CR!����k&4�#��M��Aw4A��Ti<�G�E��dօpJ�r�ʠ�9� �hN��$�1k���b��P�J��������͵�S���MϳB��M}�q����3�N.�_�we��}_��3߰�0�Oow�����T.�]6�a�7��Y+ZN�źO�e�����W#19��Tú �Y����2~w���p���%La��g��ۙq���� ?:?������˟|�����z��C���We�'���u_�Iߟ�݄��������#<����$���3�@;�t�=� A���$Dž��uơ<��0,���v����eu���=����q�7�I�T�@�XBS�5vU��曊����~9~/>�RqAhw��Re�$�U��n>z���Z�2&h��8<%xY��Ԫ��Ji �jA�!�C�b�??�!��T2r���<��ư�X����/=���k7�n{����"���:G��4�>��&�w�i�9Vu)�-�cA�Y1aM ��T=��l�?� 0�<�[�Q��?���.��{^��ɞ�~�B�d( u{ɜO,Kw� _M���H���������,I�@�L��N��n�e�IM�%��ƮK�&��n�IN0�הHH69ʾᚏG�Z)�q��/ h�$yzQ❣!�ޛf&Sy$g�'�!pr����LyM�K��)�EKU�JB�)E�#�<�V�d�ۤ@�~�����h�-�6���AkT�[��w�i�ߩH��$�NC���s�����D��O�~[⋏���h����~�eK7������p��ۢ�<��3�������(���4 ��Ԇ_����Q@ɴJ���BQ��G��S"��뫼)��Z�=v�p�t���ܵ:�<p�����B cdq���Sg������Ї>�����)_��Y��gW�mo8�o�ߗN��B������i_���Pׯ:j�a��u�6��|֭Dz¹�so�������~��wH'�ŏ�����2I>�����4s>��<йį� Wf3c�c���B+�7��M�V$@��U��X����#�J��a�U�S��Eѽr� �Ũ������/�fAU�e/��Z[7B�i�A�Y� �c��|�gn}�����;����F��x�u?l�C@���h8�� "������P�4ޮj�X��M9��d�=��}9_m&��+ݹ�'�~��x��v��]s�,W��Vu5b�Bպ��S�S�h�2TA+��a<B�Ek�f� Q\�e���I���� �W��P"D���T1�F =��oNi�ͯ�Ih��XH���)CŢPfW n�J{Ӫ S���&%I˷�T6_���⚻� �ZP�@sFF�Rs���H�2G�J���$��Ҵ2�T9)B3"��pV� �����?i�նK!md�O��^�"ȣ���k�����Ϧ���L��y��o���ᮭ��Cr2a7���jSbd�b8�l٠@�ȓg�ue4UH�iV�Es/�I�]�����3�=}jr����vqY������xÓ�����o��?�����7}�s��!�#'���1����gWj&�$�� 6���\2�w����Q�良��+�Ș��OM <ii�@�: �I���t �I�)��]TNz��Ԃf�d�4Î��y�u�����YV{��h��j^i�ж]�"��Z8M<e�wo=�XR5��g��- 88Z�bS��TT��h ��FZH�D)w��P&/� A.�Ɣ�_�#U���� �ʑ�?��,�5��Y�l���s����������]��,د�3�Y���>g�ɾ����8VBM&��=�v��S���O��g�g�,���4������^��/y��m6�@��ɻ5��Jfa��Qͬ�.���Qȭ�"[:&q�! $�#�;Pu3i�ZAyZX�6 ?ś|#�Zsh�+�J"D X�r �ȘP�Q��(�D�4�iT��6~���,����6 ��DӬ�̅Ş��ZaU��id�p� \N"4�� �e����� �A�Rh��:_�6.$�r�Y4\-���2��'����+���U����zIw�p�>���W�������/]f���d�ik��I��������i�!Ji(>�ή��a���������Qͨ��+¶�/s�5y)U��q��^�o�°����Z��+��m��q<y�w��o���<fGϣ'zV����if�ژ�����G����G����LO3-A�Dp��Rt8���Q�p</v�W��qy�����fEF��ݷQ�%ִ��eħ�Ǝk����9<��N���ĸ~eBy$/�7 0%_b��Jd�3�P���J��Z�(H(��S��2KKڎF�ئ�a���njs��<��TB���s�<MuM����/�l���m�?�y���3o���r#OL�6SXL��r���}8���>V���d4xN�J�y2���<�v��|Rx�p������˻�7aŨy'Jț�R7?�� qQ�v�fugDSL���8���BJ���ark� ���: 5�%��]%�A�̜@K�X=���r�kS�/�J�����0�Ix�)����B#�r��V��'�L� &{��ͯ(Ƌ��,���)��f �M<�� �j��Q�)ǂ�Z�����(�7D��y�kR��$I$r �Q4J:��Yl��bN���0�P�DØ$\���iS\�{.����������=o�z��^6Ow����͝�=�^�+�X��п�{L�]�T-�aÔ���3J����T�� �)�S���$q�z讼ul�:����y���8������w��w���]:l�_���}��z��}���O���YDȸ�S������GưO����ɳK̚�dßjeĴ���16�ͯq�,<!�� ��;̊}���'Њ���ߡ,�vl���u0��z�ˋ�r����#�a���g���B���E|Fq���I���b����5%�D��� ��QTVB˱��'�(�m��¸��_�\'0T��Y6ErU�ʛ�i�Ćb��U�yO�r��Z��~����?��q�b�{��s��j����ݰw��:�m��r�Esp�^�Al�cR��������m&[ǻ�nyх����L�z?4JQ�U��j&� �R٘�6�ʜU�U/Q-35ll �i)��^d^ܐ5ȢJ���ǐ9��Y�$�H���ֆM�"�_"�F����E���/�PK���NE^����Υ�U�����-�PÈ�G,�k�����uUP�#y��� ���Q%�h�ɺQ6_Xy,������c0�%�'�P�F�.L�Z�t��dS���aQ�GZ�T��������̐�d�?k����������{�eK{���M��lǻ����o]anR��ʍ��v��\u�n���~��$%z7�0�T=�vd���'p�W �YOɽdc��7�x������^m�����o_��Z�?�������/y1�;q��o����9��rON�(rf��)k=> 2d�7:�V��Z�bP�K�1�� R;ocP�i�������P'l��h-����.������4�����e�i'���T�A+�ӷ���)Q ��2�����T;�-U�9u=��Zb(��������)4��k�t��I��)�p �5�=Ũ���d}���ヅ&�T���fy������6�{q�4�Ht�������}���|�-lؐw��<�rt��� ,��F�N�,v�؎�(��1-Y�T9���F>��v�sd��ʤ�mݩ'��|��V� f5���(�f�2h��1�&�Z�B���͓��ӿ�#b e���y2��,��DC1|��;� �D�1�B�D?����u-�Kcf���\K9�̔����+Yog��"+l��,w�i�<�����Xɭ���"D���^�ı�hyS��I �Xx �� uLQ�hg�9&���YpP���hT6MD,��� �i����Fw�[ۭ���}�ͯ�12������~euku߷^����ӵz�����;�����^��: S����s[��u�d���},���۫�m�=� Psέ������e��ێ��2�����w]8����O>�����|�S��'��u����-߬���w}�?n�FW����Sg(4��U�u�"�B�_ �aA(s�o�^u�S=@���<�=�(�T�z���ho�9^�9�� sL�R,.,./�O��%�n����im�d:��u�V���9s���0���(}�~���Y旤4��L�43LΩT 3?Tu�c�d!�B�v�D ��vx��LIM����7��Т(�x����ܚ0!|����'���x���+G�<-�v���N̎���ޅ~٦���M{��ԻL���D��>]����Vpe�'�ҏ�m�l�>�u�MW^�Wn�.�>�;{ФX]T���3����-���J��\���¿X���X��p�,̀5��\a�ɓ$���tVѦPE�,6I1\����,� $�[d�7� Q�0o� !i�& �bQ�[�� R���A���5d��1G~<1c�JK=�w���u��B��Q4� 4�� j:�n�MV��� hd/M��� i;��L��Q�$5�)Z�Ü ���k�p'L&FO@���7��%5������+��Y�����;>�θݛ��1�lF7�Vwo]M�{�S�~%�w}5E.�ŭ�4u䔁����S|�����si����ˋ]L����,�;�mrp<�����-�>��~��~���>;�S��O�#?.�a�֏�s.��Ǿ�vJV6=��Ew�wsq�3�:q�G�D~�"����]Zڭ���M���m0����;qCy�y����{'sб�i�o���1��,1� Pi_����OZ^>f�G��U@�ȬP�����\)�&I�¦Y>T&�XFu���1RiI����,�bU�g ����:���$�!D��KU�Y�=��,ph��������Νoo���n�����F���:�@�/As�h��Th�_����-��j+�Rr���l�P��96}����4��]�� ��>�[��Ou륆�N�P��֊��DOM�ճ�յwڝ7�����$E�����,�Yh�Qƺ%��I���x)B�\ʪ���K�I�� ��ȌZκ��\xA�Z��z��,�U��L3hU�-qZ�ht�L�.:a�_ol[v���}�=���M=�[=H�R#�$@h 6H21 ld\ ��������rQ8�# %N�.;A.�cW%[�"F�h�Z-u��FRKj�[�V�^w���{w���|>��:�=�&����~�7��~k�k/�ű�� <�T(�KSRX� �: Y�Q��/d�L5�t��(D&)� �a1�K�+��FN)iC � �gt�K:��ԾWp�i��� �̝�{���@�U7x���� ?�����г}�m'ݣ���u�P�9�DVd̠wߪ0�i+.ʽ���R.�3�����2LF�^��zF���5{�چ�s��p�jǪ/����'�sW�7� �[����ӿ���_ẕ�����-�䀼���}�K�T$����S��|�n��,~$ YD. ��S�J�݄e3^�ukIq�|����X��X�z�(&ƻv��y²k���1��֑��dz�) f��M��F��jQrҊ�͊-�nl�6)fR��d�:5d#/"2�e�K��ٽ V��s@hY� �W��^�� (�\>�«R�FKf��+�zR�⨨�2;��MB������N�g�'������נdN���N��Ũ;���F0�ȯu�� �ui��������4�9R���)�?LE12~j8�������Sg���ܓ�-� cqLrkr�Dkx������k�Y�FTC@ӻ��y4��R�����C�P&Q������ɓ��g�%X��-�Tr��@�5�E�/RhAF����b�k.������� ���~TAD�J�h�&2i#or".�,X��0���5���I��k�"a��$��H�j .(J�tb��� � ��,D��@B:�F l�9EH~tiܨv����3���0�r�{����S�m���N0��φ{��ӳ���{�oŏJGn�-g� T��+�$oG�}>�2�A1H^��),U��h�����J�c���5=7g~X�v�O���J�����ݷ������s�����������n����g�Ǖ^��pw�g���\�t�Q-�|��2[�y;}�Φ&.|[��/�3��X-o�����2���6��0F�k�� 3u�7�zm� �[k��tk�i�zc��%y� C&E� j�$B29���%X�w3�Zo,]��2$��%Z8�)��%�0��o�"�a��jr4)̫8���T���c֫S �]�e� ,%@y�������%I�{.����L��V�l�"�G'��>����29��J;?}�.y�8��e���~Qu����[�����[5�ֺ&�(�ê��6���%�!��̓{��8���펹��t�٥�W^V��r�(W&�z �R������ft��\lZz#�7DS�������Ġ�G0/��ժ�k�"qU���>~�+.��ZL���$�T���/J��\㐕�'����ZBC�� |i��Ώ�ңO��&�x��Hd' BP�nɌ�N �c� !�O$u�r-l8��JU�F�$�/R� �E;�@�B"���.7K��Q�b�g�/�ӱ���q�/�xչ�Ѽ{��{��ͯz�{^�5�}�t�YDkY��+��s��������|�+�%� �)1aE�fŝ��X�9�},��>�1#Ć�naٶl�ڕ�?��?������߽��g. O_�-_�{pV{=����P�|8I��������t��8�S��͕9�C���@��M7����Ȳ?;�Ik۠��q�#JRidt,��;�qJ������p��C5��g^�+�g�(r4�Zg�>�7�ñV�) � �0��v7WX7�y+a�2y�^�3&Ɯ=#���EG)��UY"���=� �Q�Ȧ(���-�S�-�qP��5�y��J@��M��R��12��j�)IP�W,�iL�d�;>�������9�/�:�k�_+������cD�R� lJ�O�T���apă�dF�����8�&�m������쯿�ev���T��lX�u�ñK�T���s�J��|H�Ċ#�u�X谵��+���0@~r�c���� |z1P�lwS�Zn��b�m� �IFM�C��%���W�re�.�u\R4��^)�Y�&['_�_���%�⯁��Յ�H���oA�� +��+�Ƒɋ�$�� �� J�� �'9�OT��ʳƿQ��sY����_�Za�Z?�Ř�s[�%���#3O��F��t�'�b�������m|X��_t���(P���YS�M(�i��8�$���6�a1��k���<���U�Y0u?0�����⅋?��~�'>=�?�_����q>L���4d�Ig�E3 oђ���p4v���t���|~��Hc�Ti�<�m�B��A��r�(0Qb�cM�ɾ�%��o���0��M��f+k�U ����<8��j�1alk����\B70�� ��&��OC�\�e��!� [� cHV36��Z�#p+����W���x#ƒѹ�J l�V�؊��%�U7|��ͽ��؎KX���P�-xD!i�>?��#F����C_:�7�����\a0��#��Z�^��&�Tɫ$zGE��i����Hf�Ec�7lȏ�����4���h���K��Gg�|���r�̙K�y'�\f�6 1idZ%�x��S�ޔ��ad�s�>�.�� M�dd=�@������������ဪϐ�[QY1�k�$!R(��8�%�%3��<�B��� ��rG;�?�5Au�4A&SҾ��%O%�b���I/e��g����]��+�$��u X�+�M\X .�@�p˒�t�F��� P����J�Z�5K�Ar0��OMd��������������6_}��>��lx���n��ڔ<�k�Z���(�,�mg���o~Y��F>��)|��J�M�tGrW�zeT���㛮�}���.��g�B�������9������_���}�+�yq���K����a��Oz)�3�nbM�~��)B��Y9��YpW�sk'l�h�f��I���![�Y[��-�t�-v��;�c�f�i�,g�k����hܳY����8N��iT�G�s�za�j ��DFio@�Rf�4[��3�ͧ]��X����/2ي���,3$�A|Z�t<a�Ԛ�a�ȱ�)�^YnE�E@P�=5�-H4k!I�$�-�, 0��&2��� cx����F�W���O���<�5�f�B/�\à�0NW��d�V��@�P���ܰk9���;�N�Wޏ��Ө��Y�e�A����Mgν���dd�v�=���WѲ�XC�/�Bƥ;�DFi S���;�9�b�GĨ}��(�&��b�nE�E��MY�� q��>eJI�h91AԒ�.��HR���vo�$�y�Z��A��?��G�T@"ç3lĵ2��&��H0.R ���W9'I��� �<r' 5�t�4��l,�ro@�%|�l.KI�ulH"�Pk�%�#��x��%5?z..;{◿V��u�~��7�֮?�w_ƹo��vg>ց�Q��G5����aB�q~O�iԕ�jU6aɭlZ&�jU���m�v�^ޢ�(2�M����d�W,��������g�-�����˻�K��x_��wp�93R��A�]0�v,�4���pԾ�2ú���sj~v�ޮ��h�ݑD��@���8��d�o ބG�N�t<c3�ű-C �~{7U�M�,�ү�<�ﵭq(���W��LG��3���w���m�"Q�j��2��K��t, a����T�4���#3��#����^�?)t�<5-��-�)j�_-�2����0�~�ѓ$�<+ڇ� ���)��e����K�dֳ��O}rz|t��ʂ�K]yB��#?͞�h�;H����=�O��� ��Y ^���p�;�6 C��ٌ��g���ww��ʳ�X��(A�Ra�^}�����QӹJ%H�D"�W�џ�(3x%au�Qu�IÄi�@2!�y���Wߕ(��Xmɂ-XMÿ����3�02QC��{��k�� �r�$�7X ��DH���6�!�A)����ʋXsdA 4�,��]�+��l����K�\��ޒ�a������T��G��& ΰ+o� ,yq���"�Ӧ��������ٿ�����8ڟ���Μu�w�#g����T��V����>�%c︻�b�M� ��p!3�&�ЈF�2��i�� ����p�+1��|�l��~<�������?�Wo���g�3�G���6��FOעӯ��&�Ml����S�S"���o �O��w]?<��=�o�4"�)�(]b�m�бJ��@����Li~i<0��5�hb� 4u ��� w7���ֿg�˳�'7�"z���L�:K�� ��t����v惶�n�����W�䃨� ;�$D��-�[pY'@[x"��Do=�>��(d�G���J�H��!�R�>�F��up��V�w�V<L�G���U�b�%T��������v0��沯�!�g�ᯟ�so���s�+5Arpn��&��4p�����z��u:$hY}�]�<��HG;�M@����������w�r���탧�9��A��w$Sh,�6��+��t�q��"PN#�Z5�(�0��+�J�LF���+$R���2�^����e�)�T|��+�JL�@�C6#Oeu�2�$�y��A͝�D|����s�W���ދX�P�Z�Du��9ÜOɂ�&�U�$ ��]Po)FX&L��FTd�I�'~(� \E�$)\aI�h��/��A�U�Uf�-�j��g�}�0�l��ߍ����왿����~x>|�CNX����J-�Q��Ef+H8�"V��C���_�Q@�΅��U�!�����.�iL���3��9��pg�4f����Oևv�~Ͻ��m�w������>�eP����ޜ���T�j 8�A0 (�ز���tЂN�d��G/��?�'DN��k�M��Z����>g���G������%�>\�=���%��.vD_�y�=��Y���_9��(:��13vS�Ai6<�V0LR�L6?mu�4��RĢQI���z�]f���<@IDAT�AӐ� ��G��X���T�Q"�R�ԣ�Ҝ����J�U��R����ڷ��$6W���u��3HR4Ar���P˫8���v�}�K/�Wo�Ŋ���|��f���y�pJ�o���"I6���ݍO��_����'�9?.K�|�J���p��7=�ƛg����S�=L�A��ZyP��/WSs+XD7}�W_.��HQ\(KEx7v�[�'ãƆʤ���ioj;�nkgz\]�A�p:�N&�������/��;��+o�g�4��=��p�o������ ?��=$2��� ���"l����,��D��~�U,��+��=��zvt�_�ǝ6 ̆��\+ �c�/v� .�����d}d�^k��̱]'�FM�8���?�~:��}���1���Uc}�(� gf�4ӥ]8'�% �1_I�,�G���H�[D���~T!�+Ma��6�����7fn�h @�Cv�ע,��X5�U�c��o����p��U $�$ 1�P#��0�S�&��\&-���+@�d?���g�xK�0�m��%���0��jƋ�A��s�Z���U�� N�1�a跨M7��3?>:��O@��Hj>?�'+�x��h1\��@X����Z ��b�Z��&���覀���(P=�B��C�\D.�W��$�NP��� ^kPa�ޤ�^DZ�'/ ��Ŏė,q�.ޯ2x5���} ���< �8$$G�J���?���,��]Mc��Ϙ8Tn��������j��0F��Vye3�K�K,�-�\�d,4�"�2i��4p�������&&Fp�E_���s?��nmk�8�w�^;3��;����[�3ɓA@�v�?#�������~|������(%ϖQ��cW䡚E�fu��X{�i4�t;��"ۙ��X�����ev��o��w���1�9�\v/���z/�ҬYg�_zi�2.Z_R]�h��,=�J������<><��W��mLf�<m�FJR��6%��-[�Zw����2"��M�Z���IwYǼ�Ň��L�x�s>f�����ӵne~�V69bu������˄xu�Ml��L�q�~1f�$CC�CTe6))�Ip� r��� F����yf�=����G��p$۵�菫����@�0�P�H��"^�����냛PF�bo�<�3��2aD,3z��؟=�������Ov3z�uI�Q]�p&+\�C��!�&w�@�}����(�Cw��L�_>d})���͙c���q�?9�������/|��~˄L� ��js7 (y�(E�4�>, �^�!֫z5I�?�і��C���jB/h�����KGE��@HT��F�a����Jt��6�B,��z������bpA�A�(�1Hf"i �m�TY�T�\�u _%��xS��h�9�N���/!Т��TB��5�fe����WI��jk�l�K�̑9���l����l��|�s6������ͯa7k���,��� 2Q��G�TYj��į���'�E.o�c�K���"�������T2'�G�[��s6����9���M����N�⯿���}b������v��}x��=����k���0�m?���E!�엩9$�i&at�xT�U���3>42��W��|g�K�?e:t�bX�����k��X7w���)�E/��i�r%��q����W x� Z�S)^p�9^�h�9��z�m�HVd��^�Lp�u�����g!��V+#��ܡ !s�â�F�s��뷺/>��s�=� �J�A����R�i���y��!a�AT� J"��4������1��HC��^��%��OJj����l_���K��t�朷\8�-�Hb�Q��4pF?)����2Y����ɖnt��]f��_�9���ƼY���FN +�����ˮ�uc{s}ߎ��l�OŞ�#�G~�<RF�T�j���� ~ne5WA �����V���Z�U���H���\xRJ ir(ڕU~�\Rq������s�#Թ_M)h �������"H)(oK�\>� ����s�L�1y]�RU���� Cc+ ������� ��8��/U�THs7�0���_��}�-���GpKB���y��!0���@�P��@��6^��<�C/m�x6�;�p�I��)������,�!m@�hw.���s��H��ƃ��C Wz��խr��ZQs"e�]kKǟ�?�Z�v��o���v���o����|j�{�]��_���]�}_�M�_�U_3��!fe��:� ��G�ȢHi�"^���C��3��>����o�U�����d1�n,��;�� }��i{������d+�H3P{���q�f��|�_�F��6m�v�z��{�8&(sAn/���ŶEg~$�\r5flaۚvHg��V�f6�Yʋ�1� ��z�����ы���D�ň�L~S,W4���a3]��+7��[�Mei�� w�I�D-hI5���F+M]I+�ۺ#�1�泃�?����w+��a�gf��2ҵ�GodÅw1�W]~�v F���F I��ۜL�<�}�o1�������D��ܰw��7�;7�����L�Q������4�_e����������"q��r�V\�D�[S4,BQevX>�R���}��h&M�w��a��0U�� F��G�VP�0�\fW#�-ŵ�2�׆�-��ţ�.Df-QK&r֭�(� ��V9�l�[��ˬԕ�8��5�����H�M�$�aĒ(���Uc�DD�k��,9). 1Tg��� D��L�T�?����cHֶF���g����B�{x�b��:$^�������hB�q�����Y�KqB�:oՕJnj��O�X��y~N���&m'�����?��&�wM�_��/���_��'?���+å�����w�Ο�����j �h�}gV�J�|�SҸ�Fq���2��r�<q:W=���pߗ�;� �u'_��3������ Q?fB�ҵ/;��!L�cY�5��Ϗy�qF�-{h<��,�<�=K2��.�X|��\��b���!xx}�o0�kok��D�~ܭ5� A�W�ԦsOÃ�m �����$l_v�L���������M��E �<�ay+�&�S2���@c-n"�JjBSf/1��W�2�$,�����^�.D+\Pxs�a�Zfo��o��2�M��v��Z3��� ���X�@�ur�!C�G��� ^��q�c���i��g��ki����������b�]qȕƀ0�>1�[���q�s,�x��r忲ɢm@���aT]�vC��A���%E⨬)Qx2���lW�4iEF ��P��5$�$X�[&>���2:� ��bO:xZ" г��\����s׳N���1^� @7�+>�f��&zl ���+�^-�2���_c�"n|.���o�-R��N�աy ||�t\z�JpE�I3�xCP�i2�ӥ��W����{����lm��ϟ~ǹ��������;��/c�������!��u t�s��X7$q;M�Qs�V�!E�?�c��)��t�j��� �d���ڜ����驠ֿ߳y�{���O����O�w�=^����z゚q�v(ÏF_�4ٓ��"��bT�����C��fCT^�<8���a������������p����Q�� �h�s1V&�]@�z_���q���NVF�ܛ��3�~�� 0@yO�[=�(��h�C�z��!�>vl��j�MT%�3;�� w�_A���Nu����מ�����)ie�F��n:�}��a�H��LQG�N�v�I �������l0I�R���x�bT�36m!��6�"1RL����Ѽ�����H8|u�iL�9�Uj�]&���(� �QIh��7�z���9�ֺ~�����\Bx��S�v����)j��d�M�cf�\�����n���d<� �a�^@�¼�Eb�!@��'%Uipˬ�HE|d��r-N.o�Ry���DL(b�J��8�钶�S��]�.�(dfE�$�8hP�P�R!QDD8nx�>��@�,gyV^���"J�Zh�B�8�=�>���2w�Y��l,��B�LƋ��P 4}��6�P�h����R V��+%f�%B�@ �E�Z���Q��P��u,�'k|�k�k����Ջq �;�?���l�A$H��������M�B-yj_����� �HU�.e7Uh��|��t>1]tP�U [X���?_���Ϝ����c�>����K���!���1/y��'M{�f����c�79B��2h��R.n�H��T�7(�8hk>b���Q���~�U�k_����~��ѿ��U��ĥC ���=����1":?�dB?�L��_Av��n�h����}k7�i�\'��9�roR:�6�0?T9���e�l�Bf�_kV?s'LQ��1X��nvv����>qb�֒��eg�h%��(���j��%�XB�)�B �hw�ar����@���K7 bt(�����6��VU��;ྺw����e�/�� %F5a_l�t7��>0˽~�Q�?�1��M���ɨ{l����E^�:>9��/U�Eo�c�X���+;cց�^|�-cf�(4&"�%����8�VȰ��[�#AV��r��dϵW� ��Qn~Q�E (m�'>�M�~O��,F�Q&F�0� ~�J�W�6>�|��y�I� ��?Fz�������/�!c��.(�� ��LHs�l�F~�a� ߡ%.���I@E] 1:�.Y���V���W-��]�}J�����H��ᒈ!D1̷�r(� 0������i��n]ٛ �̇�=˿�DI�sʁrL~kQ5M��O8� �r�J"uF��%b� q�7�FWeZXBl �����?f~V�������6��<����3�w���fk�{=��X�m{���(l�q�IQZhG�bjx~��a&¦ 3o�$!UUI\v���H�砈�{���������[O=o��6��?M4BG�Z$�I w�����N���N�vf�)M(�&�Z/��'����+� ���srI<d��?�W�sGLp��Њ!�Q������dut���ٵ��_�8mO6���仪�d�0�O ���ҿ�L ��_GS Qu�8}"�-���1_��&g2F����_��e���c�4����5�bk�s>���� d� Ď��7�i@hю2�fl�x��������d؝��)2�.�g���Уn��l��3g7�֮���� ��v�V@�@�T��{��TqҢgӛ�|,E��?!:r�U-)�N�5��\���IRS�B\<��(e1G�4���aL�l�j�U���M�RS���2�fJ�J�z ��QXA�Xu&��5�%�]0�\�$MCH��'(� �D��ku]�&��'獑��!���W�L ��b+J5f���vR���/���7μ�[��]�>5�n�8b·am����Q�y�WEU~�^���sE:����P���1�VKg�Ymċ5��t�\�M��y�ݰZ�a���c?���<��w� @��=:��t���۞����m�.&+y3&�z�X�4kJ��9%�e6��A�T� �����A���ׇ|�p�sTY���d�;y��Y=��_��Ř�������ͪ�#��ai7S@ d{q��LD7y�x�)�-�o�#(op����;D���J���(���g�Ꙋ�����$"ln�^}�p���GV��]��R���D�L�6�����olUC9W�����e� �p_pHϘdM��$iE!���IW�[��"l�����V�r�V7Zs7����9�y�%,Xy�;?��K�N�c.T���п�ۄ巎?��N��k�Y^�c�� 8J�?��_�qj��6�Q���Z"�V�)yU��Kե�W���@�lB��c!.�˹�B�F��{&�8�r-e�q�/���Z(()��8�����%>R5LO��Z�rsO��MN����(c��"D_$�O�_"���TQ�$c�R���x&Xi ��mzM%,�����'��I�+<$<J' M�%���r�R��H%-����Co(q�UbB�3ciW��_G�������_@���',���?6o���J�Di��dx��K�U��B��BY7�6b��F�'���tk�O���JV�ߠ�t?�6�ɭ��_�����\y���c_����|�� ?~�у� O��� �F)-�%�������a]�M#j��\GU��Q��Gx��IĮ�6��ij"~��o�v������@t/���'������%5��e?:�C�.���i0h m 9]�W|���g�� ����̙���������[�aX@��3�Sy����5�7u45�M1T@!NEH�{$����6~���k���g[�3����+�c \Ų��Nf�=��|p���5���X�H����q��AhP�̖�����K���^�M�tY�b^�1Z�r�6�;�1� @�G�~8h��0zK���4��������5p~��҇��=����v�h��+����a��&k綶w�>#xC9v�d�iWmE�H�S��S�h����|�ƕ2P�g�˃[2CW��+�G?l��_!2BȠ��]�$/�,���D�q�VO���Z6CO�g=Z�QX�a��4h�W9�O����ĿPFĊ��&,�$y+�$�Z?� �I�Y���(�"�)ǒ��WA�d5��XS�Ȁ{s(F�X���vRU���7&5F�y��J���l���ȼ{o��u�!�$kpdF�N�(j5�椿d�j�_���QSR%������a�kI4����c�s(��>�P�I���U�������ݟ���/?<z��� ��Jw��;���ɜ�P�yN�a~lI����%C��R[��G1F ��p윖n�^Q��j+����w��߽w������+�}~p�tlqz��ԗ�@i�=�f�>-A�hj��{�kSڃ9{���=�;���7/�h���ԯnLV������>��A�d_�il�= }S%��ʋ�f�KV�B����<���:�X������|4����6�n9K�6r�3����EI6@R����z ��6X@@eX�b�1¸�(-8�� ��A���"�P�pqCՂ�g[N�]���5X�̚�9��Y���aA�р�W�m��|v�2���:����JAI�ή�E�Tr�Rr�ӃY鞳}����� 2'r�� 2ɲ�]1/�U�6�Ko2Z^շ�:>a-�X@��_Q�Y�4I(��Qi��Fz�@�C�(aa!BA!#&Q">�f���!\T�ɝ���]����5��-�,X���|c��6��K/9��RтbD��"����,t��j�aT��a�IZbp�j��B���2#��>�eA�a@J�h&�!��<�l���v���6��g��B�����������x��9�Z�4RB,�)(�������O�Q�f�Y����!h��ܩ7��g��=��[{��[�����z���G�t��������c4c��z�uǼl�l5́6�?�]�#��s��c�d��)��C��L~�z+�j;��dF'��M���lـ=?>�v���?������{?:��?�?�2D���I��;g�S����8��:{ô��N�_Ϧ���ѭn���j� .+��sS7�O��]�X%�|�jj�\rb|�$��G�a\07�I�ݷX�^���� ���k^���w���3��̨�JW�)FZFHD!<�ZԆ���ǭ�Q�&"^u��'�l�z�R(c�Po�(�&�(:&sb��� A��8\jѡ� ,��۩ b=#z�]�ⒻZ��K���I��/D������8O�9�j�&�#�@dTU��ۋ�i��>X��gG�p��Yg>V�PEZu#�ťL��Ũ!�T��zQ^�)N��r+� ����D���&�R�El�� �R��E�,i �ex�&���IdM����Ky��C�$��� @1�@P�1��O�y�8B�ņ"_sN�#x�(�3��2#@e�����v4���P �d� �j����ʻ�a�Q<�$�%�K\���/���x5�������C�n�_fS�o�sO���1�Y�1�G�肗0))���Z�7�K�l��s'i�[N������F��/��һ������v��f���pr�W�8w����A����(m���~C_vR�.�#?�p�S�ڄ����Qnb3�_&�qk^�5;��F��䍯_�����C�v�8�y��Fj怹�Ev���tc�����Ϊo���K�л'��=�s#^C��m�m���?��g:3�A��q�m���~B�Y2�+���C��oo���=�5��G�+c�Y#�-8r���'�r�m?��/M1e��H��4�G�@�HR�S.�8I�>K^���e�@�hp$K���&��ǕO�H�֍�鲐���O��C:�RN)��u�kI��n+S;�t����&h���_���bϻ!lf�?��P��J���X���n\?�A�ӂ���MdWlu�%&E#<tzR�-�/@���?a�UX!5?��9Rz"�bsOZ���D�$�kAFB��2�T2W��!q�B�X�$U��O���� ���Q�J�qK��2��WXh�)D6�Hi�[r@$�ȃ���/ ���阖F/�:B����(KֲV3�Cq�q��&�UJ�Q�#���fSf������·��>�����ɷ��<�����!���܃���V��s��Ԍ�L���$����#��C��>n����n�T�X�Q���f�ө��G������?1��C���?�e�gG༿ꯇ=�=���BA�2ۊhƫE����z�6�D/m:PU��K���� V�V�J��.r�N�5æã��A������O_���?�g.�)��cp:(T��3�c#���,��[?&s����zl�����M��S��#�a�[�a�Jα��~ė�����Gd��=3d0hG��,UR�%�5����������;>8�ٛ�:]m��i3�Q��LނrђyNCO�gY I��:+#�H\C�O�\�������u�/a�a1�(�ޑ�����OՏW�l����s;����₈�(�&���w}�6��a��n��.���ag�vs��E��-�h����tn�Fݧ:P���J �SP\�)ɕA�Ԑ"�R$�_@QXpr���P�&#@�$Fԥ��E!�1R F)��?4D%g� ��p)�i"ʂ���4i�\����l ���U1�@�V���q[��,脉D�ey �PMB {�4P���S���Pq�k\�D�FT�u�� �Ѵ��G��"��Pw) &�~c˂�%����7�C�1�n~�ֶW�t_�WpP�������0�?�1����#4�6�ӄa�[�S�j��|s�3{~l��>}�>�Z�r�����c���Ͽ������pg�ɏt��_v<��?�0���%���+,r�-�Sa�niBT�9�z��wE���ȴ�[��;�!�1��A�1�2k�f�Ov���Ž���9x�_����8��?�t�B����{F�<��[2�R�Fߓ|��qޗo��qO����~��r��]��f��R�dt���h�>���Q4M]��)?����K>L��nI��#��cENX@^_�Oo��y��ٞ�~O��?;<�cXEe��&���18���Qip����F����H���D]�~��0.uk��O��V$�If�Q��"Dn�4��m;^�S��5d�|l��'��|�������p�W��|�B��i�=<�r�����0ܭ �r�����=4�{_���i�s��c"~Af�=UA�ײ١��~���d n�D,O���#�QA�3���Be���6$��-���j�l�X!r���N�x�����h�@����h�K2��t�6 ��֒�� ��\B�#�Df�L���l ����3��+!Wi�� 0��)�_jހ��)�zU�@zA���B)�&I�p�%!�8h��0��(�Ȃ�깈3H��6��j��-�V���b��� ��'����5�뫧6��y�K��c�nw�u�:�S��Ȕ�TM�kZ��$���x��Vz��R��@7�Q�����!�͙Դvq�vmb5'=t߶����3���w]����3��������=��s�ϡ3��sv��W��z���(J}!\c�Z��[ YT�@������Yc1tQ�\�#�A�4�YM]4O ��Il�����g��o���7��>�ؓ�V�9r%�����A���L ��-���Dz��UQ�+·F�R�$Wnd�c���CtX��U?�j��2�wO�p����6C/lC&g(� ol�7��_��7��{N��3��aS=�����kOK�5�A���'��A�C� Ys��<�61�\)B�UY�)c>�$� ���RX�c�]� E�܅� �跴L��$_�6wq��nl��yo��6x����i �>c.�#������W?� l���x��"��N�e��KS6��f<��bh������n�=���;�$�m_�-~)#�~ �r]Mk�3��Q4��|��\����r��Ԟ�"[����ȡ Q���idjB��'ڔAd�!�a�x��p�E'��L<-T- a�7]��(W�Dג�#��A�h� q'MQ�@AԒ�l"p����a����P�r&e���~��HA��5��J���RI���q ������I��������Z]��N�y��?3�>���XPJL#��e�4�U��O9�Zkc���� Q�~�P��7L�+�VB�{�86M�P�����mw�>v��߿xe��6�����ȟ��?�,Q����n0��=�i�WEƉ;��G�v�M<j��U����(�ߚ�$GJ�2Fq�r�}»��% ����x�pt��v^����7�h�����U?��@[��b�#f{8҇p^�e9�m �����q�1�+/4S)L���]ݔa�|���ͧ�AW7�A~���?^T��%���ܒF��[���5S�R}߇f�����8䪯��v�L>FKU��/K��,EA��'�'�¶�'%���i�7jVeΜiW@�����:���!��6���VZ������Y߲}zm�º�xJ.jQ�Ѱ9;4��c��N��<�lR��W�14Js�����q��~���W��8y�SH��x0����8����l^�KpӨ���(�hr�Ц�eh���d(21�.F-.C�j�G��^B�ᔇ()��K��[=��&��4�^��T)B�o��ՈP\�.4����_�&cLa�d�(w�b.���� (��2X6�� .R��K�8(����<�}/D�T�r�c �|�!���)RΫ�����_Y^��OO��;N�[��?���_t�]K?[�9�N6&Q�����[��A������������}(��tt���Yot�l��w�v?�9<����ua�W��X{;�}�����3?���ԃ�����Ë<����f��yj�䨌��2Ҩ Ǜ���!X�qБ��%�B��ݘ�K�4pN�(��P՜���3����y��߿�m?���{����g{��#�B@�5�����-��0�t�f��o8k�[;ۏo�iKDIH�Ϻ����'A�t��'k�C������p���#�u6}��̈́���3������K'����=_b��������;��=Ǡ�8I�qL8���N2�sc'����D�NӚ"S�r��D9h��5-Je�� �"gu#��S0�4o�H.�~ՕpDb�ƕ'���g�gu�K\��:3eщ�R ;{�H����� �l�!d)n�<%��ڭc��_�?���3�u���~�"s�>ĥ���eP}�q���\�X��R��QMKd@��W�J��\���N=�X�Tϊ��jH��Q !倧8W���%�M�>��?�!�z� $��$���$�@e� Z������g����l��j��2,|�4�0\/� 6��D+4@���#d,����p�ؤ2�.t�!mPֈ�~�%��e2�N:�I{q5�f����U�M&s�1ar]5���D~�1#N�^on|�S��cd�������Q�j(nCɢ�@�~w��܋�B9�fX��E�]~;T��]���0�����I't����8(���}��c�������2;���w�6��n�PXh���@�ݥO C(e�?��Z ��R$��KRMG�i�J�/u��Im0 &˃p)�e�6�"g�H7L��t�K���⫿o��7��sz������M�;�����Ϩ�=���Î���Y����������H�z��vӝ�t�:�q$���^�c��l�X����.~n�q���=w��W>��+�/��XE��;��\�Pb�ZJ&J�b��������ʴ{�q��9r�(}��Y��l��(m�ғ�D���n]�;�A�G�Q�<�b�z�ȹ��6~�"��O^�}=iư��k_�R�G����Tv��6\�=��炇ɷ��(y�����6����K0��8��䪊�On\Fa"$@��x�F�cI��o�"�E(N/��ME@K��R���� �l�fK��:�Bd�$��4L�q�5��JT��۲��Dɒ�]�%� �L-�'�b��[��.Η�Edy���'eA;2��Qq},�.�'Ģ�W.(!&V�������ſR{��7Z��%�$.N�n�گ���U�A�S�����ֈI��%��>��!#K�����p���ӫ��~��Y�P�3�Oݶ��?e��+�f�0�?VZ�a�/��n<���a�9ٚ��(X�z�(f�%8;bv�'��W����7��?��+�_��5�|x��Ǩ)���l��&sڧ�Ր��%f@�65��h8Q���N ���AM�E�2�x[K��'ϩ�t�5�bS�����J��6�cI�{��2rE�w4��<�����������{��C���rsZ��3{Ӿ��Ø7��S�j�Mv�u�a����S0��N�8���Mn�־دr\(��d�d�z2����L\0���iT�˘)._zǭ��^���_{��<���G��C��a�M(ua�h P��AZV4���d��e���GF�ɓ�?b�M23�e��h6L�B%?��c�-R��Mf��4��a�����sf��3��r�]g����K�o�$)Jք]@ w��7�(gL�Yr�A٤�w������O�b6s��v��oyL�����[FOQS�RІ�ȭ���רg|�ӯ�� ��U�G��"�RGQ1.��OQ�LJQ����.��'��B�Z��U�$�)�N B��j$I���6�������@-/7.K\�b�Q)��r�Ybhq#�Y�V��@r�����?w��#����g܆[�$7r�2�0H� ���hM����$�@�o�5��{����B�Ԁ����6K)j&�B�4��&d�>Y!�c��̕���Ʒ�܍�?O�������;q ����A�!�+�-a�B"�j��?F?������_�5�oM��a���h���]��f~�&=�3J��~���<鳛�� g47}�c[U��bt�C�����Ť&�+�i���M��?�K�E8),Q�08e�n��̏�H���gEt��ᙃ�����������Wi�K�]98s�J�"�6[]8ߟ��dJMKMc� �V�r���\���9;%+/�V?�Mv1s|֓��b��5�)G�M�:��I�ϵ���n����=��������!M�(G��\�K�X�I����I߀���Q�$5�e)��sD�XBՌ�!��Q�$!�p�c���Ψ}W��~ɴ�h���B�6��cp��x��ϰ�V�w���ID�2����0<�9.FЮ�?3?�� �;�����=����O��^:g�L^�PT8Qnj+� �!^/�U3�����,��nH�)���Ҧ���o�J��x�(vŐE�5�RM������qK�z�#�@� R��m�a��$�d6,D�l���qX|F���J�������p�x�@$��G��b2y[2�Lj����l�L@�-ECq$��/��8��:HZἂ���J�G|c dA["�����%CR��T7���[1��=���!�l=��[Y��?��Ϟ @}-Kk��M9�9Q%��l��j��J��'��"R�R�� 씓v�9M�6<c��?�쿳~��?��11�͙j�|��ģ6>��?v���l�T�v�N �5��+:�:0�Nt01����5 �P�Acg�3�TD:�Pd74ў�FLr��Dej��n�9"⻌��������ѭ���w��g���#������ZnRr�������x!n�+���;L�t��A��ı��mp�_2�l1��K��~¢�Q�=���5����{szt�-ۛ���ģz��K���,��#���;4v�g�ІkTii��h�l�hT�6z7l-(8��Q�c���QVO)��(�[8A Zh�y�+����Cy5������T��� �;L�N��C��K휙7�c���kkO�/�� �YؙSN�%B[��d���0yu�Ak���Ο>t���-S'��R���9�A��q=�DQ�(Ai�fEĢ���Vj��(�"���KyĒ�ғG9�A�ꐓ%�z#D��d�,�T�-;�a��\ n�4�%.t���i�D-�A�J���������{� DS|��M�3.�Z|�9��i�E��Gc �J�t%�2(˽Q J�U�nSI��^�+���?L��:����ń��KQ��9��f�3�\���8�8{�[[[Y�|����>;؏a�G2p �r�k��M�2����p���4m-���C4uϷk nebV�Μ��f~V����ۍt��#�֟���F��^w߇�qп�=�r &_�j��ř���S Pi����S8�k�j��8�2U�5Jn���i�V;����=3 ,7�If�T� 5�i0�v9� F��d��ٚ~�oZ[�|��<����G3=b�����a�}���x!��.�u���Gw�"��UY���^�;���3�t�ÀVfn�����Eg�=�NaȦ�����-�����'���k�~��g69ǔI2\�.]����u�����b^�9J �)2Q 7�Ƙ�B���$�ب� ��"^ T��s�R�M%�$�lR%!>u�+Nr��I���F��a��c!�4�[����_:w���{�ӀԪ˼p�8��Nre���̱?����M^T�~��Ko=��h��K��(AlG#<�Ű�S��[�-_�C�6 �����Sk:ջjT��@tF..#��q���ڏ�x)And�M�X#��r-p�Y��Q�z�j�\�AldE�p5�嶜$�P�iO��"A`\�n�Q]MMPB�X�&�RD��[�T�����G%&�r���['D+�@D�$�tRi��ǒ��H�VKRH�W��k!YԦ��䧑� j�!�Q�c�h�n2]���I�@IDAT����٬�*E?������iQ�&"S��J�y�AA�>bH0�n����F=��[f~�P���i�76������?=�݇���)P���_�Ȳ\Y���t=L�Z'I��GS �&y�P:��Z%yKN� ��4| ��'��/���If¹��I�(���6 �0��d�ɢ��g>
h�x�K�ۧ��������2]���G�u�3�{66�4!N���d�J�m��V_Ѝ�S�m��]/����n�'/������G��b�E�JV�9���}�������_����������{����G��xP��%�� c°R,��F9�h�j��R2�X
~W� �%ʖA.5됲��P3@�M�#�8 ;!�?��pK��mQ0�8M.���zs}Eg�}�t�~kue{��n�s8དྷb�����3�!͔n�� �;�l���S����х���'|�۵����;����7ũT���������r6� r�J�݈S��c�@�CuXV�j�ȷ䆊�D�R�^�\����p���C��7N@�Ow#����K�$�\�VQ�'�\�:n!��%�(�ʊ�l�l�����OD�JKI�/UO(AZJ��ƴ�v�Q����H�"<ie��AK�,�t���l�%��о{O�JW ���V�����o�\���o���FHd���^��E�N�#�h����>�M�i-"��.1��Pa��f�.(�����|��Z�#���?w��O�sP �T)����ߋ{�2 ?�=��y� ]���(���S� ��J_Q�a_T��2�+�10k�2 �UZ,�P�7U)����?��$����A�v�k���t�)�0��L��# ���۞~ᝓ�vw�?�n�=����dX�ۉ��XG��:�=���/ur�l5�T�h�9�V��o���6��jr��p�ΒJ�6]�[��{�;����o;~�������URc�Lb��g�����<ш����1[Ѹ3B'C�o����e�z�3��z2.�a�t |�Q3 1��4� 4�,�\4��32?����Ǻ6ݦJ3P���)[cw�y���ʝg���gn�4�c�)&X��&�~�1����f��~������ɏ^����#���F.��rʒh��aC�r'e�3٬�����Ó+unh�T��MeFqF9 R+D"{���ֈ\$7I�(@���=�Ba�'� �9)�C�%h�������-%�'P��FFQ�5vD�_ظ� �ð(����YXM�T�>TQI�� ���,�(���^Ք�0�@,��nR��@;�0+n@�)ɹ�$ ��\���RFP����O� ��!��P�g�Vp:D�D� �ѦY0�ѓbv<}ŭlo�>m���(ǒӢ�7xA�Mc�SL�7N���g��J%w� �����_L���n2�=�~l��������]fF�4�=�o��Gx�ͨ�����\3�� �3!e.�e�̪�� L�+��&� ER��W�A�fi�@��y�F-�=�(�8�p��r��Av�$8���y��%О+�4!$��n����ÿ�A�/w�3��__�e,���}�k���z?=�Mn�Fwc��+��sD����|�ˆ�� &0�9��9�N�E�[�9�7�7�Ϳ�=�+'��W;�L$�"�mHl��K�A�Ԣ�V��J"<� <�yςf��ϵ�(˲C!�T�� ��C��[��0��'���9x�&���B� O��^(�-��?H��̀b �K��·#7�gk+�s�y7��=4�G���~����kϘ��h���������u�8��ݿ��_�e�����?�\0�2+a.QD$������p��E�8�ED_�#��,� @ߖ| 6eJ���QK@Kd�2q��/�$� �/1����eHh��<D��D����B$f�9�W�?� �/�� ^ޓ�[��8nTL5��g�&���"u�̂f �t8�%�<KB\��Ĕ膣�� )����c~�����[\[�ơ��/�Aha�E_��CU�G���i.�B�GJ��p1�KE��:������5>��0����?��Z��Ǝ�����Wf�[�>酥���[�=jR��uC�-��Ol�;g����c��d��Χ����d��KXȚs�;�E��)U��@9��3�pG��},�j���T�մэ i�4�qۉ�����U�o�d;�k�{[�:ϙVD;�!L���ҟK� �0��^U��9����h�ȿa��������3o��w�p�~ʼ��h��nr��5t�F،�p_��h�C��^ү�3y4�������yۜ7����vO�����r���>g�f�ni��'d ��L�NK�[^��K��?E��Ūb���n�s<��eX����o�L.��H�EVf�?��bQt���i��R�p��{�IH��ԧ�XQ����vߖ������>���|pgem��^�[[l��.t��<}s�l���ڰ��)Yڍ����~m�A��y��� ��)�����h����d�$�d�. ���}��R�MBm��>PJ��Zj-5Q�\$TIH�r���U)�%���� �W�/�T��J'\�!Yj;���Ⱦ�-M9 2I�EZ����VT�)�n�o�j�nNr�����o�������O�F"���A�M��)�>$���x8��/�)�d�B����aw�[ 2�oz}z���� "K� X�+��EW����7��˼�>������s�G���ٮ��H�@v�@��~R�����+���� ��0�g�m�Y���&�S+ݏm�� ��û��1�Cɱ���ֻ?��Z9�3�]�|���EM���X���z��[J)������A.�Se�!RٰJi�M�ѽ(eO�L0'���'% H8Q�;��\T��+~ғ��ԗs���m;�Y�1�6p��榟���Ow�o�/Y��ճʮ�뻕��ѫ��@ f�2E�.�|X���㴸���'�5��o�H��գ݉_Q��xzS�(�7=�<3C��E��a��&��9K�yD�e�%�GeA����Q�8�p�,j#@(ҕ7�!)O �29���\p x�)�/������P�n��/9�����ϊ:m��VϾf�����[\�dtz�˱�+�l"v���9��8��ï���LJˇ��{�����1����RM tpE��Q~���t4zf�oo��+�ޞ�z���Bj����л"w#�������ёB ����Қꅿ��]�鋌����сn0�Hh�"v/b�W�3u�5�6�St�����4�o��R����?������5h�4�Sҕ�]�Cb�b� �v�$D��<#��"Q��P��&�3�|�Y�Ԉ\���Rv���yQ�Ԧ�!̏F�=��όoZ�>yұ�d����n���"2�P��.�>N���/� z�_�F��N�c���f���~e�A���V��������S����%�9����>c�e[Ƒ��+<H�#=��j�\+EW��+lL6!Q�<b�H���2��m,I5����WP�bU�1pb�^�bK������8d��1��E�u0s��ԯ���yd���'�������ӝ�G��������M�X!��Fwt���\�WAX�FD@R�s�2��S]��n��Q��� և��������̯��Jf5fȂD5"�+��Ԗ�@���B�q:��o4·f���+mnS�hZ���şƤ�, �nѦ ,>�M)ئ�8%s� �2$! ���"�EQ�q0=c��ieF͙,�΄?��A��6V���|}����:7?<c�Ir�CG��ׄ��$?�֍��n��P���?����ѕ�a����w���{���b�JҤ���0�ے��r7z��n���z ��h��u��'�ų�n�HB Ս�q.B�� gaH]P�7A C����֛�]�}�|ӝ���Z=#�����&�cb ��c��TR .'�����q%�2��r0q\E ���#���Q�P��zRw��ׯ�7��O~��:߽��~��}�^{M{��}d��b�����E�]X���-�II�']4�O|Q�x��|������Ũ��������I�� ����հ!e^D��h���D�U$z�p�@�!���ʷT~� D�u�nT�L��4.��q���Q���0��P���v�0�Lo=py{g�|f��7�Yfc��p� _é�MO��,��V�Qg̤a�I�+�?欷�[��o��?���Ǟ�3MvJTg�����w��i�j�W���A��r����7|�z�0 �6l"L^��p�(։�x�-Z��0|ОuY&� ��}w���Lu��o�?U^>�5X�i��a/V�O8uy���;kZ+8�:]�����v�/7�����n�O~�5��6ؠL����s4CdeK~#3�5��7��]�2������u���\s�ꎏ=���'��vV�P͛�2�&�v��ZfЎ5Z�,�\���U�q�(�v���gm(^a�c"A$��A/N�5����O/V2�@JJ�jS����&!��(Q����g��:�G�J�8v���s�u��������Y�r)�"�9b����3��N,�|[s۽�x{fu��o|���l�u���|zZj�y�2ý,Io.�)��,E��9���G7T�U����M� I�+��b�%}Rt!�Uk��< �|���PAz��"�� }�����N��i�X^#>�!7���\��3WJ� tOw� }���� =��Xfy�q�x�'��I��,�CUf��C6�IQ-JU_]�{ ��=@�?�<8�-��U9(�ܥ$}.���=-� � \���)dT_o��x�I�%'.�8�;�i}�!S�N��8V�Ƣ��N��Z��Hn���L�KQڇ���)嚟~�?g��s��˻�o|f�/>u<��YJ�8b��ڕ�ӿ>�/p���'Y�;��b���_)�h@���ы�T��$�ؓhSˎ͗e~�9�/��4%uk(��w�)>����N��1/=V>+���[.V4����G:sw٭���X��F_�{�UY%����r3��l}G;��^~�mo6�M�62��E�2�� �z1�\��m�x;x�z�M��������?�sT��P�6�V| ��Ղ��m�GQ�0�3dlC�-�o��O-�cHN�D@K�Ajb���Ļ(Q�����TQT l����V0ԥ���=&��i��i&v�dh��Ȗ���d� C-V�dŝa{n{}n��w>���3/��#���fM˺c�C�5W�%��k�+��x��^mo�2���]�;2�?X���^#�����k�h�3�6Ӎ���<G�P زG�!�檌ާEA��5 ��" yG��C x݂�4��NMEM��(AZaGf7D���%~8���M��n�Ĩ�$B����ň��/��>�?�H<c��h��wI��XaS�6�Nh�B3ʕ�D�u���hz��D]���Ĉ�R���Fd_��ê�@)9I�� �2��©LIY^�6�ؒ�ώ:Vm�w�8�ѭ�%Bʟq� � "�\K�(�,O6��&0oZ����sƿ ��i?�duq���3���,���9�j�b�H.춿����戹_���e�Py�<�G�Y|H� ��:��+���M -�4����|� �c�IW��@�㻜�� �d�f��B�nЊ�h_Ҧ�A�B V�:��� ��j�L7?�˗7���0�r�3 �5aׯ{����Ԏ�v0��n�x3��ys��#X�K�z)��O%�z������/o�;��G�կ;���3��!ߏ����rs@�TF��ı�� ��̭�S l����1 9��~��-�>Ia��$x�_|4�&���&>� 7�I�x$L��"�l�a��+&�;_�x��/�/c��#�$�fF�t v&{�������P�G9C�S9����4$��5�{���6���W��_:�͏���8��U���o(,%��K֔E���Sw����?�^�pݾr�om[�&�G_�����"��WX� �����r��&.�3ᖷ����^��"o�7�li�l}|&]e9��0o"��-�Ր��MT�� �"4,���ʌU�$��?_L��؇Xl8��K��-y7���'��3#A�ې��$W�� �0z��ms�d��< �p�N�n�6���#��7��y��hD�a�����������A@�����-/��W�(?%i���j�Ɇ�Ǯ�-K&�St���2Is,�?XNP\2����K��O}��p���O� S�J��D���E�u9�-��j���E��ɥjI�%3���� R�8�4j���,Y�nph����I�M�<���;ƽ_����X콸��ў����eR�������y/�����)�}��� > �V/�{F#���f�����~�6>�o}\�+O!IL��v�u�d�k������BǬ�<�+tM����fP ]AR�ܑ�I�0EW]�5���3��g���O�P,��2�rxc���'�Q�Р�z���3s&�n��J7����\� �@�e���ECH��-Rz��������>8�ۚ<#�hU���Ϩ�eA-��m��F�����5g�aP~�������J��6g��^��+��?�˧Y���ϛ�b�X��4F��AР��T�ȝw�=�ֱq��m��r�x����4�� �g�>�X�}VqV����E��J���ț"�O�� r����gQ�ν,�p^u ��lp��@���rH��tϋ� W!�me2?�ɢ�ݧ1BNu��.�0D ���[�NC�,Y1:��^�SL�+y�և�_����U:��� AU^i��-IU�H��^l� nt���r=��=�E� G~?QM(��0 u�ڢ��Eexfgp���c]s�� C� ��������e_?|���s�dO�4�M־��g���F(R�5C��i�q����?}��X�G=�6+.�6��hs�zf���t gNH�R� �e �XC#���G$���F�qOf������\��8OZ��U��@��ܬ��O��&?M�L�Ҳ��g��c�3��/�<i��U/���_t�ఇ���̋����f��v|��s��{�ih�=.�� LR�Wf��%���D��;����D��߈ɖ:=���8]�����Au�UO �J�L�id\%�'�E�ki�� 糹�[xj�Hh>�t�e��$�d<�OqEH�C^��dq �b�M�x��Ħf�{�a;k�j��N�>�Y!���Cߜ���N�3[���s{?~���.�Mv7��8�az�[�_�����Ԡ����n�������ܰ��y�l|a�aɗ@II����M��+�Q &�@6�HN�\o,����j�����r�� ��t��<�#()X���R|pU�V<��� 0N/�I������ �n�Ѩ��1^���09�^�[�B���C���U�c�-��P88 ڞ�1=��%� ��^1U�A0i$#���R��W�[�I{��� l0p�O$�EH�k��}0y8^��z�:5P�A�;�+6��0����aϦ��79;<�)��8��e[h�ڎ+Tpw|Ķj� �8��;M�j�;��+o�j�L��'~b1��E����d�Ll͛�DK̑��X�Y&՞'y��$JnX�����k� #�B��, �U-�p3g3Ѷ#���Y1��Nn �I��s���M�&�!~G�X�i������J@��ANsƍ\��X����gz�(�PNz�7�f;����L.5�ۚ���u���}~u<W&Q�.��0���Jfd�u㉉��� }��m7��s�!�4���'-u�v}c��t�w+�G:�N�3��c���>k���O��9H3 ~uE��1���|�T������Nn,�ճ�+@F>���A�2 ��'R�(fR�t5���v��i��I�d�7 F����<;n.l����m�ȝ�y���WV��m���uf\�t���K_�^"g��-��������y�?�V���Y��2�:�a���(r] �8�+�)�E#Ŏ��;��ɋ�W����GQ5�B͔ÆWTS "�X�74��PMU�w�g����S�N �ٞ�xl̄��Ԩ7��x�h#X��XqWPpb�@�}�a�pS�y��#:Qp�&�K��p��G�� ������Hb�0#;��0���aT]=F�]��_$ȉ����%}�BG�RD�X4��=b�VA�h���H�� � �X�'�� YD&䔼P�#y��͈����#�Ey��f����-| �_r$���)2���&�eS��g+�;~9�so���������>���DVk�u^Ό�g�l��R�aB����#4#G�H�9��?Ȁ�����7� ��&�0�y1p���N�9$sc ��b:pL�>[|S 0��E�(-k�[�5b�1��@ܷ�|��o:�!p���v���8�1�;��.u|ץ}���7����$)���f:E7J�j=�Ee9a�_͢�����M�e]��v�I,�c5t|85zk1�.�[��|=����� �D~�'$��vf�5��:V�p�Kޭ<�u�"5�B]�ə��q�y�&� ���Qp0���ńx�$K����9!�����c�qa�IGˠ��dx� ��PϠ6�YM�fYr�����q��������W]�ҿq�{�W�����f�\7�eQ&����soep�������G���S��Ews[�ﺱc���m��]�[���Z���ґ��f�Ev�MH�)q0�������:�1�Ӝ��[�Δ>q�)��7|��^Q!�B�!���!�.у6���3����|����?��D����N�xʔ���RG"�$����pX�H�@4�D؈[١�V��]�[� 9a�� �!+�"�^Т�{E��!��D���+���B�K�"'z��?�r�j�PɄf��{���Q��#D4.&AɌU^x/�zB��r�'~y%�3n�s�y��l8d���"��2������ �#�t+�:��J �nW\x~�d́?~�}���ߛ�z���/�m�H������ߑފ3��� _p �q#��#w�kK k �!VAeG��u+&�C�W�(�X�4x��0��O� $6�'N�����p^w�'������P�tX�oPM�PB���jw0�.�a��/;v?킊��vv� 8{�C;x3�97�����)�%o����� ��{E@���<�涥F��f�H3��d��j�s�y������h�� '�v��O�m:r>���y|!���h�3�I@M�ˢaVBz&5��s�Df���4�~��3��s�{بl;{���S��V��E0FUvycZ4��X47���0jQ�/�M�æ.b�gR���k��C�~8S�m5g'����=�4��f{�Fi��蚛�����Y�ӝcM�S�����-�^;^������k_{��ѓ�qJ�j7o��d����w�;E�{\$əfxv=x��@�W��y�]<y5��K�MP��ZZ���Eo�ѯMo�5��_ ��7�T%��!�z�b�0�/W��v+���_���>H?���q�EX�7J�)�x���vK�lu�O�U�ҝ^A��T#��fK�^��V��N|���<m��̉�6�p�z(���'ނ��d�A($E�ZDFS,�4y�?��є��G� m��lJo�sa�s�^��)��/%I��p�G�w��iԙi�,��e?X������i�}���fa�'I\q�)�)���7�G?�g?�~� mZD�����C�䂪4]SQ��&��BxUA�e�:�X|˸�qׂ;pn�E�V�����|��W�w���w\ޣO��� �1w����>����9�:ؙ�~6�;/B����=�o&oi�_�����K�������̖4P:�Ϭ�A��P2� < CY���i�z����{�����?4�Ov�'������K��ᬣ�=�MWs�������p��^s������{��t�����a����-��ˉͤ�k5��oʧsoK�U��WDWɑ�H�uR2�$��SVC@�JG�V 9:�A��@�T�|�}��a�ǃ3����O��+�a����>���g�m�5W�h��]ͥ7����z��?�����:�ϝ�:�7�&��Rq��l�D�v0J2�6��;�3���+RD����y������Z���T�79}�_\<L�$b�Mfޤ���A�yP�|^�82�0�O��� �|�P!��� N�$T��(�F�KK(�0�%\�BS�����!�����_X� �yKp�"���"%��K���� ����!�Qp��# Z�z�G8B �OSa��88J/FL�^�(��'~�I͖8j(p}�-��<�/��_�?q7T�h;��O�K��� ���z���Kd�,�D:��r��S��M���j:�g^\�9^����N�ܕ�~�����?jr��N̶���mn8i�!c����ˁ� ����ͨ�T�4�d��j �Fo�9��0��2��"�2#�X��P��D�N��=��3�@�{F��ʮ��y�왌ִ�w��c�� �feh�M�l�}�ݾ�l�Ռ.w���ћ��r3�}0<G�PJN�[;VV�@l�.�> !���"�~%>��? W�Gl�$�����m�{����-�v��V/7�g��c�������dvmwv�����cL����G�Q Lg-�S7�$�x18b��� �T2�KӞ���mRs>���� ��Lh�l���"->� � ����9F��G��]���ld�����ُ����:ϱ ��g���Î}�{[�ݭo>���������4�S��svQX�?����l{f�^���=�ȋӛ��3/Ntȷ����An�,�}B�lڙ;�^�u��⼿,��(�}�������_����D 6ӻʻ h���������I�Wp�q���x�� �����:2_�-s�=���k<����?8�T�5aB�\�(��dm�po[E�8���~_|}q Y�S a�F��OO�V�Ҏf��3r\%,�����24E��2� � ��Hz2E�����= -AbR��� #$� G�g�ԫ�wL�����P>��� �m����T��!"F����?�l��#�K-�������Q�M�,�n�s�{���O��\6��������A��O��m��!�}C��H��}'����0�O���'���Ǎc7Ҝߙ0g�����ȇŁڃ�0po5��x4�Gk뻌��'��� O��8��r��xkk�uv8�m�������͖f�ƕ<�9��R�2 �nޝ��L�R{X?�b�� �8I�ޡ�Ib����?Hr(��.� ����~�����Gv�tVl��ntq�9�orw�n=�����h��pN������������r��z~��ޜ,f��t1�.��%�}�d���h6:����pH 1���߰XA��8�D�KM0v�h��Q>_�0u�&�J�iWx�cH�oK��cҟ:�1��d���J� Ҙq6�}�n�wv�|����vY�i��Q"A��f&��li{�6G'u럟}�'�ݘ��=\u��Dli�ašF�dݨTV���:Q5{ۮx#yə��Z1�����|��0_������+-ˀ�T�mR9!�̩䓜I�l��Ic<R�T�#� v���k¤^�}��� �Dң-D���v�����aP��������V�[����P���l_\�/t2���? ���nx�$��=4!�zkR�G!廉�d���u�q�(�}B��V\��Q7�!D@�bA��V���/x�_��-�)�Q����; �� �_5|��1Z�U��5ק� �SM�+dE��n��1��±��N�{v�o����'�?{u�@;Q�5��N�5G��x�:c�7�K�=YR����+���}�f�7�ӯ����)g�V��ȾC�6���=A����0I�T�hok��ۓ�� |���ɘ�!G[��dk+�����xk��Fۘ���h�ﵣ�v��rF�������3�HۑyÕ�F���?Ѓ UhJN�l��\�W �9�4g��y�= տ�xuW�F�@b�/Q��vaV��\����M{w����^����q�C!˭�lou�Y�7f�<�������z~Ӻaz8�N���s�8��l� ��lv4]�����t:[Ύ�K�|�����"�[hwJrv!��5��0����:��i���[��lk��K���i����p����������|���p��?T����Q���ۻ���2����g�����͎���nɚF��05e#���WCj+z��J��H�&��4���) t�B~,<m�tvw��е'�̾�^��0�i�p+ɐ�>�� ����\f� Ij٬H&)�!;������l<V�4� #\E.'9.�����@��3���(��� g��#@���K4K,삡�.H��G���!���Ʌι�a����2���(=�� $@n�2�^@ �>6��d8I�d[ΉQ�EE:Y>���0�{C'I���E�֥�VʐJp(�dVs�M|�&�څs"[٫p�����W��3�8���+u@�fM2#?����^�=���,�/�p�@0Ɇ�O�(������e3䘖�cB�k�ubM��ӨȔ�F�ݶ�\�A��wT�О�����[�.���oovv��sD�]�=�����9�3����� uC6���=Z��d{8��i�;��v�wJpV���yC������ ���h�8I�K_l��JO�iz�z�/�"�A�Jfb�$�& ��O,�B�J�L�d��q⟘ �&����D��qf��%��Õ�������rB�CF�i/�s�.i�6��n��͎V���bʙ�j1� �w<?�ϯ��Lg�f�c<���j��z6]L�q���=q����&r{��0�T�P0�X�%S���8�n�r�u����AK�{D=?8�{�����-���w�U�s.���jn����H/����s�y�w��^_f92VmV����j�#n��Q���$� c~�.3oM@U���n��ǰ��|;|����w�Zw�H�����<@��'W�BEn�@%ՓZ�i:����HOSp0 �o�H���.3���1� �O�⅝8NB�R�D��;:����'0�:��_�������)X��7�QA�<�� ��1�r+ҍIK�R�0\�(ta���3U��B� ��P �r��àTz^�)�� �'�K���qz�L�0�.��nэ{ ֫�Rj��a��d�5v!%Jq�f��mcB� h�ʊ����v�_�fXE1n�~��o���C�C:��� �զ%Dwm�����K�C�� iv��6�34;�d�o�[���O)��>~��U���pD%A#��N2d�����c���5���Qܱ��Έ;#E;Y�Iͱ���'���#� � ��΄ў��p�7� ��[g�l�_�c)�p�cm!-��G�h�8�5��z0�e2�m��zD�@�d������K�T=����o,Z�U��{E�l��e��p�!�RO��Y�hׇ�j�c��z~u=���^[�n,g�����@�����lqx�<:^:����3�Bß�'�S>��)�)J��KV���_�g�2��p�{���! l���Du�R4����Րmm�w�6{���������3������;�9�T��Q7�s|¢�����L{�C�>�|���C��F|��ְ؟ n��9�lI��ˎ���\:�Ӊ��ra7Mp�+ˏ���wv���g^|F������$CJ�?vD훢$��n���� I��o8�_sAb�$��&�qB�>���}� ��9�d,�N��yz������x�F�DA�JJ^EyB��)sA.�_|P�6��Fq� w1B0�Ln#ʏpSqNc����������YĈ�b�hZ�$Q�&OT���T �Z ��SX#(I�P�^�m��/@6�E���Ə���Rz4����W���<��f� "����a���p}�����ÏM��%��l��P%k���4σ���+��/�x�sZ��n9'�������������IYs%QUT~��k�_��l��A�Vq2��.���ؙ �.a !�|�8d�� #�?���8��y��涳��c��� s�Tt:���ڭKL�v[wtn���j�'�]̹�, �Z �"T�)k��~��gJV�(0�b'Thc���'�b齈AL I�̤�~�u��q�]� ���n��f�j;��_��ֳ���h�u�-��|���3'�����r�M?�3��į����>��!�01��J����34Y)D>�0�3���}2� �؎�̳h$o25l��De��a�Jˀ���mQ0&�;��]:��p���ꟾ�ms��d�E�=����/m/�v;�n��'�����"��R���?0�-�5\�d-��;E�T�����':��}�1m R�Va�9s4d�Ul���̳�^{��U��.Er�M^N5��Q��4����z%Nғ�+W���]ΰ�SrA�=}%���pP��xn�H��f�~�g�эaHV4�z�7��gq"�8�?A��V�� K�B CE�:SQ�E��o���K��ƶGӓ���9r.kÓjX�݀�DG)���bB��M�:q!����È�S^���r�Q���Iɪ�q�WC�n��(�9L��#u 34R�W�O��D�@gu������/�4Û�_~�C�^�J�Z'RPX��n|a��5�WX��_��$y#O@��Llf���$��$L��� ����#�E�̰��p~�{���?��#F�p���!& ,5D���0�~����)b���Nzp�i�$J҃M�Zl��[�����>�0g�M>��l�Lέ'�ۭ7w�{YԎ�횻�؞kZ!�i�������r0)��x�T�&��J���T�Of����㳑W�Փ���f�X;�B3}��^릇,�\���z=��3������?��r�l��k�]�p�ƶ�K?=U˩��@Wͺk�i�rF4�����Iʏ���E mn|����0�A�^���MΥO(��H��X����y����+����������w��!�z>��7/v��Kwt9�����o�ϟ^��S��r��0H��GF���a��N2x��k�za6[s}O�h�W�b�?K�v����>����7�Pf�M\��pl�LX3F��o�$ir�M(~�����h����ZD���^9���L$��4t�c��7R�4�}^� À!Q%��'1�.E�P�����|N+�о�p�囧�o<$;U�TW]r�����Q�N�o��/</N)�}e��,�& Y=k �|yF�#>��=�@/$��7� �RA,=Mix!�Q/�/�q�g=�� �g�����=ܨH�SD����]���l�_?n���g����n�D��Tc"Ipn���3��5 :�D�L�Z���U�(���[[��?�AI�Ҿ��Ϊf�e��6Z���<�Y�j�Ю���c�/R5f] u��'p�pS 8�}��z�eB�;���/~���ᘌ���r<Y������֕n�q|���f�frg7����-m{�krV̢0n����Q�y��"$���ZE��{�곔bj�r��|�Y~�]<�-�j�/4ǯ6l��ӗ� ��1�녦?K<g��K?�-�z������6���wJy��wX��;���]E��s���+pN�p��i�g�O����6�MqҘBV�����ѽ�:&�����g0�ۓ�{���yǃ?}u6��@IDAT�����I�i�~�i�n���X��S˫?9��̯�Y���x�鞽0�d�{R�~h��_��8�)Mv$yRnS��=��c�3I�<�;���蜐�zS��X���>���u CGQJ5�L�do��� ��˞�C����U�����H�rЪ>�Eˎ��+?HTI�i��D�L�F>фX�K'��[jˇ��������T� �Tm����s�� �>�����V�}u����:uɕ�@ ��&~�ѥ!2�?�������g"(^aVsC��L��%a("j :��\��}<ԑ��c��TStVQ�w���F����^Ec�@|D��<Y1�"j�0E7����6&����הW�����Ň�ܯ���,�ke#���y�)�����a�l�@�;<h�C="�N]�E%,��YL �]��D1�Z =4�}��K��eF]�f8ׯi%�L#nl�u��I.J�����XL?�ު"3�L����8y�?�R����QÁL-Pp����j89ji�o�;7�����'���v������l�/���!�FL5νO}T����e�,,A���,5�x�[�~�z�Y>ݰ�sz ����)���J�O-0�f3j:�}-Z��g����+v0KJ?@+�n��ӺLJj��RZ|���� �[�x�2S�A!8�Ʀ�kz�2H r��S�C2�!� �c�����O۟�p�����xxag��������s��\C�TSҋE�u��v��N�?�>�_�yvqcp0_���i �}�[{&���qTkU fv�\�^S�t�$�$ /��k�O2Yƨ<q��魃����/>��c퀰C�"��i�Tb���R."��'���y��"�m�D�t�{ne'?U��n�_dd��>�G��;4$����w!�q��D�_U�4T��K��&���HPL�K�� ��{��ހ��LJNmy �2RxCU�D����F�b 9wC�(��K(z!7���&ZrW/|F�S�T���lẄV��<���=�Ř>)ϋ�d�D.�.l��X6��<�Ӟ�����i_��~y���#,堝����B��2%$�٦��y�Y� �(��d�7�J�AR���b ^-��ͻ]�(z����a^��ŋ�H�Y~����e���~�^����aA:5�ȲɢC�>�ע������Ӭ�̜g���}�|2^��G���/�������z2e6֔��q�u�S���~��z�>� ����+V����MS鐵�0�N/��$�ɩzݳLv6�G�����z7}�9~� �x�M��Y��{Xy�ө�?�s���֧�Le�V�GD�Jv<�:S�S�q�X��������3c>4q#�m��7�o����7�@:��xƘ�&���l:�E{2`;G�渥��ޛ/lOn�[ݾ����o�� c��<ŷ������G=����G������p���_c�ĥ>J�����=_d#�ڌa������S)O[B8�[6+�"Z /�~|���SW�{�ײ�(#N ��ֲ��H���Ol4d�'50&�y!6&�iH|�ݦBHa|$L����@����"J�'<,̐N E�(��2W�,iB����J�B�<���#N�N|��#T�}�U'�2�U�+��u�PK �-�m����B�-xP)���{S�LZ���U���!����
Nr�^�J/��� A��~�!&z������Td �o�\Q�Am���<���iæȆ4!�����,��<�����F���6}~��G��%_�Q�d�%l��c�ov/�J��f�?���u|5�<q�2Q�(������J�R�'��V@�����,6����/��g["(u�S��oy�kɅ�4���)t��8S��Hs&#��'���0���� t�I3���h9�s��a�>gm3;j٨tf��A�m_i����Z���R�^�>O5%Dm�����a0��v��~&~y����1�s|�9�������l0��uOu�._ͽ�w�q��!~���d��]��9��\)��tTi��e��,�R{���xV����ϔ��7I@v�G�3���X쵙Ǭ�\�����/�<O:��M&gw��������}����n��4��+����,�|h���L�����Q7;������;������~�oL-�� U�,��}Z Rs�'��i ,$<�ê<]��%������L����\�=wn�SF�2 f˦�i�;����[���S�����?��9�ƽX��P���$)B��8��d3 �C=��!�"�R��O�%��"�)�����hDN�u���!�N�7��� ,�0�nBQ?��~����0 �Ȅ N�+C����j�n�6U/�^S����Ņ��N"�#�mO�g��s�b��]����I[�E�^BW�L� �p���/e<�m��<o���Vٝv2�m��)�?�Ӿi����Ǭ�gl K]����Ȏ���嗺�C��C�=/⯟(h���dM1��U����v��u�����H��Y�����aِ��b�����ay�SF�x�ߚ��G�������Ƣ�^mG4��h�l'���,��F���xd�s~��y���z�Z�@Ù��\�0O+x�]�6���=���-�6�b�?�\�u��?߮j�����>��z;��L�9�m=[,��ٴ�t���8X�3e%O���d/��zM�{}�����w�� zH������=ʱ��� R��$u�����G�L��Z�y���T[n��vh:���q{ֆ�����Ž��n����?p�O��j��!r�/p������g��⳯�6�h~��t6�����e�!��7D�f9խ�id���ȕ��'�z�:�ɢ�����Q9�d4rE���9v�}�����9Ucd( B嘒)�ا�Y��(�0��PI�]~n�+�10�Tܕc@���l� �M ]�S�y+����P���N�N�!%�K�<�D�x��7q�=�Q��_,\o�7Tz(7a��)&��q�u�ᮬ��+MHW 0Y����)HEB��4@=�Cd�YI�����Bū��#�u�CG�0����'J�,����״q�$5���nő�����D��gh�m�B�D�k4鉻,/�4�]�~�n���Ϟ|����Rݪ���[ ���!Ga��@5,&=��ڍ���!�cQ�����Q�0��QPt��:�b�>5���^��� h� y��Fq "Jr��fέ�x3f�!�t��~�9��\�y��@��]a+�3N�ڪF��zE�a���( p�j�Kz�ӘO��1s�#�� �6i���rLh�7W�T3��Y���a>3����͏�g�!�;�v� ̬�o9����Y�I�?c�����me-~����@�i�"�U�K���g�Q9��(S=Z��}��4@��c�9�J��#��)=Y��O��^���.�[۷�Mn;s�{~�o���7��lͱC��:�Eѭk����������b��gNj�'Y3a]c>�>�O�(@ϙ������S�����a���5�����&tX�ڎ�9<�ԋ/������rE��j�D���>Mp��a����P�P��κ6��h��a��S�����q��TT]A$� Q�R>�W�<C��2!��"��F�/ ћ��^s˻2C�<���Q���P<%�3�ћ�'�R-p���P,g�{t�2E�UA���$P8�g��^��� $�[P�%���7T�w�Pk� ������:ᄘ�/p�j�Bx�0��d�+�?!�Q���u����s�۾h���������u��?r���D6��'E:���9�+���2�=[1�41�e�p1�S�=Ҩ)̇D���SNR0qQ�K�;�:�Z����/�%!��q�K4~���c�dX��l>�ேkֺ��|��Ҋ)Ip#�۔·n��+�6�7WX4 %f�c���O��ئn�K��!׃oi����# +u������^d�P��K���i�7��ૻ��˫m����=:d�gE�77iѳۖ���8��/c�q0�ÚN�qc��V2_Uɘ9�SyOlf�����H�c���e�u��� �C����81�&U�s��#?YF���4�]�aC��gF#����]>�5w����}���5��dl��K��a��/-���<><Z�<Z���k�c��sք[p3��T�����),��k���Be�2��oH�x�%�W��Ķ�d7Ӂ�}�� �������מ�������:���9�b�%��+:7W����%� Y^2�WA �+L\�&bnŏG���g���I���>2 ��0���R1 �CGqU�&$@r���U_���E�o�� ���Ɖ?��'�Dª��=����zn ��\�6�{�<8��b�I5���P/�=GV�� ��oy6m�+�E8�����G�-7��ZE<M��r�\��iZ���������"�lĒ�b,�(�%$�=�ZNe������gO�4��o�a$��zܺ�E㭮y�Z&�1| �e�}��Z U&-��KO-�����M�瀲��bgE(�w)���'��ל��=�İ� ���\GY��t����dU[�XY��L'Q�Z\r��LD�|��3D�^2�~���f�{U����?ӌ������t�prY;d_�{S��B��}�k�p�J�g��9��f����wwL�>/C$����͵��3uP�س���LJU@4�]I�eH���_�҅���OZ�&�"��\� �2���i��D#IZP�)��WZ��lg�F������|�˯�{�m����������g��ޯ��w~�ᄳ{H�A�² ���������-^�9[p��G�Y���L\�c>̾�sɄ�Le@�Bv��\�uu��յM� 3�M s�ov�1��2��k(w�?0��|��}�1��r̅��К�Rs���j��NQ�z�{O �$�\�iy-O���Ć��� 4�3���Lrn�T�zC� |�Y"6�E�2�����g~��+�j<��0~�E8�P]z�(H̹��oW܀K�8�1,���!bY�+D����Wy�x��[���D��U�P��� #��Q!z8�>��,<:ԛ|J��$�P� �����-��0�}��4���&�%�74O$"��� �)�31{PU�eM�;��������T�� Q2.���ICU�F|��u��+��(��>�@�X�K�x�OD(}��(,�'RK�x0.�� �����9B�P�r�O>4+��~��!��:_�mS;��'qIl�3AӘ��4�if�W�o93�t4��c𐀜g���Բ�u�������.?�h�9���f�9+��6��KU��|g�����J������l�P��w���8��5�Q�;����62�߯�q�g����hn̽S��+��j�:5Go)L |d��X8/�����B̋�pխ�XXϬ���4���7ya���'����������t�'������WCm�:o��o���Ս_X|��O��8ڟ.���#���S��>�@U�d�g�9c�0��4�ٔ�R+w�}Rы�0��a[��� ۦh��"A����̓.3hϵ���v���/\}��s�St ukѤa��Dԓ7r^t�C��aP4���Hy$������T$&T�-E�@ ��D�]33��|O�����j^��\?A;�=2YԳB9�V%�k��aX�9����t荁�������Q,�T]����bL��+j��p�����=��HC�X"�/�EB���g!�!5�#1\(�ͷ\>����HQ}J�Я�d6=��6���@��|�W'>���u�.v�����ܶ�����|����ϱ�7�r���Q8E#b�u1&K#h�^?��kE��&� �W#U�.�]a� Yni�"H�285�P�r剣�L\X�A&�(é � ��r_,o�X���߾�lDc+��W�jM���Ɣ����2|S��h0�>�ȼ���4۾���S���͟ng��E�ࠡ��m�?h�@?�hf�,��)9=ڭ��[pn�K͚㕞�fO�g~rp�����Ü��Ѿg�{�>���>앵�N�:��1�|�%K9$Ok������!�;0f���b5��6�K���>�p�,����L���4��q�m6�o������\�<x�;�����+��a�?)���6;�u��?^��ӫ���������g�e}'֟a���o���U �j��n5������ITT�#��sbe@Sת�! M�L��7�焵om��v�}���r�<D&�t�:��B��u�L���_:����-���"�� r>~ri�P�x�n�=W���IH#W����}�z�h�(�n�{"�� �"��Tp����p�U��0��+p�,m@�]�q�0���e.49QMfȫ��%@��Y��B��&��z=Z�!2~d��ȟm^)�hO��'%��.��V(xՇ�3�Ȣ<����<$(b���\n 銕 ݍ��FO�oX��G�F�[):'� X�9��>j�ŧ�4�8���]��s������g�b��2|uT|m�j �dp|��J_�M�9R��#�H�d�O7<�����(�&� R%(� sұ��д������LkU�Sl ����5ҏ�2��Վ�'m1�4�8���ʀ7=L�s�����e������5;�V���l��eÙ�t�F[�0d��������l���|�R�y���f�|�d���v~��O�<�>�^������xx�QcE�c���p��aZV ��DZ�ZK��òc��c�k��v3�svU�}�D�0ᰏ��ʤ0�sK��w�Ք6'������-�p?�W��4��� w��s����K���?�W���s�p��]��(���˿�x���/gצ�kGG���F�͂��&�|݅ ����h7�0yF�VV�5-�\�k'�,�:����������b��]ý篽��S�9m��U��V�)/V��o9HY�$-fN��l�I�z��z�ތ�%�U��d�d�xGp�#�X"�UB�A���HLc���6�i��%����+�$" 4uK���!d�|���Г� C@��R}���ē\� �\�%5Y�n��-�� �ex)��tʣ1�d�J��R�z�|/�z��J�S� �0��5�@��\� �,����O�d��qꤦY[_��|�J��l�c�����\�RMfP%�SH5�t7�][>��MGz)Q@o�p4\��7�Ź�1V���R�:���6y����?=N@} �p �7�ëFIan��6+��� ��{Z���oi�ێu|��@��e���Yu�:1�N� 4�{�vm�8��8�� �����2�C��߶�_۾�c���T �&�f1阥;/���d;d�0ߔ�ԂN)�|�q�k��\3����L�#�X�������g�{�a{�=���B.�4��U�p�ן��ԏ�b����! �ͪ9����O�d>Lr�����f>��t�%�ٛj�g-5|6y���<އ���������;�t�v����ɸ ��n��W���x�_-�~}u|c>�:��Zr����?�?%�"��>�R����̱�h �o��2P��������IX�p�%���fv�5�v����_�{~Z�O����}��捱5S�TY�_���$������ �Ō����2����?w��U��z�@x[v>9[?#��C<���n�V�\����O:�/w"�Q��ݞh�͂wI�LZ�8'/d@Bz��]��"�X^�[I���y�&V�1�8�U�.dPƄPO�^J��P(�=jz\�I& fH�1+ÅMr���ɵ$e�@�T��Fr�aD�R�|ӓ�JLА��wY�N!�rc�.Q�vN&�@�#a�}�?s�Pb����������S�O9���E�=����舱a�V'�1�g�����R}dU�"�,�C�up�������,���3��G����-S��K�!�h���t0Dk%u����b���k�>��� ��y�XK��> �8Z6�-�ή�o�o���i���W?�-h8ҝ�fX���̑��ѣ��Aue%���x�Y^��f��w���ۋ���a{������7���-��������G(=-Q�0L?��1J|B��H>v)h9q��M�<kAGM������с��s��G@� ʭփ��r:�̖z����;�·�Zx؛�/luƓ3;�sϟ�����;�{���ȶ�y���Փ��z�o�͗����iUԠ?2d�����M?�g3�"�7��J�dZ��ϛ?�J�]�}1j��V2W8��w�ǃ���9[�QAp�{�3;:��c�a$�c�:6����)juVl��B�aU(y�P�Ň�p}p�D�Kޒa�"� e ����7?���@X��(�h���T�� �b.�164����_�A�a#��%R.e��@ɂW/]�� � ��T�#d��%;����i&�/{�dzS8,K$p� Tt������JH���J$i�n�#V\#�O���mxm�CZ-99Nҏ��w�%@�Z����͗/^���pg8<,"������g��<�s�k�[���E�Og�(� FJ�Q.�S�?�3ڪH�s'�b����y�ʔ�P��ȊA]�\�a݂��7Dp��i�͞�h�U��&�ͬ�P�vbk� �u v �z�Sс���Z��q��j��X���4Ɯ�sn(�����Źų�������s߿����b[�J|��Z�@>��L8���f�h3��5�� K�/�s��z��v�ֿ9��l'[�V|m��h�8S���O����mk��x~����/�·�!�9.�_1��N�F� �� ��j��)F�$ɟ�AP(� ��Ş_Q� O&KcY\��O�ʸ�k�/y����=gw���s÷����������8^��P�o�m^�?V���Օ����|ym��1]�ܥF�f"ܼ����h�S�ta��/��Je�'��&��r��ǻ��C[o4�������~n���@��1���9ڭw��>���/�r���u�������m��]35��>��Oy��&4 y��{�{hQ��>� [7!��-�T ���g�8ۨ%@}�T܅�D�[p�� 6���J�4� ��7���S��㏹��U�k �/D.�Yh �|�FԒJ@��'�QoCn�t�Ǽ�� L����S|����%B��bB ��W�O��� �)��6��W>���P�h=/���ٵE�^���˯p.��a�m1�ˠ�âw�E@�Cu�T�گ�i��2��'1 ��0<$K�dm}�5��J;�l�x� �JxR�������S0y՛�i��=�p9��� ���D�a=#���%�D����@�M�H,�9re���X�����1��o�����sC/�m��?jo{���<���l�[L��v��q��t�(���ך�3���fp)����_�0Ⱦ��3��f7=M�z���lͩ>��z��/��W;����{�����~���ɀ�("$$�¤�v�K?�!L<�PD� ��J��.VZ5��9��ϫ����:���L�f̤e�Զ�x8��U��������ť�����w�7��xit�1pp ī��/������,�9���l}c�:�X��TK}�������I5��7��W�_�����N4iZ�����I�z�'�ͧ����}f������I\���/��'_|E{fo���Gr--�� �%������ԀR����k(Bwq��#�ɲh�����S���,����2��g�������'A�՛ĸ����V�CP��WC܉(ńKM��D���? }�u� ���D �D������0Z�r��6���',�D[�l$$���/ICa�����۩�O�꒞IU�C�&#\�U��"��˛ ��R����ZT�I%0Td0���h�hW�-��k�<E�3����Ĕ��CO�yݢ�v,�{�V������C���욯����cJ~���&O��H D�J�oxJX@��bC4�Dj6�=U��Q#f��2�����3n���H=j�qE)� �����=8H��ĔkI�K+!��p��9������FY#x~wv�+>8��������g�O�;��aP���.(�+��?k��Z��ݬ?��d��"�����;�;�ɒ~�8^�X���cV��;�N������|y�+�ӻ�������-1���Q 0Ν���dؼ���R'�-ZVy�U43�]@��(��696����n̓��vV�;�;jώ�gv����[��w��;���{�W���r��o-�����>��v0_��X��9ՍoX���wʷ�z��7�~�~����O��V�3��ͻ~%^�+��De�zp�/��>s���(�D��e?1 �m�����<��>�̀��������� ��LV� ?�4��\} Nj���7/�w8M>��[ 39����P��!Vq&EM^��G��g���{����B)���+~op���+�/�N+��a��-�V�G�Ix$ B|�\q=���Ity�AWN��o"�"��▊�(.�>m�#w=�8�U�"�H�O.,� YT[澢a]�/}����É� v��צ|��n,�E>��0S�X��3<�ݩ�?��[t�=ul��a%��.Q4�<øO-�r!�5�βH��x=x�4b�\=���"b���q�ӑ_̊QW.u�+�6ɀ��� ?,"-�������U�u� _D��,֠��\��:���A��d�5������_���������/~��8��<݂���� ��9l�zkו5F�^o����H9#Unp��L3��L�����?��|�q��>n�q�,5� �����͛���w}����t�K���x5�c^�hI���-� ]��Q�Ğ�"C9?e�O�F�r��U�}�Dży���� �}� ?����θ�tv��}�w�v�����?�͗t�s?��v�Z=�K����������l~s��_2�Æ4�M�_Ӭ���r���@�ӛ@�$=�x�G2M�x���+�N�������[�Y���?�i��@�������n�s��.'Q�ݱ�0�������Y��jU���;?��)�0H����3\+Ik�M&X��\B���L%�㔄�<�+���|$)�H��q%&^^�\�LD^��� ���'��]>�)uI��/���dի��SΊN�V�#VH�$J��q{�"��T���0&��W��,�R���axA��2���HMxy'��+�� ���# ��i�����&/~�z� %i��clx�0�~����X��)����; /ԅ��2��N��+�_�r�s���)�D���\��p4[�>�lE���p�F?.e)^�N}���kxG�48��<����W���� �� =ƒ�pFXE�{�gT�r��Pc���ӣ��oR��M{���a{n�{�Wݵsq�>��KÛG��O�ø�ŀ4�̈́UD�(t2�v��Y>�]w��տ�ɞ�'���f�Ao|���>i���e�?�|c�e7Znnvo���~�{_���-�X���A[(4�!����|C!�$�q�o\�9���ӡ��Ȗc�}�^�8���k�)_��>�p�Å���x�ҙo��?p�}C��e@���گ������s��ޜO��˃�������H�?~�td�q�͔�i�TeaAQ�6J��Jn"�98W�ʿ�;u�<���2õLZ{���#>��}�g?��?�����Qm�4��ɉ�B��|���� r�����d��\�6=|a��Ɂ�a��0U:t��AV��2���r�P�c�iW��tKɉ�A�� 0ͬ�F�K^J^�CǭW��s��gC�9.|� �� %��3��b����bT���˚5����2sA@89#�")N����'�%f$��nAir%Fx�ˈ\�<1%��K�p�hmq����f��p��+��.���b"�����-4vT��\cL7w������;��s�_U�,h�+L�� ����c� �;"Ko&�oy'H�:�����S������0���x#H�Hct�Y�a�Ik^�ū�A�՜����O�q����z%'�@��w���������� �-��|+��n����;i���~9�%����!�8 T��V����C�g�5䳗��WZ� ���Z_mgOs�'�;8k�-�3F�s�?�=�~{\��v�ԃ��}�w����8~�W����|��U|J-��PK�A mI�9n[� }�-�Qʥ׃0�hPU{zQ�M���u>�S���������m����]���{���.�KL��f�C�'~�{���t�ܟ�������s�V�N��<.�tv�k�]��tv����/����9 ����82�J ��ܛ��D ���'�!)�����;���fV���y1�ֶ_՞����O|tv���9��IL��YUf�p��T�C�ȿyQEz�;AIk���o�0}!�w8���e�"�������% ���C����z���R�M--��ȿ^u��L �&��"�������D2=e#Du�����z�U�A��Ji%YN��'J��V�H�(��G\O��+���p�IFIT{�A��[\�2�1t���0�*Z cF�U��Ei�79p#x:=��&f!�Q7=~���7��喝7�s��$H$[�e�ZC�#/ ��]������4X���{͎�$��\�E")JW�(R-KvE�TٕJ�5U�+����!��II��ȱɡ-QIK�(�"%$@��f0�����������?}�Pt���~���t��>}�v�bF�&�N"AI���� x"tK�!�f���TY�Ԃ�:�[�!�hĹ�i�DƘ�b�W�#^Ӆ��f�+4��r���b2��']:���0�04���bJW��-��HC�)�c�2�[������m����{�r��م�M�!oߑQ� �D���Xh}�ocM2�70�-0���|o�x𪔶�Xx{r�u�����{������̖/<���^z2;ͤ���k���ߜ���uo���:�=�(�4{�D���c-L�w� S:X���Cz̥Ă��c���:��G ���e6t���#^�:�8;4�����?��k2��6�^���6{��Ӈ�^��+[�k� }�u��;���ۛ�ozwʗ�05p�����'+�gꚢ�v)(�]j�CYj+��P�i0���]+�ȥ%�|M7�'�B����5��7z����O=������5>��t��_��D�l��0��䔒2HR���u�)0Ъ�RB^�"���� A�E+�F�z��S��Ih�r�9��9�����{��U��$hY�1QΜ"��ąZ7j�0S΄+�� Ȓ͵�j� r&[�A0'� ��P�0��P��j��0�#N'q�$5l������K��"Ejv-�#O���I�p�"�\ZDX�1�h=�ÌD��(Wh���[f(�1tCH����z��?2��ؘ�z� C�Z��4�4#��A����w깭��鰖�EDQ��!����.���!f8�ƇeFrd����P S�D��$�a��,\��u� 5�R2����g1hXr$�]�!��"Dx|�"6�XK�WB�- �>=z:��1gNc�mS��;���?Y?sa�6�$K�TG��I��nǦ�P#���-}^"���� ?JPbk��;���� �m�-�,3a���wA<o{e��Bh��v�������_����[��MvZc+Fh��_�M����o��+¢!Ejes�@�$��&:PF8�h�QZ�1;�iX����١�Ç?����?|����k��vxb�����������t�O7��0�Ͱ�9����� _W��:V�� �G� �����D�!��C�s�� ���:d�ZhQ� �N�ݑ��<�����/4�=hz����F_��oL�� hW��oW#��)�Z!��}Q��\�E���� �J@y���C����b�Y$ą0x9��?r�PH ���5���S)�MߙP�Hg� �8���BMF�45@M�i�]PtOԺ$9&��wҺ���� �2ö� ,^Gʤ�+&X��2�������ҍ��C~�H��:1��+ʵ�z�C{�@��|{�\�hƢc�Ո�9�$4�iw��� �5��SW�w��|��������Qnk�{��Y�^SPĠZ@xؿq�w���e��ұN ��2J�ߍ79�����v�6����J�F��ml0�H�� P���p"����J8&ӛ�)����;�Lb�$�2pfjL�%cl@f1�l�#o�5| 49sS�q��!�!2?L���@ƇG��ܶs���?�k��i�����3�ϸ�_���!�e�����<,��۳!_n�y���P��J��->v������}��q��=h�(����H �4��d=�]��_�{�5뽷�uyuk��ĝ�� Dg��,@F�,eEy�m�s!���Y�Ƀ�%���X��ȍ<�����-ϯ-]|DZ7�ʍw�n������3�_����'��l����ք7��vx�ag� ?��3�<n���O^�����#T3�� K�O�ي��� Sh��D<�o4���$I5 s�5�9S�.d���]�b��k�Ǽrq�l�c��?v�އ��旋|9�u��XPEH�z�T-EL�DN���'X�����+1�K52k]D4jb�9�����V�Oq�NDxP�c��"b��r����ԉ����J�q�U��R�.��^xA9{xV�R�bS�"͍��� ���M���!��x�.�H4!cC�P����n��<����h�@�rp��|D��-��,�����j�����;��0����u����o���tZ�d���<���/���ݸ0x�̄�lwG���G ��' �Vt�,U^��1ݜ/��&Z�x��p���.5(��1"v��f�Ir�ؒ��$��D� '��v�hH����Ү�F�$��;�L�ךK�z;KX�+ea(�b��h<x�m���?�����0v�)S��V��a���B�A�0�i�c!cG�����ވ�����z��ɫ�{�������j��U�~Ǒe��{�Qn��C���~͑�GK������w߽oƾ�?�����{�����JĦ�U=pm�l�dʈ}n.����Qz|W��8 ���g���|�-}{Gǯ��z�?q�-Lv�a\����ק~m���J��������M�l鶾���T6�YT��� ��Z��e�ߎ?��@PSU�Um�⯮���X�E7o�d#NU@�8z�����i��e蟹{��c0���>8�0���o���|g��&�Fئ�"FA���|�:k�rQ�E�4������D��+��-��)�����'�q1,@��"�IɀTt�/L����F� �$�eS34&E̒VR% ��<'��^ȏ8HJj�ijM�Y/�z�s�)Ԅv!��xa����an��� �.&Ur�EQ���0�f�4�Er ]��� ���若�����$�Ҭ�4,@�������g��7x��m/>�<���fU�N/Eԥ+_�?6�?���G��{�CZ]�:����Yw��O}�x0_��^r#{~��|�۱��5�8���aГ�S��D@���j�A�|]�hW�ʒa&ݢj&�O��#�l1��X� E��pV� ����k�{dp�x�k���7��/����ks�aC5[=8�[�[�d$:�jo�a���@IDAT5CCq2����2�9�L��l�F���3�1���:5wog������yw�����$�Kc��GEu �,x ���h2��93��|݀Q�'vؠG!PU�<+��P��gl�A��1���.��� #?��. ���s�7{���G�ĭ?{Ǎ>̻]�w�=�����g?��͝+�;t�7';���5����[���m�q�N�֬��~������s�8�_�V 嫵�����%��OZj����λ���N;PB����qW�����9�k������Ƈ����?x��!�ի��/���P���=5��G��\ #�����]���YP�d��Eh4r�R�I:A�m�� V]��8�#E��n�.��@N�A6U9%oD�G�����,r5OR��#9�����!����z!f��ۭ�Ro1ŗ�����]��f�#/1;�RQ�z�"%]�5���t�����D�Y&K�$!�ESK�i���ō���P.�M_�H��20C@����~p�=��ƅ�%6�l�(.��B�H�F����^���YGQd@�6�| �3�1�[�_�K�]֦�[����~�,we��d�D���ѐ�D�!F�f�$)cɮ����T,��$��E��#5��9|����<y+�^H�s�aQ-sod�F8����w����ٗ�=����1k?���K�d-�S:8M��V#4>�!t��:��r���&�gz�S��Mj�{���ɥ��?���W�� �|�|)��$�@��e���3̰_� �:1���۫6�'k�6b�m�g�̧z?S�V��Qծ���;f� �:��;[/^��Xy� ?�/��K�o������c�3_�?�������W�ٚ���#�44����^�=� �.ώ��������~�! U���U�h��b����Pl\��P�i~<.ξJ��[���r31�e?�>ٺn������s�wh�����+_���z���Ȏ�v�� q�P1zdB�j�U"��"rm�/���~����@�j8� Ø��sh�=�d��"�S��� yB�D�G��i|cW4��+�Fv�����綠*������A�$w��W��F��0O h��M�D��PfODl����C����F��\��E�3p�&�=�yN�p¥��q�Z�u�d�n}d�{yO;��B����ڃ'.l��z�����������#I��M0�>����%��#��x��i ���g���"=���;J�������N����9e_7jl"�ڕ��i���$ҡ���hʄ�6O���&9�"U�{��{���-b�����0���1p6�������୯�.f���3�����o��ތ�ᝈ��At���e��>7s�+F���Ox���� <A<�c�ڗ�����k����>S?��7#2E�ݱ.��ܿ�$�n�uĚ˧/Ԁ?u�^s��`�?J��و��e����5��C�Ko|�m����?v�xn֡�Z���ſ������s�Ӿ͏��+|&;|.w�8�c���^�c;��^�v'���C)�$�x���y<c�0A� � �JJm.?���z+�h�lj�S&6ܔ���o����!�yg��K~�[x��SC���(��6�S�צ:�rd�r��{EP�Ѥ��\
Ri� �%9����������ŸJ�A�^��f��4G$7���[ ��$P t���.8�A�n���%)I���:U����� I��3�!!��!��Ta;�-9觧���Uļ}�Ut�� 6�U �ɐ�!f�^q�t�K�F��g7+��W�������"�e�����p�Խ�7�� �ټ����_��7^���|�z���O=�W�q���t��j���cBP,��;� Tw>�Tj�߉�P~4��������ީ�S1r#r�䂴a]��!8^�<D�x�)�d�0F�8P�<��DҧE "���/2K�R�̚��ԤxE����gH�[v���?|�� 6%�ړ��T��.�W����w��,!e�{77c;w�l�h"��6GdcP��N��� �,20����}FM����OK�F<�Ug��(&NI��e�i��l~�������zy�J:����br�m�v�)8�0���OG���py<^Z���P�e���zǻ���b�4(ﺭ�7�1�/{O���������ʗ�g�6���%>� #�=�5Me���T ;����U+����������@��_�����QGl�q�> ��eNx��Nͻ�����x�|�'�GO<��_~�;��錵�~���7��� �����Q���U�ز��R[+�vܢ�/R����@fٍ�ow�"��!��T61LJ��"^����K��,p�ga�;��VQ�]��O��V"�.�t��'���cOŸ��������t�A��H1��IubAɪ���Gk��R�i��B�g�����<���!9OH���6��¿���.�@�� "^e4��ش���r��=rg�L�I2d��M�غ�����ʛ��~q�4����ީ��( �p��,�����˳)c��sa��ӫ�i�Xg���qS�N���27��3�ə��\�Y�)��|3� cH-&���C�Yw[��B�I��)��1m7h IP�]@�d%בO�h�2U�B�� �����Dˮ1ҡ/8���������+�/���,[�B3O��g��� 6��Z�4�Y�[k�2P�u�N�Voy��J)�T�g��Y���>���gr��^����z�~;cjǟG �z�2&A%I7�^V;qqN������SӓkNf�[��O���v�)P���cTo���p������샇���-��� �v�(�$���=�_�=�H��ƌm|����+e����ɢO�}��i$q�H�ws��&��{Tp�B @����8���#��G�:Q��0=%a�R�(o�"Mw�s��]���oƻ���9�^ҋ�_�
08��3����K����[}���
�v����2S� NHhn��+u4X)�p����5(Fj��6��D�ᕯK���KH�:�<��d� Ds�h�5hZh6�$��4�ڮ��?dE2W1(8Q�s����;~�@'jq���<Rk�(p����fja���M���|��ҋ�.���Q����(�L"��;4V��a)�H�գ1��V�e�4��(a��?���F۽t,�v��pLn�$s�}�#�kۯ_?���HS(x�i�bbO�^�"�������4.P�r�\4!�ⶌ��F��1ig� 7.����;��l�'P������TBc���Ƙ� Wf'X�5̔! 4�1��bY�ߋ���lVt� ���w�g�&����DxmU�Ǡ��c�|�[-�E1[�����Ð�Cѓ��֏$�Hn���SP0J�c���,���� �;=���Z����,�ٚ���U�s��g�����N�@���h��u�~3dl����F��<��ߘn�n�qnvzݹb��PB��e���3��;��'\��g|�����#��{�O~��ߺr�u>�6�?9����?wy>a/\?+|6'�DE�^?O~�w��"S��/�a=�Y�K�W�4Iѥ4U�b�zc�Z)�v�[�Zm��~[R���y��������i�5�˪^������c��~��}��~�;���b�O��g�Z�bE�b[_�J!�5ApN�W1%\g�$x2�K�R��mm�ˋV:ߺo^M�����d��1C4���0�"f$�g��ieN���%�&�5W����@-�������V1Z��K��2�u�j�b"3+H�K�H���8�o�\�ș�L����}C^�����&ᮒ��cp7�9�W7)��P?Zx.2����d�><p�@�.|j�3_�����iv6��Թ�[}�k�����.y�������c����h �GcDЁ!C�l=5��ѕ��S������;���Aw����T{*����eX�8{��m �u�S9�>�DPIE䏶)OɅ2RM"�VS��}���16E]���+��^r̈́��]�.8ƂƘ<�T�H�l�G�a}Eϯ�4[M:C+ɸ2k��6�!d����/����Hot\������w��ۼ��7��u�$����SGD������2V��[��:��~��ɵ�Zp����Zζ��/[0z�L��� k�,���G�o����{
��_����z�\�o�M��'��Lx������j��G����c�j�-R
��7u���iھ�&�bO�5ɑ�@r�t�U�z���ͧ�U�������Nn;�C͏�?�|����?��-��GGN�9��_�������Fo�olZ.�G#��aeE��%��HI��>5v�#8��Q0d�"D��H��2����Ʊ� �.�հ�m�Vi9���:81�K���L��+sjT3����ܡ�x�X�mP� �\��d�L9�Yj�=h�����('~�vR��պ�ܕ[~�t�Ϫ�a�lTW�lj2r�����O,G���(��k�X-������OH�+�WA�. ��ms�gi�7 �(� 0}-�����ƕ���W�<��?��q��,�����B G igz�^�����~�ĕ;�6�t���2:��o�����l�1��橭���e�[_�y�yn�|&�� �ϗ���"��NI����<J�%��D��H[0 ���!�U6ԃ�Mm0�V�sN��"�ң�2�����|�U����E¤c�z�N=�P%����-�2S�>�"o�������s2|>e6�5���i�y��z<�Q�<\d�g�EeN�~��/��J�_���3-�^T�J���@�S�V).�G�7f�� ��}����;c��MJ�gw���"����Y�e�z���}����è7��m~wv�7{���Isʛ\�}^���,��qğ��"� Jet$�i:����y|��6��4B+q,e�&�2��C�ò� �N�fi�T�Pt�ޑDi�h���;�/̀m���<�d�g0\��?>8zh2�����s���� �c��bۅ���C��?VT,%�t���6����:T��Oج #�"t8�G�����u'c�W�EhTȁbA�I���ES43�o.ZƢ5�HK�plzZ�j�KE&�0)4�G�$����GX4>��g'vkMOp)XHa�e} 6o���|�� �H��/yv�B"qe�!K�J�\ �%JmO排�#��_b����Δ\�E��Q���&�{����id����V�s����҉U��r��M�������d1�o�b�&�"��O��#�R(2d��>�Ye!���t��G�������ވ��'~i��)i�@J�J �F�ء̩��Y"�&���DH��ݨxzl.R+6� zhjDŽ��0#v�,v �>��T2^w�-{O�����QV��2�ЂDp���� ��p�<(�u�0��Bs��Ӂ�z�������|xX��Ka;�g3��������O�|���)%}}�?~5��� �b��<vh�0O�<��f��C��W�}����f>K���J��5G?����� ?Ǘ[�eЙ������=t�w~}��Nw���L�����qy��F�h�ѧ��ĭ�3�Q��i���3�!�K�J>�f�ҷhL!�d"eV?(Z~$C�y��u���g�:w|���O��cG[w�������#_���������s۾?�|��e��El�S�ee�������L��dB�!@�$s�.���������1�nƽ�E�!V��.V��� ��H3n.�)iW2�Ec����G��q �<��I4����½��ђ�#�RŴh%-�$���� bj�TIE�ԝWk�Q�tMP����dmEWHҎ&���&U ���B� #b��f��C��L4��h����o;�� �;��8S����"+A����ӗ�}w}��/.��g<�hѫ�<���L_���$��2�q'�$����B����!�7�m@��qj{����_����|ꕩPʎ���1�E ��\���ZV�.܇]�� [N �h1̧]� d ����@��� ?:��m;�ߋ�V"�����?s��/��:�7�1���C !JWSt9��P�}/o��m�a��#s��"�������z�7�������>8~���|�ȱ������|��)���Hy���u�"�% ���D9?�M����Z_�/���W�������}��Oܺ�b�<q�O�O}g��C�(2�^��'+�Y�Ag??v,��o�d����3���뷁��' <�f�m���ӠY���G������+\#V��6amj�pi�����ˠ?U�����7�n�c|>��٢����~�s)���W�7>��S��:�)cgm��[�ii�J���J�A�Dx%���$�-� �"D�-!ο�+�Ym�b53H66��HK$�\��$\v��8������b]4jRr�1,��F�j4�'��bf�Z��BM���Q���Q\B:�J�JP��O�8�i �%{�����ҵ�ڕA�-)�$���DUB&{L�iXŬ��x6&F�=:4�.\�,�b�Lq�"�A£�9> 6w�_��W\d>�{�1�\ec������}����ƬOG���P�UDC� ��-9����L�w�:E����E]��|�Sʭ�d�s�9Ѿ����� ��z3��b5��� T��<�2���r䢄�W�.�eڨ�@Xp0�Q9�@�Z^s�� �)�%�9�ߥ�ϯbz���^j6��b�Y��0�&� 6c� ��J���)�l��|ML7�f��q�o�ml�vV{{~y��v N���s�y�6�ԩ�{��Q�ω �nE?D5w�����SM���@Y��@��hkػ0��7^_\^;��?���k_��?q����A������]���=q��ye:c�εi��a�����1�Ӵg��)p��SD� �S��0?��Vjm���[_̲��X�3�J�6'!u��:��~l8�J�>�?��ޟ�3�����gGo��c�<�~|t�xm����G��B�+����8�0�Xi�QE<#���@�����[[�F0z'�J'�-g�R�BL��JU�A1��A����LޜS�����6�W�� ��eW [I�$QXh��\��Ҳ".�"��O{ �����X�\)�&_� �,��A�T~�IG�@�#�Խ&F���Tÿ� �ʫM��O~s��4t5d,;0!(1@0��,�� �D�p� �)�Q$�)Hg����t�bP�Xn�@��o��8q������Ǿ���îP�-����9�[G����Ȯ]_Q�î�!�F������͜{��@ߩ�������?��տ�\a��x>d �"�����!��W%���A&�;�j��Rh�Cr+�D5�f��������9f����ptC�@�".t��C�k��s��4�r0-PFt�t��!�F@|�����?����x�$�T����k���a����w.�l��+,�e��-�c�9�?4zN��8zx���1�}4���D+�τq���V�z\�n���Ӆ�� 3��k�;�ћ~�g�{��pq�:��o����]��O�.]��\�NV��������NN�2�� ��,�ah�@������'q��m��Qa[�1/�����pL[�?�@�94t�9��ל����}��٢��s������١�&~{������C/� ~�Ͽ���O��݄ �y��g�G�{atF�� �$\�6M"hK�JɃ����! �r�FK��@����r$�8 �^6k2k IW��X���H�$�!���@c\��t�(�G�W0"t�U��QA��K@A�]�1%~�i��[iڥ�aB��i�A�vD��@�w���DB��I��2�bq ѹ�DRJ���j>�ކ����E�5�I,��l�w���W ,!�F7��h14~����]Mj?�)vuW���tk�y��q�_��������#n쐁�1w���MFl���p�"m��Z�SR��q#px���0����x~�����n8��?��=7<C��i������b���$�i5��>�zcG��&�P�8Q��UJ ��J�X�%~��N5/����\r��]4^�-]c�mC���@� AKJ፮�}=��u��0;7�>xɔiR~�Y�0�0�3=~�߀�P<��O��Au�B��W�E<W4Go���v���á#?D��)P]?����s��� [�-N��g�����w}�Oݸx�#L�a��S�'�=�����|��# �}�Y��~�y��u�O��Jv� �b9����qS�.ʸ��JݱrSbN.i���b4�ThE�v-5�����[������gP��i���u3��{�4��M߇�R����u��������w.����]���VM����Q�)o%�=b=��#o�"1���Z5"m�teJO�݄D;�.G�l6�� C#|dYlâ8�"_�d��E�4�E6�&�h�Ԋ��% 3�%BC�(�X!Kr����/�k�-z���^pu�l�@�f�����uu�&.�G9�3E\�����XV3�$ G �Pr�?U0�P����~Z�� "�H�ۍ�<P�� ��$������85.��ѿ�N�x�nן���.~��s�>p���s}�hC���\���ƍ��o8Z���b�P"@)��a �����c q��F��-�C�����z�]����|����=�c;|��.ܣ)��#&��)���S<Zy�L��58^G�=����,G+��ǵ�pV&���l5�Ib�L�/�ݻ���Ҡ���7���b��#^�aC�#�J�n�(�@ە�3��8c<g\';��gO�+�5����%�lr�ݼ7��u�?~��g\��#�f�S�|sT �c��~�CZ��j�7}^�?��[���,/Z���W~��O�a��QL9��/���=��ީ�����6�+�� �����5z��L}GaF���::'~u�� |��@g�g5 T����e��WCji�L4�6����[���_�GO��,���t���K�V|:�ø�a��0������}�m�A������}�g_\ٞ]Xg�Oþ�����2�eqZ���f�eja�P�d(��Z��&�9�oi@rX��b��@ ���$;z^�!��6���d-o];@!k<rPL�) 3�Q�0�~ \^9)�����XH]L@pÈ�X�G/h ���ʆ�dGA���"�Ԕ"' �C�� g�����@h$���Wi��H��0Z,���F:4�+c�+=I%l�,(^��і�]��_C�H��[�W�秗�>�����W]�� �M:7aWFn셃���{��a��9��eT�?�An�u�����&�Qn�����뇇��?����|�ISȅ?��Zvv��)��(Rd���!f3���M�@���n�+��� ,q]��Ep+4Tf�. ah��~���N1�<��Ư���%�m���� �<5i$��Qy|N���ѳ��W�'��B�<21�C;��.��6�{�|;���g,vp�iU� �}��ݬn�ﻋ���|F�/��чo��O^�e6�m�Of���f�������c>���k?�>��L�'�z"Qw��[���y�!}.T����lb%�� � �4��R6G|��[Kn���Y�kJJ� ����n~5�� =����۳o�dǟ�O��E?�������>1<�yq�_~�g/ Y������Wcp���#�E���ȭgHmh�'(T���.�I�r�GJI7$�kG�R����Lf0��_!�-�v���8Z��F�� )�"�%"=$���j%d�pH���d��0o1��n�U����1��P����$h�hZ:F�R�r-ʤ��A��+z��5� � ����oK�1j�]Ekz�Ja��15�. 0"���K�0 VQjqX�M�{�N��Syv&>]�]�o�|��S���t���Uv�W��W;0ڹ��?xp|�ۇr(����(�ݥ���:t�x������\<#��������������[�!����R�lyy�ʂT5K!r�;0�iim�ynl��cG��K3�ve��������U{4���p��̰o�r�0У' &r����)_�-Y"' ���� ��Q��2����1q��i����/���;�m�8v.27P��u�Ρ2����p����Ey"ŀ�G��z�ݿ��:'<������GF�c����~��O[��u�X���?~���'�/�&����t�>��u>��ϰ����r�T����qb������d0Б.�a�)X̥�J��5��w��e��9̽�(b��3᪓���vڿ���s��W����~&~1�?KK�E��aտ_�96�=�����/�oO�|fxy2��=�2a�O������Q� o�G<4���h�p��V�ht0V���]ñʢEQ�&�@JW̲�l뀆V�Th�oH�������L�ǎ���:.�\%��|�v�P�M�l��s�嚜$��"�7��:��?�։���V4�39����|1��l�K%I��@\�m~I��fK����s�b����]�ʔE�����9b)�l��w��X'UWU'�R�ڍpi�ZV��!�( ���#?[���;��K�����������x��������h _��?��2KV�R��I�����f(k�[�ʍNhBY��{�?�vӧ>p��?� A��ax�w�F�(�%a���Z,?�%��9��9ӣ�rI�T�$I�(p�{� ��Y��=���gi��kG~ȍXZB�Q��i�Y;�{�x!��8M30?ʐNf3x�d/�Q�Ͷ/m�����Y7��g� ��|���2��r� 7q��k�Q>��g3�ews����^{�>�_z���(�)83����ރ���\�m]�m�N'k��V����Y磣�%����b�����\n�Fx|O:���G��l��)4$vا+��[�RIiYؖ��� 0J�̘��?Fx2�ky�b���Z��F~��g�?#?l�̲��F��_����������Í_��Ox�--�����} k��v�@ʊ��D?��h���"�"��U�KB)�D+�F�r�mX1 �5+1��)4���"�A�J�3ǞOQL)�R8I����]MjÒu��C��x��k�F��%d$�R7�D�(�����}ӣu����Q@b��!�ƃ�0o�'���1?��1��J�d��,i�M�hYK1P�9E��`n1�[�$�QD
�$P��3ia6�I�JP�@)%�>���!? ��p��5X��o|��_�橏����^���{ہT�8������F$� �AGDPjN1:���u#�<=��������4�z���SO�o�g�����W�}p>�9R����H�z�aGj��"���/�����p�K��h�y!EF�Ć� 3�>�&1ܴX���w��ߍJ�6��y0D�u����\4� p���XR���EFV����Y�t^�bGQ��4ݺ���ܯ�l��'R�.ڄ���?0�?��[���ي:����~�Ãk�\���?��c��_d�Ɂ�����G�?|���:���uF~���?]~Ǡt�.�QZ�`R�e?��;��s�6�9�]�����zOmm��P$�~� iPk��db�f,� ����f���}�� 9�]̀s�x��vc�ll�7~�v��j��i�������G���7����~��>{��z��\ʣ��ֱ�~Ay�t�q�eZ�Y��A �ԦF����hw3��1�t]f�2��Z �.A%I�vy�&�J�<!nD�Tq�f���ф�v�p�v�M�GM 4<U���9x���CQ�kE�~���N�\Ɋ�O%:qCB����Zi'�P�$��C[9�=�y�����B�l�@~��t!���C�5���P�@A�LSH�� M��%�qHF�&Xc��Q����Z����ۘ�N��|�R�ҿ�ңo��OZ��t#�]���}ns���x&f��X��ꠊ�%�E�<��[��'Q�̥�������������b���7�>���@q��Bҫ\1�9�H�oէ�=Jk��-��PٴV�5~�W#�&�.{�쨀l+!ɥ}ß0l������B,̀��B<| �x!n\����y�bxJ� �q۔ �d���[�L�3�Y�I{�<�Xo:�N�~b&Wg�MW�ʬ�O�z�o�g���4_e����M&1X߹4�-����_�ZY|�M������a�f����?5����O�/^����Yc��?��5� /���.���� �,�&,���/�8W�cD�d�} ���h�[7bm��"��[,�j���,���>��_������ �T^���']?6a,�����/��g�.o���GG������O�d���;�1��~i{i��ޝk�af�!�gd�o�WR��m�; ��,�t0w�p��[�\���ЫT�5�4G����sH<����p&�t�t[���y�26��w]�'V�VAKR!�"�]�����͍����e�@�#eƫx�G�XM�P6�!�s.���i7'h �����d�x.�^!Z� ��IL��Ţs�rh��w8�x��E��+@��#�4��@��~��4L �x�g��7?1�����cuY��������V7�u��Hʢ�Z���rJDƁ��a l0v-��3����~��7��sy� �����Mj/W��@8��(@�XH�"���-�MZ�$��5��pɐ�|�& ��ʹ@�$7�K�%��M��H����K�n�� ']���0ؿ�?��s�u�-\�IJj���>{�s���5�!hMb�PZ=�3�4t~���S,�f}��Ս��,����//��Y|� /��+?���~��p?Ό�p�������=x��~a�u���y�����~o������]>��3���q���O��O@6)�4�Y��|&5֩�e9��9&��X�r�t ^�?o:z^c��ϖ������3�>9fs�O���%���(��y�a���CÃ]8�����}~��&߯dG\-���ݮ�#Yф���AѦ�515C��J�y�>�B�B��.��u��y�Y{�X�n�e ��Z����5kX��P��$�"'�d-��6��PHE�06�L�{�l2����0�T�"Y���Gk �K�CfPyc� ����(�(2@��W�$���3rX;�\Ű��e05i������Z���\E���!��� �jHAF�&V�J&JU��h�t�M�t]��n�#�������[_|�]��6Kk-!�b��y�Ã�s[�Nn�I"=�<���J�X Q�(ER�䪂%gTھ8��x� ?}��w�\��� @e�ȢE �P[�K�ta�FŠl�-�!zIeP�ʚ�>+�GQ-|ZI�əd��c��9��橄�8#��{�Q��1w����$}�����e��/��-��̎;�xç�~��y�ԙ[��I��h>�7Hx�!�Պ�ሿ+[|�)���%>�5�-��|�}����������k?v��~��Ͼl�+�q@�Yo��������X��9��v.g�ߎ?�ߑ�l���x|_��爫��H���@d���zJ��Oyҩ&A�����;l$�:D�Mq6��hl9[�Z��l�i2�<g��5��冷�����T���3�똏������'�a���~��������.{���������+���[���Ռ�<���>����y��!Y,�sj�yDׄ��a��h�kY�ߪ78�3k�.��e�T36���ej@S"S6�H/�"��:Naи��r��#NC��N�w��6X.��)����@!� �jMפ�(L�!I]�P�h�pJ��V �@���U��!V<�h@.�Uhu�l8�����t��#%j=L����L5n�+�eaj�<:���B<P-���o?Jq�}|���o<~́�wi���O����p�|q��}]�� �ߣ�We"�����#rp1�p!&��H7��t��k���[g?���)oK]� �����T�Z%�,��P��BVs=k�+���eb:�Ą俜t�ƿXk $3H����H2�jU�\1�=}_5u9,U|D,i>T4������.d��̮�vi�Ϳ��'>w���ۃ�ɐo��No��w-h�9���K�;>��L/�=��q�ÃK��K�k������W���� 0��x~�����o�����hvu���;O~������j��v��P��@�����\��:��D+� @�� S�T���O=���yZ �z���yX��Z�ߪa��{G���χ�����Qpl���������� @�����}�����=�������\x�B�!ޟ��=�:�b2K�<�Ѫ5?R�0U!��ɯj���U�T����P;�Wck�U��{+\%B'9��D�Ġ"9�KD3�$�)�аhbü{�M��:E�P6z ҝ��"����=<" Ib��'�$u�>����Ԉ$��5�i�w�n��A� Ym3$��L�P��/^@�fKJ��Q�"�TU�Z3 �I��#p�r�RɻQ|��E���-_ۍF����S����D�}"U��(�������ŵ������A�>P���<�z;��ޭ��<��Ń0Ku�v���EDj���rU&���(c�&ۇ���Ǘ/m<�0�p�=�|��,9�"AR䔐��S(�1%��x@&��z8�Q́n�)� Q���|5�r����?�����sL)G�P[+�Ղ'�;��W�:>�����#�C/�����s�o^��xp@�Q�\���[��������3��/��X�d|��c�~�/���ڍ�}���_��?���#O�/^��}e6��Ůl��W��vg�?}�����W|Y��п�����'�@yF�~�%��0�6�Y�+��0��Bk��� ���7uA�2���Ч3c7��.�v�2i�K8���@R�ך֕��b�E���sG?58����=��o���=����d���0�˾K��;���5�W#�A�#~] �#[jC�Z�@�h��hŭI�d�Z �S��E"�A������GQC�6re^�WQ Je������<�.��-��܆L)i w����t)MJC�%��b�=��������$!��;��(�r�I�xn��G���X�d��� ��VB�mģ������+<��[xC�RL��� ZQS��դF��5&"��7W�&����o(�r ���;�Ə=??t�^}�������&����c��K[��O��� �:�jO�o��̑��J��T����'��f�k>���cG�����]��A5B%�d�xzyiYeHRR�^/T�<<A���ы���WӉ�big�{�z���^�ކ�0^&P̺?D��8�+3�=L듄�Yo�^�h�����+�%�_�w�e��م�?w���������w���>��_g�3�����ٸ��xhy����+��'��W��?�V�����;O���������օ���t��<��1��d�?#���iju� gc�Z8�/�1c�t�����˞D|b������DW�(X̲�0=c����5"x�����}<>RVu�+�[��}�%/6���7@�q��ȏ��̳��{�?5����������sO��_��_��|�ƾ�-m}2Mo�ؾ�O�V�PG�q�7�����ӫ�����e��/�rE�����C���]C�f�)�r$�@5R��P��ѲR۩�0�"��I7�G�r4��+��ȷ�� C���s]mln3@IDAT����m�A��Eh%�����6�$�R�V�ࠕG�KG�v���f���IHP�&�Ua�di�RJ�����]� �c���'�!!uEٓ@��ա�)\��$�n+1��9z|���?v�ѷߴ�mV<��]�gr«���'��K!�#-����X9� #@�R�=k��'r�C�O����d�Ҵ��oX|�Ϟxl��������q �n:5%T�� ���L f�B�Yy�@ܱ"(%�5m.��e)CFL��Ml�:��5��Y�j 7����a���媕��^�hO|2����q�EG&�_��$�;���4���_������6:��ތ��f�h�d�ʘ�����5����W_��w����s�����sw���~���K3��a��FO�p��q�����E�d�'�}���p��?}a�~�N� ��os�%U{��вX���)����������N���*�T�-�@�sS(>��g֗9p���ډE��,,X�����3���ѱ3g����;��yvpa�����1��koy��6�A�Z���w@��u���HeL��Q@+e�%5 ,����;@�r��}�_z!SD��Q�S+� �'�4�a&_�"g!�Y���<�ӄ�ˌ0�)��%�S�kq%���P�%��`������)������!d�ڢ�U�ɓD�bKP3Q����b�ɭ��b��$�"��ZAT�fǖ��"�#�rN^kM�d�I�w9U|�pK" &�I�xC !��P�_�W�F�AS6����������-~��(y+)�6��7z�Nnڪ�K@�7�sD^I�2��@<��I
y�s�}�>;�m�ݚ;��Z8��s߃��M��3��
Y�ͱ�# \�F��.g���P��#��:X��O��#���fvoB�宑P~�+9��'�nKy��CE�LfV�t��1�s�����Xg:�/:<��U�LC�܉�9yy仨S���١��违\~��:\Y\^8�pdyx|�ݷ��g_�O_��u��7�>�{�o�?x��<���g�~�zn������~΅��\{��qS������'�>��;�k��#<vu������.���詻�악bUf�{���bu�}bպW�� Gxb�4|��ǖ嘓������ �p���ّg}��|�e>ZX�?4����cϞ9���3Ϝ\���'#?;��S5�F����5�\�h�v��wi-Z5���P�3���_�(_�;Q���,�ź�i��W���h�mT�X2����$�t)T�DS"Y�ܰ�z�rI_����Rv!Cv�O��"Su�'��Ui �.b�A\^"UTy��\/8H�} �PR40!�n�p�M�P5K{<D�̆;���l��^�P�zGĪ� ]]vG%����SRd�L��T�/%���U��G�ʫ������Ɯ������'����.|�o����&8�)��_��� � p6�p,!4��Qd_��KM�V�Ȣ��M�Qѕ��m�Y��oYy��z�N!<���J�F+a-����0մ�6�2�p�\���� 9�����Rq���%y�B����1�k�����P�tl̂�"=>ze� a�c4#��L�m]�tdrӫ>ͣ�����Յ˓ޕ�p��?�����e��U���[���W���>���}|e�L/ڗz���u��3��Ks\?��2�3ۜ��o�7#�.�ٞ9����=>r?Լ���<����(q�=��A�g�ż�,/���h�:ZY�y�o@[��1>�f�������/��)ME���d�'+��L���[�-�ܓ%�x����c�#]��O������x�����>{����g�U���3推j]l�J+����cx;H�h�I�Ԟk��T�S�D�v�����7h��p���ΐ�].!f�1wJD:9�&_c_0(&_aQ��Q�do�Z�9�.d6q �h!�����V42��r�CJ0��M�t"XX9JI��]8��ꉖ�n�I�cЈX@�ۓP�"yp~��A�E���Q���D؎l�fB �x73$S�#\N�fk����2U6�e�"{W��o=rn�W�r����^^7B����d~�a�i�=� U�/߭��Z-�P �6��,F]���Ƃ)��'�y�gצK�G?���_�;wnv�eq9�2'��"��e���� @я� o9��| �7����b6��oO�.W�B�jZ��|�O���zy��<C�ܖ�Csn>�tm�] �@Ѐ�<�/:���W}�G���^]d��>���Q���}���yat�w|�x������v�?�u�e��밌e<�����?8ٻ�L/�>x^�a�����pc�nt������|�7?��f�pz�yȈ�������_�yi�9Y$I� �1�N��q���g��a����-�W�R#-hZ�����6��?ͩ6e�������������ɇ�ſ�]g}�a��ew���̾�U�b���z�z�7S�ss�2��{t�V](iWU�n�ܧw��.�X���B-b@�h�QkL;V�6�d���Zx y$"w�R?J��99�XPT�iME�bm��N��d}� !2$�c�8������ �"�FIJX�ƴ1�����H�V2U4sTI�eI�"�(�ݩ�?U!�df��K��I���P�+�5�\%�":�ʊE�d�E��W)2����Z�!��� ��\��6.�e���xnm�o������K�>�<��ǧON������\��G�N�0n�6��J���FZG���.lN�Y��i������������]q���f�c��9���+5�U�����h5\u34��c�m�-��?xQZJSq�Dl2�!��®C7u�����f���'1#�[��p��)w�\Y�xx��W����=���W��01�l�S�{����_�;�<96���/�G����� �6�(Ek�|��=��?}�u>��3��v/O�%���:������f>n��L�[1��Ov����8m3��3���9��ճ�_\?��DQ3 �A�$�EȈ�9�Z2RJh?K0M��G4|�W���������W��4�ܓ)_�z..ڨ����X�ᑷ��ս�������]\�������=���_�nPx;F< j�@�(��.h�R~O;��bw VMQ=�PK��5��43C}+F��� l%�#�LȚ^l�A�V>!k��/J!R�X@](X0K�0n�XP/��@�<��J�{� ����Ԅ{!L�4)�H�Pd��01���n� ����Q;�F+���PP��:Rl��E� �E�&��N���%FĖ�ȇg��DU!C�W�'�oQ"��r�b1���p�����o��k-�����_��-n<���c[�e9Dq鄔�e#�w���lh5�B�T��8�7�����s���/~���?���2;��|u-�������;�Y/"\<ⵯHH��"�چ!������k�s��,I���x?�� �%�tQ��<XD��O�6>N\,��r�i��o�����/}�ϳ%ă}�����yoc0���h����gi���������ß�埼|����G������������|��u>��x��sv~��}-���{^m����&��d�J��}���JB/ޗ-��ǯ�>eJIb X���)�;0�Q�8D����m�b��o���hc>+�� ��W��%��=��Y_�{}ɋ�_���;�S����tkᗆa��+��������siҿ��c�7}7���s��h�P9C�H?W�9u�F��VUV[Ch���0��@�$�AsM�uT�s����ڃCZ�D�VւC%hū�w�������0�� ȖY'���'ш���ʩV�\r ��� �ˑ�A�V&�f� �jT��H�dˉI��F���"@�Q��aS�ƈ&�Zn�Ng�7�c(�����&D��#$$�H���"��:�d�@ �P3� �L� ��CS{X����O���(���J��$%N:5�|�G�6~8�G��|vm�3�?~�7�ƀ%(�W\;&��)��O2q����\��T�W}m�B���sAP��(�y��G�����ɍ��c��z���� �Ջ��g�>/� 0C��d U6r ��V��ʲͲ"qP��蹅����x\�49����L���:=��=�E��� 8�:f���e7��9�!7O9>6�f�:���Y^�x��?�(���S[�x��������]濯wd�/z�o�����[⩅�{�s��{�w=�{�l�M.�1���u>~�kξ?���C����=>���/yMg�c>�F�N���D��5�wo]���dq��� �,�T�Ll����=�MbY����aI�{�\�~�e�߿8g��v��D-�1�M~�:���{ S�mT�7������ϖ>��?�ï}��)_]?��������>9��2�����7ܤWM)�,稫 Jk�,�@�xԶn]^��CL��IrN;�֑�(�R� !K�=��W�f�0k�s���Ykp;��&J���DN���a�]��h�^�X�bD�T]tB����!���쒌,�$� �Z��h�px�E�f� ѲK8U�C�R&p�B�ذ�F��3"��I4۞j�-W�\R��.�H�+��_�3�bCM��@J�ʹ�P��/#+�EE�5� IlP���eRw�wI'n>����e����_������?s��ã���칝�=��W��������+1�����b�zI8W���6 �����ݥ�>�'�cƸ� v�3��B$'��~���������m��ćz�=���_��ǟ�_�d�e�x��fcz�����E����LGZr�u�T�tK� C�K<l�W�&� �m8T��b��?��j��ѺY�gB��w����?�&~�������� 6]������p����?��;���g������ȡ���s����y���� C��6�S��[����q�>���χ1��:"��aX�i^���������x�KG���H��kH5�-� �&�iZÚ$+CW�0$�F�DB�~�q9�,��tf����?��K�ɮ�s��z��p��V���10 ��y�w�~�����5�+[��W?��{���ϻܓܴ������S�RS1�ڵjp��Ҡ�U�ĈZ^��Q1�H�i@�HI��A3A���t�N��E���s�'ɐ��������y��d@0@f+t���� i"L�mu$��H��D��P�;����X!��]�#����_�b��J/�b�?gEڋ+�p��-d��/œ|H¬�����ԡY3<�Ӵ �&N��u(E�p:܆ \�M�wW�zA$��B��)d������<%�␙$�P(��.z:b�s��uE~_��:·���mv���������#����ى+����5�=z��l��f,��[�f�I�����IU;0�����G�D5Iq���<d�c�q���[��W������;>5��/�6��?���{w��g~��lu�7��~�IG -�i�UYN+3�)Yk����3��, D���C��2Zʆ4,��P��ʚ�QP'!��.�� ���g��z��a�P��wsv��B�vo�&ys6pe�i�31322���}�� /�/��o<��'��|q~���=O��c����g�6�t��;�q�?�T���6vv��5?3����4�75������A����1'��9�N!�1v5u��%(�5.g�X�ځJ�z�45=� ��ˈξ��Y5ZM��3�$�(Qܼ��z��p��up�?x��ό�9s��o~��{���)S�����j��������WG�� Z�V�n4���pR�H���Y�>�i�0��&D;���'^a�+w���Ò�@)�Z� 7��Q�J��#�$�:��#�&DA{'r�-�j�ĒH5b��T(!%+��P���J@�#+ ������5��a�=xc��@�7eN��P��ޞT�Fs5���8x.�d.�y�X.{f�����i�E\�@���E�d)��=�v��/e��Mv��ͯ�~�۶7r�\�b�XdɔHY�%�����F��a��\�8.1��;r$E�D&�F/˚��\r�p{/���r�����>g~�}�����3�<����sΜ93�r� �H�V-4��SH+뫊2]�Fc��Ie2��s���1��[���]"l�F�n�$`���}��v�������;������K{��}���_9�s��
����K��KQ��^�P��3^��Q̊(;2���ZUC��YX;�NTdB�;ua���}>o��88����~r�K{�+�������yj��3|�fӇV R��A"�c3n����[j���܈���"Q Ry/���`�$�:��taoycec�~�[= �ṗƧ_o��טy�ت�D|��k�cU$|�hO�ԧ�<^���3��,/��G����'?s���'��� '�X����gO<9{�ՃKg:_�̪��.�k�0^~��LX��� �[�y� S=Y�5/��zo��}u�� �� �֎w}Q�&�ot�i��#˝��1NM�'im��i�Fv�+�0�;��3�浠���3��"��=�����qi<M9�h�̓�/6�7X��c?��{�|���ѹ�ٙk��������&���e��'�4��l��ku�5�[K:�9��m1�]�H�QH��!\�xJ0��7�,m��(�GSA��G�B]GC��,s��Ȧ�x/��c��B�!z��@�Y$S��SR���\᪼����v�a�P��pP4��QFµ%f� ��%�c�a�P�=��,�\�[Pl9�-�*�]�G��X|K�zj�M�W��YR�t�'������T�ڤ�����P�$ܗ�$��҆
�������銃��n�����_�Տ�ן����{.���?�G����O1��'���L兢��Fn�KU0�����5r��t��^��U�9��䔑4��&!Le�/�z���?{�"�9�j_y�����~��q�;w�{�����N�ޝ??�|a����2/Bl��v&���>V=d�R�Sf2%����%��V���%>��������p�~��.�>|�����{���[z����,_pt ��U�Y�y�w�o4�E��LT��<�ٝ����z��+'>�/�챟�!�i��g�'_�N�9�>���N�{���?Cy��_���|���g{������0�;��KBW �����srՑ���q�}��-��a�=koƏ)�����v��nm������i�l�-^�3\_b~�-p�J�$�+��?>6��>'��ǣ _:� ��Gg��8:��3�ҷ~��G�X��K~.����t�~ʀ����>�F/z�kiN4���r;�f��:cE���p��dņ��l��ClR�T��,���[������trh[�-����X;n�\���@Lhe� ��d��0�k,���CXE� B�s������� ���-;Y�� #Zp�� L1 uҶ�UhHA�(YyD�]e1��)��ƭ��ѣ��@�� ]6����������R����+���hByP�Sg�;d�d_VѐhX%�\O,�i���� #�� �V#$��fv��d�6�\������=�����������}����x��~����|df4ۺ�w�<�Dz���y)\��kZ����r������\�<?���)���r)�0X���=�+��� ��;�qv��V��dF��p����ݽ�����=��C�y�hO��W���3��0sʰ��=j��om������������纓O /�A%��� �h-�Lu0�� �d�>i㾗l�?��LF|�k{��6o�Y����}����[�x�� ���P����&�g�WN϶/�x��>{�� �������E���d�?�<��\��3K?�2�Q��=T/SE�6�� �D�� �$�JqXj��J�W�&���jLm�u�H¾��ΥҐ��w,sB�W�A�{p�o��|q}@�'�CR�p|d0�T���qVy��?��Ǟ~�O�y˗O�0��=���oUֳ����� �%B=k�7�^{�Z���@�Nl�U&�̈́]��~�$���z"\k�dxïX�"��{�J��<�"�غ7�\j4�Rs�Q��jN"]4�5��$9ؤ�իL��T��b��$�������2o�����r�ʸ�P�����Lof� Jh�DZ�CzAqx�6S�fi�%�D�b�������N��R�J^����lɵ��FuC,J��K�]|��ߗU�C@�9����b��S���'���Ό��������߭'_:�W~��#_�2{���~a�{7/<ױ|e����GD'��L�B�ۼFb�5BQo�d+)�������Vc��^�c"E&Rs&����%��kQ@����h���A����qS�Y�ʄ����af�opq�Axv��/[d˿]�x:$qa���'��.�xL�>ʹq��� �??f�v4�x�ϴ�-����ݺnq��0؟�6�SG��ݝ���p�?{��O��8� �g'��=�l���np��s����e�?uq�g��%�e�� C��}�'쵵���W)gý�%���=i�d��0��H�rU^_�+�SOi���Q�zHgFG ���%T��>��S�������gd��XĂ������� �}���S?����o�|c̛.��J>��Y�aof{��J͓E�Ԫ-�Zf�5��F��k�eb���_'�!�-�x�DQ��H9�O�D6�jA����>a���F_?(P�(��ҽB�J@?/Le�Nu�^.�j���L����b����RN�����X��¼�~� ny�" �c�K��b,Ŷ�>܆.��T ���Z^" ��Źb�Y�8V��n�D�W��B'I�+�s<e�4L��9�?�AٓQf� ؆��9[Y&\�0$��XS���L�(���2��L�#�y����_�����G�S����O/2�|�ۛް;d�ԦN���(��S�[�ܦRGh1Q��0{���9��Yym�&���f��L1�f���?�E� ����;ɗ[�I�v6�!mg����3�N�#�z,{y1���җ��F��wg^�<aJ�Z�<BE#��ୋ�}N&7�8m=��ˊ}e�{�����x�7N&�K'F��=�K���ȧ?~��v��d�k�_�Ξ��x���y�����O�� ��,��Nou6�3���^9�c@��}�p�z�O��Z�o��Ϡ8nw�@)^D�K5ԍc՟���Y��,�+�x�C4'�J���bW��p=yte���lI���BO.�\���L����di:Y��>�#�����.~�ޯ�����+�.ϲ����?w���������/O]�y����Hب�D���E&��3���j\N3=�Q@�h䑨{����s}.1��+GQz"SQ3�F�x$ENX���ՉM�M5�-���U��M��&f� n�X� �SP�W�Bd5W�C�hpHB6� 6���{:GJ�<�Ż���8�,s �d��m�š��xQ��56����AZ�E��#�fm��C�c�L@�f���4�Jo�_ȃ̮�R4���RR���ݼ�E ��r^�!�_���V֒�mw�������GO����ܺv0�Vo��M�\���A1���˩^Y��#FEfT���A}��r����s= Z�Z!8Y�k,:.��0Җ$�W��ܗ=e8�+Gtw����>�����ec֙Wg�}����v�>��0��/W��.S4:̝e�����3��Tk���G#:���p�<�MΓ���#KG�'�'������sǧ73��1�yz>�'\��j_���^涜��0Ox��̟��� �����������ҵa�#}��x��1�tvu������.-WY��Mk�Nm��{��f�>�<T���'x�L�;~����7=P}���]�_A߷���:�L�K���ty��=��uӟ�}v|���g��W~�;}opnw�_��]�;j?��rǣ���,�1�U/9d|O� ��%h5�j�@��j�X���������SA��E�5.�!$Ѭ��|K�ί\�2�ҖhJt{D�!�B.�&��EA�1�t�xM��I>�a��f+k怖���=��@� �o����ho-�M9�(�\�9sQ�S��rjVeD�l(��rIU%+/���X4�b)�j5Tr�:��.��e!��@�����yi�+�Ez��lRӍ��2/ GL�����V6�b�4�Q�b�OVY���e������ܙK��.�н�s7�~���M���[�'&ۛ��V�u['<�~���)�0m_�^] �MT��� �F�7�����P]����%S!���D�� dž��gV�S������An�y#������ҹ���u���ٓ��;�����9LMd^(�q!��1���4aǰ�}�e���Q��5�^T0Z��'Ӎ�ţ�D��G����'���L:������kO�}�;y�E>��]��3�v�:�����4�A���Xo��l�q��_q�DW�o�^M��|�Q�Ϋ_�����>ʍ �V�]�6�/�U):t����7� �5�_���s^�0�݆���j���yH��N/��ɘ!��te2Y�n������ҟ�x�l����g����rr|q�;�9;��<x�ë-|���yq�S�?��BVM��x&�}k]�4m�=���]֦P��^m��'��iS�î@ ��/�^��K|A K0Sn%�L%���b1���J�yA�-C79�rr4ş(��%�P���!����}_Zh�a� ��[tU&o62a�����v)C=�"�8SU�$]����aT�$^f6&�/�J�qﳠ3�9�ޤʖ��"��P�L�}�R8�9Q�M���<0�S��H��BU=�VC��n�뉠D1�cRδT�s�e �xe1$#L�y���P%���}���x�E���c�G���O��s���M+�ٙ}빽G��{���L=���
Y��qA��.QZ^�]�U͘Aʂ��T̪�Bk{�ImsepΜ�'\1��U,��ߤ�TW �䄠���T{�;����{dv���dWB<A_���π�Sp7�E��W�����7u���c�\��.0s���ҐOo.����L��-._������;��w�����1�l��=�L������l�W�0�����s�������d���~�g�� W|f���jLka �?��N� 3�o[��β��CVm��TGiZK�M[��E�t���2)�X|4�,uG�H}fc��_EZ����:�3/�x\������O�?2:��7����>:�S D���<8��A����=z�ۼ�o�(�il�bp�氦����g�E r�k��CNc+�$[I�S���tN,[�@D+�@L�ǀ����R�5�b9���b�j��^@cxG�.D�,�+������R�嚤���<T"͠PJGx͍261Ogp�yp �R��E���JЈֈR)�"��A4C� ����X���X�(6hY�L��?���/n��A�2y�+n�S�iW��m0.��gN<4A� (����� VFa"��(��a1����ldO�ȋ�H.ў�B��ͻ��Ih���| ��k�+|�e��6[Z;���]w����?��;�v�{۳�?����[�x�����p��%���6���{��=|R�-����L�nBsu�đ (G{����qԵ�q��4��n�� �̉�vq�/�����g�{dp� �3]pE�N,k!���$�{�����s�tY��2�����-V��;Nj�O/1�3/ �W��,.�<��m?��n���Ɇѐ��t��:x������'�x�7{��ӽ�{�� !���y���aȟ��B7��z��I���)+� �������F���O|i:FK�Ar�q���ԤI�f���I�D2��<[]�n����J�G�㊊���������K��,vx����W����ͯ�=sa�[�������U/�q�L��+��Yt� 6���۱����7��6$N|aӪ8��'��$h�Y�r���8�x5���m�������896vѧ��ceZJ�"�"�$+C$iʀ�)]���٤U-�jQ�ʋd%��;1ANr�.�a�D(N�@������oQ���a�g���I����y>�X���p��mi�� �N�QCHJ�ʹ� ���T�5��B�����F�d��l��c&Cd"���Mi � E�0��jQ���&?��$|rP��It�w!�2,,�����Nw�)Xq��]|����|U�e��x�[X.,��8���'���}���9��l��W��a����������&<�������u^�'S <��j<4�%����>��U�IN���P�sH+ ДI�g������&�y�:x�����Ξ�{WNC�����e�r���I�8�u�t"W�����g�@����s>ˣ��x�2^X�N��'�?�W����t�ς��Lt�^�=�p�ʩ�-�����^�z��:^�̤��p�O:���Nf�Y������ɗ�]�N�B��'2�Ϲ_w���e���� V�_͇VU�Y~���:n��跺 Pkj�߉���=��;����r�_��۱��;-�F��!7{�M����Ǻ��V�|���|��LJ���M^���y�-o��Z�=���Y��Y/�Z�q`V��/Vc�en-7dQ$��4V���.8&�U���%gxbV+.��gA��D7.Ndk�;|��t��T��:؎<jC������W�%� �Ҳ0Sk�"��G��z"@�(VIӈP[�5'�[u��Mgu�@��W��)�ْ�Zi� �( @9�J�#+��钺��%�4�(�B�6��L5�D�{V�#g�fJ� �M9DHQ�?Z�LG[��>ًS�8��S�bч�I�ۂ���Tab���M�"��G�^�.��g�yQ3��>�8^�{�����O�������u�a��wvNow��C.�v+e쉄D�f�Du+�Q��s:�.�ܠ������_�0G����>�6����3�:���釺���|�.�'�8�� �IJx;l<{Z�Ι������f��F����᭯+ ���/r���L�'������#����w��w��O�w��t�&ot/��^�������6Y��J�-�������zW��g�]�鄏s>�9�A��F�X�UL�8Ba��S���x��B"�1N����H%86�G͈�c����~��"w�o�ςN�&5l��IK��=ຝV^H��$:J��p�����p���1>v�������߾�ʅ�c�v;�u�K= ���ȥN���:�Kc��S���@r�gȑT�bmGi9�mP6 �2n��R�dq�>I��m�|�Fg�Ƀ�<��GD�5��x��B ��@��-C'ӳ�Ɋ֢�+-�f���8�aV��RH��K�R9%I������b�{EE�5«�?:��(�v����EF0j�DBE�) � ����lw���$��R�����J�M���WD��g̥���T/uCΏj<ʍ=I�BC0jh5)k�̙��n�E�נ�b�����N�/(�{V�[;����Lm�L@?��@�7nMg�'XN�?Y:�w�Ǯ?������\wv}���G_�z����<����yb����'���3�=�.H ,��:�j��,���p�[��NCo�E�(τ�总��<1x����f�������:Nv�[-�]�Fԣ��Pi��cKa�O@��%��#}��T����<�A�˧�A����xam�x|q|b�S7����?�}���������N������m�� ���>�K{��ͷx����@d"Ȉ�S�N�s���0\�v����o{��kL��'r�+%�S��Bi����$>6MFW$E&����3p.���<[[Q كM�0��E�G�X���;�.�\膷>1:��n��g�����ٗ_�x����&�sq�+���:yՓ!?f�M�e���}�8���L e�{� J�i�C��(�Q���b�f���@��H3E�hV�좪� ?��łl��9>YY���\�^�£�!��<��°�S�����EF��d�9�X���R���Fc��JǏ3���qt��Ol�mk�vQ�Gq��ˍ2����=���g"Uo���j6tfځ�PGy�ȴ774Q#%� n� �$ٛ=p�"bU�p��L�9}kw�@1f��o��ȒCne�5���p��yۦ �rC����o���� ~��,}��#n�x5���϶v�G�������ۮ{�m� GO�����ҙ�7O�jg����>������l�a����j��8��l3�C�Z)��};�y�</���۳˧�7^�=�����g��4�tސ�Q'�q�ܣ;��2V%�QK�qD7~��E>x�}�����ҟ�~��ҟ�'��]b.���#&&�Ӆ����;��_����xRy��pzx��7�˸��n��������\�c��v�?�ߴ��4����=q����?�\��ye��x'F����u[ӵUC �D�l،'���ԎMŀccaO��y.��)��E<���?��K�RѸ':���3��y�+cGÕ�ā��;�M><X���ƥ��~�;�����yw̝f���ˌ?�^�� �z��8���?ئ(�����I��Ae�Id���@������g=b��l�r�.�z���6k��$�-ʈZeJW��EP�%9/�L�D�;��T�tr2�"ф�5R1��0���F�Xj��x Ff+Mq�Al���")�R�� ��%������o��<R&(�xB�W;A����J6�K�5'���q��p+��8m_�����(���S��ly6�&D�y$�rfQ����"��p=� �("��<�"V�(L�a\��4�^��� eKP���ԕ�sws��te;:��"h+�7�p�m���w߾�Λ&7l�_Xzaot��s�/�m_�۫q�=nsz�f�.A�����Ȯ�Yftz���g�Ox�=;x���+/�^z���Μ��(/8�#F��H�csj� ���Z��]�N����f�\��k��a+)c~�������-:�]�lkÍ������~���,�.����K�3t?<3��=��gwu�����n��rs��s�#����[r@�{ۥ@ �[O�V3�TO���y��������n{=�����i�I�k��6���'��SSO�^ۋ���RM8������� mB̛9�Cw�L��d·�A���?>:�����Ǿ�{����G�f|�Ň{��g��]�b#�:s\��;�c��X8��Ɩ�!qt�eZ�������0�=$�i�<�� {��eּa�%��ޝ(R6&a�,+�Ë�ΤL�C�( �5�8��-R�"�K>�(!��V�n9�P�P@��m�h0�ʆa,�Z��r'�E%�+���]�] !M{ZW�İ�du���<��X)�K�һX�RV�VGIs�h�J�J��(S�b�&�\_�"�>$bɁ�vLY��$������#�G(�böh�gi��4^85�'�U4�DP����d�$��UC$ W����/D�u���������L��B�E�g�L�N�6V�ݸ�z���-'&�߰{b}ouygi��da{4���<�C�z����O��/�x���fǝ����ov'_�N��|�pߝ?;�tL;p�O��\BC���p['4ź$ /�.j�� Sq0��OB������?�K�� �po�����%>�;-;�3^��7�Ǧ?v�������4�0�{~��#���tW��V t�s�C���e��uбg�7{]�����@IDAT��Ls���\ ����j���8��j��8.�s��rf�{j��]=�u�0.�X�@�M4������FaSb�=����;��tk�Ĺ:o���siēp���������?=:~G���O��}�<��#V;��>8�=��Kx�+�>��%&���j��ݞ�?����O�4�<q10M�t3PHY�J�3F[�LH�H�6��8&v�l}�(�H�&Æ��k�S#0T��e����Ām���P�����6�ۨ��څ-9�Dou��X���R@Q�2sl��~�yK@KQz�0 :ڔ��\-�[�x�w���H��o�/u�n�� ���z)��e�E� EU ^"u|��e�-Y6n9�)��jZyӊU!�q�2�՜��k����K�<2D�ũc�A��й�PL9��8Hn�FNO9W�� IF�'>�-��p{:i3�0���F��k�Up��7��~K�?�mo�#Đ���ο��&��u���B�_�V�=��{&��怕���̶X�}yp�����ʥ�6�s��6�����1����V�����J)m����OH2:%� I}ka��|�K$!Nt3�멉�h�e&�� � ��ַ�d��x�6���)�I�1ݹn��o��?����69� J�U}�{������|.��"{�� ��r�'�}�r�g&<|���ݓHO���� ,�gS��}���Qv�X�;��=b(kդ;3�����a�w�?���ﴬ��^�J����&/��7��Kr�1�&���l���ꏏ�οy������[���]�?�u���b��ZN��K?��-}pLeR���3Z���� /fa���y��(/>iwq)}suޜxA3%�����'Hn��y��>��ndZ�I-�&�6|d�?[�u�l��b���꣸^���OJP�Ky!��J6y)lң�D��� O 7�#�����HS�'6�I�����z�=)��p�O)��)�">�e�DK=�p!ۗ�KŐ�t!(+Ц���B�&���B��9��\U%k�<�C��&YN$��ewB��i�@vq�2�3���ȹ9V<e2猒����ud�[�+q���: �E@�+�0��p���+���촀Q6Ѝ�wG���W��N9��[B<��U�D�R���5���28����G��g��"8/7�8<��-���h���'�#�D�2l� �=��=�3Q�m^d��7�X�0ژ7�����[>�wo����e"9J_��=2{����+��o��<�K��u {f~.�^�YG��6/xq͏��v��ve�?����q��Q�F[G�L��^� ˦C�jR ��$��4��c> ���9?�k".r����m�|��N��OG��$��Bp�h�ҍ�3X������ֿz��/?���Ox�������u�Wx x����-�ہaT��D{zMR��B���&�������Db6��P�v"��r�k� 9�EOaX��B5k� 1C�D�L�=7�Z�@h��IuSyְE5YH�o�@�$�HJ�(J��3) ��\�4(� �T��n �p���b�Y�EN�|�@��6�+,��]�2��{�7�-E���s!Vsn�'��9Gd!�D�j�R�!T<Wt%�ր�8L��-�.i2h4Q��o�3�м��.��Ԙig4l<��A W��&�-z5��")���?��ZR��μ�M��F��\,����tQ�,(r����I�����uEE�k(?w���h��=Q�S3�in&t��ՅC1�ހ�-�P ^ʃ�qPw�Av����I, �7���ʓ�~��^\S�?��a�̛��J�t���]_��~�o��9ƹ��p�������_\� �u��wi{ז����{�E�k�����3үIW<r���\�c�3�s!�$2j���=�Ǯ��J�pS����X��|U�p,_�x�u>�˭n�I�q��>[^f%�̘�b��τ�^��2�t/���n��c'v��y�ߺ^y�%�#�p�' w;��ų][,te�g�f�gf�mLFm��uu}�t�ѢT���Q�bխ�����kڄ��M��8�6�U�T��p���?u�\#�v�4ȣcST��.4�i��rZ�"�Sլf���)�0�l�Z�,w�����$���-��TqN�&ܤv�+s^����=��$RA��}Nn�� b����%��&�)��E�>������.h �(c�1F��ځ@D�S�Y$\f�G:�R� ��Eb�KL.�� �4Pq""̔��xO��()�[;L�j�ۆ��Z�MLºS�j�,h�O�,�ª��!�w�Å�f��T8=~�Q��8��St�e�Y�g���Hذ������È���7�E�j��6��ޟ[��@�YJ�������TH�Ib�K����9�tm��G|��̩��leҭO�G�#G������4���Lx|u���N 6yė��=���������ӹp7�q=ϴ��/�� '?|ɳ�����x%s�\�>�a����J1��$�a��!y�=z�C�l���$'�G�9�ʴst����HGK\�l�O���v���՛O��K�:����n�����g�=��?���>��vǗ������5���-���ୠ����|�ђ��i}m�������d}�e��f]�mlZ�:���y�Ʌ��6O1�c�aJ�D�!&MH�k/6&�ܢV�r9�"�"�"J���BO�(f� ֡���r��*Y�Z��_@oY?��Y����cV�?�4��R"V����������"{��k:�ү�L�Q>֢[��J�2zѪmu� bq�����!�,Y��Lؒs���p&B!��9ɱL���"�%%�}��! @��)8{�G��D��j j߂����S�N�:ChL�(�̛�JhZd��8�a.>�AT�;Ak[�Bg70�"g��K>ŰE\K�lAQ�0vXj̓i.'lA2��� �2�Ԅ����q@���4L��Ds���0���f�K:�|��<�4���������gk�_59��qt����_=�I"6nG�����i^�ye����X��iw��?K7yx����:�w����ݜ��ZO��zś� �Ip:K��1S�w�c��SUAb�.H͕[ �z� ����q$�;�gƟe��h���N�V���7���W���� Āe�L���lpC7��h����k���w�����ylk�����>����Z�ŭ����O7���V}I,�>c,)S���RR��zdP��L�T��,��)�^��"!$�b��&���@�:��XDu~�Dj�����/A���@��>Ԏ��wȄ՝��h'Fx��(�M26��k+!}cH��>�I�&�ʧQ;�'��Ik:{�6�^�1���sKED�$P_̫��\sX��Mˤ����-^\�.�K�@#��a1 �Y��h�U� U��W�X�ДV%,�GtXK��,�R\s�UeέO;��G�{7�.9��R�q��-<�!c�huӊz�A��Q���7�D�����jf�!�L�nƗ������T,�l�M�(�Y. �:�u��#NzN�4�N,Liu��J�j�24����&C"�=t�;�u��������?��%B?3?D�������M'n�'w}��G>Ȥ��7����^�8ؿ�W|}���� �'���{�L �u�+����-ό}������}ۍk���8��09�K 鈥'��w9�9ˮN۪�ŧ��4��=��p��{�wD�GQݨ璚O�N7ֻ�)�%|��Q�o>e��'�5������|�w����ٳ��������ؼxe�=�wY��e�������� \��q�'vq�k�������X�I������% ����Sբ���R�B,�4�8�-�I7A�K��]���+b�[�p�U�JC��[t^ߐe[ il���\D2����L��f�\SH� E�W�RL%�IbB��h# -j,�2�B4ER�[8�[�+�߮��M"�7�=]�e�-�9��U_֔S\:K)s��Le�C'�K,#�P�U���%�<�c�x͝8��9�D��xG��C��F��4�ddV˔h��"��T�@84���ˌJ�S�����#�?���M�J �K�:��Q�R��5���ʨ��� ��X�lc4�Z���!��Y����Uf�I�-�6P��L���j��Y��(�u��8s�d@1)��Xd��o���HD�{�g����xcqour��������������=����K���W|�j_��E_Ƹ�%�n�:��zÏ/��O��A�\8����{���J��L�G��cH����.]H9)��z4/�G�]��9�H�p��%���O���D;�ӥ�����G2�~�4�gi<X� n �<��l�c���6�/]��#_������3�������N�|r��:���7��'s>�ƿ�,��b�-�U:v�6��fQ�cpqIj��E�4��,N��AՆ�I�u T�4����i���Pz�w����b�QȡL�ؔ_�2��kt)�\�/$��#+�5��D��H)��i��&$Z�[�uD�4-���P��_��6"��vM eʵ2J��PP<�~�1�"զie^cN�|�S��ĠX]J���D7�9���&%U9�+��hq@�fF1���ήi������r�4�=X�2�&-���҃�������z)-nb���^�Qa�ᄃ�0���Zγ(�kD��z����ǂ�F\XP�wE�-eC�r���H 'v��ʢ ī�U�MX�O{��jKe��k7���P�.6��^���d<��o�������>�Ŵ�=W��ڔ�?<��wtz����_��������X �=:��Ӄ�.v�|��>@'���l��3�w��I�Y�O�V��~��6����0?T@Ē��S��H�"�dKe%e�����u�@��3؇�:?�>Iϗ�5��d_X]/.�9p�.�e�ϔؐ����+�g1Vf��?§�w������з_;���;�L��]�~�l�Mn�0�ÜW���ۈ�N�d~������I�(Z����@��[ R�O�[�G��?����-]#�dI��֢�����9�N�1�d�"��"��JU��y�K5�L����E�R&"Xq�(�+tQ�Ĕ�?zJ~%R��B�Fnb�I$��J+�q���ø�,4H�$�5��>,����5A�쮬�5-�HN�&N��!V�h���Ʊ��JuI�a��q"��i9XF Xʂ%DpxE�x:%q�;��R��$�d�5�<pA�������VT�bp�ݓ5j R;���M�p��a�ۄC�J8H�n"D �=�(>F����C+��Hf�0�5Y�j�f�D�@�U>�͡]��5�fq�z�e�;�bW�-���{��n�|y�u����������t��l��W�>z뿼�b�f�8�xb��Ǟ��8ۻ����ߴoxΠ~�1�VO@7�m���1WxY���|�ʼnlT� ]7J��,[m\aƳ�U��+���,��^�ev�p�[����~:2�m�O������:�P�%QL�0��w����Kށ4Z�F��V>:>zdp�S�����x�{?]��u��8T��5�~��[�Დs�� �Y��0�fUWto�V�7{rꓪ|ΩBH;h�U���.9��8Jy�I��"�9Q�8,'^(ZvNۀ!��p���vR����@VIDU�l9�¬�R�8������1�h�4� �0G�a�}RE�L���I��-ZeL)�z5�E��r!�4ء�e��U~�T�[Vړ�MS�,$��je��\U��4�;,it�9��$��n��UDJ�Qs�˜?�c%�↕�=�R�l��\X�)j�y�=?�T��J9�+0[\m&�p�#����DS�3:��,�\:�+g�B�f2��32ЋzȐRA>J�2�"�TQ�l�!�Yz��Uæ�p��xa�$�G�}�ayTr�OEL�/� |�d��C�Hd}�{�\p]�G rt.m9����o,�.�]xǑ[��/~h�&ԥ���]����Wx/���2����3�?\�u��5�c�c�ۧ��2���;&nS�L�Yb/z�KYA0�tH��f~x. t��{��ձ9�ù���X��~�@���c�}͑w�I������d��S/3&�y���+m�ߏH,̺�������>[�ދ�|遯����ޘ�Z��s�}�q��N��s��%�9\�\5�#�z��2�OH~6�Թ���1 �y; U��g�h�&����AH��R��?C*Q^�Z�0:=~���ٖ�����8:Y9�Z'�!}c}K\�+�p��o��j#E��������s_��v�"�7Bt��Ԝ
����-F"[��X�^���k���҂JRIp���IB�)��W�)�'5�X�yAI��Ka4o��_$JX[(L&Q�2+"��-$�O\�H��Giy�_U�\�'�nd�k<{ҖM="R�"E�2���M,�������L� QS��V���zI� � P�����%�.m�ʴ�-��t4�U2-�,-���&iYj2DEL�TN�V���- ����("=�����-���>?���nyұ����K���o;r㿼�W��ܝe���٥�g��؝aƟ�~M�l�z�㖯�q�6�zC?c_���8����������l��Є[��y�>������G:,���������8�n�<���'c�t~3�<��O�7~y������2�n���5�;�_�U���>X|�p�_������O�_�3��[����/����u�o��0�SO3k ����UH��r�f��GB<�XmA� $y=��%��@�.�& �JĶ���0���^�J�J�����\����D%� Q1)d=Ŝ[��P�:.l(�OBh358 ��Q�'�p�A@{�<)UQR�Y\,� o�jZ+���T�$Oqx�X�j��C)_n�TM��#� ��/E��D�A#�"v���\8�qnzQ�<L�K�Ѐ��uT�x��qg�Uk�\��i�o�%yQ2���>; 'Һ�A������)?7�7�((�Zʒ�(�����7�t�Ȱ�J�? ��]��!+e�s�S��T�� Mƈ�Y$���nQ(��&I�cK��Q|�j� �h�2C�r� tƍq�7���[uA��@��/7?Y�9�-M\���������ʍG���;���/���5���ٕ���B��k�ݞozp�'+|\�c��|��.td�#A�0�{�|��[���!� ��rA2 ���x��[�h$��a���-���[��s���|/}���J0��K����x��4Z^Y\]�kŨ���w-��˝^G��nxC7}�p����˧��_����~����m�1��s�T�e&�}��q��$���.��=��!����[�6�밊Dl�^3ȥ��:>J�]�pKc1x���<E��r��2� �f6$����5� U"E��I� }+]�)� �Q��B���hu#�f- ��56���٢����L�E�S� .���i�D墴@ZE#Q��$�"9��V�K�k��\�"Y��p��W�PtNU(9��&9hN�"4Si-e�G�Լ<�� �)AH�d�DD5�_�d@�M���LPRѭ\����x"6���՜P�(��(����,�q@X�U��X�[e${�Q �t4T���]�f�=ߖo�^m�b�~3��Z|R?��eJd����e�+G� ���-�d�N�!͢:g~���E$�W��%����.���L�dDL���>�Q03����I��s����V�7�?z�o��?�����䇎���?<{��<qs��?_st�?/������}٧7~���ؗ��X�����3� ���oډr�pfB�Nрr��-gW��Q!��u��������N�P�8�L�\�,.L�����֭.:����n��� � ���|����gN�Ӈ���'��g[�2��m^����3�g���D��~�;�q��u˗�+��B�Te � ʳ�GN�R����ͫ&��>A+x��Nn�\:���������ńh6��tC,��H��Jb�dh��&$֛�e�Vِ������� ��)��2����.Z�$T҅G��|� Z��7��.�,�ǹ�� m��|E�,�@-x���[vp�D�)� I�k��{%�hU(���M��Qo���n� �i�i��Pa �O� L1>-H>�H���K���H�.�VH�Hr��T$F%d!�(��Y�=�j�q��»�#�CG�3��R8�d�M/�A�ʔII3E� V�r�I��IM1�z� �2G+Cj�����C�Oj#s5�2�J/��%I�͐>ށ�Ze�$�W��5?Du�u�%�C����7^[�����v��n�^J�=��n���Wg}�O&��q§�垮�痸_}��|���RŽy����C������Kb�~�j�bn#��VUU(�:���'�M�lk# �̥�����G��ϓ���m̛������tdy���8�y����!�w���{��?6�ؼ�����<���gΎv��_jܝ�&�sO�������$������C~�7���u)�h������BU˟�q�l�l dJr{Lˡ��ge���#%b��yJ1��t��Ҭ�ݒ�X'��d�6��JKZ��Ӿ(4T�����7 ���0U��-j��B���b�hqGS2BU���^�V�/ҧB�j,�x��f6%;���CS$P7-�±��j0]L��h"�?��eP�����~�+�$M?�ڌ�eTH@8�VfE��iNZV���@l����3�RIg�D�ƃx�P�Z�,�a�ʮl�$7Y���R�c�C=�s�P��̥ϱx q��R�\�QJ�u:�����'��YʼN&}"��� ee�/�='Lp(�d ���;�ҏJ9}#2��S� B����=�ט��_��Q,'��ٙ��.�LXdF��>��f�]�?햦��tGV�G���-���:���N�h{����+���I_�9�[�J���.�@���;����HE�L���p9O{�'��[H�����3��.o�+�ja��e�k���]ZI>n�\������x�w}Ip���p|uua�ӻ��e����Q���l�o��������S��??�7��z�7��� n,m��]}��!?����d��5��PM�k�W5���%i�5H�Q���J��HF#��ض��l�5�D5�>H������m-��"�GfQ�DB! [���_��(#8��9�7J��cC(���Ra�O�Ws(xA��;�z�) )}�͛qs� !�g��ޥI\!�����KA�ܠCB� ���]!�Í��h��!��ܵM#��(~4E���n���2.{���{M�E�r|��N��%_V��ږ ��jM�.�HR؇2������ Q,�?�ĵX6Vyi���(:�)&$�D�t�u�9��0Y���y�[��U6K�ѽR�.4BU,Д�d�S-�V�J_L��-�g�L"���Q��,��V�^s r^�hZj��o�������u/~�ŕ?\�|�k��Յ����ᑍ�u�g~��X��ѽn��'^���N��0�������o��=�Vҙ�v���Y��S@o��d�f� ����X'�[YIB��LjH���N�/�>A��{>�\�v���1�?:��rly��Xp#+�Y��m^\B?��u���������?����н/�|e�s0f�����\�g[��K|����u��"W;y7��t��X�dea�{k[˒fgŒO;.Z5Y������V�������bi�?Y�f�8��!�e�#�jhY���9I� �V�|���9U�HEjJ)hLD�X ����/����,?�R��"#��L}�4T��� mo/��6# t������QB�--��I�D�@����o������V*��Vs2��L����{�+��;��W�.IZ�C�&U�,j���a]��S�+����tĕ Q�����TL�����"�r�<�܌9�{��J�^�Y�Zdă8�dYa�� ��;�Y9�JJ��qѩ���� �j�<��L���ƭ�� ~�N҅s��,r�1lUI�� �H<T��̬1 LG� ��~'��V0C_�0�G�x�uo��/��W�����7��u�'�� �٣O>3x�����/�'��m�Y�㨟0��}�C"�<�~��t.����L-��ρP|E�d�9������(=������sԯz�2�&�g����eN�|��/���F Gn[٘LF�~й~�zv�꺳["����G��н|��p?��s�����z��mn1ү{)�b���q�?A���vA�Ѽ�"= �����ʲ�Z�~(B��k/���$D �Oj$g��$�}�9��ɖb)`�+����Gwj�u�� !�d�9f�F��P�U�Ϲ��E�G�����V���
n(pIOq@U���� ތ�m:}Q��d���$E<W��Ra��q��j'Hׅ��XR6�^��R��� �ٕ���z����sڨRY��R�"�n�)�Co��C+Y�\a_F�Ш@�d++;W��Jk�~�HV�Wf ��B^�V���%Y-CM�V�Pa<i8�²��""0����]����P^ �u�e'����=�4h5��t���Rh�ˮ�Q���%R�F �AHƖ�N����+(pN�LnX�Mi��/��80G�&�k����1����'s>>�5�W�3?������|�����~��v�Ξ|v����Y��_Fv�}��Y���^��&p����{�:�K�v���ۢ�?���X��f�_W/�kf��{�I��Sm�N�=�]V/f:�U�6�FVyz�c���OF7/�ܸ��9��$��\�����f�;���7��-}��'��{�x�y�3ؿ������W}�a�>�E�^�˕Ύ�+����v<�$���Rтc(�q �M�aY��֭P< W3�d���6VzL7�� MIvMV�X|$�u=�"� 'QXrm�^��0�����L�a�5i��q��j���� �A�����=���P�ІR�!E-� �!e���<z�r��(B�7�P���[v���l�u�PU�Ԧb�)�$��W�s�t�/YD��h ��D�x0E%+6�V2!��sSA���Dj��R"��JHa�t��A�K��JKd{�/FD�$�����6����.�_ؤ�m#"�u�$a�_�@���M_b��K�$�7]mi��,�)���F���Ϥd��rJ�����������(�[�� �dT� ��#~���f/�����^gÜ��ɟ�l�ɟՃ���tӧy�=�d���{���6�/c��yϳ+�����= �.�w��A�M�{��;�����<F�$8�cꢯ#b�bҰʒ���C���U�Ծ�3�ؽ���honng����g}:�seme:f�)���~��k��npg7��p�m���O�������=�8��^f�����m���wz}W5�aF�ѡa��1���Ұ��;�O۠hZ���EՄڰ� #g^�,(�\@�>���9� V1�1p?�-�) �HFVM�Ǒ%��A��#mθ�����-VA�N2E��TJ� �mY�eGt��be�PL�D[z+��˧���fA��V�_��Gd�)ò��A�e)�����(<C|��0����$�#��?�:��(��"a�;b�St�Gx��/��"����(�ft�i��֘Y_�/��� ۦ�2L�-t�&Ņ� _��˾��h��'����ɩ=~�TmHR�XH2'O!B�R�R�R�@�%���"��D�8�y���l���J��HBERn O �%��r5�ya���V����<��;B-�m��Y/�ʋ�ց��Xo �}j ��>�K�cu�co��~B����e�ck�����峷 ����xΫ���g���n��?�{�;������L�'��ng�>���Nf�x�S L 1����r��k�,P�It��o���b2#M5r Ɠ��H?4�1�S}W9|-٥M����F7-,ݲ��ݱ���/x���n������#/�~��<��<��օ+����u]��\?���s!�g'�ڼ̇=s>�����l}n��6�bp$c��P�4����2L�&�a�(���\��~,�����j�U��+�C��% �yרP��F�� �Z�N��j���V�S��H(�$-v��P�&���x�^��<�������y��P �(RE�N�P�bL|fJ�B]��B���&�c��T@������woq4=I8Pɣ�lFh��Ш�T yH�cc(����slvE\4�L'�&�� ��E�j(T�i�vS"���<�>�J��KMp�rh1��n !qh�����sR= Y�Ĕ����VFrO"��ξ�\�[q�p�P�����m|��?b��4����4ꓚ�7Q�l��K����"�<0U�W��nz9��Z{5�O4�O�����~F��/{Ț����?�zs��h}�;��?����Mo������g��uO��0�s����������]^��#]t��n�#}⾣�̔xe��k!S#|C���9��ؕ��6�h{�r��}���s�c���/@��L�;�O�Ϧ�c�靋K+��K�x�ۘu�����l�����6Μ����?q��Ǜ���|��9�Օ7wzE�,��!��s[ۃ¹��>p&ܳ��c�\x�v�bkЊ�H"gY�W���RNJiD9iۖ�JC[��M�����F&���)I�Q� H$�rz �RDo�b�j;�12��HU��#aN&��F��6�R.WQ�L(�#F�R��וPn�iu��&랡2�H�S9����NX 8'���[�(\�p��E��W�=�W������� l�ԫ�$��F���]�r����zjc��En��������ȥ�]hB�aEP�9�{OՎ�T[��$�t)����{�XJ�TJ��f�r�V楑���dqEӳPU(�KI��y�2)�h�&�p�yt�<CU(�fR�E��Tԋ05��V�b|���0��dӻ�����[��V�� �f�T�eh�=c�Uu ��~b��u����?����%&����7|���;�� ����ݓg[���}r�U�L9Փ�F��]�S����X��-B?�|�b��?�~��p�\َ�rF���Y��U �2�Xo���-�D��i�:�o�c�ۗ����V2Ռ������V>0>�}e�7�����ۧΝ�t|��o�\�r����D^X��z��gȟ{7^;ϓ�y�Ak/euj+Y(��l4�E��t-k��sf�)AZ���[&� eg��+ Xj�eLM�v ��%LN!�ɒ�Ȕ�E��W�X�f���Q���A�Tk��-� ���˴�(XY���sS�TO# �ѳ�E�<j��$�X.ò�3=|�� �DR��A #2fK�͇b�6]�j�[� �hU�'T�&H������Kz�D�uE�^�z��2t�+V�@4��H��)�b�k��^�x#���M�"S��Zo����T��>҆tw�qpJF1��W��7���'���b@+I͔��̷V,�\y�6J�Eؔ1�VK��b�f���z�@���P]P2�K1�#��^�Q�(���<Q�d6�|S�m�|���#3 ��q��t�E�����O^w��p��"R�}0{�{���Z��Ǭ��K[�I�������'�Ԉ+|\麠���'����'��#>�k\$Itsn�Y <jB���g8O�I�ae�����}�jP-d��˄O�pxg�:��x}a�K���,��u> ����O��N�g_~��|�/���h����y���9����Li��͝X�ϕy�"}8���ٶ@3gG�$��T8ƘH�(� $ �:�Z����� w� ,pʤ��j����Ѕc��q��"-�AQ����Z� ��"�2P��_f�$]S��3��bK;�]��w�P�z-bp��LUI�&�֤�|q�i6� 5U31<�UE\��e��֎��6�[�(��g�U���#�G�Wϲ�IID���v8TF)��8��P�eSf�-���#&ݒ##S�G��&c�Kz����?��[��s>r&=t\6i�\>��U"aq�"��:��'��"�����R/���h����dϥC���"�.�U֑P�L��BK6�c�'(/���%�ƫ�EW��A��%���Ŧ�m.��T��-����RA"O{�Ϳ�kN^��T5)ܦQ�KW�wA����4�'����iq�i����l}q��|t���3�x�w�?;x��M���乖���W���������?<�E����/��K���//������&R��G��ݧ_bP��[bѼV4.��sh �C|��/=��+�{:�5��n]Z}��2�8C����B7�k���FGo9�~�������+�/������l�E>��������y��ߥ�=�C����笢V�N������X]�D]��<Y���Y�Ơ���>+i�����4C^��'�0����-J��x�Ү��["4�(�L�O��.��b��<)Jl{%'�\V��fտo�A�� �|�}�+����h�K�Mc�ᡎMp����1jKK"�+�S�VE�Q�H�Y�гo�Q:Jii�� b�o�� ��;���a L��#��S�{�5�O4�꽒\Y �l�V����#��C��/Z[����E �H�<������O�0��v�Th)7�<rn�F1��_��XkY�.�:(�rJ"�l�����dK3�I��)]&�]h������ڬ��% ���%� ]�GLX� �����Sx�h&�ZV<O9Z�W��7 fL"#E@��7�A��,�b��D����͖Fk��g����g>�t���>����������2��M3������8�o�wv����]��~����a��3]N��CA�Z怸@_�Q��8�Ư��V�N�1#�^�&���Ym�@��Ԙ˚�h�R���V�Lx����F���]�M>98����ӧ^�o��מyh��1��1ۭ�]�s|Ok��������.�J���� MQ�����~PC����MH���~c��9C��B��@[���3-��>�ݮ�ֻ�����7Ƽ�g��I����y]��?�c\��=�y?|���'O^}ۇ�q�����X���yo7�{��s=d9��f�.^��%ss$�t�J����m�ҭ��Olf� �Zq��vm�4�X ��Ԅ��(��2���-@�t�3�b�u�M�A��Е��ԅH���̶�Q���)6�覵�2v (��Z0v4T�� ���Ou�M&�oU��7UtT��j��}U�42�/A&;2�τ��O�Yc�tx�� �]��ó�Cb|��RR�Ɛ���#�Q+S�P4p�Tg�0mp���-�.el� ��a���Z��:�BPeRb߰WŢ�\�剕�P\%�tR��|����Xf�� ,Q�@�mP>$�����4m2���HB,Y�ؕE8�Y��K�E�2#�2l[���Ț&��(���1�Q=�Yb����̆��9r1q<R����;�<Δo}�������x��_���}���SN���������.�Uw?��������c�\�q���~\�y�r��|qT�̺���p�|��{^�ށj�"��-�1���vl����N?�%���<��{�p��)7�\]|��{�w8��_�\���.�����O�����~�{��?���o=~�������%��9��(7?��[]]���_�9:����0�'C�W�Kl�x�c���������b�!��ѫGr��4��H��z�5o5���)_R9�ѰI���c�Z�h_M�1&Գ����ЈYo� �WaLj���� �b����y�ʈ&N�@IDAT8�Z�9�CBS�z��;(�:s�PB����t����)&4��A�p�B�t��8�u�N Zmb�f�1�V��^�A�qrӐ��A7��k3��XV������g��S�%���a;�+ ���G���Rz�?�;:ռN�"F�p�\[�� RV����(00�^�JZ��� ���R� ]��z�=V�jm�P�L��j�r�i7��XR;Ya��l�aZ��? ����Q?\@�wɱ�9m/eሢ�����f�s,�,H�� %�.�t���̘N��ʹ�w>8{�s_����~�s����+���O��շ�=i��Q?���������^��?]��.O�����MF5'z't_���\_b�Mu^����,�'�g��<r�"!�;�uS�zP�>����v���{/^]3�9P����]���_w�������_��?��?��+Wo?�Gz_}��u�i�Ȼ��HڋV����?g��������R�(b1��:���TX9�6�� ���T� 3UT�Ᵽ:\����q�4+�$�ǣ���������@�f��ŭ�j��w���2<Ʀ�)J �p���G^h������F5.5���.���5w����7�X��'��ʉs�#NI�FW2�lU|0��Jn�1+KviL��"K���H��bDž�pQ��g/&�����~���y]ܘ�v--�p��AЂ��R=(v��4J��&��#�2�R^\��K��/YQ����Xh�4�e-봲�(,-&����X'��ɓ�e ���������=nt����)�B�J�b)u 9�i�F}B�&e���SE^@zh�=U�J���Ж�A�y�dR��Y1F] ��8�0@�����F���yq����!0���{//�;�O_z����|���3�����O���G���kϸ�?��9���~9��Y��ef�>�/�̀1c�^�F�7X�9$}I��7�L��HJ��U���.:�}?�}�O�����,.����/�{����-g��K�����_~r�-?�����|�O|�||͏�>|���wx�W� �I���.�d�=.�h�G0=����'�dKh��87E�P��V6�a1=E@����%�!uf�Zթ#B]�kn�:��i�ꖚ�Ғ��n�YYy�� fcV�p,����ߵQ�N�l�� ,ʾ�!��Z6YPZ��r����L v�6��щ�GnrA��UPbw��;z��m��0,s�x�S5�[����'״�j�<\S�U)ˈ�\ݖN[k��I� d����PI}��ċ�a�"7�9E@MԬ�k+�R��4v0�;@�+����u0z�{��D]M�E��]O]k-b�F�] ��cɛ�c���I �h��gx����ﱢޒ��X؊-�\ѦkU���U�0&�%��.��Vǝ��H��:u�M�l��ui�8��WңX #�Y���jt"%=v�o���h?��:�����������������_ʏ|�[go�ݧ?���>�����zԳ_����n��B�p���~�����\�Wb�W�'�C�Y��@}E�%�=�{���s��T�p<��)G�Z^�! ���u�$���n�������/�����l9���gw~��˿�������_~�7�����7_�xR~���|��}��#��8�w��K�^�����E���cdnW֍p?�sve�+H�,(o��(�,m�F�(�f��Bv�w����v��U|2ףsA�4�j��#\R;� z雤r&�|&֣ހNQ.�g������LQţl'��!F���z�ߤ9��X�>N�/Xt���N��F�&F�z��@!Q�VkthI�#�i)�k:9pZ&P�7�P���&��t°�a2n2�Z�6��k�&;۵�G��I�ɚ-�&�d��e�����Pכ �u�����G>'��3zs݊��ךk�:�%A��k䂅!�S�Z���fJSL�.�Z�M,�Z�G�~����q�����SsV�^-4�daRjY�ek���+�K�ٲr�xS���m�Z�;���sgf̫3�y�����y�����������;ܚϧ|��a��z���S~��{~���y��zo�'�>��ٟJ90<�t������|<����N��矵����\y��2MX=̧@�]�E��� 3z��M>ܿ� �̸���{w�����..�3�/���ל���^���^������~盯�q�������|���m���Ƴ�9<��m~]MV��p����r���G1��!h\0��y/6�P��XkR���ڛi<��M�!��J��s��\�X,���V��s������\t��S� �9�z�u�2c���X J���_�R0^�̈,B�ҒPv�Hc��dq� =+C@O_�/� �@ &�-9k���ٖ{��}L�U�'�<!H(��C3��(KVS�9dy����/��:NsY��D �z�!�I�jc0'�L���Aa��D�9�e�Y����#5ݖq����6�b�4^�����tX��r��v���� WU���uDA8�r^� �݇��+�t� m��9&+ƾy�݊V\l�:��1�e�-��d� 6�g��<�]'y_>n$�HIj��s@X�ݦ=��X�ǿ�����O���{w{�?w�<��/�����K9 ��S�^��g{���C>����ا�y�����_y�� �����1��#9������JnT;�y$�d����������&W/mu8߷�ﷺ|�2g����7{���ݻ��;w�8�>;��g~������?�c�����_��xp�����~����|�˧x�#�yq���g6��T�+]��w��Z� ���(� 틢f������F���s7�Cڀ2�1��&� M���}�2���i;5E�z��p�m�������hH�ޜ@��1iͿ��<�+6�G�����n|S6UJX<fn�J:��)Bh]n�?�X+徻�a�(.�lY��l{jv6K�r0�Cq4�hD@��l��A}�rs�!Q�oB�Р����-.�P��$#9{Y������Tue��!-��z��&jw���X?;z,���:�I�3�M٤0�-��k��M=�p�<ڇ������+��g���4 ���3C�>=���0\up�L�v>U�H��kFg:��l��q^N�L��͘�b����"�Vj��Q��>LLǞ�Q{�N 4 10��<�0u6or����a�gw�=ܿw��s��������(OϞ|�������r�߫�|ﷻ���}��7wv�������'=��/v� nN���Ё��2f�4����v�mKV$�~����xy�8�=���/^���e�tu�ͣ��ٝ_w��מ���}�g��������{�W�<>{�M��uί���-=��;|��Fg/��Ǔ}�H۩�+?��K�F8)VX?ae��f4�X�u��F�8�+-lLBC�A!m�����i+-6�~ �w����]�C4u�^�4�ƣ2I�=��h���z줘����P����٧j~"b���~� 1Y�H�l���Vʊ[�>�G�b��Al�!Q� M!/��m��ɑJ�nnQ�D��=�� -�M�����> "��+b�$���a踤�$?jcɢw#k�Nr0�Q��&�J���Ag����ɶ�p����p�^����u�H�Ӕ�@���N���#Tٍ��nv��(H�,y����5������2��u7�"0���hB�~x�n;�K�{�a%�����ٍc�'�]�@}sGk1�!�'��G�VT�z�%��t�_�i0��p%��������?������?����ͷ������s �k>|�k����}O��ڗsf����|�?���Ѝ�^�nJ�{^���2{��ɉ��UZ�@o2l8[f|�ԏ+���wL��1��s!�������{��������gW<��^���k����ſ�#���o�;�O_{��շϹ�ϓ|=��^��.����<�m߯n�����{���UFQ���1�ԙ>,L�p���<�Q6$DŽM�nϧ�T'��n�2YR��n[ʎ��0;�fZ�氖L��fC9 z~�;ߐ��#���f吖e �i�ٶ���"��.�8b�p�MR�x�C�aY�:p��x�V�j�d����AII��q$偢�!_,˥0�)�-�>�HKi�˙��#�چ�xox k��Q��[4��Z�b�:֕NM٭������[�i(:nKq��trY8��h�ܬq2=��_W�&� �AmF���/I��E�y��6��ѨH���.O�lh�h��NS� !=�|�t�k;&��v���F���:�]��ȿ�'X��@�l���I��F���Cg+�����6UB�bZ�ҕ%V�i�%3&��$�%fU������{��?���?��������}��?����qF������㧾sۏ��]���Ϟ��h�=Χ0�H .���z�HČ��\ �]��u��� �?��9�q��Knﹼ�������}�k��϶��������?�G��?��O\s�σ�_��M����X�<gynS=�܌/���V#a�����pG�ń#{���k�4�KQ��P�i�����.��oQfhּ���4Z�GQΕ��vƶm�#A�]���a���JYU�U�dd,/x��c�hsQ˚�}�)��br��_u�$�YTqH��n�U�� 0\�fg ��G=�2����p�����C��Le{��5��kK[}�7���ii��վ�lVqK�� '�:ӣ��nZK�9�Fќ�a��i�I�x������$��6��}�Wn�tޖ�M�fd�x�T���DDM�RZˀ�h\Pݎf4C�Gד$%�ڔ�E���8I_�5�ii��; ��eQz��^i��|��QU��.&" �j�j��Yt�A��1y^:ȫ�[{���ʌ=ϩ=��3�����{O�������{����su~���>�����_O�����~�ۇ���{����I�pHh�'��\Ʌ$��m��Y7I��qPw�Tk�����Լ[�o�=㔟O����������W=w�����b���|�ً���>���������ǿ���w���.�����|�Oz�B�#��Ot�4+�Jć��R��Yf�k��Q�>����!TP3�HLk�X��,��i�5�� ��3��aTU�No�b�[U@U?�Ƚ�F���D%�͘#B�� X4r��g&|��_��p�{k��j.h�Y����ȍC����S�ʹi�������!�a���h��C��7�s���k������Z\�=�z��R�!.��(�m9Q2#? �8��Z�i�c�v�c�l"5�L�D廎����P���o�Ĭ��,~ъUE��9kF� �����"2Ǵ���_,�9�tNj�Ŏdٞ�? �B �Q1/ZN7�(���OXv�M�f���X��I�v0��f�C�H L��3�ú!�Xza����cyՔ�}S�&U���=�V9�"�?%��]�G��2ϔz�����w���}���m�+7�C�>�����ҿ��ޘ���ϓ�[�{�Y{�'�s)7��,�q˄�b�,3�H���AB/�Q�,�o��!�=h�е��������?.j�|}����=���g��������xz�O������[>�韻~���W�|Ɖ�wy���^��dߟh?.�\�x������h�2l�wƇ�}i���PAچF�D������]���z �b�k,��L�:�ge�����KX5�L�L��2�r:~�B.ǿ��0�tSwL ⛓��w��8�i��B��Da0T=X��<�@�D�R��Ѱ�z�6un��0��Ȗ�ep-�= �G��&��c��Xb/ /g�G����"!��v�8Zm����i!t��5s�Ώ39�CfzX%�j�d��i��v=:UX,�!$���N��-Sa�����ӜS�7kY�X=Wmh���Џ���AMd7������Ի���U%O:�0�:h譨L�96m�A�ir �;{�Kci�dVm�[���?�@�Y��3�e6�Ie\ۍ�A��<1�2����;.��t��41;���@�9��<���������>�k_�E��_�����O~��u���?��#�}�'���Ν����{ه������>�m����8�gv�5x4��Q�e hY�i8�_��yh��w8b�ԟ�K�����ox���������'~�w������r����<}� f���>/�{��������M�\��=�Hu^lȨ���Y��iF��2-��R��-ʕ)�?;1��>VC����uP�Z�� +s��iæ��zI R<�p)/^~�b��-�O��"� �<���VǤnIv�X�ӹ��i�&BZGM��Z���T�ґ�0�AC�L��E�-�2 FM�D5��L{u\��VUSs�t�Us�� $J;�ܱ�b������P�q\8��������t�:ȸՙɓgPX4�q�.�q�Ѹ�v�)N:fD��hڋ"�pp��=� ����C��4���?�L�&�H��έ���)��������(9�Fq�Q+�lݫ�1�ɍ�����j�9��&{EV���E0�e���^��LJo}�ej�e@�YQ�>����SF����w�~��Y�k)w�=��g?���+n�a&�����.��å|�~����@����[���}�̫~�Ck%-�Ρ��^�ei�k�����XH̻���ߗO��+��W_q��������mW�����?�}���o{��W|<��k>o5�sk���8����/�9��o_����5K!8�{ʿ�b�;����]Q��-'a�u�4U�ڰ��,�q}FZW��jb[���26�RXjRR4�U�N�֬W��M��;�qt!��s�Gɔ��(�}��>�Ap�wI�~�&�YTg+�9��ةq��ǃ�,���8�9�G&�9��DZaM�5&���:������SV�ԣ��T��]�u�l���#�z?�7I��'�z%i�[Fp?Bb;�6��g�-B�H���p��Ə&��4�!&�ER�8d�2��r6A(�ji���7 l8A�Q[��A��Q<���ڭ�rڮ�@Dr(Z�/�P���gڞ����>J���C>� 7:��&p O��v�:�g�u�oއ�q����Up���J��p��=~��CϽ����\��Z�O�}���߇O����n��:�W����)�#^^JA�1���DÔ'�6(��?SjY�Lʠ�|"-�.��^�1<ה����>>ۇO��0�_<wy�O<�i��x�g����._�����}�7�O�0�z�����᷺�����u��=?��s��o�LJ_�"����$r%'q��TS��%�F�'���ވ;j��"9���:I/ h g�b=� Z&j1ӷ&é����YZ�8I_����Ī� �?��w,.�YkB����k?�_���G�J�I+�� PO-�Z��^�ae�.s8�ۢ�iz��BX NӜ��4GTc4�c�h���������N�Sj!�%λV�:�Z�pC��֦�O�zZ�j�2�m�<�#W��X���ɴvRS��3"��M�c7���L��c�@��UCE2�C����Еގ��܆��V�X��$Б��0��c��V��H���A����x��z>�z����e�4X\�6�CX2�-��S�$'z�lZrrN8��i[ٞ^���/�v�+����w~�{?��p[����O�;_|���~�m�N�}�G�<��ٟ3if��髿�^w���ɉ��B|�+�=���əґP���$G&?Lg�!?T}��S�����x����{p��⥧W����ڳ����������?�s<χk>O9l�(7/�p���,]�a��H���������ޮ��wE8D�E�U�-��;��z����� ��q��J�V<|�xr��C��A�ЧY���)�(I�s�mZ%{\�a� �}�b'����]n��f���5����a�0cboRK(��E�"?Ȱ��6��Vn\tY�Ո�-2 ���I���,E��V�$��i80U�>����G���MG_���N�R���=��9��Q&���.d���6N V'��f���d�:��1 ��#]��$��2�J�p���[��f�G}��5A�X�������,�-�9�^/��my+��ÿ("�;UҰ �>���To�,�$ F��Jז�C^kJ��t=�?��� �%�]��VSS�\������h�{�W0��ǧ!��W���z:��Ͽ�9�s����~�{���>!����~��.����<���;�p��f�N�Ys�ܚ����o���}�Y;��i�� � ��R�nj�&$�W?�������s�z��߽�ʻ�I�W�=�W�_>��?����M?��o>�~��'|��G����ٛ\��^sM�{{|�[�]x�����=/�ҡ����O�Q�|p.ã�ִ��cT�Y��� ��i��Q��T?be�i��US�!�K�3<�Mk<D���ȭ��$Bi<�(��R�ň�^�Z�jK<[�d�YE��v(����e-:Ƨ��c�j�O��nAN�i7����$;^O�@T������@�:VGk[��7�\��Qkߩ@Ս��:}2 ߑ��������y�i'�����m@�>Q�lP�B�EC� �XDIH�B.+�Ctĩ��e�,�~j�y �<ձ��h�Tv�-��(z�V��x�!E��D�%����y����0U�t�EP-X���D�1_8�&NN�d{�ʳH=��<�� � �d��=FB���Rf�Hd5��"��41V;�ѳ�5���Ы@�G���~!������?�r���^?�&}\Q�Q?>���O��ٟ��k��] F��Y�&�:�e��,Sc�w��$O�f�y���ѓ�{���#և��\�볳�p���z�o��O������Û~��[}^�I>o�T��������:��G� d ��M��@��~��!@���N\��l���Z��u��WU�ۋ�-�ނmF�C��VEW��n�[�wk��io����p3���U�2_�3²�Ùq<��z��ćiΏ���.(�%1�5�&{} ����|�,��2��D1�1˦�j�lUy�+#@���D�#���'��I�0�=� �� ��Uא6YR~��[�'k���$ #��lzD.�J]N�T&�yG��%�z���>�B�Cs��Z1t� JYf��Mw��8�V���D�U �y�����)���H(I�؉EpǼ��+�#�O����]�B�ټ�ӂ��ސ��U�#��ò�<w�����B� |b��X�w�wCk�N:4C�$t�s��h���{<<Z�S~O�,<Bg~���� ��_��/y����G����<>�|��Q���3����}����c�9�%�pkA�{@��x�{�dN���j0t�n��C=��w�� ���Ϲ\�}�����_sv���o�c��mo����?y�9���c��7)���Y?w��F��Z�IT�i���+R�Q����~(�R�z��W(�I��M[�� ^%n��j��u�?����Tg��, P��J��uWIt������]��#LX�2�uG�4��j,�-��,� O�|�߲�!^��Pa]A$ (�[�6�� LnY?y�m(�U3�P��X-Y��cQkarB0��xT�1�� H�",&������-S�����MK�-GH^���=x�l� ��g��7h%qxѲ�iP�ea�B�[���3�.��ը��)��=,��0���&��B�~���۱=Ƶ�q�&���jɆ�rg֓#��6�U!;�#q�2)����L��c�@���<R���H�4-�r��7���̻?��%�6:ˋ3��0�����J||&�V�����������_&7]~���O��|�3~睛�^��wE�o<��C�&0N����-C)�e����f\o~��pA�2k�L~���+�W��.~����������w�����{��}�}���/>�W��q��������D.Nq\�aF���9>����K;�ty��.��q%�Bs�}��<��5�e��OF>}����ԧ�4�A�� �p�Va��ٕ���(6tAU�@����Y��5�[Qd8�I��!g�,����9N)��:P��L��U�u9�Lep����i4��8#�����Ձ1)�B�P�TҦ� �Q^�����¸������p��b��߇�I'���Ɋ�� 4 +|0lw���2�'�h�n8���#�tߡ>J�:��(�� "�N���DoQ������O��5�7�Z�i��H����=�&�pG�S҉z2^ek�PS5�mj劍��y��D:Ȉ��MM�@�-�nl�Ӡ��AI]���/�zؘ��C��q��i�8�H�Y�'���\?����'���o��������y�e�q�租��湿�8��=��+?|a�/����g�|y�5cS'd� ���i�"84,��O),����|y�ݸѳ_��= �/���.�����;��}�?��o�������p�g��L7/�x����w��Y?�&��� /{����'H"�s�dQ8t0���+ ���vCֆ�b�+����P���߄����6U�Mh;JulRta)h�7���J���DHG2��Pb@�A�m� ��m[Q��N.w��u��v�MV��DсH��t���O㉉�Q3���Jz�Z���#:�k�nq�o�\��Ko�8M�(��<j��"R�f}�����al��yX��<)������y?��X�fx�1���e24�KM@����9�g��E]klQ6�Q��,�G�Ï�1��m��~�0�h����|���U М��5N���B�Z��=�Td0B����"���!qD{l3d���i"Ŧ�V)�^A��k�O�cWg,܂Pc<�f5@4�A��'^��^��)��� -���K.�x��+�O���'��E_pu�'��={��g��G�����~����=���Ss8�F���!���+%��זr�q�/T;�>�}~ϧ�NN�y�r���Cw�{������{��~�����k�^<|�n|��/���� .�p��Y�����c�䘩��~��?���Il�N�d�H(���9c���9��wۨ3Ó w�����z�|�g�p�?�ؿ�Ό%��,Rj-hL�[l�z�ڰ3 ��}\�wh\�4b͕S_Et�)j �և��'Q2p$dR�g�&���N0+ m�sB�ĺ�_�57�-�s�Ķ������i����T��hu W �c���iҁM����n�8�dq�H��+���G��z)�iB��q��DI�3��r���45О�$ך���@�o9/f�ճECE'K3��!��ÁZq���d���a���hj��>f]ﺕ0 S@�9�����6��X&�)k���g璺T|�9ۍF��K��8$��W��Dт�bZ���0�yb�M��cp��cS���O�+�G[���~��_0I~��O�s ��|���o��%�N��W���Oy��ܺ^�$�Ca���}�c^W�LC� u�|G���Kg|�{��o�_>�s����?tv�/_��k�=�G���������xt�m��f��Or��{���#P'��f(�����=eWVЏ�0V�;I�Ԍ���Q�>�I�hZ�_ m��$��]�,a.�-��p6c��P3�>WQ�;�X1�8�.��-s�����״-LSJ��ֶq8�4���:���R7��Q.x6��̄-�N�6GTg9�� ��ie]Uq��Ռ�� ��-n��No<����)�낾(�~3[D��y"����=���Z��RE��� �n�$,[��mY��� vTO8�6@3))�顅A��kɭRtv$��-E0L��xtN���!&a�~���TyJ9���xk����h��Q�^ B����#�����xQ���T���j�|����0��r|h;����G0�n�e;n�SI˃�� j_���ؗ�3�i�ԣ��1FK֙�����&�{+��~u��W?��\>;�ȳ�<<����/f��5��{��ǥuf��q��A�����H��ğ\�I,z��Eދ����/�1�__��s_y~�{.��ŏ.����ƿ��y��;O?����h���Ѓ}|?�m�}"�?�(�����'��~���< s.K�e�8�N؎i@6#��;@�Pj �i���l�/j�y8��9�)�J��M�Z����&���#���P�VD���Ƽ0�!��I��"��)eR�4=�VE v꺀�� [�|�8� �@����.�$��i92� �/��UFR�Ff9��'me��Q�"P�šȶ�&>U&B�FeG��UQ��O��M�Z�E����xk����Z�ʴn��M�]�9���6y3�&��f���tS� ���b�Tq��Xj�~C �<���;DSY0�� �1a6h��-��C%Ԕ�����_�Z��hhq�<i<fJ���M���ܩ��v��rE)P��MU�[��'�TV����l"8��ԑV+��,s�}$Ϣ�HQ>���g�u�Z���2�Shb���X]�p��W�}O�z��W�=a���/�s��8��]�V�p,�JYf�!|x�B�� ��\�/�B���ǿ} 1S����ko��y��w�����;�����?����^=d���k<����}z��Ot������щ�@������^���ō��E_�Sq�]Q��M����bv�3��1ٕ���<�3)15{���Y�; �O�j���Y�F�p��=ڶ�u�x��l���)N�&�h���hp��_C�p/��l!�:C>�;�՝�y -A$i�K'B'�I�h�?��Z#^Jx69��ÃN,cʻ��C�(���X�>p�^��M�+�p��d��ոDF����y�� �å��S7{�蹖-�]��"�q� �^7�ӁGT���t�O�F�:"XR���D��Gŝ!Z5jL��5����v�B+�]�6�Fԕ�2�v];W�A�\�}8E��e �i�k9Y�2���"/�^2ԛ]�K�7��N�F�֦���x���,�mS-�ޤ�n��Ie��"��71����|�Kp���Ae���^�kV�_t���_��[\���|p���� 0���L���z}e�x���3I�;K���7<l0�x�к�;�������}&u�w}��_{~�߹���?��������O_���٫o�=���<��ٟ+?~���<ӭ�<sӧ|d��6lNe߬ � V�.��E�%mʹ��{lP��� �:}B4��,��$}Q3���1X�E& Zmw�� ��;�ewzs��6�z�%����=�AkP��R~(���,׀B::�!b����is�.G ��&�ӊ�h��55�吪�Ʊ-hlK{x������9 :"E�;�m��=y�p]k��D9�Ts6)�Z 8b��蟰GKogߊv��?��Z�u�A��;�3���l��2�wio���.�a8�-�b[��в����Ĝu�E����h��EjdK�m��n�e�F��lN)]�X��@��=dF}�ܠ���㯍/��j���nO�(�0Q��̜1��i�w�b{��k/����#>��� ��U_v�3�m��Nm ��C��C8�u̐v�e�D����6�!0w�|ٽ�wy�Y���;�����[�~�g���)��>��������YC���4��� 㞭d�c�A����~˗���ߟ���/ݹ����}Ý|䓟���O���>z��x8�\���}�G�=r����.�̼����ç�@Y-œR[���4�4����U�F�"�}T(h j@�T��?�e�n�A���:{2YP��ǂ�)�pڢ���V�v0Ol���_T�%R7V��6ITr�ᄚ�0x�i�ID����f #<���i_'��X���u�F;�b�%���s$�L��ҡ�9f��dY_1��U���钦�7�#/�/uP��cy� h�b/ �F����_�=�5�����l��45NH����돔�9z(xa�ⴈ�c������n��G���$R^�j2��<��43��d��CI���Q� Z���T�^'~��EQ=�����R����o�xݮ���8�X�8ŕw���M��ncU�3w�59I9M�oӞ�8hC��,a��e�@,s�s���ȇ�����7_�yn�<�yf.�t�?�X<��Zέ^�pڅ�uY�zP�L��2��%��^��&Tg���{ח�{��]��{���>�������?��K���ʕ�������t�ߟr\B>��>ڏ�2�{�ϙ�o\z+ #oT�Q5'��"/S#i�;�^��ٖ��6�گ��M%ڄ����z�&�tβ,lm1|)ˆ� C�! E��Z(�ƅ"J���((��X� �����&M;�tc�,�;����C#'h����o��3�� ��JH0�~�U�r�a�ò8G��?�!�Ȣ�$��Um��:N՜l�6�����tsy� ��C!}�\n �����'e#u$������?P1LY�4ھjFXB��ݩ�2{����w0�+ޢ�řn�G�l��᠄�.��� ���w���,��D���)�/��r�mo�W�CO�$mړs=p ZDO� +�&Иv6�(�����xXm+4�����'j� P��Ğݨ@r��8�d5���{R�2:�M�2�� �Y����ŗ����}��jν������3;:�s���d�u!��c�YR�?Hqy����φ��������y̧��|1�ޝ���������?�����ҟ��>}��;�����9���ϥ�f������V�I�����;�����U�"��,r#!�v\)�X<bf7Z٣�l�'��;fS�)�i����Ԥ��CfI�i�a�X���P^�1b���\�奅 �:���WlU�荍x�j��j�h��Y�tt���Wu�#%J���Hy�q�o~ I\�$��@C^N�#U@��&;�uaS�Xl�!��"h�W2N1��G�r6r�n�gU�P6�6��F�c�����=��W��(9ؚ��z�<��1�Xd�V6��lk���� �E�ǹ�9-T�0,��U)p�s�I��Y݁����� ̶dՁTM�tfC���92u�O�4��c&?lg�<��B�$�YR�E�ۈ��0@ff4�>�h����rr:�T��t�M�fz���]�7@�E�T�!��nj�5u[�������2?�����{���z��טv�����Cg���鿮�{�х4�������.ī���_]�_�;����5���p��?����'��'?��O^r���_��n��s�3>W~��n�ttQ � �b=F�S�m��?2�7mK���f�G.P/!̘4w�$�� �a�cUw����Q��-�t�aj'" fVR߀�c�,n��F3c��/��[�����tȲE�0Lܑ�����!���xo+A�/�b�{5����h:����5LL�rLS�a�~��Qy�j��0l��Z��<�O(Z��&n��� �ݞRr�ꊖϷ��~&�[�J�C٩�H�S쓃%]���i#o9N����')��4��w�t���%'fH��3�{�R>k(��"�Vr�0���A1����M�h�gj���ͳӵ�M5'uB�ơ�I&��S.�E<)�L����-Y K��2w�w� N���gc7��v� g���\���I�= 1-z���N�U������kg�����D�s/�w���/�2�Z�������[<�z=��7�e���|�s.����S���{qq}�ܽ�_s~��]}�'>�s����'8�����˕o�y�m?��� ?��}�w��6@��J�k��u{�CB[��b��}��L�)�mxj��� �ό�1W&��!�R�fN%�lpS3Z�2Y�d��iATQ��cߩ���i�� Y̠P"�A�p���wD(,��T��j�j��������S@IDAT�m9M� L��_��->韒[��\B婕�o�����Om2������ЄQ��0�x�ź�&�8���XL��c�7�ˠ"D�� ���SRܲ�����m:mf��� }{$�Y~ �1��p�=H3X� b��.����O�&�%�9��fZl1j�ꌑm�����j��A��z� Gt9�՝S�t@#rLgŴ&nf��R3��XW��M��i�w��܍� �����Z����˼�ò�T��DsU��x2�({m��cpOo�@>Mt�3�N��(����p|�3�/\ܡF�kgO�20����o�~v�?M\iw:��:)n�ew-��:� �������U7�p��������?w��ҳ��w��;������ȧ>}��ѓ��r�㑧����7}��^ރx�?o������LO�v�,�F��|B��e6�v��rHU����P�hӗ��&o].�v�2Qg�1�3�}flw�ʣ�vX ��x���������=�F��ВKq={ #"��5rOj:R#%����3�MC�U]mN,:��jKk �ɒ�M{V���up�{<oӠ�UڄRk,'DD-�ɕ���),�HT&�5q�:%���b�c?�^�7��e�M�n�����S�6n[]7U)�)e�L��P���Zҷ����'6Y?��-+=ѣ�o1��m�a^v ۶��3�;TF ]�!�2�o��b�+���D�E=;j8� i&b��]��3�h������HS��Kp�ay�<�$���7�ǰ�Rb��t� �F��6R��\nw�P)�� ��M�$��L�n�S�!s��Mnί���qV�;��q=n��D��K@^N�Ms/\�]P���!��Ր�R����:=f�>���7 ����������/�������'?��ˇ�<� ?�?����_���>��$Z�7v��c���f��3�)&�m�JʫA�u��,��WU�5�5f@�%�&D֦��v�2�|��M}y��(#:��~���0aH(���,�H��6�k"�K=�=�ާb�@W\j3C��i�z#�$�[�6���PGS���i3��-���'=�\����EbZ�<��֠����9�4($9��SMX:6���z_Nd��L6�� �آKk��?g���֢�� �b�L&Q7p4oZG�u�����X��"GMs< �����i5��IY�������@ӻ!�;��2���$x�&�MD���hOx�0\�G�Dp�<�.[V��8�&m�� K���Y��S۴���Xʮtc>Z��%KF�ց�q��HE1(�bX�-j="U�6���I[-��^���;�|�#@��m�'~��C�ǎ �7���CC?�v�̼�a�ux����/��{�����_��������O\��Oz������W����;���M�~��8��4��cp7�p�R��j��)m �D� ���1��.7V�S+t�n���ih�f f�hk�hs<�{��T����ݴ���3�I�]\S^�2�Y �G�Ĭ��G])dč�N)T�-J��ò�s]=0%jOÒ�Y�a�� ��i�!GyQ�@�:�I��2���'��h�J�������M��C����-��2�1�x�I�K��N�!�]3n�v2���3�¨v�"�9ݒ�Q �ue�� �&S �]�8$F�1d�J!�VY��W��; R���uz��B��FT���{&d��� �<?y�Y�9D��� ��V�V�,�P=�QK/��Ҕ�i�ѐB�h�������]����X��46[Z<���z�<Ӕ�'4�5Zݴ�K�W��&hc���E7�!�q���9�@m�E��|���)��]�����]�>�Q�2U�q��O����˳���Q��zqݿK�>�������uv|��������y���?<{�t��?59??Ǝ�;���?Wu��~ԝ�|,�1�/��,�Rī������@�B��TA}5Y�hB�<(��f%�G �cW�����B5+��8�f��Xl3�/[�%�(Pm��_�����PA�Xm���>P$���8�A}�UB��d$� ���BR�WQ��5�̘ � �S ����µ+�&� �s�!��6:�ip�s������~����l����7�'Au��7b��u�d��8<��O�v�Zn1IV]��πe\���f~"���-�QQ�P�</d�z�ڸTӠw�l�J6��$�0,$5=��i2/�H�� �8RÈutr�>-�Z%��@��ِa.�{�BT��U��fOVP��K�)��T�HӮ�U�vMc>��&���T4mg�Z���:ı���Y�{���b��h�,�X]5��|0�P��g����+��}9�r�}H�6����{�N�~�ؘQvh�C2:������/�9�跫�?��/�y�_����������;����}�:��^����O����f��3�\��r)¥�AT\$i�[bBe�����=��k�[ ���Nj4�{v�jϣ= �!����Uho���Xq^0��F�f� #U]vPM�&asJS�T\ե����՛YHi�R����^�"�fuU��Ren�C�)+�����̤#���9k���ry�L�\u%^�8�_뎦f�e:�V�0v3P'O�Y5�hu���@�IVl' UHU���C�����[�^���4�yo���sk�0��C�1���t� �Jrm zD��#��Räw#��b�Zw��+�?=x�7��>�(�19�R��wy �U�CV�A�<�q����G��/�h�k��D�)���� ���T��$\}X�۱OE��PΞ���:i�4��x�B��I ���x��xo�焚���[|�k���R�����O� �>GjJ����1:�0U.���+��Ͻ�������W������>�������%y�]�����/�GOx䃿��]�Q������B��S�L���Bf�� �+a�hC0%6#)� ��j��e ������� ^h�o��@V�F�'�L��O��k�tnJ%=�x�hn4#ߧ�ꯁ�䌼y��˸F;=)8ƨ�x�SEo�7��K'�����,@N�ʐ��c�𤿖�DRl5����3e�e$R�^�M;�ljֳf\�����N����nk����4A v2�T-%9��n� 7�- ����؝��w��y��r���s�sj�U;%tPl�L���N�1HKRL�ݪ�͍,����||ޗ�5���d�����Ԫ��8����Z) �U�V,�X&�c54DZB�]�Ɯ��H�h�M���"Y��"�D5J&0^ \����� �\��'�sXHUr)d�u�R��yc��|�9��G���w�_p�Zg�S�6��9�G�0 �6��n�s~8��cO}�Hp�������~O��o���~������o���m���n�����t��v+މp8�7!,�[�y��W�, c����7rJu����V"1��nI�,�h�v�Z��P��K~l��\�W�P��&�gث���(�f�ضQ��n���� b&�S��i�i�ez��H�‡�6Ul��JP8٪���S)2B����5<LG�u2i�2-���&ܺ����7c��&��F9pG�IO+G��(���'WZR)�"��+.��dN������ ���> ��W9E�f%n�;�R-Ѹ�/���,p�� ����fX,Gn��JBV� ��8Z�Eɋ��]�Y��h��t(���[ �鋵?p�v������]�Y���bN�:R8$�P�Tp���ں�F|ɫnq��M��5�h��-M�m���0'�6��̴�Ue�wB�&^s�w�sb���;��5�@q����l�<����Tx�V�B�W��K܃�7����<��G~r�?W�/�����~�Ճ��[��O���������|��?��s��|xA���.����P�@<$x����4A�#���w�m�-� KԖ?�MD�S��?mK}�h��~�%U@��vV9;����"ƊR̵��PN�p֢�I;2�6�+�� ]<N�9��8��M��,c��t[i��7~�yR(���[c���m�"���$�f,m�1��!�IF�݅���1.����[�"���Jf��,�����ѝL7�"]����L�I��J-��<�J��(:�N[�|�o���Y���^\����Jl�M�&�S�̎<R�"��Yh�(��I،���y-���<ڟP9��֘/����RÝ �q�Gs���T����"��69���E4���T��ZلT4��F���#�L�Sh�WgO�/7��0����6����m�_A�8P��iΡ�. ���A�q��������+7����O����-�y���qu�%�+$�<-��J�1�9W��}K�Y��K�\��K��Ϯ�����������k�{��ඟ�yĿ���s~�O��U~?|����T <������ڦʪ����̚@wo�:��o�X�4"Mi�\+�Ã���θ�ET�s ''��J��i�7&����[�����-�'i:F���cǩ� K_3]��6�H.��(?Tc��e�Z��� ꀄum�Wq�v[sD�<T1���X�8\��<�5�:ihi��@t�r�,ؒM݆��gP�1�cHh�E�a]'���'�w��<��%�J'5EW4FŢ �p���@r��!=W�JV8�L����E��.�f��蠅j��s>��nVj�4/�!�l-+�g6��:��KBpp/Q l����� 6��������c�4 z���H�ӌ�|k1�Yb,_:k�j;m����]��jwΈby�k�jAP�q��1&Ҥ���lnW�tfҹ������Ͼ� X|2���v���l2�}.'ڍdB��b��g�~��]@��'�]\=~�o\���÷��o��<���+����W�=�|�����)��C���&|��q(��Nz�?�3�!�@M��$��I�� ��}�XQߗuYjv����<�:��;�rQa4����k���{o(��Lf�< �F��Ñ[������;���cO��0k� �Q��Z�߆��-T; V��j빌xT��ƈ]��Z���2{�����L���"�0�2���~���Z�#25�w�4�yʨz�؎mV+<V���Z{�.��Z>�p�7y��4RR#�21Z6ͮݔO�+1RW��e1�ٗ��2!��d�vث��RE�V�r��HK|��t��^�VZ�[/ٸ(m 1�թ��r�Be������JXkC���JN��MW =kr�k R�X�D�B�z8��e�������d2�3[3�)�L1S8<�:{��k>����O�� �����\�,|�i���m�8i=�Ҋ&�k�/o���_�/��������������������������^�ٟ�w|�g>�gOs3��N��ú{�Ȧ1��#���ME�:p�!<��������̡y�(ʼn��-�c�:��7e�c�I����X��)� ��d���a�+�X_bNu�U䘖��5d�N�V�W�UW4\t�K���4�x�����T��DՄ:f��[+���L�Ma�/�����bv���U��M2Y7����;�wY���8Ʈ��Y�(���2;��/�iD�6nl3%�/UNR]e4j�A=S�d�&mn-E|�~���x�0��0]�4�#j��r͔�Na����D�HN��~��U@7n6ل�Y�}����m�g�NN��N���a8�e\d�Z�ݩՉH���=mϱ���a��'�8,�8����M�R4�4����%�q�d�aج��,�G��#˩��夻S|5��E��lSX��$���pf�������˰x���Y�/�7m#q��bJ�������������/��]^����~�>���{����|���s����o���^�ݳ��'�?N�(,s�sb9�24�h�f��J�,Y��hs{�ɹ�fd�hX́�T�Ɇ��Ռ����������eY j����xJ���Q������j$Zb�q�2���W�����#x�w��|��.�����4@�|���<�I��4�3���� 7� ��BU6T��8H��i�������6�;��1[2Y�%z$5�ӹ���\G�v��T�m�p�~gY�}�j�|�|$ U��j�M��̽�wAO-�&Μ�$Pb$jPȎ�11��? EdK��U���4�{�#���ܔ��� �CX���O�/<�@˃�ƒ;���%h3�)� � �D�YDq����y,z2���yhi���-Nk,9I E+dt� 1�<�yYe�i�bA��0�䜺��&��4M?g�wdL�����4�y������˷���g>��㷀~�ٽ�������j�1ȴVґ�S@��� ��)<�����������o}��7��I/��Ž�L�ǥ���Gz���y��N䍢�yB����\�( 1�,4�e)��p�NB�g�N(W(o.h� j������,����|Y�P�m�8���ȶThj@��u�,���c<�"P�2g6CA�Y�M����k��f�/�.��gب)��ƭ��א�#��4���x���jeLpfF3�m�Ӑ/�h ���j�V�ų�.1j���d,�aj�����gyҔ}V�]86Q(35nU��#gG��s���p���p��AU\�QO I�S�e8A$�u��B�����f��v<v�T�U�x=-&d�ł� l�����0��b�7>N{�J������-�t˭�-3$L�j�rѠ"F����;i-��X� SVA�3�!�������C��M�'E�6Fꖻ�"4�93�D�=8&�������O����ݖ|���_��[���{v���\�hO�/{O�!s8N�\�<�\G����� ԟ��~zq��Ӌ�t��������k���/|��a�Y����f��ޟ�7�:Ju�n�svo�&Ӕm5�a�NQ��[CP ݍW;kVɑ�"��W;|�Ӝ��RS�(��6��a��V�h-�Ѵ �R�AT��(ߗ5�yPV�NA(��:��W������Nm��f���J�z#�� ��Y ���T�2��X3SKY�����xLs=!�̌�D�֚톬ˌGUc�U�EaT�4[V�J��'cm����bMc�-�VAc���z�%>�:��n�en��T�W�%���y �>:��M3��i�''��N�%��RO@ٝlXc��j��=-�M�\%������9�?\�Wu�-�m/��RI�i:rt����Ap�T(:�R4�J�X�Zu�6�h��羥�:���˩�W��k0- i�hB²��Sv ҟ�����]��@��2�#nu����/�����)]�a���<�����3���Kg�^�G�9��w�1�i-������C�M�X#?�u��?}�W9|�Ž�=y�g��o<�?7�s��U F���:U%�N��8c�ኽw����������!�7�6��&��D�FG�3�7��gA�8M��E���k�>TQIO�pӲ��f��(O������YsO1 CCK�YP��b�W.Z��z��B�� ��4�!=k DM3[U��W��v'D0^�w�a��<�#ɇ�,̞�SsH�v�r��~BX��(�����J��J0��5V�4&�o�(n����-�����H+'�b��n3��q���?�!�Wn7i�#S3�ΰ<)I徜02E�H�gR�WV7 �1��͕�G�i�D����V�;6 �S��a5�Yhw��v�>H���Lsˡ���Li�������������e��m�U����9GHFHs)�E�.�ml�/U�����U���K�<�-iiy�K�%)�1F �%,a$!���@�n�~���~�����>:��k�9F�_��e�9��l8��5�)H��)�M�1|{ !���H�lB��idE����5R�Q}���B_�N'�b�N������f�����x˃n^l����:̍[�7n>��7�{���'� O�Ҍ��fqo[��>�B.9�9����������{��o����/�xt��Y����������s�ƫ=$��=�Q�běk.�/D�R��G�$�PK�CA& ���-{�4\�pd���4f4��ۺ,���k��f��/wD!ٲ%�{��~y������0�$�[s&��j\OH�{���d�(8~Q�r̆G+<6ĒQ���4�0�܉P�"��P��ANQ��J3b���~�N�숳������T�q�/����cq��_6 ��(ծs��^ ��E[�]Gq��oH�09-p�̈�B �L�i�C��"�l��Kǀ��{���H�V9�[�F�m�b.!�:���sp��[��F��FČ��[b��0�c��4d6�HFՇ�ظ�J���0��V�-]ZBϝ ��B�),��2�\9��� u�Y��. !IcQ�"�"�l�)S$�o|�NgX~c����Vr��?�~v灃�O<�sU��q����+���9�eK�Pr�E�i�ó:���;�'gGGrx�S��ϧ�:���z�{�����k߄ѓu���e��>g� �pEeI��\�әؒr�5TJ ڒ��c��GE ��Db Y"e�{ D�Dy�x��4�%x;�C9� �8��ݤihj0M�Fi�tz!�q�D�$��@U���0���qB6�:w�5U]KA~����w Y4�@�Ď�: � b|�o��#Ak��D �0jv5����J$��ʗy#�\�@�'f�Z�P&���U@��Ɠ!���T��ɽ_��ϖEI��pO��m�1��J<�$������4�#l T-��Y�o��or����@�Z� ;Q�Xb��"�]�{�a3B����1ź�����05$�%%��MlqAJm�3���D��7�b�Y��:�@���ۇ1�7 ��5'1������4� ����Nwb�#��0B��7�b۩6����\|�����g�|��7�=::����q�ĚG���E� ��I��2#ޔ6e�ۿ��?�����{r��쫗z��ן���N�O>��G�O��O.Hy�'��NZ|�0�){ָ�z�E�&���N�� ������;;ZQQu��Qv4&���bF�wl巓�Cϊ#=4���m�uޢ���:�dTS�P.b�i�T�PD�t�ɔ��oWϰ9n�m(H�t�O��9"g|��G]O�u�V�f5CN��CXH<CZ���o��A�tE%9��辬�4:ԅ��F���Q�a(��X���$�ȥ �a�TeR,����.����q�"@�LaUd�!x��|&�l-J��FJ��Y&�L��6���|#$vpT����4@H;Y�h(�Y0�����3�����ʂ��K���i����� \�:RFc�t�����Ll�J��'(s3���"��{ ���Z=��#2�+���� b�J'X�iM��'�����-�p�&����4�5�'Y����ys �y@� ���{������c�<̗�y���y0O,����A g�m.�=��� ~ ����3'O^z�/��٫W�ͩ����'�!����%�z�F:�3y� �IF��mDF��tu���vM$�R��;]���Ĥ ��e�D�Ǔj����S� �G����K�H2Nא��2Q�E�t�g���[Ã���Ǻ���h>p����!0nFp�%4�m�5m4D@� X�� �x��x�˴����D�eI�;�R�f��,��3�i�Nf-��pç��xb%Pp���Zx��oNQ���d�5��=����х���\�D����)5��!6� ��g��%py��.��T��::Qͥ#3ק+��&��C(lܯalK� �d���3}R/�T�d6���W ���CFH_�Ӝ�������Ax ��!D������j2��o|X^�v�3z��w]�B�ad� �͖���+�?��=?.�e�N�9�Gw0�f.}��}ĝN$����0o\��_}>�m�у˿u�@>!�ɛ�8�s~�^)H��C��g���O0y�'a��r�M�������{&f�7/���Q^��;y6�xxş/��O��>��+�o�L���}�#î�U: �WA����s�x˶��� ��b��<5���E���A����d������w�q�Ï�������đ��ى6Q ͘��4��K-�!L��!6�f�PA��^p+/ 㨀��qk�Qɘ�4���-��#D5����a� �hɯ�F\( �p�&@�J� 5��-~��]yx]� =�C(���X�~.����:��J����+K���p�W�[I�D�?2+��P��(4�E�Q�M�Y�r��n�p���� ��h#��[����q&�+.h�g�D���S��c�>9��������pWu��9�i�kwm�-�1a�e��=۰�KPt��=���?�x���U�SZGzE�.�Ί|E�_��prgG#�����Z����xN9�-�H=��KH��kAyp��������?�����x�p�s����1��J8OPK|'�an\|���I�A�7�.�~�����ʏ^{-?���7�y��z�}����C
�^�� a���P ��-!�I35�.,)Ya�^yziJE��t�e@�r��Cc���[�,CX�!-1�'$��e�Y�kY�؝��t�}��ޘ��F!I�8�6�@w��:���v҂�NS�� �8JY;ܔ�|��6���]H��$��z��Ԟ���m�Z��#N傴8R�����G���A�(j!@��_��g�C��j���ܛ0��n>�Zޖ4��� �$C�}�:�մ]�EQ�N��o��,(�Uc�ECh�I�8a܌�j��Ħq6�8�ތdpr �=\[�~���z��c$�� �s�hC,��ߴⰹ��n��3�� |�ubqD�Lt]�(�X�������1���<Y��ì]\o��7��ln9�� ��o4�� ,�<��H/���&�_�}t��K?��_����<�Ї�������Y5=����ˎA%^���@o|���y��ux�����O>��矿}��� ~���Q�B������M�@a�e�_�$����d���iȐ�)���j\S��%�.'_����1���D�m��X��+:�rv���#dإ#2��S���t�h�"T.U# w0�o��-h:X��1x$��"ʨ�!���Y� ���i�cX�1-�\���[A�?��$�� ��eS��H=L�u���p�K�i\A���C0�U��d����DzG�t� ���A ��'���kn���m��� &�6J'L^Hʣ���O�'�y!E� U�X[���:.��+��6!%��g�����P��� Iۄ�A��Tk앵�� Y�'Lr/�tɄc4ͱn�vg>�=X��x���k�\��'nѲ꙱�,�E�V�Lq:K]8V[�e!9��H���s:�C��������m"�TK�} �o���ײn�}��ٛ��$���9?�|��q�bPN�q� �(�u���"ė+�a�y��7~��r�?�����Y~�'��s��ۿ�i�-�s�T��Bd82�嗓Tl�����'� 1^� ��w8���$�f��.)��c ��eX���1jKIp�8�rU2z�N �i� G '�H3�Q��\Z{J N�l�&6�ŊGG�t�8ݒ�/�C�7��a��g��$�^$B6XF�#�b��])Z&%����5����/m�q='��M���@W�$ 7����-8�^�g�>��]�D_7��=4K5��;s�]Dw��>q��G\@L��ė[��8� '��ۃ�n�I;��.w&��,���ͨ�ָ�Z�)p �$8T��%@Z�nr"���ԾH}K �3�u��"E�� ,Kh�ԍ#[�g�\B�$5��T�,A�f���a��H�/<D�r�E� �y'�U�M��)B��:1�EGƦ�y(�CΪ����'ʜ.y���:�k29/�w����|������C����#���]:��c��<g�n���z��\�[r���9A�L>��ѕ����?�ё�����u^����c��<�-�a�K�%�t��N�GY��)�X�e� �6�5)�v�q2�������1����w:�������c�bn.P���if��)qH���Ĭ̓���F1�;�-��!aP�$�^�ۉ�#�i��V+�����u(���D_�߿JYjXԢ��4#l_"�������-P�.1�$��9��L��"l�;M)InXᏈ��@'M͂m�������i0N��� �����7'��d��Z�[�L��!D��#�ؖ���/v;�,4�����85�tl«�@�53\G ��TyR?�Eyr��4X�z�2j��Zd01u�J[,�2��-���B���X�4�[��Cߖ��H�g[SVJ)Ӂ��1 �'\$�/$���"���&�og1b��G<�L�1�����g>�s�f����[o�/<�_����?�r��(�K�4�r��dĴ���1}�(6ӦF�W����?���շ�ɷ |��F��)����RE��I'].<82�.GĦ���8/-E4�ӟG?�ԍ�Jw���Ld6��G8�F±��4AH���&�Nf�&��C�[]�a;U ���>N�:e�n�=+ <^��rkЈhԃ b�OE3��X��e�] Bq�&�rMZ�R=�=۰<����C%���b'Ubl�-��0p,���3���gQ��a��A6���]�A%�0�7�ЖZ3��䃂[yn�◶���d�f{��]�Ȗ6R/��M7��3�T4�#����a�b=��Ͱ�B1~٥��a��SE� ��46��e)��#�"{Ƀ���eS�=����T<.H #d� �PYÉ-j�����Q���5� �L�-�u��j'��ꖞ�ƙA�p�)K,>�& �2��5[��X�1�!Zx����4�f�c��!g��aY߀� �����o^?�_���o����r�h���I@� �C���y��?}>� ���);n>?��ѥ�^}�=�נ�C��ƿ|IxijݬaxFBܨN���� �5 �1�6Q"�#�X�x������$|r)>=,�v$)i�0%4,k�b�E �������|��^2�n���I#םQ�#"�2B>��eR�q�x&I��[�;{�> 9h�6B��ү�6�0�%�&a�~�iD�Y�9$�o,���K%�u9&�&������m�A@! w�_C���N@M����/��I;~p��V���Hׁ�Cޡ��x�;$�n;���a�m��\ l�7�ȝ!��DI.i���ƭ���=���B���4��͠�f��� l��z�#H�^0jZ���Vu�$D�my�~T4�9��j]�l�T�z$?a�! ����uє��Q������)���&�t�����M\z��b���&�l�'� 9��}<���0gLϤ�;x0�˭� �?�uzx�/ֿ��_��s'�����#?ⓗ��YN> ����<���g~x�t)=T��}�����|�u$�s<����� �xt�Y������x�F�$eQ�r N��Wz���Ĺ��9"�Rwh�&�:��!-�� ��_���Z2���j����M�fh�@j��(�/�)ce�o̐�Ζ� ´�+@��M$')F��}鑵?5)as�:��k,0�6x����a��AE��Ѹ���"��E�p8�����1����p ��1��-��N�oИ���~;�贾ꈾ��p���/v<�+�7����<o(�W�ٕe��$!5gb�.��m���s�r bk���8Kw�0�8��r!F���h��x�c��N%'|uT:��F��4��� 6���@�x�cx�D9��gc� �#�hQ���X q[E������� �9]�DM4��rﱿ�i,�� Ar"��?�39���;�'��L۵������;�?{������J^�w}+G��e�KF8 )Z~h>��>tx)/��⭟�%Q�x�}�9{6U�l:bHβD�u"&�*�!��cD���&:�<��C�0T��2�g 쩴�(&{���
ֆ�z"�C�3]��o�.��:AD�~�l�O����8]A,(i������c�VS��Ӡ��M��5��M�B� aDn�'㈇�t��L��d@��h�v� _l�TQ&�D=A!'�i1�m��a���1�?��2�l��� �Dwt� �WS����8+��� ]��e�fq_�f��b�A�?�ye��Ru 9N�[���W �2�@�+ [�Eː@4 j�b']_R�� !T6-2����)��OGe�qڐ ���pD�UX�$���1u��&��$ډ�3�ߙ�@�Lg�Sbe�R��|�4 u�V$�}v��\�'�R�oZf$��c�ȷ[��dd9Q:�)����[���+A>t���{����K���/����y��x'� ����k@n>%���5z��9�>>�s��;W���s��9=�|�����j}QŌZI�[�s��aλH ����r��0N�/�IT��ٚ��<ţ�����|�l�DC�;�4[���L�,�²��u��tx�G�U ������y�����Q�{c�4+E_���T���<H�ڳ��+�i�;)$��1�!����o$ǂ�]�+�u�ɨ��GS���+ą"Y�ҍ8�aZ �u�[� ��S7l��ۿ���݀��F��E�}D�nY��ﰝ�-��Nn�a�وf����b��\�u�T�H�6���v�C����� ;i���:�v :�Zװ����Ƀ�D�2�3���_��O�����H�Fӵ��i��,8s6�)w�!b�Hs���(&�~��$�h�j�,R�tƻ�N��fWrO�2sV�sv�op�N@�|~���{�N߽����z�ֵ�?�'�Gyp��u�D�w�_��� � ��衃��7�-�kG9��?���Q���Y�� ��L���RI�QL�2Jьs>� T��z��a�9��X�kF5��Sk�s'n��) �P�{�� ]^drlv�JQ�Œ�Ën��˂�TQ�"O��y=7v�H�Y-�M�8��2=1\�]�rkT��w)CvjVFÿ��Y1J�eWf��!�U'KH��h�d" V��G�f�S١�Bt7�S%H�E�#=�YX��'��#u��>��? ��#�˱uw� 1�A�"ogA�$W��h�D^[HFg䖐c��j�(����ʻ���a!�C�Fe�B3�Q� �(��u���٪e�fH ���x{��C�H�>1���"-�P��y�yH�Q~C��0��h�a�/��6.�,fpRG9s~��x�A#��渉��\c� yvl5�&��$�a���Ţ0������y<�g������^?z��S��{�o� ��p��]z��8� �|�{���<o�Ϋ@$EBi(H��x�/-��;�w�qGy�ǵ@Y}Đ��sw;�aQQi�a�(�q����Y6�V���h(Y�T�B�a�X1 j����MN��/�q6��c|؇?�Wָ�)��&�� а�!�SE��]�c�v��'d|N��w]�4a� ���X�W��9,���2� xXl@z�v�F�� H�!��.Î�T�SI���X!"�Bǀ5�o2=�Ɉ�Ls������g&g�v-(�iX���n|y��w���0;��N�z���6>��U�L��$D�F�>G_�i,z@cF�<�P�Ɓ�I�K%��ZpG�ʆt�A\� ����m,�-��%����朕rG���l�ߋTN�@i�I����M,[,, e�bř�N0MО��""�F�n�����]�F��LGk8I�8G�Ѱ�s([U���GL�����ʿ��s�w��:����[��_��W���ٓ���c�L�G��}���0�mlÞ@IDAT�|'���Ɲ�Y=G�8)P���<�o?x��G'�pd�9���3J���Rؒ�ޚ��t��nͻ���(-6|Ӷ�X~ @���BIďC��6]qTaȅΤY���\���,��h�j h8 ��+��;��P[J�|6����IrN��,��0MU��Ʉ��M=�G,�f�9�#UnD�-�jn&�� wgb�d����M�N><:3�\;:��00��L��hi�;�Y3N���%��:1t���ݹ�ޖ���>��[��梺����!%=�&�lw�d�Kq�F�]��+�wX�D��$/����������d�bO�#x?8i��}1A&w=U����h� H���&&�N_ &s�:_J�i�N~0P�2фFChȁ���URA���Ht.�t�a;"��>��f��\i�K��CX�U�#[N�>���9��P~���"�ꍣwo���+��7�? ��{��J^�y�0?��4��I���b�������7��k���sA��l�Ęf�t���?i�����N ��1�0�lL��6SuLT�@�x�Ud��7�4���n��P�ؔtƐ�tݩ��@�W�0�xr����܃2�������5�����2���L��� �� �T��=�QgW��.Bc f��7�����(^���X%���2, 8۲Xʁ��g�9�5�f�l�dr�͐I��P�� �|��1����ѳ�,��F(}~��V=Ҏﳽ��>��ps�DV�i!�ԸBt��X"a�t�ࢩD����奱.u��' ,���m��+�� 2o8��Lm]�) R�;DQ["�!�d�#XvbD�=X�yF��LG�J�}P��BA1ܐ�\�h1��U�C���F�0��x�H�kB�P��vAf��fq�������9A>����$�f����q|�������ӯ��['�o/}����o�=�W��)�8L^9��9GK?�Z��� �N\�_B�;�+P�6r��A�EKBl�"[ In���/#�R��\�12��<�%u@� e�\ʜ��U@�2م��R����E�'ޢ\|U�O�i���J�ذWb�i �IMvg��M3M)˰ 3�AW^c� sbI �3T��Q�#�.��e~ͣ���Ȝ�:�H�]b�H^��e%ٔ���M�[�s"�����d����M�e��=������p��t"�U� ��ۿQ����.a^�����e�<�1KS�{�H�~d�X+��Zy�M��h3Q/��@̺D��vӯ�FA�&�1��ԧ7eE�n�R�Z�f#$\�Yz�J��8uG��}���)"l ��kw�=,#��u(�%��_�A�ٸ��@$�U";9�d"!��T�zD�e�����4�%�L37Ce������;�\{�y�?y��+7x~#�彝��ݢ��?N�-V�/x~��������ÿ����ֻW��a�d�S�)w���gp̵7GF�B!�=.�<}hIP��H.m[GT��9u�d�"+��8�˳��qT�aR��C���Moql�0�� B�j�&��q�2�L>��[��0B=U�6ݐF ���� 5���g��'L嵧8=2��&Y�ȧa�){aPji� ��M��o��2va3N�̀v�F�"�R��.u0jx��1 q��2DB{�I!u��������X�������K�GD7�3 [I���D$o�݀�2}M)�]>DŴ��y���I���?��ouh��e�q�ث�x�l$^@��y�O�]U��b3�\�]����BR0�E�a�E�6(cm�� �(I�"�=�] �F��n����ѯ� �a˰!Ⱥ�#z��1��&����X���x2�+B�@y7���q�����k������O��������9�r9����h���oj�Lo奟��˗��V����hR%�V{�^)����05��+� ��5�ͨ��6%�E�j6u�JA� W v� up �\(��oܥ�ӭ�P�hc���}��/�%!�E�w75H7k��˶P�:�7n Dg:J�B�1[��0/��~��z1U�K|A��1n�<\�L�c%a� �k]0�t���l��6::-R:%^��C7y����I�y�.2�\R���?����6#���3�X�x���o�|������)�\k�, ����th-;$�t0�$�L%#�D� ���m����c�Q�!muO����#\�P��gG[�Cb���maL��;��tEFA>��p�kh@���xxI���K�#����lIdgaaE��0|�%q��}�2����ʸc��@ ��g;�a�����N.=��+�����{������� 7�!� +U0�z�C���'��G����C_�������:�����@y����E�yz�@�8��Y���@T ǁj�0�(e�δk�I���8�׃� ��q���" A눍�l%gl���߉����۠���ǻI�O�2�]�z�td��0�����>nf0G�eި�N�pg�T��T�N�@23�!�i1���ڦ���ٚnYȀ��� b" ܲ�&}mJ�n��Xf��<E�2G�x� R�%��Q�N;d���C����m��W��B�X/E8�)�J������fPs��sg\���RX9c�1�E?�0���G-���ݎ6��0�g�X6����l�#� �N�c��VI؆��V�P�"Qn-U$4��_��Q��< �- /Xst���r���gmP$�2x~,G��l��zpd e��Rz�^4ȃ��w�������'�|�����=��υ����?]���6<�d�/H=xp������:_<��N.�6���os���ܷ0"t������p�B�bf�L|ԥ5膎�~[6�ے@4���ʝ#��J\��W�s.�5C'OH���0P�ͥ/� 2����6�'�l#d� �]L9���#z7��0ۊ\���j�V�tS� ߳r% AB��L��HfbV%7�t0j���~5�j.(r�o�����D�74��p��XT㵮�����>T<����F�k�� �K��"�|�?��k9 ���;)]�2�����s��+BXz���j-����,t�o�Le3$t������S��,I薓�,~�fh�$�"Y����Q���A�ST|c�H ���SU��L�۟>t3&�Aθ�-�ॿu�õ©�� �A=�87�.f���>�t�e�5��vrt��?�zv��������՟��'y'��T��;��%O����=���������^>l����5 �x�).=�;�6�'d){:-~�i����Q�34�y���8���iJ���f��3�����l�'������c)�C'� �M�����!��&B/�De㜞��uZ+BZE��O���ZQL�0$r�f��TD�����'�8���^�F���.���j�b3��8�����L��/��n����N� ���,��J�� �1^1H�8�x����7���ٴ����ddu�T�np ��(���@I��G�ܵ��Z#g!�.a��&�R�T�}(��|Tَ�F��҈?&u(^�&���P-��/��E�j@n���"~��L����A���Z�-;�c/8#Hw���H��̱���ih ����~�j�U[��)�8b b ���E�a?�H9�4,b�Q3H�XΏ�N����y��?~�ӟ8<���{7\ ���V7C���"������<���������/���F|��ׂr�O��D��C���!�7��ڳc�p�Fbޮ�s!!5b+e��541Q{�(!o-�IJD���j���饓����iޠ�{Hr�_"5� ��"�1,4 ���O��]��5���N�U��x��j���đ��,��Q�xJ[�;�t�_閚"�kj����[�,ɞVn������PR@@ vb��Q�1����Bʹ�MLL�iG�a���?Rѯ��<���!�b��y'��'�D�Sf, �9����I���Vf23TYf#��ř����3<�_j����������J�S�����O�Q)'��7H�1P�f��@�l뷲�gYh#� ���.��?kE)^�U-����F� �%��eͣl��^Sο��#��1H�a�oJ˂�fP����7?|ዟ����:8~��j�dy�O��[���)�� y��˟���7�z�������!�x� �/$����돸{TN������5\��U�Z ���0a�f'õ�"%^��� J7�o�Q/�i:oD�vkN��q�3� F@� �5r�{ܻ�[�!3xi�����JOJآ�1�����2 �p�b��"Ve�6�6�C���Q�rUy:p��y�-��엣�tG�'S 6���vVT8(�a�\É�Γ� G�_�L�6�nl?�S��� �\����r�"���P�G��/�J�2�0�,� ��vAG�QJ2BHZԊ����4����9Y6��PB]pɾs�K��\ĺp���<:@؛È#��@�e� I����X��XK�pK��.�� i��"1N�c8��ڙac� -����Q��p���Q�QazI��S��p�3R� {;�A����ᜣo�뵗��w��=�X>���yȧBq���]Le�=��88��>�w�<���o��f����Q���%�? 3�0"�Z ��E�x��$�A��gM )ye�-��fhA �����S���vR�@fb�5�r��Š�A�i������K'�#:�c��qo64T�s�8��U��kV��6Q�6t�F�g�z�a�6����_]L0�F�Ԧ/�:8L���2SS�6Y��$���̢����-�p�>֒%J^��_}��/���i��ծ����>��m��-�r �mD�� t�\8S;��9Ta2�FC�9őElt�b�qu�pP��69;v���g�,��&Z�a��u� fϘ����}r��Vj�6T(p�(��)Wݴt�kh(�iCq�_���5i ��ڔ�5G�<ROw�t�֑��q�Cr�6��{E�Mw�ډykQ0�DJ�B��͛�y�G��_��>�����7ώ�x%T0�1�D����ó�Ї��k?x�������g�Y��CJ�,�����1�l�͎8h�g��Iq�C;�kT��F�Hb�^�T�!@c%Ԣ�_V��r�0�A�.�L4�V�� ǁM#��=XFDi[ʮ������&[ �"��Ŗ���K��l[�8_왤�L��R��cn�:�B�@^h-2�td��(E�S;=HS�aI�L_S��s��0���x%�I�McI�A4p;1�G�Q��Ӆ��]s����G?��p����V�!�&��l��:g�< Ў3��Ț��<���8Ը|(����I���(�yp�BD�=P)��Lx��0���s��?�z�Shq��V@�Z!k�4�u���W��"F�?��w� ���@�1��>�x�()�=�銲����˸�l�,?��ĉCU�,���jd-�4Vr�B�������<4��Z������[o~�_z�^�s��G���Wa����¬��㛇�A��O.���E�����|,�=��F�g-P#���en�5~���t��8� ���CU�#yL�RDrڢ7U��ݏ����� ���j��両�E����%ﴈ�"�O� ٔ3TR���� Xg,;툥!��Ֆ��Y�+���C%�^��w� ���j �]:�- 5P1Y��{�ɑ�P�����2� �"������V�2(��y��i��,#�q'����b�O��2�o?t����˦�xPp���w���.��{��� U�c��xR���f�#�A[��nZ��@�Dm�v�-�@gԘ�(��6���6>@,s�6�)�JOZ����[��L\����l���g��}�#� wy��&��G -�Á�����l�ʨ�K���'�,h��4����º������������_�W_��\��˧�~����/�iJX���GgǼ ��G?��g�����'�$���?Emnស b��+��h#�@5�� kN�r4�I�u���Z��%�z~3L���e��z�̄��ĩC��2�֮�4R4D!#IEPY�E�q1�Ub\i8rU�%���(m�� f^���^� ��j:����(��|z j��dq$-���'U㖳��!�3���I�/$���M��>Maw�UJ���V�P��Rl�&a ��ɶ�����{n������f�.�;=8:��ue��B ���2�l�f�/�9(�sn�<"Y�I8TAjC!%y��0X�'�ɪ{Q<���t�����x\�B�%���M������a96�pk��c��&�5GmŊj�ؾ!�1X���4$U�p��.�!���k�ɴ�VD�n�c@��A3g)��D��g9��uĠR�SC���''��ګo_{�O���<���ۯ�K�)aa8���]:�y~�/~��7�y�����;��A��Љ6��g��XB��4t�)���t��<A�m��D�wQE�Yn]�2@� ��S�>�Hi���Ƃ��xdqo�����Ψ�E��p��Dc�.Ȟ�|t�5:&���x,J(�r�U��(q,��}:�q��a�Ƃ S� ���=�eGR��f��i�Ҡ�3�j���!���5�[m�F� �в] Uv�1j��q��H�a:��ᗟk�mY���ݿ� ��X;,��F;�9�L�sݬ~oZ��P��'Ѷ\U#�h&b+���թ"�6�����8c�W���bP�@p�V�S�+a⯋d�--��� %���F���s�bT+M6�3b�m��E�m�DMZ:��$��3�ł$��k�vX�7�r�?�%�B������C�ѥ�F�yՔ�y�srr��_~��������K���ٵW���=�Ut�R�.�ᥓ�G9<z��G������M~t����)3W��t�g��As��5�0� 6'c��P� 榬Q�!�<�����D6�=K��8ũq�ɮv �b\"6�h+��B�"D�%d�@O�,��wH^�� ��R�KJ^�HZ�Є���) ��]"����HV�� ���qѾ�(#-��m̓S�V�cX\��l�N���w�<���Aۂ"ɐ�$�>4����Fq�W$�L\^��-����#�� PR���Y��.mi����.�� �R�3�v�jm �u��٦$H�qE���֘���0;X}Cb0K�1NwP���B���$���-{� 7�i ld���UK�V<ۆT��>�1���o� Oʉ�3A��L0-�z���"�B�]�nj�w����a�ȦXt��/$9���#t���J6H�}�2�g�'�/=���o����������٭Wϼ[r�Ư�rq���=�����?�!��q:_�z��x��$����>� 5&��-��O�,TБ�:Ӊw�^�|+�,ΈC�E7��K,&���5"b[IXKӛ�lh�q���Up�B"�!Ћ�G���tt qK�+��+�8H%/Q�D!��|�P��֧�f�rϚ��0�Q7LI���?�'u��S�a�&]��B:2�[� ��S?��Cg���ȧx��m��h+U�t���t~5O�}��W�����7���a�$w�K.y�UbtU���QU�g$�g�9���.U\%��+�1�,\Z�kQE��-�3���3�]�6�r%ݰc�38�9Ő��3��ʒ�a�h�?8x��E,�6Q�O��� k�1TnJ�A����ݬ¥g�iC������x�Ia�B<z�p �Ƃ� º�D�B�%A�? ��T"�ܚ����O���W^y�g������>�Z�����W�O�ux����c'�>����|��y�����U��&D��S�L(�ފ9$xܕ���@q�i����w7�@vi�kd�@��4T.�2Ǣ'5A1�k�����n9�tM����gp�6Ph��/T���в��xW�q qP���f���A������c幹1+�� ��E~���W�l~6:����nq��a(�^x$��ǹ]PSsL�5��i�o�f�4�9���{�����n���\ޏ�dn����S��<��q�(u�d�GF�H�i�ze�,V��t��������a�ڤ�,��b��u�{�[W?��#�Yt�Hc��fȉIs6�X�h��[��/:<a���I���V�v�4�9�փB[I!Lc��: o��X���c0�r��a�����9r����i;w�ʹi%d��W��E�l�����o�}��^^~�G/���?��/��?��٭���]�������۷��[�~�����7���|%�O�r��T�g��G�� ���QIB����4���[��l���)T��Q��]%.�=�3Z���dO����� �b�!A�VA5$�A�p�INt]��:���١�S�+�y���XK ~eI�Ɋ�pq��4�ʺW"9�,��w:Ç2�/��K[��NP3�x��ir2=�p]+��P�i�[�=u|�l�{�W~�w�l(鶿���x�w0ǖ�� aCU�>'�5�x��r�}�c���\[ͱ�|��D�V3%��Iə��L{�W��t��n 骴�t5��P� �̸|q�k« 1�)Od�Rk�-0;�ٌQT"��J)��x��!+��!D��a����N��p=4� \���>qM؋-���j��Ԋ��2�|�${�KD�:V�;����S����o�������_��������+�G���_�s룗>���>��oi���8(����&0%�Nhfش���m3�Z=��'��k��2k�#6tѐ��D�2b',�z�����ؖ=��5�sXݥ��=^���g��aS��H��� ��x4�����^�G�jX��a�H�A<DN�����)q#���,"(F�3�k6 \�\Ƭ�b.��FM@��"E@��0w��n�2���)�J��1p���(h���Wu�~ �״��lC��|x�_s17j��s�xDh恳2,���5X +��Y䔭]��x�4�펰�[�"IwQ�X d� �!�)V��Y�� �����i/[���6��I��T<i�Y�Ri9�n®夦���/�tb�m�h��^g�JS�s�]�i[E$.�D�������M8������x��_iN�bd����Qῖ�����7�z��x���?��>��GN^:�}��>6L�wn��O�~����%��_���K������� ��v�M�{0e �^�!ye���U!��7Zzz��4c�KJC��yZ�sc�lÀպD��"��%�����0M��i;�v8�\$�{b��^a#��J�6bҘ��ؖnS������ ܀�Ձ�֦ޣ�W���QI3&?x�&Ϋ�24|�ʾ]��6s�.:�Qջ�A"�$s d�ˑ��t� �!&t��{�TΏ� ����������]��e��Rt��$3I�k�����̃�rp�Q�C�ZHc;5�|iִ�>��2���BciU�Q.��81�v���I��݀�o��Ű���,�����8�Ըc��'�E�@�@D5�1�a�hɭ����aZ�?n7��O804���i�G�.���U��aT����ǐ��٣�|'�<~������7?�ȣ��ӿ��+/��z��4/9�Kχ�|���O�s���o\�~�/�>���H��xѼg�f��f�R�J�:kE�܊�s�IKv3�)�i?9����mz��O��p�d��"�V�|��3'�!�!��:YWa[���v�{���j�7'������d-�2]�.��λ�u�q���l#���]\1R�dF �� r @�&N�p���C7�@�&�ƃ,��j�(�Ĉ��ל�C2���L0�Ү�[���$�r��xZ�����gk��K6��:I1��հ�T�Q��LU��CDV�?U82 ��I/��cBŇc���P-S�4���4�LH㢎@aPX��ʀk-ؑ�f��\��O�a��'O�Y+{, �r�B���,�;��S�D7�!ГdI{��!}B�H�b3��R�&�;6&�p��f|c�c8�S���i��E��gg'��o���3ߺqz�_<�_z����O�8�Õt�����緟��o>v���O?u�����������a˽�14��ζ��-��0���6x�N��ґIͥBJ�"mYY�Q�Xxd�����@�,����v]Ԑ���O��6��"�jQy��1sxEdَ�3���ꥰl;��� � �#�b�� Z',�q� ��"(�� �����'��ҥ/�������h�Ts��m��X��X�Y��I~��W�s�~�]<덐ډ!�8�x�mFئ���l:��-�Y��"?0��qSa��3FLL5�R���NJ�r:��g�F�wuÌ,��=��]��\Y�a�4��e�,C}JoDi�sV�0��^#�SS[�Y]��^sÂF��K�b5L�X��{���xw �:.X��=F�^ ��P�ΰ��:���~���ǘ�d��s瓃\��n�GϽ�/���?x����'�M�ܾqzz�o�{��v�ϟx�g?��O^�̼�D\�#+�L�����=���~ ���X�}����Y �]�C-�+��LL�e\b��J���~�1��@���G"�x��qu�a�s�jG�p��g��P�7��%7��x�Ì�U���Nb�5���vLѩܽ�[�Z�0�FHr� �^B��X�! �&�@~--�p�L;���;q�©��T���O��-QL��n������Lt~-kw�td�-�%��\m�{<�(E�����N]R�'"�pˬ&7sgD]����o�ׅl�������ElY��Rr�C&�c.�R�����-Ud���������0KO�1JTMí�r��И��Q���Εl�.Ge �D���3�T��J��+U�m����oé��Ia��cs�L�|\���>)�\��r������|�#���������+g7�;?=�?�?>��ٝ+Ǘ��w����Oݺ����'��w(E��hP�.O�8e�,���XQ� \�t��Z˥A,/tity3�ڎdb#�o��T��8+�� Gw�+��mU�d����$y�����Va�=j�N<,�+�&�S �jث�|�G%e_��Y���P '�I�s���fȍ#�<���P>��l�Z6F;��k���T���N3�.:, 0}!��~(���=M�Rm۔!4�)\���֠��m�/���=������������|��e���Д��M9�ТS��Y�����Ԍ�Ք0bӺZ5����- ��p��c��t Ci���Yf�-���(yo2�M"���kn��6 �X6J��[��%Tsןy{�S��3A��Ÿ�J��P��������<'�ځ��e�y�ԛ>&��!�M�\��%l���f����ߒ��1�Y8���Y��x���~�w��ٟ>���<��wNO����>>��^�v�=���{�S�{���S��Y| ��4�N->��4��ai<��]ɀ}p���JZ��b�x�S�D�4�(�����ϊjِ�RR��Ä�4���ɐO.$$L�n�ǒ�9ͥ ��;�jD��q��n����E+��q���95��֚ʉ �:���/�D5>J-���R�'k�[r�Ν� �fA��2���S�X�=0k�$"�N���_|����h��d�[���m�{ h_Z�1&�]��Qm�I��E��ãK����F�.�RV�� !ˊ�[}#�t�i �vmC�8Y�����踕y�ш�j6-yMQ��.m���)T�R�.�Z������I"��$[�H�h9�� ��Ć�#�0�&�UH(��q�٩ "z� b=�a�{��3�d7��4��V��c$�Iw��M�"N)X��{���{�s���{���~�S�������q��{y���������C���?sxr�kG�:=�ץC�7 _�M�}�G�\]��"u��;��:n�s��%�UGh�@f��-/�M�-H��+;2�QȨ.<2��U6�ڊ��u��5F�68e��=��խ�tR�1:��H�o�,~� ��)Ek)����7Tׇb��,�T��C���7����>,k�- � �My� �D?-��F6�IW�0��/�-���k4���Ueuw�/5̝�^�~%i���]��y-貥.ѐ�+��X2SN��:���bZt�NW+Ɵ^�^Χ�;�����I��_ �L�#}mq��RcJ���aD�d:ۑ�5���E��I�2Tet���n����R�)����Zax&V_���y�ח��kD��������U(��Nt��qFHU���@���3$�����S �~�+�|�+�r�9��������y��g��q�ڟ��_x𑫷n�q����ӷ����/�������GǗ�Oa1��Ϣ�D��Y�GD����1�:������Ԣ�]��R)��,;�r����c-z֊��vpQ���1���8a�-E�烳�Hk8�����\�&p42��e�e\O[tf�R!��0��L(E\�q�ҥ;�i����Rݥ��f� � DD�{�;ʻ[���@ty!�dq�����̭~�7o��=vw�ލ�؞�� �R]���w����n�0�������y��R���C�j��,M}��Z:�x�A�R�� "S˘���#��6�7�X�=Z�٩�m{h���k� fO�XF��#{���)��IH����c�+ 9���{�R�[M�s���� �ev�våX-Cp pB1�(�'�I6��e�5�n�P�Hq6���6J@Ɵ+!�-��#��FߝS~$����>��s��������ɥ7o�|��N�������o���?}�{p��� ��É����\��<�S��$�(R3��R�\TF���Q8$�N�=)��P��ĉIJp�0��1q��Ӏ�-����8�!����M�H�]��+,�f�?۾�1�K�CgO�Ư��Vrb.�@p��ׄ�0 e/��/�N�n�-V�kW'l�zOb��Y ���(X;�a�۽���"��������a������D�_�-�����/\v��{��Ұߴ[�>��k������ntPgꑶ�"�サޞ"k4ljGJ�phU)��Ȗ��c9L���XM�������@��XJ[GdvR-6s�3j����@�AL0x�� L�hvVp�x
� �I�n�A9ͺ�����N�����1��H�= � An���~n��� ��%��C��:�A未�m�M��&��m���;��o���3�����|�˟�����ۉ�ܸ���������^z!Ӛ���:�,��� !,��]����#�� mpG��3 � Z�\:��S�.����wKM��ZFc$-E�\��{�pb�e3d�I� �b����{b�u�=_�M[�𖭥"�Ď?� ��X᧲eWx$�j�\�Y��7Al���� ���_�G�c8Ù���(Q�X$�E} -��+(��1������&+TM�6�V���ʸ �)`�X��{��6�+��S=�����+=:685��B=DR�8c��u��a�@���XF��F�!i"�ܱ��#���Z�=�Kfr�C���dW@��2$@�Ґ��e:>24�'�v2�H�#9dYu���]�-5�)����Ij��ao ŃM�F�3�z,@ ��(3����Մ �nA��ᙨ���M����r4�ts� �駓_�C���������998�ҧ�x��Gߺq�������������/�xx|Iw��Uj�cЯ(m�m�5 �l�j52nl�Si��UIB��4��g�fdQa�iv��Ç�z�HC,,����g�0W�fhf�x�5�����iI�e�3��_@���X���rQ���.��l�W����Z��8S�Dm: ��Gd���l��> ��ʋ�Ȍ9ªŰI��솔RpbB����a>��|�5�m V��$K�/i�m��������%�0�z����$��Z\+剨�C�L�q@C Zs�À�I݆�5��'~-�ol�i7<����F�����A R������x7���8���p��]�pW�����]E,�"Kv��9R
&q{��San����[%e�����
�36�2m�0�<��u�+5(l�=��z@M� �@Q��d ���ȃ���\P"����;y&}�������/>�����~�w�O.�~z��_��;����px9_X�$�&������ƒ��l�2 bh��[���2I�G/Q��4���P��G�0�آ���s���z���I%��ÌO�.�z6����� G�%&K 1� ��P�|�E.��≵�e�S>�Z���qJ�6š��Dcl����� ��&N�ь��\%1SmG��Z-3F����0�~D����c2�b���n��b{ATI�w��)��������@}���w�A^��SBͿ�#Sj5�O��I��:fh������U�p�qZ�Z\x2�B�U2&-�Y��,4�'(N� KJW���lU���h�/����u��&�F�����j5,U��y��hH��M:�W��Ʊ����}���J ĥ���~��ğ�LEп��5J��f���>H"1�A�c�� H$�9 )jF�GA�|B�����y> t�v��w���7���s��ԇ��㟹vr�������\:!B�R�c�D2�K�5��_W$��E&��(��j(�[�P.C�F��@ӑ&��Dop� {�"�֑��;rU�@Rb�P��0S�BG�$��&�egε䑾S���Qa��&zDo���qE���:�����d�9LC���.���9B�:���~��{���M$E4���h���D��� �l&vF%�B�"���\;��~����E��ɽ�/�qA�w�Mr��Lv�.�N�zd��l�ׂX3yO��ZK�N,a�|s��M϶O���p�p�K-XS����r��H�l��7\4Oޕg>��6B��v��]��<���(8C�X�1s'�w<��I8��T+|�a�N���Տ�A�E��� �0Ƚ�����E+�)|�PSY�)���gbh0�M��?�c��y�9@N>����|@�W����[?��s_�˟}���~�G>��g���?�G_y�[�y�����| ��A�'4�V����;�{g�#]�]�w�@�@�����0fL��HLy $XB�A242�����zYϳ�9�č�|�궅蓙����k��qoDFFf:i>��\��D� �c�4��JϦ{h9��H+sʃ�h����[��C�&�-6Q�� /y�XD�q Dz �8 �r�"p��ɮ0��� �꤮{_�ɐ3 �(��gј�������Y��Jz��C��58� sHƈ:q�p8�lX]��O��4��]����5hEM�#��Nj~� � /�:��b��scb��n�t捡��|C�g����h4��U8>L'M�Y�]�(%�w{Mp�(����F���wåO�V��kfJ��k-<o��/��0��@�~�q����Ln�����jc�UA-��4� ���6�5�Qt��&��9�x��mW91���e��Z�5$RC�ܨ,E����bQ�#UA�3 �����s5l�zA9�M3JIDAT1x '����zN�0_��w��O}�������ѿ���������O��_�������O������^��d�"�Ћ�����.E��J�u�ap���#�������B �ᐸ�P����31�x�_2i�Ц�d�M�D9e�RHș�T,H���^N m=C lx;������(��|º.��F����ܔ,��N�J�I?u����u�=N��<E�O� ��7"ŇD�2����7ʦe�E�D>�2H���� �M��u��$�'f�9ҷm�r��C��;�)+v~���O�1���gռ@˛6���#�L3f�b��5�Lam�9 d�B����$g�m���E�^�&גǃ�^05��b�\��W ��C::��4����s"��l~WjR��( A��cshP�I�Z�Dhd:��� ��g9ܔ��-��C6��/!x��^{�i����+GV�{�v=1�:6>��u����p�N��<�ϯ�}���������������������?����_�����'��+L�<��Z��nіV�f7�9#�D� �p���9���I/��"����6�"�����6�yo�qw�\��'� �#U�jc��-Y�e�5�|��H~������b����� �t�VR�M�b�R4-���"���hB�UQN�d�Q?�z���m��u�}Ղ�S3�q�W~�c /��H�'��H;��睶��{��1����w��(/Pd���Y�ur~��U�|a9��ƹ�A.�Vޡv�Lw�3o{8$>N�\T kt&���RS�#iS������ъta���<Nc�����|1� �+Ӟ ء�y\B��g�A ��0�R��,�R�OQy[�X�%B�ׂՉ,I�v�)e��L&.�c(ݎOh�ɵ���E�i�)�<]Íd�Q?}� O���|���93v^���W?�I����|���������ÿ��W�o�����_}���_��G�w��?�vbQ�����) DEf�G ǣhc��h�ܛ?��j�TB���1,Ki�k>���4�E��!��l��g3H �T>��#��K����9�5F�ʈ�+�]0��8xV�t��Q]xiQ�����J@+U�(��s�,��!�=�U;�����ppYcj��&u�8ktY�>��.����w��R���������휕���ϴ�T�gq�u�A����_Q����Y�Nw�ɜS�K�4�v�����%�Iϥ�Wk�ZF�tD��Jm-�U��(z�W��&�M���1�k0�xB��[5�s����Ƨ3��b� $����o���=1���U�g�^V�'��b�ƺ���X ��J��1��Dv��3���E��X���#��cc�sތ�rA��'a�$��?i˿,�C����x���o������O���������鯿��o�%Ӓ��B��E��LNH�vm�=��@B������!o�#2'��v:�8�(���9�3�)XϺa�y��٤Puђ�O�0!"tEf8J3� Ru9 .ͭ[Y�����gFA�_I�%����8���r���pu.=�5��&!���Ƒ�%Q,{!����&zt�.�D�Q$@�1:�9Kg>r������H�U\�N��ϼ� ����WҌu;oF1۹I�?�\X�7y���Ze�Xoj�=����N\f�����\��BIe&jx7��|P��IJ��5.�:�n��ޙ�7%5���m��!�v8���t��� ��\MVg�I �#��JF_,�<W�0��h�^3��g��Ӿ4(b���k��k��biq�+{ػ�!�ꄱm�Zl�'l&iAG7��yz���7������������������L��h� :���V�u�~K��4�Aů���|���f����t��x�c�E>��X@"���h�x-z��L��S+�In�i%�,Ť�[�i�'�00���|�,�ѹ�آ���]�T�-�#Ɯ:��ɀ@8���\X�D�6��H��z �pzW�b�jPd��u�\������/�V 7�:'V���)������[��%4�X9���ٰS�ǬK^��o$��z&��J�0���b� 3�n&0�tNj����#�G:�x���|q�"n�S������Hz�i��ɮ=%t�� %o�a]�a �=��dm!���R�:��@��0� ^����I����DU��C^��< 3Fn��� �(�>��f�TE�p�@��V�ڸ��������?�;��?1Γ}�2���'�����)~�4�hF�[�3QSg;E R��E���$fJΐt~�yY'IZx�ӥC(u6��;i��ꍕT닟��d��3��.5DA��æ~\#�3#K��3:���9xL'%� ���W�h嫦�I��r�)H��L�bw���/$K�Q����F&�T��_8��9&���v �����jMj��ǒ�K��<����|x�ٞ;��U <3�ǀ�@&� d���1�uLx���N,Wq�t݈L>Dג<�Y��Rxg/ � +�Ȱ��\L���ek#F'����N�_����rs�V�}��]�5+�T��W؉�)iF��#&v���U����ԴHJL��8V����o&��厂����Y-hEO�./� �ts����7�?�#�E.�x��ǃ�q�����"�}$�{ӢQ9hQ(!���^G�T�h��ЈL�{hX-�����^��ȑ��c�)d(�6�q���2[N�$i���!�Ux����T��w���xǻ�z:�������i�Y#�8�2�9�5�)�7����l�N#Vݕd���n�qv��cmRx"��d����_\7#e���%���y�Xd�uo�y)t�~<w;��3�G�f��9�� kw��_-�����9C�W;��@S�Qg����}�\ �\��]����]�^(�g͒g-Y��hl�ZW^_���أo�ܦ�7:�}Uj��ݜD�F�U|Eͱ'i�b�=ޯFێW�l���ٻ3i�Q�Xٓ��!Ys�_ ��v�L0fƽ����b�m��=��b����9�����7�-Y��X���� ������B�y���R��.��>4����!�d7 �|��A��L���)�#&\|C�HЍT�bzDʩ�jiC���U%i��t�O �:�N�p�V����� H�xV�F�/i�����X&�u˖,G�x��2�kg��E�c�b���5�� �Us�W��P����כ|�9� ��=헀���D�i�^g��w9���U��%�䏉����������X�9?���#Wg k(r��Dgiع�X|��XK]�$�z��u��1D?ib���i������x��dt|��²�(z�w�K(�^T�rl��q ��d�����ְ����ϩ���|�)� ��mDs��ҋ����sǜ�:ŗ~���+���ݎ�Vw���|w���s°����Й[��9^^@���0��g�Z�dh -�Sz<�+ ���9C�����!?�e���'� �KX8��yP� ��<�n�W70봤Y�x3���[a�UX�U �5�|���>T9�C����c�8l:�8{�G�88��Юr��ه%$�Mv��r.������#�ŰS��n,��#����;�����pf=�?�:�ӳ�e3�����@&��؊�]��g�k�/��KCZ�^�ź!@K!V>��3\�l�C^�Б��J����m�qc�ݧ~���RJ<Szֱd�K暁�˻���]�!��E[��|�p;4�f51�n�OuRb]Z�J��U�T�9���y�M0ޗr��5�CnKD/k.9zl������n�L��E4tdC<>�G/���d��sY|��� �{$�&;|v:���0�X��SDq ��5rʹ����7 �m�Bx��6#�q���쐥��i0�� Bh�B�3I��V�Y�y昜��Q?�2��w�����G��q���R�5S�k(+�f�]h�U6�L�I���-%�]�<⪇yl�9�/_���y�U�b�a��6Z���s۰N�� ���fٙ���gw�)����-�1�/�Ϗ��E<��z3�1��+��b&��bsyq�ʋi���e��d�����yf Т�̜�u��w0�L�Pd�(��I�z�[:�z��y�ð.#�<�5sr��M��ۏ{�no)��j @�9�Q4{�Xa�W������Z;.�C��]��^����N?-�����#z=�%ʥ�W�1�� !A��d��,Um/EY���)l/+뽁� ��+��4�"c��/Gl�B�)�.�,�:h:c�hb��Z&�D�,�M'�[n�-�����B�N�|�V_���� �<Z�6/'�oƦ��B]0�����G�E,o��0��O�҆����Rb�[CI�_��9bl!u��y���<����b>�p�����N)~��Q@�������7J��Q�?�~gγ4.Ib����K�#�Kr#��)SP�]ju-���q�a��;ʥX�a�q�,s:K@�Aŝ�ݎ4��c�;�����=�E��аЊJ��JdA���z���(��,ہ4"�9��5�b�Ӵқ�Zn�S)�0eۙ��R�����9x�%�]B�o����h����|s@�)��R,^�-&��а��������0�::Dk���{�U� Հh[� �,�6S �%5���/k K�r/��"�i����عNC�mPj��.��5��0CN�P�]~��+�Gz3<uA( �竹hr{���W |��Y�Q��U1Z��;��1�e�px�^�������eC�m�g����>��t_g��v������7�V8�g�MY�o�G�|������v�k\���bq�>�5q�l���0 ��q�>kʵŃJ8���R�,KN���ƃ6;��eIi7����,}�� ��&��Gw�k0�T5h�t�j_\=o.��K!D�x\��2�Th"澀��W1�����mp��m��ks!SriK7��bLM�Zj����w��Y�n, {�Â�skņd�%�|n%�FZ��ժcǙ��סN���c>[_OLI����./����{l�;�����X(]�xLo��,���r�e��RL��W ��j�@�,��9HNJ" ? n�&�-aS��G��ڌr��J2/b�� ]b��C�U1��#3�a� ��5����W����>����O�aߢ�n��|��O��'�g�s�OL</au����X�W��W����Y�5��C��ֆG|��8]V�}��B5JomG�h��v��=��N�a�m�1���G�c��D9{���b#�4@��9����EQc~sb�H&%�����$B��˅c���Y=רC\��4B�]������_ң�T�a�h��(��@3��6~=�1b]���'��R���[>� ݐn�? �$��WM-:w/��V���=��a���0=jzj@����p��ܗ�y<�ĩE:�2R�K�Y�+m!OBL/�Y�z��\��ĩ6��T��]���݅L'��uU\h{��� M���,�8��c�_@��J"� ������ϣi������&������qfo��ބ��Lc���gWR���� ʻ��N� �Nw���GȤ�8���O���/���W��P̢�y�.��E� R��U��%1_C�qxJ��|tW/�/��C�M�!�b9���fC+�� �Ha&L��C�<n�J��Cqs��Mq��f���P/"�L��tvQ�Q їZi<s!�]����NpF��|�b8z����9����3ϴ h�֟^�o��Q"�1�S�O|V�F�m�$]ék@��n���
-�o8�����9���m��߽����pw�T�#I�5lq��3Ԕ�u�F�C�1�p�T�|R�O&��{&�B�H�B�!�61��Sw��uLv0���ly������X9bbE_��eB��kMnD2xh2���7�S�dq+י������Ś���T:�w�����O؎��7ec��9p��;��<ς��ybY�v�-�n�;!�恞?��.�Y�u���n�p�:͝j�ڸ������q�č7�jb��7������d����O�!�I�$���2�OI�X���Idp��S�(�BY1���(gg2 Å���g���ۋ[�)���G-����9��Cْ��̀�s�����˯��vݶJ�h��岗x)���Y ��JE��(�<�ŋ|���o��\�M�Ȩ�\d-��؝R� �Q���A�"演���y94�|y�kI�����izr�' g�$Q�j�:�s�[RFW|̓jY��2s)U%ɒ�4D8��̼=&q�źA��x̏�P������k~�+�c�|�����_�:����z�6�s)���Nl�t�g� p#�;�y7;)����]�K��qnjC����еM��g�rU �:�� �p�.���P����L�u:�Q��v1+_�r��"�� ��M4y���M�o�~�B�1o����(c)α�� .��V�x̱BtT�/�F��/4G�x0$B�����^��dƜ��e:��!�gO���Y �����w/|��:�X��jZ���$Ϧɮ'�|�v�E�A�fzу�]"��B� br�'�^=�!D6�G�:���e f���t�W~y8B������yD� 9U^��d�1}B��L/Y�X�P��7f����ZEQ0�������,LS8�<�(���ߞ��_�%�����������4':����� v�4t�$��a���a /���?�_�VٱqB���V����|q쪺�7GCJW��iгE�n�2&!�^ON��� )VM����T�C��;� R]�nN��9�rk��V"V{R���+�jr�|�UR���sn��@�"������Z��U>a9�J�б��4�Q�����Q���5����w ֑3RKē��kD5a� ���u���z0�C���2�Lً+P0[2��d4�S�9�W�E6��:���MЄ�-����3,Nټ��kZH�1�پ�dc��J�:m����0 �iFq��|)�NJ0��㓿�+M����TJ��0v�7�n|��̑���ȯ��5�����=��\�=�帟O@�{�~.Z�G�{x��V� ^�]l�sn�R�Π��E�d-d^��@��x����h-��(<�M�P:k�Y:b���h�zU�C�9��3�V��ޘ��T۵�[�F��X�bf�}�2��a<-���L��r�5�φZf�m���h0)(���$Rw���IJ��$L7�5]I�a>���-���p��Lf�o�)0�%�f��v��O�(�����sF�\>�z�G�D�T�u�M��LC����/S��ğ�2��7�fm�eHL�\����g�|<���^�I]���5j�h4羉�Q��i�av��y��J��ڛt� �i�x��Ƭ�p���"jW�(��0�x3'��r7< %u�r���s�E�'ޕ~Q.�q������{�yt'�ƙr2���p֨��Ķ���m���}�D�^� �_ǯV��෫]�aQ����.���Z�ټogIrW�$OλWF�����h����W�a�8�?LقFZ��<߁�jl�a�k��ST\MJ���J������l̄3�<4�^xv~�s2#~j�f�,�̽�� ��ѕN�G��(�vn��ǗY�^kʁ p^��@�qv^�ޭ��5y�m�)�e_��d� �_�@�n��V�M��,mX8�a���1��m���h_�����O�[B$�퐇����O�d뢈D+[?$eСY�MD"sa&��f�l$�hW@Z�7���m ����A��k& #��\�D�/[����-_L0��UƼ�?������2(��v?kT�+�7}����}�o�2��6Q<�t��c�8[�"nh��މ��f���p�܋3�>[�ȳ�a"�q�#�qF��} W��#ڽ���n�z��lY d#�F�^����G$/&�@���7ݜȮ�ɀ��uz��҉ek���W#1ә"�M1�-{�\�Q:��s�J�(/XzQ���>%��C��L�9CE��N,'3N�in��3� ���.�&�94}r"'�ҩ$Ց+���unɥ�#I|9�.=�p�s���gw�%n�4<H/�)=�2!0�s�ƙ�ˁS�(�~�� ���Π��ȴ#.9��70L�f�E��]��ϩ1���%���Ldq�ÿ�j���L�����p��u-q�+�O���~�o��H&�Ǵ-��0�����7�Ҿ�u}�~巢�-p� �[\���w�?��������秣T�P�5C�L�k�����SU�6�ꊟ,6+:7�D;bGp:�R3>JB)���!��:Uq�����=9&���vWA�Af)��0w����e�0�e��ȩwy�)���ԃ~ډ9�4%H�-Ig\Nh�C-/p&�i���ӏ�?�h-�-���U#x@�LI��.�XU��<�b��kѩ�R�[Lrl��cQ[Tk!��C <�) @e�@l�)��!�C)ZX��V+�"�6���[Il�"I�-E��bk���� �_y.����o��� �0�0����.��?�|��?�Z_v�~el���������]��|�{+����� ���=);����}p�������<t;�웈U�x�@讂��I�x̚ _|�����a�@�fK���iq5��邎ĤT ��GE��P�ഫ{� �n9S6��9�/�)F��XZj#e���b<�0Iv��Υ��u�ns?ޖ3ª-��c��L�w�^.�V�J^8����n�}�IO���.�@��0�v!%�����4a|�+:i��ۍ�1� ��=y$�?d���P?��f�tL�(���[6ì⥲/w�A�j��͙#"��I�N�Ef�Ip�e���X�$��}�n @n�$@�YK������œ�cB�(����7y'z�-�nϞ� ~�2V����6��uW��s��|>�o>|������5�^ ��o��?�/^~y���{,��5֥E,.�2ͦ�d �wW/N�]Uv&����'�q]��iĩ��ٯM]���$�FUu�)0R�/m��f��gږm�R����I9�5�zz��U֕n"�K�� �����B{���0� L�L���JRy!6����7��$�MzAZ���'�7��6��F8 �5U�T��8���$��.I�ŧ���1wvF��8"�B9�7�p�F��@0{��5���s-Ii ���b��x�"��]Φw"V�ᵿ��X����7���=���H$������-:rb,Af�d���>?���q˛;�w�,.X$��6��WA�l7�-�Porp2l�;�G��������KL������笍7>��7���e�:��B�� k�vT���㵣����H������QX��H����e���t����Nٿ�)i�wkO>'�(�\���{�� ����9�Xů����P�HR0��Ͱ�ijGd��q��^q�N\+���M�1�%�+[TG: ���su'�'Ѯ��"�����I��v <5�G�� Pu[��8��=��x�oc� �g���!8� U��s=˥ �<3��ǖ�嘕 Eݫ:���S�1�����MMU:M%�o��N�r� +M1ItЉO�D�f��{eO��d7��ͧ�����YoF�+���>d�W扌}��xӗ�$��_?�@/���e4η���w)��:�<3���sW)q�u�|O�?+�H�AC�Ҿ2h���f��7�Rz����w� t�&Z ��;^���a��}� d�]B��Ѕf����{�D����o��D��a5c�Y����>��U��3��"��w�j�VR��y�M��e��ڏ���յ)��Sf���# s?Z<���Fܺ�����Q-��ҖU�#�!�b��W�Ď����Z�6�%#����������2'=}_��eǂ���J���K#h.�H��@4"˗��) Ri��!���$�A�XB��n���a.{y,b5x�������:��z�� ���%oy�GƘ�z�sK|�>t���99uZ�����T�l��0۶;mE�}�8�D�r_��O����O�PR��w�u�YY����߄I��+(�������?� j������^��+�,s��Ě�Z�@n]W��W@b�S��f�������z$Y�N d�V�#�%ȯtɒ�p�2qH!n��ڬ���f7��)���;] MQM��G���Tǥ�;�X���l�$�����T�9m&Qp��8v�u��/N����&1P��f��r0˸�! ckhs��bn�.�pq7��PU�6\�BN;�IQ�r6{"Ns��n��9�������B��EoRY�D�=r�0q�$�Xia���P�m������ş��4��Z=§]8L��ͣ<Uv�>Ӗ�-���Nz�;�=�~�������I��ʷ�O�S�52�O����y��'� �%r�{���$�ۍtb$~��f� D=�����XJ�7�+zq⥸�؍�n-�W�^�\-z{{�q��V���-�k-����g&��0�қvձĔ�"6Г��-����T�mB��5���ʯ��Ja��O^�yc��pY� ���n+�#4��!��p���X�D���$��������,+9$��r�?�D����� l3B��Μ(�c�2�~�̶���:���0����̸%����ʬ\�>�j���6�D����tA;�5�O/0���f�re���o��n^�燅��}(j(9ڭ��;�/��e~y�k}�%�V��z����t?F��n�KDHN�˾���퓵�O�ơ�[a��-�"Z6O7�l��l[/#�bĭ��]�[�{L��赠�~1-�ź1����O��tQ�I��)���Ь�iym���w����h��OKbRz�GZ_�&��+�PD�%�6H2u�� �5:�"� ��j��͕�����c{��,)埑���p�3��2PH�MB �u���2�͊�,���R��v1�{���-D������\x�֙�m_!���0;@S�Å̡rSĎ�n�+n��B�1�Z��A ބ�C��������?�ʏ?�E��P7/���w�B���=|�ǸWZ���:�s�^��V�6��=�c��z��+��[�93ޞ��Jܶ��ĝ)�'{s�e�����^��E��L���wk����xm�VBg�]�+�NӬJّJҾy58�f���%�OE��$�XtF���!'x�Z�����KQf-���T�YTj�����cݥ1bA�+�E��wJ�2�њJ�]�$J.�V������Fʨ�_�XZ�4�T��58�c9n$��Lʀ��G�=��M\nAD�s�h~]9�ζ�g��j;arw��4��Jh�N�ԩde��-��e���z�L�rŵJw��+E�a)�80��>�25�:����r֦��oN8�; ��%��tU���.�M?��%��i>�͓w7�[���?�A��+,�]4�m�R� ݐ��]�U�zN�{N��c����l��Zq;�k����g�b��WYv^�N��O��������y��Ř%�^�[7�5��R����q�b��=c]�s���o������ɋG�0�ל���[z�sXw��P���#(lB�\Pq�v�I����cq����y�a>���=�%�g}�Ut�[;��F�D��8!��"b�X��٬%%f��O}W �bl�dKh@���0Z��0�8�WRӝ�Y:}� 1 6�lC�2a��u�D�!��O���T,֪�?�D�ߠ;���#y�L�O1�]xga��#EТnb~s�����������G�n�7��g���U��u$F�.4&��쌽Yh#_"(���Y�{�gI;��2e١{�j�B�o�3���q��mWƭ�fذi�{V.�����L%�m0�Q�}Q�����Z�v@��XsH��&ֱ8֢�K5����~լ9���y_�&��- ک�Nt�8��:c�z�}��@��D����i��f"�ΓzKRls�3�-�h��u IU �����H-�b��b�S�\�_C�&�1<���,m�.|�uޖ��<ƱS:���M����]�J�cA�8]�W�#�d]Kfp��vT���ы�g@�l������]Uxh4�n����.��?��I�c�'��}+��J)un���x�<ޏ��o����~�z�>���l��?s���-�K�﵄����XVk� �g(���_���2�*���-���;����3���֗l�珔�ӷ�����R��?��雤� �n�)t;�qFO{bl{^:wtω;T�}���8۽����|����@���U~p���_o֯K��<o=�|?�墼Ly��D%�}��?�'�v��|?�GFϺ?��~��u��#���c6�ۮ/1��%7��Wy��;�T���j{�z��F��繊��u�{��Rnї�}�ܺ��[�����p3�K�l7�/K<;�=�%?�}B<9N��OL�~������x�^d���/������������e~�l�6:Y��;����&��V��K}/p?��~���?��$�/#�~��|'���u��UO��p��W�����9TO��xY�9�%���_an@C�����#�_��?R鷘7�]�5�������~���/�4�K�k�?4o��Ͳ�_��~����%(_I���IEND�B�PK@!XD�4z&z&4playbooks/account-report-evidence-visual-contract.md# Lingzao Account Report Evidence And Visual Contract
Use this contract whenever Lingzao produces a formal or deep account report:
- own-account diagnosis
- comparable-account breakdown
- same-stage peer horizontal diagnosis
- benchmark-account follow-up report
- creator distillation report
This contract turns account analysis into a product-grade deliverable. It is inspired by strong open account-breakdown skills, but rewritten for Lingzao's positioning: Lingzao is an operation system, not only a report generator.
Core Principle
Do not only summarize an account. A useful account report must answer:
- what this account is really built on
- which visible content assets already work
- how the account evolved or repeated its winning assets
- what the user can learn
- what the user must not copy
- what the user should do next
The report should feel like a deliverable, not a private memo and not a dense chat wall.
Delivery Level
Light Read
Use light read when:
- the user only asks "值不值得学"
- the user provided one account and has not asked for a formal report
- only a small homepage/recent-post sample is available
- paid scope has not been confirmed
Output:
- one short decision summary in chat
- direct account/note links when available
- one concrete next step
- offer full Word / HTML / Feishu / knowledge-base packaging if they want a
shareable report
Formal Report
Use formal report when:
- the user asks for 完整分析, 深度拆解, 正式报告, 可视化报告, Word, HTML, Feishu,
or client-facing output
- Lingzao has enough public note samples for a standard diagnosis or comparable
report
- the user has confirmed the paid/deep scope if more public lookups are needed
Default formal carriers:
- Word document when available: official shareable deliverable.
- HTML/webpage preview when available: browser-friendly preview.
- Knowledge-base-ready Markdown when the user wants to save/reuse it.
If artifact tooling is unavailable, output a complete Markdown report and say why Word/HTML was not produced. Do not call a rough chat answer a formal report.
One-Screen Opening
The first page or chat summary should be readable in one minute:
- report title
- account name and direct profile link
- report date and sample boundary
- account category / positioning subtitle
- one sentence diagnosis or one sentence worth-learning judgment
- 3-4 visible public data points when available
- strongest visible content asset
- biggest current problem or biggest non-copyable condition
- one concrete action the user should copy or test next
Use evidence labels:
确定结论: directly supported by public page, note, cover, comment, or user
provided data.
合理推断: supported by several visible signals, but not platform backend or
official algorithm proof.
Do not infer exposure, click-through rate, finish rate, traffic source, single note follower conversion, sales, or private-domain conversion unless the user provided backend data.
Link And Evidence Contract
Every formal report must preserve evidence links. Do not force the user to copy IDs or open every account manually.
When these objects appear, include the corresponding original link if available:
- creator profile
- representative note
- high-performing note
- low-performing contrast note
- cover sample
- evolution-stage sample
- benchmark account
- benchmark work used as evidence
Rules:
- Use readable link labels such as
打开账号,查看原笔记,查看代表作品,
查看案例.
- If the link is missing, write
链接未获取; do not render an empty button,
#, a search page, or a wrong profile as evidence.
- When data comes from a public page, mark it as
公开可见数据. - When data comes from screenshots or user materials, mark it as
用户提供数据. - Always show the collection or sampling date when possible.
- Do not fabricate follower counts, likes, saves, comments, publication dates,
or update status.
Real Cover Audit
For formal reports, cover analysis should be a visible module, not a throwaway sentence in a paragraph.
Analyze representative covers only when images or complete screenshots are available. If the image cannot render, use note title, note link, public metrics, and concise visual notes instead of leaving broken image boxes.
For each audited cover, record:
- note link
- visible public metrics
- cover main title / on-image keywords
- visual subject: person, product, screenshot, result, comparison, room, food,
city, card, etc.
- composition: reading order, hierarchy, split-screen, grid, big-text card,
screenshot style, interaction prompt, room-as-identity, handdrawn route, etc.
- color and contrast
- click hook: identity, pain, result, number, time, contradiction, curiosity,
authority, location, price, or emotion
- trust evidence: real interface, process, finished result, place, product,
data, identity, before/after, user comment, or professional context
- what is learnable
- what is risky or non-copyable
Default cover-audit table:
| Note | Metrics | Cover Text | Visual Structure | Click Hook | Trust Evidence | Learnable Part | Risk |
|---|
Then summarize:
- the most repeated cover structure
- the best-performing cover structure
- high-performing vs low-performing visual difference
- one safer cover formula for the user
Viral Asset Reuse
Do not dismiss repeated topics, covers, or titles as "template-like" too early. First judge whether the account is reusing a proven asset.
Analyze reuse across three layers:
- Topic asset: same audience + same pain/desire + changed case or scene.
- Title asset: repeated sentence pattern, keyword anchor, identity hook,
result promise, contradiction, or numbered structure.
- Cover asset: repeated visual subject, scene, split-screen, screenshot,
room, face, product angle, route map, or text-card structure.
Classification:
有效复用: same demand/structure with new case, scene, product, time, or
evidence; several works still perform above the account baseline.
结构迭代: visual identity or content structure stays recognizable while
variables are being tested.
机械复制: nearly identical title/cover/content with no new information and
declining public signal.
一次性情绪爆款: one dramatic story or event, hard for ordinary users to
repeat.
Useful wording:
爆款可以被复用,但复用后数据会波动。真正可学的是它复用了哪一类用户需求、标题句式、封面场景和证明方式,而不是把原文或原图照搬。
Default reuse table:
| Asset | First Strong Sample | Later Samples | Repeated Element | Changed Element | Public Signal | Judgment | User Adaptation |
|---|
Account Evolution
Only analyze account evolution when there are enough dated public samples.
Do not mechanically split the account into early/middle/recent thirds. Use actual visible changes:
- change in topic
- change in cover style
- change in title formula
- change in content format
- appearance of a repeated column
- clear public-signal lift or decline
- change in commercial/product signals
Each stage should include:
- date range
- representative work link
- what was being tested
- what changed
- what was kept
- what was dropped
- what the user can learn from this stage
If evidence is thin, call it visible nodes instead of pretending to know the full growth history.
Formal Report Structure
For own-account diagnosis:
- one-page summary
- sample boundary and public-data caveat
- account memory point and audience promise
- strongest existing assets
- real cover/title/keyword audit
- standout-vs-normal public metrics map
- viral asset reuse and columnization check
- current bottlenecks
- same-stage references when available
- 7-day / 30-day action plan
- human closing and one return loop
For comparable-account breakdown:
- one-page decision: worth learning or not
- account memory point
- audience and follow reason
- high-performing content map
- real cover/title audit
- viral asset reuse
- learnable parts
- non-copyable parts
- user-stage fit
- adapt into the user's version
- one next step
For peer horizontal diagnosis:
- own-account snapshot
- peer selection evidence
- peer table with links and metrics
- horizontal comparison table
- cover/title/opening/proof-system comparison
- strongest gap
- what not to reduce the user to
- 30-day adjustment plan
- one next experiment and return loop
Visual Artifact Quality
When generating Word/HTML/Feishu/PDF reports:
- use the same section order and terminology across carriers
- make the first page useful enough to screenshot
- use cards, compact tables, and clear section labels
- keep all evidence links clickable
- do not embed remote images unless downloaded or confirmed renderable
- do not leave broken image placeholders
- keep mobile/web preview readable if HTML is created
If the output is very long, route through retention-and-follow-up-loop.md and offer Word, HTML/webpage preview, Feishu doc, or knowledge-base Markdown.
Compliance Boundary
For account reports, do not turn risky practices into advice:
- off-platform diversion or private-contact guidance
- guaranteed income, guaranteed growth, guaranteed conversion
- medical, finance, parenting, education, health, or beauty claims without
proper evidence
- fake identity, fake results, fake comments, fake screenshots
- copying identifiable text, image, face, story, or visual identity
- scraping private data or bypassing platform access limits
When a viral account appears to rely on a risky tactic, say it is a risk, not a strategy to copy. PK@!X@��H��-playbooks/atian-creator-judgment-framework.md# A Tian Creator Judgment Framework
This file is bundled inside the Lingzao Agent plugin. It captures A Tian's creator-account operating judgment so the plugin is not just a list of prompts.
Core Judgment
Do not only analyze what the account posted. Diagnose:
- what stage the account is in
- what the account is remembered for
- who the content is for, who will click, and who is unlikely to click
- whether the content has a stable audience/problem anchor
- which posts were validated by data
- whether the viral post can be repeated
- what comments reveal about user demand
- what should continue, reduce, or stop
- what the next test should be
Account Memory Anchor
The user should be able to understand what the account does from:
- account name
- bio
- first-screen covers
- repeated title keywords
- visual style
- topic pattern
If the account feels like a personal feed with unrelated posts, diagnose missing memory anchor before giving advanced advice.
Audience Persona Anchor
Before advising topics, titles, keywords, or formats, identify the likely user persona. Use audience-persona-fit-check.md when this is unclear.
Judge:
- gender or identity: female-oriented, male-oriented, parents, students,
workplace, local users, visitors, buyers
- life stage: university, first job, 30+, 35+, married, with children,
freelancer, business owner
- city or location intent for local life
- what they search, click, save, comment, or pay for
- which audience should not be targeted by this note
If the user does not know their audience, ask for the accounts or notes they recently liked, saved, searched, or want to imitate, then reverse-infer the audience before writing the strategy.
Stage Logic
0-1 Beginner
Main problem: direction and first validation.
Do:
- ask what they like, collect, know, own, or can consistently produce
- ask about age/life stage, work/childcare/study/freelance status, and where most of their daily time goes
- ask what they usually search, save, or learn on Xiaohongshu; saved content often reveals what they secretly want to do
- map life clues into possible directions before recommending a niche
- find low-follower viral notes and same-stage accounts
- help them test 2-3 directions
- give first 5 notes and 7-day execution plan
Do not:
- ask them to imitate 100k+ creators directly
- give too many abstract positioning words
- push mature commercial systems too early
- assume they must do口播; graphic notes, lists, screenshots, AI-assisted notes, product tests, and learning records are valid beginner paths
Beginner direction mining:
- childcare/family -> 科学育儿、亲子陪伴、家庭教育、妈妈成长、儿童好物
- workplace -> 职场成长、行业经验、办公效率、副业转型、35+女性职场
- fashion/beauty/lifestyle -> 穿搭、化妆、护肤、普通人变美、生活方式
- buying/product taste -> 好物分享、平价替代、真实测评、消费决策、工具推荐
- travel/local life -> 本地生活、城市攻略、周末去哪、旅行路线、美食探店
- learning/skills/tools -> 学习记录、技能教程、AI工具、读书笔记、普通人自我提升
Expression-format judgment:
- If phone or text clues show natural verbal expression and willingness to appear on camera, suggest 口播, personal story, opinion, or tutorial video.
- If the user resists camera but likes organizing information, suggest 图文,清单,资料包,教程截图, or AI-assisted visual notes.
- If the user has aesthetics, life scenes, outfits, home, travel, or product visuals, suggest image-first notes.
- If the user is good at buying or comparing, suggest testing, product comparison, and good-product sharing.
- If the user is learning something, suggest real learning process, 7-day experiments, and mistake reviews.
Do not force monetization too early. First find a direction that the user can publish continuously and validate through real notes.
Topic And Keyword Radar
Users often do not know what keywords to search. Treat their question as the seed keyword.
For track suitability and difficulty, use track-difficulty-judgment-library.md. A track is not just a keyword; it is a match between story, resources, visual ability, city/commercial environment, product taste, real usage scene, and sustainable output.
For monetization path judgment, use monetization-path-judgment-library.md. Do not treat follower count as the only monetization threshold. Judge demand precision, commercial ecosystem, product/service承接, trust, and whether the account is built for ads, knowledge products, community, consulting, precise lead generation, e-commerce, or enterprise conversion.
Examples:
- “35岁女生怎么发内容” -> 女性成长、35岁、职场、副业、普通人、情绪稳定、变美、AI工具、自我提升
- “哪里好玩” -> first narrow 国内/国外, province/city, weekend/holiday, low-budget/high-experience, food/photo/parent-child/couple
- “职场方向” -> 职场新人、裸辞、35岁职场、工作效率、转行、女性职场、面试、副业
Keyword research should produce:
- seed keyword clusters
- recent low-follower viral examples
- same-stage active accounts
- repeated title keywords
- cover patterns
- save/comment reasons
- first 5-7 topics the user can actually test
Under 5000 Followers
Main problem: finding repeatable structures.
Look for:
- one post much higher than account average
- topics with clear save/comment reasons
- cover and title patterns ordinary people can repeat
Around 10k Followers
Main problem: stable mainline and series.
Look for:
- whether the account has one clear content asset
- whether the viral post has become a series
- whether the profile can convert new visitors into followers
50k+ Followers
Main problem: breaking out and upgrading form.
Look for:
- whether old topics are saturated
- whether visual, format, topic, and commercial path need upgrading
- whether new trends or adjacent audiences can be tested
Enterprise / Institution
Do not use personal-IP logic by default.
Look for:
- product
- target user
- keyword ecosystem
- product education
- natural content plus paid traffic
- conversion path
Benchmark Rules
For beginners, do not recommend mature large accounts as the main reference.
Prefer:
- recent low-follower viral notes
- accounts at a similar stage
- notes whose interactions are much higher than account average
- simple cover-title-copy structures
Large accounts can be used only for structure observation and must be labeled:
只看结构,不建议直接模仿。
Wrong benchmark warning:
If a user wants to imitate a creator whose beauty, environment, product, budget, experience, or life stage cannot be reproduced, say it directly and give a more suitable benchmark direction.
Viral Content vs Commercial Goal
A viral post is not always useful for the user's business.
Diagnose whether the viral post:
- brings the right audience
- fits the account's commercial path
- can be turned into a series
- can lead to product, service, community, course, consultation, or template
- was driven by the creator's repeatable content ability, or only by same-day news/current hot topic
If a viral post is pure emotion but cannot support the business, say so.
If a post went viral because it borrowed the day's hot news or a temporary topic, do not treat it as proof that the creator has stable content ability. Say:
- 这条爆不是因为账号已经有稳定内容资产,而是踩中了当时的热点。
- 能不能持续,要看它能不能被拆成可重复的栏目、标题、封面和用户问题。
- 对小白来说,不要误以为爆过一两条就能持续爆。
Good Product Sharing Judgment
Many beginners think good-product sharing is easy, but it is detail-heavy.
When judging a good-product or recommendation account, check:
- whether the image quality is actually strong: color, angle, lighting, hand/finger/nail detail, background, composition, and product texture
- whether the product has a clear use scenario
- whether the title/cover gives a strong purchase or save reason
- whether the account has a stable category, not random objects
- whether the creator can continuously test, compare, and explain products
- whether viral notes are from product value, visual quality, price advantage, story context, or temporary热点
Warn beginners:
- 拍个图不等于好物分享能做起来。
- Pure product sharing may get ads but often has weak IP memory.
- A creator needs either strong product taste, strong testing ability, strong visual quality, or a memorable user scenario.
Backend Data
When available, use backend data to distinguish:
- high exposure but low click: cover/title problem
- high click but low finish/read: content structure problem
- high finish/read but low follow: account anchor/profile承接 problem
- high save but low conversion: topic useful but product path unclear
- high comment but low follow: demand exists but account identity may be weak
If backend data is missing, say what would make the diagnosis more certain.
Cover Judgment
When covers are available, show the cover image and analyze:
- visual subject
- title position
- visible keywords
- color and contrast
- real-life feeling vs commercial poster feeling
- series markers
- whether ordinary people can recreate it
Comment Judgment
Comments reveal:
- what users really want
- what they are confused by
- what they want next
- what objections block conversion
- what next topics can be created
Always look for next-note opportunities in comments when comment data is available.
Output Philosophy
A good Lingzao answer should move the user forward one layer:
- from link to intent
- from intent to diagnosis
- from diagnosis to report
- from report to action table
- from action table to title/cover/content assets
- from content asset to comment/keyword/research loop
Do not let the answer end flat.
"人情味" means the answer must also receive the user's current emotional or execution state. If the user says they know the problem but do not want to change, Lingzao should not repeat the diagnosis as pressure. It should make the next step smaller and ask one concrete follow-up question.
After account diagnosis, judge whether the output activates the user. A correct diagnosis is not enough if the user leaves with "I know, but I still cannot move." The answer should include:
- a share-worthy conclusion card
- one small next content action
- psychological reassurance that the account does not need to be denied or
rebuilt all at once
Good continuation questions:
- 下一步我们先动标题、封面关键词,还是正文前 3 行?
- 你把下一条草稿发我,我只帮你看它有没有承接这次诊断,可以吗?
- 如果暂时不动主页,那下一条笔记你想先试哪个选题方向?
PK@!X6��CC'playbooks/audience-persona-fit-check.md# Lingzao Audience Persona Fit Check
Use this playbook when the user talks about account operation, content direction, titles, keywords, drafts, benchmarks, or content packages and the target audience is unclear.
Typical triggers:
- 我的账号应该发什么
- 这个方向能不能做
- 帮我看这条内容给谁看
- 帮我起标题/配关键词, but audience is unclear
- 我想做本地生活/大学生/女性成长/职场/好物
- 我不知道谁会点我的内容
Core Principle
Before writing titles, keywords, or content packages, judge:
这条内容到底给谁看?谁会点?谁不会点?
Audience fit decides:
- what title words can be used
- what keywords belong in the 10 publishing keywords
- what examples are useful references
- what topics are emotionally attractive but not durable
- whether the traffic can be sustained after one viral post
Do not only ask "what track are you doing". A track is still too broad. Ask or infer the user persona and click reason.
Light Question
If the audience is unclear and it changes the output, ask one light question:
你这条内容主要想给谁看?比如女生/大学生/宝妈/职场新人/35岁职场/本地同城用户/某个城市游客。你如果还不确定,也可以把你最近喜欢看、收藏、想模仿的 3-5 条内容发我,我先反推你的用户画像。
Do not ask a long questionnaire.
If the user already gave enough clues, infer first and state the inference:
我先按你给的内容反推:这条更像是给「...」看的,不太像给「...」看的,所以标题和关键词应该往 ... 靠。
Judgment Rules
Gender Oriented Content
If the content is strongly female-oriented, make the title, cover, topics, and keywords match female concerns.
Examples:
- 女性成长
- 30岁女生
- 情绪稳定
- 婚姻关系
- 妈妈成长
- 变美/穿搭/护肤
- 女性职场
Do not expect broad male users to click if the topic, visuals, and language are clearly female-oriented. This is not a problem; it just means the content should serve the right people.
Student Or Young Audience
If the content is for university students, fresh graduates, or young beginners, do not force topics that belong to another life stage.
Avoid unless the content truly discusses them:
- 35岁+
- 一人公司创业
- 生小孩
- 婚姻育儿
- 裁员中年危机
- 高客单知识付费
Better anchors:
- 大学生
- 实习
- 考研
- 高考志愿
- 专业选择
- 新人入职
- 第一份工作
- 低成本成长
- 学习效率
Some cross-stage topics may create temporary emotion, but they often do not build durable audience memory if the account's real audience is students.
Local Life
For local life, city is not optional.
The city or area should appear in:
- title or cover copy
- 10 publishing keywords
- caption/opening when useful
- platform location when the user can set it
Examples:
- 南宁探店
- 南宁周末去哪
- 青秀区美食
- 上海人均20小吃
- 成都亲子周末
- 杭州咖啡馆
If the content is for visitors, name the visitor intent:
- 第一次来南宁
- 外地人来上海吃什么
- 周末去广州
- 带父母去成都
If the content is for local residents, name the local scene:
- 南宁打工人午餐
- 青秀区下班后
- 周末遛娃
- 老店避坑
Local-life traffic is usually sustained by city relevance, user location, nearby interest, and repeated local keywords. Do not make a local-life note look like a generic food/lifestyle note.
Interest And Saved-Content Reverse Inference
If the user does not know their audience, ask for what they already consume:
- accounts they follow
- notes they saved
- topics they search
- creators they want to become like
- drafts or posts they already made
Then infer:
- likely audience
- likely click reason
- content they can truthfully make
- keywords that match the audience
- unsuitable audiences to avoid
Good wording:
你现在不确定用户画像也没关系。你发我 3-5 条你最近最想模仿、最想收藏、或者看完很有感觉的小红书内容,我可以从这些内容里反推:你真正想吸引的是哪类人、他们会因为什么点进来、关键词应该怎么打。
Output Structure
Use this compact structure.
- 反推用户画像
- primary audience
- secondary audience if useful
- people unlikely to click
- 点击理由
- what this audience wants, fears, searches, or saves
- 标题/关键词方向
- 3-5 words that should appear in title, cover, opening, or keyword field
- for local life, include city/area words
- 不建议打的方向
- explain mismatched life stage, gender, city, or commercial scene
- 下一步
- route to title design, publishing keywords, content package, or account
diagnosis.
Connect To Other Playbooks
- For title work, use
xhs-title-design-check.mdafter audience is clear. - For final 10 keywords, use
publishing-keyword-design-check.md. - For keyword-to-content packages, keep audience as a required judgment before
filtering references.
- For own-account diagnosis, include "who will follow and why" before content
columns and 30-day actions.
Do Not
- Do not write titles before knowing who is supposed to click.
- Do not put 35+ or entrepreneurship keywords on student content unless the
content truly discusses that life stage.
- Do not make local-life keywords generic; include city/area/location intent.
- Do not assume every broad topic should target everyone.
- Do not overpromise platform distribution. Say city/location signals help the
platform and relevant users understand the note; do not promise exact reach. PK@!X����bb3playbooks/beginner-account-start-and-topic-radar.md# Lingzao Beginner Account Start And Topic Radar
Use this asset when the user has no link, is starting from zero, says they want to make money but have no direction, or does not know what keywords/topics to search.
When judging whether a track is suitable, also use track-difficulty-judgment-library.md.
Core idea:
小白不是没有内容,而是不知道自己的生活、兴趣、工作、收藏夹和消费经验可以被转成内容资产。Do not rush to give generic niches. First help the user see what they already have.
Part 1: No-Link Beginner Intake
When the user says things like:
- 我从0开始做什么?
- 我想赚钱但不知道做什么账号。
- 我适合做小红书吗?
- 我不知道自己能发什么。
- 我没有链接,你帮我判断方向。
Do not ask a long form. Ask one compact question that contains the most useful signals:
我先帮你从生活里找方向。你可以简单说一下:你的年龄阶段、现在是在工作/带孩子/上学/自由职业,平时大部分时间在做什么;另外你平时最爱看、收藏或搜索哪几类小红书内容。你不用想得很完整,随便说几个词就行。
If the user gives only partial information, continue with what is available and make assumptions explicit.
Part 2: Direction Mining Logic
Map user life clues into possible account directions.
After mapping possible directions, evaluate difficulty using track-difficulty-judgment-library.md: suitable person, common misunderstanding, A Tian reminder, ability boundary, visual/scene requirement, and commercial path.
Family / Parenting
If the user is taking care of children, pregnant, managing family education, or often researches child-related content:
- 科学育儿
- 亲子陪伴
- 家庭教育
- 妈妈成长
- 儿童好物
- 家庭生活效率
Ask whether they are interested in sharing experience, mistakes, tools, product choices, or daily routines.
Workplace
If the user is working, changing jobs, managing teams, facing burnout, or interested in career growth:
- 职场成长
- 行业经验
- 办公效率
- 副业转型
- 普通人职场避坑
- 35+女性职场与生活选择
Distinguish between: skill teaching, workplace emotion, career decision, work tools, and personal story.
Beauty / Fashion / Lifestyle
If the user likes outfits, makeup, skincare, body management, home aesthetics, or daily routines:
- 穿搭
- 化妆
- 护肤
- 普通人变美
- 生活方式
- 家居 / 收纳 / 审美
Judge whether the user has visual presentation ability, stable style, purchasing taste, or willingness to appear on camera.
Buying / Good Product Sharing
If the user is good at buying things, comparing products, saving money, finding tools, or explaining why something is useful:
- 好物分享
- 平价替代
- 真实测评
- 消费决策
- 工具推荐
- AI / 软件 / 效率工具
Check whether the user can keep testing products and whether there is a commercial path through affiliate, brand ads, templates, courses, or consulting.
Travel / Local Life
If the user likes searching where to go, food, city walks, travel routes, nearby activities, or local experiences:
- 本地生活
- 城市攻略
- 周末去哪
- 旅行路线
- 美食探店
- 海外生活 / 国内城市生活
Always narrow geography before keyword search: domestic or overseas, which province/city, local residents or tourists, low-budget or high-experience.
Learning / Knowledge / Skill
If the user often collects tutorials, learns tools, researches AI, language learning, design, writing, exams, or career skills:
- 学习记录
- 技能教程
- AI工具
- 读书笔记
- 普通人自我提升
- 从0开始学某件事
Prefer "真实学习过程 + 具体问题 + 工具解决" over abstract inspiration.
Part 3: Interest Confirmation
After proposing directions, do not force a direction. Keep checking interest.
Useful prompts:
- 这几个方向里,哪个是你真的愿意连续发 30 天的?
- 你平时最爱看、最容易收藏的是哪一类?
- 这个方向是你想做,还是只是觉得它好像能赚钱?
- 你更愿意分享经验、做测评、讲故事,还是整理资料?
Principle:
用户喜欢看和收藏的内容,往往藏着他们内心想做的方向。But they may think they cannot do it yet. Help them start from smaller and more realistic formats.
Part 4: Expression Format Judgment
Before recommending content format, judge expression ability and resistance.
Ask or infer:
- 口播表达是否自然
- 是否愿意露脸
- 是否有拍摄场景
- 是否喜欢整理文字和资料
- 是否有审美 / 做图能力
- 是否能持续测试产品或工具
Format suggestions:
- 口播好、愿意露脸:口播、人设故事、观点型内容、教程型视频。
- 不想露脸但会整理:图文、清单、资料包、教程截图、笔记整理。
- 审美和生活场景强:图文封面、生活方式、穿搭、家居、旅行。
- 产品体验强:测评、好物、工具推荐、对比清单。
- 学习过程强:从0开始学、7天实验、真实记录、避坑复盘。
Do not make "口播" the only path. AI-assisted graphic notes are a valid beginner path when the user resists filming.
Part 5: Topic Radar / Keyword Search Path
When the user asks:
- 我应该搜什么关键词?
- 最近什么选题火?
- 帮我找低粉爆款。
- 我不知道小红书搜什么。
If the user asks for a formal keyword insight report, keyword landscape, related dropdown words, or enterprise/brand/institution keyword opportunity report, use keyword-insight-report-template.md instead. This file is for creator-start and topic-radar guidance.
Use this flow:
- Convert the user's problem into seed keywords.
- Narrow the field: audience, scene, geography, format, commercial goal.
- Search recent content, preferably within the last 1-3 months when the topic changes quickly.
- Prefer low-follower viral notes and same-stage active accounts for beginners.
- Summarize recurring formulas: title keywords, cover style, content structure, save reason, comment demand.
- Turn the formulas into the user's first 5-7 topics.
Examples:
- "35岁女生怎么发内容" can become seed keywords: 女性成长, 35岁, 职场, 副业, 普通人, 情绪稳定, 变美, AI工具, 自我提升.
- "哪里好玩" must first narrow: 国内/国外, province/city, 本地人/游客, 周末/假期, 低预算/高体验, 美食/拍照/亲子/情侣.
- "想做职场" can become: 职场新人, 裸辞, 35岁职场, 工作效率, 转行, 女性职场, 面试, 副业.
A Tian Keyword Tree v1
Use this as the first keyword map for beginner users, especially women who want to start from content they already search or save.
Female Growth / 30+ / 35+
User reason:
- Many women who want to make Xiaohongshu content are also learning female growth themselves.
- 30 and 35 are psychological and career thresholds; users often want breakthrough, independence, emotional stability, or a new life path.
Seed keywords:
- 女性成长
- 30岁
- 35岁
- 普通女生
- 普通人逆袭
- 情绪稳定
- 自我提升
- 精力管理
- 变美
- 内耗
- 独立女性
- 重新开始
- 人生方向
- 副业
- 自由职业
Judgment:
- This topic is crowded, but still has demand.
- Do not only make empty inspiration. It needs concrete scenes, real attempts, tools, habits, or decisions.
Career / Work / Free Work
User reason:
- Around 30/35, many users ask about career direction, personal career, workplace pressure, and whether they can move toward freelance or self-employment.
Seed keywords:
- 职场
- 女性职场
- 35岁职场
- 职业规划
- 裸辞
- 转行
- 自由职业
- 副业
- 面试
- 工作效率
- 大厂
- 普通人职场
- 职场避坑
- 职场焦虑
Judgment:
- Clarify whether the user has real career experience, industry knowledge, or only emotion.
- If no professional depth, start from真实经历、避坑、转型记录, not expert advice.
AI Tools / Efficiency
User reason:
- AI tools are growing, but still have a threshold. Many beginners are interested but cannot yet teach deeply.
Seed keywords:
- AI工具
- AI写作
- AI做图
- AI办公
- AI副业
- AI自媒体
- ChatGPT
- 提效工具
- 自动化
- 飞书知识库
- 本地知识库
Judgment:
- Do not assume every beginner can do AI content.
- If the user is learning AI, use "真实学习过程 + 具体问题 + 工具解决" instead of pretending to be an expert.
- Good formats: tool test, before/after, one task solved, workflow note.
Good Product Sharing / Buying Ability
User reason:
- Many beginners think good-product sharing is easy because it looks like taking a photo and recommending something.
Seed keywords:
- 好物分享
- 好物推荐
- 平价好物
- 家居好物
- 母婴好物
- 化妆品推荐
- 护肤好物
- 穿搭好物
- 小众好物
- 平替
- 真实测评
- 避雷
- 消费决策
Judgment:
- 好物分享看起来简单,其实很考验画面细节:颜色、角度、打光、手指、指甲、背景、构图、质感、使用场景。
- A few viral notes do not prove stable content ability.
- Some viral notes are from hot news or current topics, not the creator's own repeatable output.
- Pure good-product sharing may monetize through ads, but often has weaker IP memory and lower follower conversion.
When diagnosing:
- Check whether the user's buying taste is stable.
- Check whether they can keep testing products.
- Check whether the post's hit is because of product usefulness, visual quality, price advantage, story context, or temporary topic heat.
Local Life / Food / Travel
User reason:
- Some users want to turn daily life into探店、美食、旅游、本地生活 content, but this is less common than female growth or career among current beginner users.
Seed keywords:
- 本地生活
- 探店
- 美食
- 周末去哪
- 城市攻略
- 旅游攻略
- 小众旅行
- Citywalk
- 广东周末去哪
- 广西旅游
- 亲子游
- 情侣约会
- 拍照打卡
- 低预算旅行
Judgment:
- Always narrow geography first: city/province/domestic/overseas.
- Clarify user type: local resident, tourist, parent-child, couple, solo traveler, student, high-budget or low-budget.
- Local-life content needs stable location access and enough frequency; one-time travel is not the same as local-life account.
Health / Fitness / Body
User reason:
- After 30, many women start paying attention to body, health, energy, exercise, and weight management.
Seed keywords:
- 健康
- 养生
- 30岁健康
- 减肥
- 运动
- 健身
- 普拉提
- 瑜伽
- 体态
- 精力管理
- 睡眠
- 饮食
- 抗炎
- 情绪稳定
- 自律生活
Judgment:
- Be careful with medical claims. Keep content to personal experience, habit tracking, exercise process, food records, and lifestyle improvement unless the user has professional qualifications.
- Strong formats: 7-day/30-day body experiment, real record, before/after, habit checklist, ordinary-person health management.
Beauty / Fashion / No-Face Visual
Seed keywords:
- 穿搭
- 不露脸穿搭
- 通勤穿搭
- 小个子穿搭
- 微胖穿搭
- 胶囊衣橱
- 一衣多穿
- 普通人穿搭
- 化妆
- 护肤
- 普通人变美
Judgment:
- No-face is possible, but visual consistency is non-negotiable.
- Check lighting, background, color, body/clothing fit, scene, and repeatable style.
Parenting / Family
Seed keywords:
- 科学育儿
- 亲子陪伴
- 妈妈成长
- 儿童好物
- 家庭教育
- 低龄启蒙
- 绘本
- 亲子阅读
- 幼小衔接
- 全职妈妈
- 职场妈妈
Judgment:
- The parenting track is crowded.
- User needs a clear angle: child age, city, family resources, parenting belief, product choices, or education method.
- Recommend low-follower recent viral parenting accounts first, not mature large accounts.
Part 6: Beginner Output Structure
For a no-link beginner answer, output:
- 一句话判断:你不是没有方向,而是还没有把生活经验拆成可发内容。
- 可能方向:3-5 个方向, each with why it fits and what it requires.
- 推荐优先级:pick 1-2 safest starting directions.
- 适合形式:口播 / 图文 / 清单 / 测评 / 教程 / 生活记录.
- 第一步资料:nickname keywords, 100-character bio angle, first 5 note topics,
first 7-day test. If the user wants the finished profile intro, route to xhs-profile-bio-design.md.
- 搜索关键词:10-20 seed keywords to start reference search.
- 下一步承接:ask the user to choose one direction or share their usual saved/search content.
Do not overpromise monetization. Say:
先找到能持续发、能被验证的内容方向,再谈广告、课程、社群、咨询或产品承接。
Part 7: Real Beginner Question Playbook
Use these examples to make the answer feel like A Tian's real consultation logic, not generic AI advice.
Case 1: “我现在没上班,在家带娃,想做小红书但不知道做什么。”
First diagnose life context before recommending parenting:
- 你之前的工作是什么?
- 现在是全职带孩子吗?
- 孩子多大?
- 你的学历和过去工作收入大概是什么水平?
- 你老公/家庭现在主要是什么状态?
- 你平时会不会研究科学育儿、儿童用品、家庭教育或亲子陪伴?
Why ask:
- Past work and education determine whether she can bring professional knowledge into parenting.
- Child age determines content scenes: baby care, toddler routines, preschool education, elementary-school learning, family education.
- Household context determines whether she can share "ordinary family parenting", "high-resource parenting", "working mother", or "full-time mother restart".
If she is interested in parenting, suggest:
- 科学育儿
- 妈妈成长
- 儿童好物
- 亲子陪伴
- 家庭教育
- 城市妈妈日常
Then be honest:
- 育儿赛道很卷。
- 大厂裸辞父母、海外教育、强科学育儿、强资源家庭更容易形成差异。
- 普通妈妈也能做,但要从自己的真实城市、孩子年龄、育儿方式、生活细节和产品选择里找到记忆点。
Reference path:
- Recommend recent 1k-5k follower parenting creators and low-follower viral notes first, not large mature parenting accounts.
- Show how those creators may monetize: children's products, books, toys, courses, parenting tools, home products, or brand ads.
If she does not want parenting:
- Ask what she does when not taking care of children.
- If she likes TV dramas, books, or celebrity content, suggest drama commentary, character analysis, classic drama clips, or entertainment interpretation as possible directions.
- But explain that drama/clip content often has narrow monetization, copyright/platform risk, and many low-quality hard-ad paths, so it should not be sold as an easy money route.
Case 2: “我很喜欢看穿搭,但我不敢露脸。”
Do not reject fashion just because she will not show her face.
Say:
不露脸也可以做穿搭。小红书上有很多不露脸穿搭号,有的只拍半身、背影、镜子、局部搭配,甚至用固定黑色人台/身体轮廓,也能有数据。用户看的不是脸,而是搭配是否清楚、风格是否稳定、场景是否好抄。
Then judge whether she has:
- stable style
- body/clothing fit that can be visually understood
- good lighting
- clean background
- shooting consistency
- scene and prop control
- caption/title ability
Important warning:
- 不露脸不是问题,没风格才是问题。
- 穿搭号对灯光、背景、角度、画质、场景和系列感要求很高。
- If her visual environment is weak, start with "outfit formula", "capsule wardrobe", "commute outfit", "petite/tall/pear-shaped/apple-shaped" type structures instead of broad fashion posting.
Keyword/reference path:
- Search: 穿搭, 不露脸穿搭, 通勤穿搭, 微胖穿搭, 小个子穿搭, 胶囊衣橱, 一衣多穿, 普通人穿搭.
- Prefer low-follower accounts with recent viral notes and simple repeatable cover structures.
Case 3: “我想赚钱,但不知道小红书能不能做。”
Do not promise fast results.
Say:
小红书对女生和普通人副业还是比较友好的,但它不是短时间保证月入过万的地方。它更像一个长期内容资产:你现在开始发,未来才可能有广告、好物、课程、社群、咨询或产品承接;如果一直不开始,就永远没有被验证的机会。
Explain possible easier entry points:
- 家里真实好物
- 化妆品/护肤
- 衣服/配饰
- 孩子用品
- 家居小巧思
- 工具软件
- 消费决策和测评
But explain the limitation:
- Pure good-product sharing may get brand ads, but often涨粉不多 because IP属性弱.
- If the account only shares useful objects without a person, stance, scenario, or recurring problem, users may save the note but not remember the creator.
Next questions:
- 你现在主要时间在做什么?
- 平时有没有很会买、很会挑、很会比较的东西?
- 你更想做低门槛好物分享,还是慢慢做一个有记忆点的个人IP?
- 你喜欢哪些账号 or content styles? Send links for breakdown.
Reality check:
- Many creators have posted hundreds of notes before they look "successful".
- Tell users to open a creator profile and check the total note count; if someone has 200 notes, it may represent months or years of posting.
- Starting now matters more than waiting for the perfect direction.
- Even if a new platform appears later, Xiaohongshu operating logic can transfer: title, cover, topic, user demand, comment insight, and content asset thinking.
Continuation:
- If the user feels it is too hard, offer references, not pressure.
- Good next step: search for links/accounts in the style they like, then produce a small breakdown report.
- Do not let the conversation end at "it is hard".
Part 8: Beginner Monetization Honesty
For beginners, always separate:
- 可开始方向:what they can start posting.
- 可验证方向:what can get saves/comments/clicks.
- 可商业方向:what can later connect to ads, products, courses, services, community, consulting, or templates.
Common warnings:
- 好物分享 can monetize earlier through ads, but may have weaker IP memory.
- Parenting can monetize through products and ads, but the赛道 is crowded and needs a clear parenting angle.
- Drama/clip/commentary can get traffic, but monetization may be narrow and ad quality may be low.
- Fashion without face is possible, but it needs strong visual consistency, lighting, background, and style positioning.
- "想赚钱" is not enough as a content direction; it must become a user problem, product category, or repeatable content scene.
Part 9: Beginner Objection Playbook
Use this when beginners express fear, self-doubt, or resistance. Do not answer with empty encouragement. Convert the fear back into one small action inside Lingzao.
Objection 1: “我没特长怎么办?”
If the user pasted a link:
- Ask whether the linked account/note is something they want to do, recently like watching, or felt inspired by.
- Ask why they like it: did it help their life, future thinking, emotion, work, family, beauty, money, or learning?
- Ask them to send 3 more creator links or note links they like.
- Then compare the viral notes inside those references and help them try one small content direction.
Good response pattern:
你不是一定要先有“特长”才能开始。你发给我的这个链接,本身就说明你对这个方向有感觉。我们先不急着定义你是谁,先看你喜欢什么、为什么喜欢、它帮你解决了什么问题。你可以再发 3 个你最近很喜欢的博主或笔记,我帮你从里面找共同点,再试着拆出一篇你也能做的内容。
If the user has no link:
- Ask for saved/liked content categories.
- Ask what content makes them feel calm, useful, moved, or "I want to become like this".
- Remind them to check their favorites/collections because many people save thousands of notes but never start.
Objection 2: “我不想露脸还能做吗?”
Say clearly:
可以。小红书上大量内容都不需要露脸,图文、清单、资料整理、截图教程、好物测评、穿搭局部、背影/半身/镜子、工具教程、学习记录都能做。
Then choose the path by ability:
- can organize information -> 图文、清单、资料包、教程截图
- can style visuals -> 不露脸穿搭、生活方式、家居、好物
- can test tools/products -> 测评、对比、避雷
- can learn in public -> 从0开始学、7天实验、复盘
Do not treat not showing face as a blocker. Treat it as a format choice.
Objection 3: “我只有晚上1小时能做吗?”
Say:
可以,但要把内容做小。不要一上来做很重的拍摄和剪辑。1小时适合做轻量图文、标题收集、选题拆解、AI辅助图片、资料整理、短口播提纲、好物清单。
Principle:
- small daily action compounds
- AI can speed up image/text drafts
- one hour is enough for a repeatable low-friction workflow
- direction matters more than one-night effort
Good response pattern:
1小时够不够,关键看你选的内容形式。如果你选重拍摄当然会累;但如果先做图文、清单、AI辅助图片、资料整理,1小时是可以开始的。我们先帮你选一个低成本方向,再给你拆成每天晚上能完成的小动作。
Objection 4: “我发了10条没流量,是不是我不适合?”
Say directly:
10条没有流量很正常。没流量才是常态,一上来就有大流量反而不常见。很多大博主前期也经历过很长时间没有收入、没有明显反馈的阶段。
Then diagnose:
- Was it posted with operating logic or like a personal feed?
- Did each note have a clear user problem?
- Did the title/cover give a click reason?
- Was there a save/comment reason?
- Was it a consistent direction, or 10 unrelated life posts?
- Is the user's life itself interesting or useful enough for strangers?
Important A Tian judgment:
如果你像发朋友圈一样发,别人为什么要看你的生活?你的生活有什么特别精彩、特别有用、特别能帮到别人,或者和别人有什么不一样?小红书不是朋友圈,陌生人需要一个点击理由、收藏理由和关注理由。
Reality check:
- Many creators publish hundreds of notes before they look stable.
- Ask the user to open reference creators' profiles and check total note count.
- If a creator has 200 notes, it may represent months or years of posting.
- If the user wants to be a creator, it is a long process, not a 10-note test.
Continuation:
Ask the user to send the 10 notes or their account link, then diagnose whether the problem is direction, title/cover, topic, content structure, or account memory anchor.
Good ending:
没关系,灵造可以继续帮你看。你把你的主页链接或这10条里你最想救的一条发来,我先判断它是选题问题、标题封面问题,还是内容本身没有给陌生人一个看下去的理由。
Objection 5: “我喜欢看很多内容,但不知道哪个能做。”
Do not ask them to decide alone.
Ask:
- 你最喜欢看哪类内容?
- 哪类内容让你觉得心特别静、特别有力量、或者很想成为那样的人?
- 哪类内容你看完马上能用得上?
- 哪类内容你收藏最多?
- Which creators or notes do you repeatedly return to?
Then redirect to links:
- Send creator homepage links.
- Send single note links.
- Send 3-5 favorite examples.
- Check favorites/collections and choose the content they actually save most.
Good response pattern:
你不用现在就决定哪个能做。你先把你最喜欢的 3-5 个博主或笔记发我,我帮你看它们的共同点:是女性成长、职场、穿搭、好物、健康,还是某种生活状态。很多人的方向就藏在收藏夹里,只是一直没开始。
Core Principle For All Objections
Always loop the user back to one useful Lingzao action:
- send their own account link
- send a creator they like
- send one note they want to imitate
- send 3-5 favorite examples
- choose one direction for a 7-note test
- ask Lingzao to find low-follower recent viral references
Do not let the answer end at comfort. The next action should make the user stay in the workflow.
Part 10: Light Follow-Up
End with one specific next step.
Good endings:
- 你先从上面 3 个方向里选一个最有感觉的,我下一步可以帮你把它拆成昵称关键词、100 字简介、头像方向和前 7 条笔记。
- 你把你平时最爱收藏的 5 类内容发我,我可以帮你反推出你适合做的小红书方向和第一批搜索关键词。
- 你如果想先看参考,我可以按你选的方向找最近 1-3 个月的低粉爆款,给你整理可学公式和第一周选题。
PK@!X!ɹJ]J]5playbooks/benchmark-account-discovery-quality-gate.md# Benchmark Account Discovery Quality Gate
Use this playbook when the user asks Lingzao to find benchmark accounts, reference creators, same-track accounts, low-follower viral accounts, or accounts worth learning from.
This is a product-quality gate, not only a search prompt. Users should not have to remember to add "持续更新并有爆款作品的账号" every time. That should be the default quality standard when Lingzao finds benchmark accounts.
Core Decision
The answer to the user's feedback is:
不用每次都自己加这句话。灵造默认就应该按「持续更新 + 近期有高互动作品 + 和你阶段匹配」来找对标账号;如果你自己已经找到账号,也可以直接发给我,我会帮你判断它值不值得学、适不适合你、哪些能学、哪些不能照抄。
So the workflow has two valid entrances:
- User asks Lingzao to find accounts:
- Lingzao must search and then verify freshness, hit performance, and stage
fit before recommending.
- User sends accounts they found:
- Lingzao should skip discovery and use
comparable-account-breakdown-report-template.md to judge fit.
Do not put the burden on the user to write perfect search wording.
Default Discovery Standard
When the user asks for benchmark accounts, default to active, learnable accounts:
- Active: still updating recently.
- Proven: has at least one recent high-performing work or a clear spike.
- Relevant: belongs to the user's track, format, and audience.
- Learnable: the user can imitate structure, topic, title, cover, or operation
logic without needing the same face, wealth, city, job, product, team, or mature follower base.
- Stage-fit: beginners should see same-stage, low-follower, or early-path
references first; mature accounts can appear as positioning references, not copy targets.
Hard Gate: Benchmark Account vs Note Sample
Do not confuse a note that has some interaction with an account that is worth benchmarking.
Main benchmark accounts must pass account-level proof. As a default:
- Minimum account scale: at least 1,000 followers for a main benchmark,
unless the user explicitly asks for 0-1,000 follower seed-account observation.
- Minimum account signal: total liked count should not be tiny. For an
early-stage benchmark, prefer at least several thousand total likes or a visible pattern of multiple notes getting meaningful engagement. An account with around 100 followers and a few hundred total likes is not a main benchmark.
- Hit proof: at least one clear high-performing note or a visible spike.
For 1,000-5,000 follower accounts, a note with 300+ likes, or unusually high saves/comments, can be a useful proof note only if the account itself also has enough scale and a repeatable content lane.
- Repeatability: one lucky note is not enough. Check whether recent notes
share a stable content lane, format, topic, or audience demand.
- Currentness: the account is still updating or the recent hit is still
platform-relevant.
If an account is below 1,000 followers, do not label it as "主对标" or "对标账号" by default. It can only be:
单篇样本: one note can be studied for title, cover, opening, comment demand,
or topic angle.
起号观察: useful only when the user explicitly wants seed-account examples.不推荐: too little proof, too low scale, or no repeatable content lane.
Bad recommendation example:
- 100+ followers, 400+ total likes, one note with hundreds of likes/comments.
This may be a single-note topic/comment-demand sample, but it is not a benchmark account for ordinary users.
User-facing wording:
这个账号目前粉丝和总赞都太低,不能当你的主对标。它最多只能作为「单篇样本」:这条笔记的标题、开头或评论需求可以看一眼,但不能证明这个账号已经跑出稳定方法。
Follower Range Hard Constraint
When the user gives a follower range, treat it as a hard filter for main recommendations, not a loose preference.
Examples:
1000-5000 粉: main benchmark table can only include accounts in 1,000-5,000
followers.
5000 左右: main benchmark table should stay close to 5,000, usually around
3,000-10,000 followers unless the user approves a wider range.
5-15 万粉: main benchmark table can include 50,000-150,000 followers; 10k
accounts and 300k+ accounts should not be mixed into the main table.
Use three result zones:
严格符合: within the requested follower range and passes benchmark proof.相邻可参考: slightly outside the range but still useful. Keep separate from
the main table.
不作为主对标: far outside the range, unknown follower count, too small, too
large, stale, or weak proof.
If Lingzao search returns accounts outside the requested range, do not hide the problem. Say:
这轮搜索返回了不少账号,但严格落在「1000-5000 粉」且有一波爆款证据的账号不足。我不会把 100 多粉或十几万粉的账号硬塞进主对标表里。可以继续用「近期爆款笔记反查作者」或放宽到 800-8000 粉再搜一轮。
If follower count is missing from search-users, do not claim the range was met. Either verify selected candidates with profile lookup after credit framing, or label them as 粉丝待核验 and keep them out of the strict main benchmark table until verified.
Context And Transfer Rules
Infer the user's interest from repeated requests. If the user keeps sending similar accounts or notes, say the pattern back:
我发现你最近让我拆的内容都集中在「某某方向」。你是不是最近对这个方向感兴趣?你现在有自己的账号吗,还是先在找方向?
Use city only when city matters:
- For female growth, AI tools, career, health, fashion, good products, and most
personal-IP content, city is usually not a main benchmark filter unless the user says it matters.
- For food, travel, local life, stores, city guides, city events, and local
services, city matters for publishing, positioning, keyword, location, and audience.
- Local-life examples can transfer across cities. If a Nanning creator sends
Yunnan, Beijing, Kunming, Shanghai, or other city references, do not call it scattered by default. They may be learning shooting style, topic selection, cover style, title formula, route design, or comment demand, then applying it to Guangxi/Nanning.
If references suddenly jump to a truly different audience or track, ask whether this is still the old account direction or a new account direction. Then judge:
- can this be a new series inside the current account?
- should it become a separate account?
- will it confuse the target user?
- which parts are safe to borrow without changing account positioning?
Display And Ranking Defaults
Do not make the user open every profile link just to judge whether an account is worth learning.
For each recommended benchmark account, show these visible fields when available:
- direct Xiaohongshu homepage link
- follower count
- total liked count / total account likes
- latest update time or latest visible post date
- content format: 图文、口播、Vlog、探店、美食、AI 教程、混合 etc.
- recent-hit works from the last 30 days when available, including note title,
note link, public likes, collections, comments, and publish date
- why this account can be a benchmark
- what not to copy
Default ranking:
- Sort the first recommendation table by follower count from high to low when
follower counts are visible.
- If follower count is missing for some accounts, put known-count accounts
first and keep unknown-count accounts lower with "粉丝数未返回".
- Do not sort only by personal preference or search-result order when follower
data is available.
If search-users already returns follower and liked counts, reuse those numbers. If the final starter candidates are strong but profile stats are missing, either call get-user-info for the selected candidates after credit framing, or mark the field as unknown; do not silently omit the field from the output.
Default Result Count
The first visible delivery should be 3 starter accounts, not 10-20 accounts. After the user confirms that the direction is right, expand to 5 or more only when they ask for it or provide a clearer scope.
Use this user-facing wording before or after the first recommendation table:
我这边先在约 100 credits 的首轮预算里给你 3 个账号,看看方向是否适合;如果方向对,再扩到 5 个或按粉丝数量、账号阶段、内容形式、城市范围继续搜。这样不会一上来就把积分花在太宽泛的搜索上。
Rules:
- Verify enough candidates to return up to 3 strong accounts in the first
starter round.
- Keep the first round inside the budget stop rule from
search-credit-notice.md whenever possible: no more than 5 paid lookups or about 100 credits without another user confirmation.
- Do not default to 5, 10, or 20 benchmark accounts when the user has not
confirmed direction. More accounts mean broader search and may spend more credits.
- If fewer than 3 candidates pass the active/recent-hit/stage-fit gate, return
the actual number and explain why the rest were filtered out.
- Only expand beyond 3 when the user asks for more or confirms a clearer
follower range, stage, city, audience, or format.
- If the user wants follower count control, first narrow the follower range
before continuing the search instead of spending credits on broad discovery.
- If the user gave a follower range and no candidates pass it, return "0 个严格
符合" rather than filling the table with accounts that are too small or too large.
- If the user only gives a broad topic such as "AI 博主", "女性成长", or
"本地生活", ask or infer a small starter scope before searching: follower range, topic angle, account format, city/local scope when relevant, result count, recent update, and at least one recent high-interaction work.
Freshness Defaults
Use these as defaults unless the user gives another range:
- If the account updated within the last 15 days and the track/format fits, it
can be directly included as an active candidate after the normal benchmark checks.
- Prefer accounts with at least one high-performing work in the last 30 days.
For ordinary users, "最近一个月有爆款内容" is easier to understand than an abstract "recent-hit status".
- Fast-changing tracks such as AI tools, local life, hot topics, platform
operation, and content workflows: last post ideally within 30 days; recent high-performing work ideally within 90 days.
- Evergreen tracks such as parenting, career, female growth, beauty, good
products, health, and travel guides: last post ideally within 60 days; recent high-performing work ideally within 180 days.
- If an account has no public update in 90+ days, do not recommend it as a main
benchmark unless the user explicitly wants historical archive analysis.
- If an account has no public update in the most recent month, usually do not
recommend it as a main benchmark. Treat it as historical reference at most, especially when the user expects current benchmark accounts.
- If update dates are unavailable, mark freshness as unknown and do not rank it
above verified active accounts.
Definition:
- "Recent active benchmark" means there is visible recent activity plus at
least one work that performs noticeably better than the account's usual level or has strong public interaction.
- "Historical reference" means the account has useful positioning, title,
cover, or content structure, but is not suitable as a current main benchmark because it stopped updating or its old viral works may not reflect the current platform environment.
Recommended Search Flow
Before searching, follow search-credit-notice.md.
If User Only Gives A Track Or Keyword
Example: "帮我找女性成长对标账号"
- State the default quality gate in user language:
我默认不只按关键词搜账号,会优先筛「还在持续更新、近 90/180 天有高互动作品、和你阶段匹配」的账号。断更很久的账号我最多放到历史参考,不会当主对标推荐。
我这边先在约 100 credits 的首轮预算里给你 3 个账号,看看方向是否适合;如果方向对,再扩到 5 个或按粉丝数量、账号阶段、内容形式、城市范围继续搜。
- Confirm or infer:
- track / keyword
- target audience
- user's current stage if known
- preferred format: 图文、口播、Vlog、本地生活、好物、AI 教程 etc.
- Candidate collection:
- use creator search for the keyword when suitable
- use note search for recent high-performing notes when creator search gives
old or weak accounts
- collect candidate authors from recent high-performing notes when possible
- Candidate verification:
- verify enough candidates to return up to 3 strong accounts in the first
starter round
- inspect recent public posts for each candidate before recommending
- check latest update time
- if the last visible update is within 15 days, treat freshness as strong
- check whether the recent works include high-performing or clearly
above-average posts
- prefer the account's high-performing works from the last 30 days; if none
are available, say so instead of implying it has a current hit
- write down the specific high-interaction works that made the account pass:
title, note link, publish date when available, and visible likes/ collections/comments
- check whether the content lane is stable or only had one unrelated spike
- apply the account-level proof gate: follower scale, total liked signal,
recent hit proof, and repeatability
- if the user specified a follower range, separate candidates into
严格符合, 相邻可参考, and 不作为主对标; only the first zone can enter the main recommendation table
- check whether the format and resources are learnable for the user
- filter out long-stale accounts, especially those with no recent-month
updates
- avoid treating 400k+ pure big accounts as ordinary imitation targets; use
them only for mature positioning, broad market signal, or historical reference unless there is a very specific learnable part
- when the user sends 100k-300k accounts, inspect briefly but clearly
separate "可以局部参考" from "不建议现阶段照抄"
- inspect comment quality: comments such as "太棒了", "太好了", "真的吗"
may be low-value or inflated interaction; comments such as "求教程", "这是什么软件", "收藏了", "我也遇到这个问题", "求地址", "怎么做" indicate real demand and are more useful for benchmark judgment
- Output ranked accounts only after verification. Default to sorting visible
recommendations by follower count from high to low.
If User Sends Their Own Found Accounts
This is often better when the user already has taste or a niche reference.
Do:
- say "可以,直接发你找到的账号会更精准"
- analyze each account with
comparable-account-breakdown-report-template.md - still check freshness and recent-hit status
- judge whether it is a main benchmark, local reference, historical reference,
or not recommended
Do not:
- treat every user-provided account as worth copying
- skip stage-fit judgment
- ignore that an account may be stale even if the user likes it
Candidate Labels
Every recommended account should receive one label:
- 主对标:active, relevant, recent-hit, and stage-fit.
- 局部参考:some parts worth learning, but not the whole account.
- 历史参考:good old structure or positioning, but stale or not current.
- 趋势观察:useful for topic direction, not for direct imitation.
- 单篇样本:the account is not qualified as a benchmark, but one note can be
studied for title, cover, opening, topic, or comment demand.
- 起号观察:only for explicit seed-account study, not ordinary benchmark
recommendation.
- 不建议学:stale, mismatched, too resource-dependent, off-track, or
unlearnable for the user.
Output Structure
For benchmark discovery, output:
- 一句话判断:本轮是否找到了真正适合学的账号。
- 筛选标准:say the default gate used, such as "持续更新 + 近期爆款 + 同阶段可学".
- 推荐账号表:
- default first starter round: up to 3 accounts
- account name and direct Xiaohongshu profile link
- follower count and total liked count / total account likes when available
- freshness
- latest visible update date or "半个月内有更新" when that is known
- content format, such as 口播 / 纯图文 / 图文知识卡 / Vlog / 探店 / 混合
- 1-3 recent high-interaction works, each with note title, note link,
publish date when available, and public likes/collections/comments
- follower/stage if visible
- content lane
- why it is worth learning
- what not to copy
- label
- if fewer than 3 accounts pass, state the actual count instead of filling
the table with weak accounts
- 被筛掉的账号类型:
- accounts below 1,000 followers with no account-level proof
- accounts with around 100 followers / a few hundred total likes; these can
only be single-note samples unless the user asks for seed-account observation
- accounts outside the user's requested follower range; keep them out of the
main recommendation table
- accounts whose follower count is missing and has not been verified
- long-stale accounts
- old viral-only accounts
- big accounts with mature trust only
- 400k+ pure big accounts that mainly rely on mature IP and accumulated
trust
- accounts with uncopyable face/resource/city/product/team advantages
- accounts whose interaction looks inflated or low-intent
- one-off emotional viral notes that are hard for an ordinary creator to
repeat
- 下一步:
- analyze one selected account
- compare with user's own account
- turn selected benchmarks into 7-day topics/title/cover package
- save to content knowledge base
- if the recommended accounts share the same format, offer a format-specific
follow-up search
If Results Are Weak
Do not pretend weak results are good.
Say:
这批搜索里有账号能参考,但真正适合当主对标的不多。主要问题是:有些账号断更,有些只有旧爆款,有些和你的阶段不匹配。我建议下一轮改成按「近期爆款笔记反查作者」或放宽/收窄关键词继续找。
Then offer:
- change keyword
- narrow by format
- narrow by city/audience/life stage
- search recent high-performing notes and reverse-find authors
- let user send accounts they already like
Emotional Virality And Long-Term Keywords
Do not copy one-off emotional events just because they are viral. A breakup, marriage, family conflict, or dramatic personal event can receive support and encouragement, but it may not be repeatable or appropriate for the user's account.
However, do not reject all emotional content. In long-term demand tracks such as female growth, career anxiety, self-worth, emotional stability, parenting, or relationship boundaries, emotional value plus clear keyword coverage can be a real repeatable content model. Judge whether the account repeatedly covers the same demand with title, cover, state, keywords, and structure, not whether one story happened to explode.
Good User-Facing Wording
Use this when replying to ordinary users:
你不用每次都加“持续更新并有爆款作品”这句话。以后我帮你找对标账号时,会默认优先筛:最近还在更新、近 90/180 天有高互动作品、和你当前阶段更接近的账号。断更很久的账号我会标成“历史参考”,不会当主对标推荐。
如果你自己已经收藏了几个喜欢的账号,也可以直接发给我。这样会更精准,因为我可以直接判断:它值不值得你学、你能学哪一部分、哪些是它自己的脸/资源/城市/粉丝基础,不能照抄。
When showing results, use direct links:
- Show the creator's Xiaohongshu homepage link, not only the creator ID.
- Show follower count and total liked count when available, so the user can
judge stage-fit without opening the profile.
- Show the high-interaction note links, not only note IDs.
- Show public likes/collections/comments for the specific recent-hit notes.
- If the search result only has the 24-character
users[].idreturned by
search-users, you may show a readable Xiaohongshu profile URL for users, but keep that ID for follow-up --platform xhs --user-id ... commands. Do not build profile URLs from RED ID, bio text, or custom short IDs.
- Direct IDs can stay in machine-readable data, but they should not be the
visible user-facing deliverable.
When most recommended accounts are the same format, summarize that plainly:
这 3 个里面大部分是口播型账号,适合学选题、标题和表达节奏;如果你想做纯图文,我可以继续帮你找一批纯图文/知识卡账号。
Use the same logic for other formats:
- If most are 口播, offer pure graphic-note or no-face graphic references.
- If most are 图文, offer口播/Vlog references if the user wants to show up on
camera.
- If most are local-life video探店, offer pure photo/card-style local-life
accounts if the user cannot shoot video.
When the user asks for more after the first 3, narrow the next search before expanding:
如果这 3 个里面方向对了,我可以继续帮你按粉丝量筛,比如 1000-5000 粉、5000-3 万粉、3-10 万粉;也可以按图文/口播/Vlog/本地城市继续找。这样会比一次性给你 10-20 个更省积分,也更容易找到真正能模仿的账号。
Do Not
- Do not recommend long-stale accounts as main benchmarks.
- Do not return 10-20 benchmark accounts by default; first deliver up to 3
strong accounts.
- Do not keep verifying more candidates after the first round would exceed 5
paid lookups or about 100 credits unless the user has confirmed a larger budget.
- Do not treat account search results as final recommendations before checking
recent posts.
- Do not call 100+ follower / few-hundred-like accounts "benchmark accounts" for
ordinary users. Label them as single-note samples or reject them.
- Do not put accounts outside the requested follower range into the main table.
Separate them as adjacent references or reject them.
- Do not claim an account is 1000-5000 followers if follower count was not
returned or verified.
- Do not use "viral" if the account's only strong works are too old for the
current task.
- Do not return creator IDs as the only visible result. Users need direct
creator homepage links and specific high-interaction works. When the agent will verify profiles after discovery, keep the 24-character users[].id returned by search-users and do not substitute RED ID from bios.
- Do not omit follower count, total liked count, and recent-hit note metrics
when the data is available.
- Do not mix口播、图文、Vlog accounts without telling the user what formats were
found and whether a format-specific follow-up search is needed.
- Do not hide that additional account verification can add searches/credits.
- Do not spend credits on a broad follower-range search before the user has
confirmed the desired range or stage.
- Do not over-filter until no references remain; if there are few active
accounts, say so and offer another search strategy. PK@!X�m��2.2.,playbooks/brand-brief-to-content-workflow.md# Brand Brief To Creator Content Workflow
Use this playbook when a user sends an advertising, brand cooperation, campaign, product, or content brief and wants Lingzao to turn it into self-media content.
This workflow is for creator-facing content, especially Xiaohongshu. It can also feed cross-platform packages after the core Xiaohongshu angle is clear.
Trigger Phrases
Route here when the user says things like:
- 帮我拆一下这个 Brief
- 品牌 Brief 发来了,我应该怎么做内容
- 这个商单怎么写小红书
- Brief 进去后帮我出选题 / 标题 / 封面 / 正文
- 根据这个品牌合作要求给我出内容方案
- 这个广告怎么不硬广
- 先看 Brief,再帮我找对标怎么讲
- 品牌想推这个产品,最近小红书都怎么说
If the user only asks whether an account can monetize, use monetization-path-judgment-library.md. If the user already has a finished draft and only needs a pre-publish check, use pre-publish-readiness-check.md. If the user only gives a keyword without brand constraints, use keyword-to-publishable-content-package.md.
Core Principle
Do not turn a Brief into a hard ad.
A good Brand Brief workflow connects three things:
- what the brand wants to say
- what the creator can credibly say
- what the platform user would actually click, save, comment on, or trust
The output should feel like:
品牌要求没有丢,小红书用户也不会一眼觉得这是广告模板。
Privacy And Scope Boundary
Briefs can contain private business information. Before public-content lookup, do not paste confidential terms, confidential prices, launch dates, private contact information, or unreleased product details into searches.
Use safe search terms:
- product category
- user pain
- scenario
- competing public keywords
- public brand/product name only if the user clearly allows it
If the Brief includes high-risk claims, regulated categories, or sensitive instructions, keep the output conservative and remind the user to confirm with the brand/legal reviewer.
High-risk categories include:
- medical, health, supplements, weight loss, skincare efficacy
- finance, investment, insurance, income promises
- parenting, baby products, education outcomes
- luxury authenticity, food safety, privacy, employment claims
Do not invent proof, test results, awards, official endorsements, before/after effects, prices, discounts, or user reviews that are not provided.
For Xiaohongshu deliverables, also run xhs-platform-management-risk-baseline.md and xhs-content-compliance-risk-gate.md before final copy. If the Brief asks for external links, QR codes, WeChat, private groups, comment-to-receive resources, or "like/follow/comment to get" mechanics, keep those as Brief requirements to confirm, but do not put them into the publishable Xiaohongshu version. Rewrite them into a safer platform-specific alternative or mark them as needing brand confirmation.
For Brand Briefs, default to "公开价值优先、产品名后置、无导流动作". The content should not start as a brand slogan. Translate the product into a user problem, scene, checklist, comparison, story, or method first, then let the product appear as support.
Input Contract
Minimum useful input:
- the Brief text, screenshot, document, or a pasted summary
- target platform, default Xiaohongshu if not provided
- creator/account direction if this is for a specific creator
Helpful optional input:
- profile link or recent posts of the creator
- product page, brand page, or official reference material
- required selling points
- forbidden words and compliance notes
- deliverables: graphic note, spoken video, Vlog, article, multi-platform
- required keywords, hashtags, CTA, coupon, landing page, or comment guidance
- desired tone and reference examples
- deadline and brand review rounds
If the user only gives a screenshot or short sentence, do a light Brief intake first and ask only for missing route-changing fields, such as platform, format, required selling point, or account direction.
Workflow
1. Brief Intake
Extract the Brief into a structured table:
| Layer | What To Extract |
|---|---|
| Brand / product | what is being promoted |
| Campaign goal | awareness, seeding, conversion, trial, store visit, app download, course signup, lead generation |
| Target user | who should care and who should not be targeted |
| Product value | features, benefits, proof points, price, scenario, differentiator |
| Mandatory points | required wording, keywords, scenes, CTA, links, tags |
| Forbidden zone | banned claims, sensitive terms, must-not-say, competitor limits |
| Deliverables | platform, format, duration/pages/word count, number of posts, timeline |
| Brand tone | premium, friendly, professional, playful, local, practical, emotional |
| Creator fit | why this creator can say it credibly |
| Missing info | what must be clarified before final delivery |
When extracting mandatory CTA, separate:
- Brand requested CTA
- Xiaohongshu-safe CTA
- Needs brand/legal confirmation
If the Brief is too vague, do not block the workflow. Produce a "Brief clarification list" with 3-5 missing items and a draft direction based on what is already known.
2. Creator And Audience Fit
Before selecting topics, judge whether this ad can sit inside the user's account.
Check:
- Does the product match the account's audience?
- Will it attract the desired customer or only random views?
- Is the creator's usual content format able to hold the product?
- Will this damage trust if pushed too hard?
- Can the product be shown as a useful tool, scenario, story, checklist,
transformation, comparison, tutorial, review, or life detail?
Good diagnosis:
这个 Brief 不能直接按品牌卖点写。它要先变成你账号用户关心的问题,再把产品放进去解决那个问题。
3. Public Reference Search
Use search-credit-notice.md before paid lookup.
Search should not only search the brand name. Search a mix of:
- product category
- user pain
- use scenario
- desired outcome
- audience identity
- competitor/public category wording
- platform-specific content format, such as "测评", "避坑", "清单", "教程",
"通勤", "新手", "办公室", "妈妈", "自媒体", "AI工具", "本地生活"
Default first round:
- 3-5 keywords
- recent public notes when the category changes fast
- prioritize Xiaohongshu unless the user names another platform
- select 3-5 reference notes or accounts, not a long list
For each selected reference, capture:
- title and direct link
- public signal: likes, saves, comments, publish time when available
- content type: review, tutorial, Vlog, list, comparison, story, problem-solve
- why users click
- how the product/category is embedded
- what can be borrowed
- what not to copy
Do not claim to have read comments or full copy unless those details were actually opened.
4. Topic And Angle Matrix
Turn the Brief into content angles before writing.
Recommended angle types:
| Angle | Use When | Example Shape |
|---|---|---|
| Pain-first | user already has a clear problem | "为什么你总是..." |
| Scenario-first | product solves a daily scene | "上班/旅行/带娃/做账号时..." |
| Result-first | product creates a visible result | "我用它把..." |
| Tutorial | product has steps or workflow | "3 步完成..." |
| Comparison | category has alternatives | "A 和 B 到底差在哪" |
| Checklist | user saves for later | "新手先看这 5 点" |
| Story/Vlog | creator identity is strong | "我为什么开始..." |
| Myth-busting | market has misunderstanding | "很多人以为...其实..." |
| Local/life scene | city/store/food/travel category | "第一次来...怎么选" |
Rank angles by:
- user click reason
- brand message fit
- creator credibility
- production difficulty
- compliance risk
- save/comment potential
- whether it can become a series
Default output should recommend Top 3 angles, with one首推.
5. Content Package
After the angle is selected, produce the actual deliverable.
For Xiaohongshu graphic note:
- 3 title options, not 10
- cover copy and cover type
- 4-7 page structure
- page-by-page copy direction
- 300-character body copy
- 10 publishing keywords
- CTA/comment guidance
- brand-mandatory-point checklist
For spoken video:
- 3 title options
- first 3 seconds hook
- 60-120 second spoken script or the requested length
- screen/subtitle emphasis
- product placement point
- body caption
- 10 publishing keywords
For Vlog:
- storyboard by scene
- where the product appears naturally
- narration outline
- caption
- cover direction
- 10 publishing keywords
For cross-platform:
- first finish the Xiaohongshu core angle
- then route to
mother-content-cross-platform-distribution.mdfor WeChat
public account, Moments, Knowledge Planet, Bilibili, Douyin, X, or podcast
6. Brand Delivery Check
Before final answer, include a delivery checklist:
- mandatory points included
- forbidden claims avoided
- public value appears before product/brand selling language
- Xiaohongshu risk gate passed or risky CTA rewritten
- platform disclosure/compliance reviewed
- product placement is natural
- title and cover still have user click reason
- first 3 lines / first 3 seconds do not sound like a brand slogan
- CTA matches the Brief as much as possible without站外引流、加微信、诱导评论互动
- missing brand assets or facts to confirm
If the Brief conflicts with creator trust, say so plainly:
这条可以做,但不能按 Brief 原话硬写。原话更像品牌自夸,用户会滑走。我建议保留品牌必须表达的点,但把开头改成用户痛点/场景,再把产品放在解决方案里。
Output Forms
Light Brief Breakdown
Use when the user only asks "帮我看看这个 Brief":
- Brief 摘要
- 这单适不适合这个账号
- 用户会关心的入口
- 3 个可做选题
- 需要向品牌确认的问题
- 是否需要继续搜索对标
Standard Brief To Content Package
Use when the user wants actual content:
- Brief 拆解表
- 账号/受众适配判断
- 搜索范围和对标选择
- Top 3 内容角度
- 首推角度的完整小红书内容包
- 品牌交付检查表
- 下一步:发给品牌前检查标题/封面/正文,或生成图片
Deep Campaign Package
Use when the user asks for a campaign, batch content, or multi-platform plan:
- campaign goal and user journey
- keyword/search plan
- benchmark notes/accounts
- 5-10 topic pool
- 3 complete deliverables
- multi-platform distribution plan
- review workflow and post-publish metrics
Credit Scope Wording
If public lookup is needed, use this wording:
我可以先基于 Brief 做不花积分的拆解;如果你想让我看最近小红书同类产品/同类痛点都怎么讲,我会进入公开内容搜索。建议先搜 3-5 个关键词,找 3-5 条近期参考,再产出内容角度和正文。你确认后我再开始查。
If the user already asks for "找对标" or "看看最近都怎么讲", proceed after the normal credit notice.
Good Style
Use human, practical language:
- 这不是把 Brief 翻译成小红书,而是把品牌卖点翻译成用户愿意看的内容入口。
- 品牌要的是卖点完整,用户要的是跟自己有关。我们要在中间搭桥。
- 这条广告不能从品牌口号开始,要从用户正在发生的场景开始。
- 先别急着写正文,先判断这个产品应该进入用户的哪一个问题。
Avoid:
- pure slogan copy
- fake personal experience
- unsupported claims
- claiming a product is best/official/guaranteed without evidence
- copying reference notes
- hiding that a post is commercial when disclosure is required
PK@!X��6�?�?9playbooks/comparable-account-breakdown-report-template.md# Lingzao Comparable Account Breakdown Report Template
Use this template when the user chooses B / says this is someone else's Xiaohongshu account / wants to learn from, imitate, or benchmark another creator.
The goal is not to praise the account. The goal is to tell the user:
- whether this account is worth learning from
- what exactly can be learned
- what cannot be copied
- whether the account matches the user's current stage, resources, face/camera ability, product, industry, or content direction
- which early-path signals matter more than the account's current mature form
- how to adapt the account into the user's own version
If the task is to find benchmark accounts rather than analyze a user-provided account, use benchmark-account-discovery-quality-gate.md first. Do not recommend account-search results as final benchmarks until recent public posts, update status, recent high-performing works, and stage fit have been checked.
For formal or deep comparable-account reports, also apply account-report-evidence-visual-contract.md. That contract defines the evidence links, real-cover audit, viral-asset reuse, account-evolution, and visual-report delivery baseline.
Output Form
Default light deliverable:
- Chat: short decision summary.
Default deep-report deliverable:
- HTML preview: browser-friendly visual report for quick reading and review.
- Word document: official shareable deliverable that the user can send to friends, clients, or team members.
When a full comparable-account report is generated, create both HTML and Word whenever tooling is available. They must come from the same report source. Word is the official shareable deliverable; HTML is the browser preview. If only one format can be created, explain why and prefer Word.
Do not generate a full Word/HTML report by default after one light lookup. First give the short decision summary. If the user wants a full report, explain that it becomes a deeper comparable-account breakdown and may require more Lingzao searches/credits because it needs to inspect more notes and possibly deeper content.
User-facing upgrade explanation:
如果你只想先判断这个账号值不值得学,我可以先按轻量拆解给你结论;如果你想生成正式报告,就会进入深度拆解。我会同时给你 HTML 预览和 Word 文档:HTML 方便你先看结构,Word 方便你转发给朋友、客户或团队。深度拆解会多看它的近期内容、代表爆款、封面标题、内容结构、可学和不可照抄部分,必要时还会继续看单篇正文、评论区或同阶段对标。
积分上也先说清楚:轻量看一个主页近期内容通常属于基础查看;正式报告如果要用主页深度解析,20 条作品是 50 credits,40 条作品是 100 credits。如果继续打开单篇详情或评论区,会按对应查看范围另外计算。我会先确认范围,不会直接替你扩大搜索。
The deep report should clearly tell the user what they will get:
- 一页总览:这个账号值不值得学、适合谁、最大可学点、最大风险
- 爆款内容地图:哪些内容明显高于平均表现
- 真实封面审计:封面怎么吸引点击,标题用什么关键词,视觉主体、构图、颜色、可信证据和可复制点分别是什么
- 爆款资产复用:它有没有反复使用同一类选题、标题句式、封面场景、拍摄结构或栏目资产
- 爆款机制:为什么能火,用户为什么点赞/收藏/评论
- 可学和不可照抄:哪些能学,哪些依赖资源/人设/粉丝基础
- 用户适配判断:小白、起步号、成熟号分别怎么学
- 改成你的版本:7 天选题、标题方向、封面文案、内容结构
- 附录:代表笔记链接、公开互动数据、必要的截图/封面说明
- 对比入口:如果用户也发自己的账号,继续生成“我和对标账号的差距 / 相似度 / 可学习点”对比
When showing accounts or notes, use direct Xiaohongshu links in user-facing tables. Do not make the user copy note IDs. For follow-up profile verification, keep the 24-character users[].id returned by search-users; do not derive a Xiaohongshu profile URL from RED ID in a bio. For a benchmark account, include the profile link and the representative high-interaction note links that support the judgment.
If the deeper report would require more scope than the user has confirmed, ask for confirmation before continuing. Do not silently expand from a short account breakdown into a full report.
Use the same visual standard as the own-account diagnosis report:
- Visual base:
tttt马上就发财report. - Judgment tone:
阿甜报告. - Clarity:
桃谷小仙report.
One-Page Decision Summary
The first page should answer quickly:
- 这个账号值不值得学
- 适合谁学
- 不适合谁学
- 最值得学的 3 个点
- 最容易误学的 3 个点
- 用户应该学它的早期路径,还是只观察成熟形态
Use this core decision pattern:
这个账号不是简单“照着发就能复制”,它真正可学的是 X;但如果你没有 Y 条件,就不要直接模仿 Z。
Chat Feedback Structure
Before generating a full report, give a short decision-style chat answer. The chat answer should not be a long report.
Use this order:
- 一句话判断:这个账号值不值得学,为什么
- 账号类型:它是什么类型的账号,靠什么被记住
- 最强爆点:它的爆款主要来自情绪、实用、身份、人设、视觉、趋势、产品,还是评论区需求
- 可学的 3 个点:选题、标题、封面、内容结构、表达、人设、商业承接里最值得学的部分
- 不能照抄的 3 个点:外貌/场景/阅历/资源/粉丝基础/产品/行业条件/成熟账号红利
- 用户适不适合学:按用户阶段判断。如果用户没有说自己的阶段,先用默认分层判断小白、起步号、成熟号分别怎么学
- 应该学哪个版本:学它早期路径、成熟形态、爆款公式、栏目结构,还是只观察趋势
- 改成你的版本:给 3 个可以马上测试的方向,每个方向包含标题方向 + 封面文案 + 内容结构
- 一个下一步问题:引导继续拆单篇笔记、找低粉对标、或生成 7 天选题
The first chat answer should feel like:
这个账号可以学,但不能直接照抄。它真正可学的是“记忆点 + 爆款结构 + 封面标题表达”,不是它现在的成熟粉丝量和人设光环。
Feedback Modules
1. 值不值得学
Do not only say “值得学”.
Choose one:
- 很值得学:它有清楚记忆点、可复用爆款结构、稳定内容主线
- 可以局部学:某些标题/封面/栏目值得学,但整体人设或资源不可复制
- 只适合历史参考:账号长期断更或爆款太旧,适合看定位/结构,不适合作为当前主对标
- 不建议直接学:账号依赖强资源、强外貌、强场景、强粉丝基础或强产品条件
- 只适合观察趋势:适合看选题趋势,不适合作为直接对标
2. 它靠什么被记住
Analyze the memory anchor:
- 人是谁:身份、经历、外貌、职业、年龄、城市、关系状态
- 讲什么:固定问题、固定人群、固定场景、固定利益点
- 怎么讲:口播、图文、清单、故事、教程、情绪金句、采访、测评
- 看完记住什么:一句话锚点
If the account has no clear anchor, say it directly.
3. 爆款来源
Classify the main hit mechanism:
- 情绪爆款:让用户觉得“这说的是我”
- 实用爆款:解决一个具体问题
- 身份爆款:某个身份/年龄/职业/人生阶段被看见
- 趋势爆款:踩中平台或行业热点
- 视觉爆款:封面、场景、人物、前后对比非常强
- 评论区爆款:评论区不断暴露新需求,可以二次生产
- 产品爆款:内容背后有清楚产品或商业承接
4. 可学部分
Always separate learnable parts:
- 选题:它一直在解决什么问题
- 标题:标题用了什么关键词和点击理由
- 封面:画面主体、文字信息、颜色、系列感
- 结构:开头、证明、转折、结尾、收藏点
- 表达:语气、身份、情绪浓度、故事感
- 账号主线:哪些栏目可以系列化
- 商业承接:内容如何自然引向产品/服务/社群/咨询
For monetization analysis, use monetization-path-judgment-library.md. Do not only say the account can "接广告"; judge whether it is more likely using brand ads, product sales, small courses, paid materials, community, consulting, precise lead generation, store conversion, or enterprise product conversion.
5. 不能照抄部分
Be strict here. Many users误学就是因为只看到表面。
Common non-copyable parts:
- 长相、气质、镜头表现
- 城市、旅行、职场、家庭、关系等场景资源
- 过去经历和故事沉淀
- 粉丝基础和成熟账号信任感
- 产品、供应链、企业资源
- 高成本拍摄/剪辑/团队能力
- 大博主的成熟表达,小白直接模仿会像低配版
6. 用户阶段适配
If the user's stage is unknown, give stage-specific advice:
- 小白:只学标题/封面/选题,不学成熟人设;优先找低粉爆款和早期内容
- 5000 粉以下:学一个栏目结构,连续测 7-14 天,不要一次学全套
- 1-3 万粉:学系列化、评论区复用、爆款复盘
- 3 万粉以上:学破圈、形式升级、产品化承接
- 企业/机构:只学用户问题和内容结构,不套个人 IP 人设
Freshness is part of stage fit. If an account has stopped updating for a long time, mark it clearly as historical reference or trend archive. Do not present it as a current main benchmark unless the user explicitly wants to study old positioning or archive cases.
7. 改成你的版本
Always convert analysis into usable tests:
For each adaptation direction, include:
- 方向名
- 适合的人群/账号阶段
- 标题方向
- 封面文案
- 内容结构
- 为什么这样改
Example format:
| 方向 | 标题方向 | 封面文案 | 内容结构 | 为什么适合你 |
|---|---|---|---|---|
8. 下一步承接
End with only one follow-up question.
Preferred endings:
- 你要不要我继续找 3 个同领域但粉丝更低、最近一个月还在更新的账号,判断哪个更适合你学?
- 你要不要发它最火的一条笔记,我继续拆标题、封面、结构和评论区需求?
- 你要不要我把这个账号改成你的版本,直接给你 7 天选题 + 标题 + 封面文案?
- 你想不想我继续拆这个账号的变现方式?我可以帮你判断它是靠广告、课程、社群、咨询、精准引流,还是产品销售。
- 你要不要我继续做成一份 HTML + Word 对标账号拆解报告?这会进入深度拆解,我会多看它的爆款、封面标题、正文结构和可复制/不可复制部分,最后给你一份可以预览、也可以转发的可视化报告。
- 你现在有没有自己的账号?如果这是你参考的账号,也可以把你的主页链接发来,我可以继续做“你的账号 vs 这个对标账号”的差距、相似度和可学习点对比。
Complete Report Structure
For a client-facing comparable-account breakdown, include these sections by default:
- 封面:对标账号名 + 一句话判断 + 报告日期
- 一页总览:值不值得学、适合谁、最大可学点、最大风险
- 证据与样本边界:公开主页、近期作品、代表爆款、封面样本、评论样本分别来自哪里,哪些字段未获取
- 账号记忆点:别人为什么会记住它
- 用户画像:谁会关注它、为什么收藏、为什么评论、可能为什么付费
- 爆款内容地图:最近/代表性高表现内容、标题、封面、互动信号、内容类型
- 真实封面审计:3-5 个代表封面,拆封面文字、视觉主体、构图、颜色、点击钩子、可信证据、可学与不可抄
- 爆款资产复用:按选题、标题、封面、场景或栏目判断它是在有效复用、结构迭代、机械复制还是一次性情绪爆款
- 爆款机制深拆:2-3 条代表内容,拆标题点击点、封面点击点、收藏理由、评论需求、可复用公式
- 内容主线:账号核心栏目、可延展栏目、已经成熟但不适合小白直接模仿的栏目
- 可学部分:选题、标题、封面、结构、表达、人设、产品承接
- 不可照抄部分:资源、外貌/场景、阅历、粉丝基础、商业条件、平台阶段
- 用户适配判断:按用户阶段给出是否适合学,以及该学什么版本
- 改成你的版本:3-5 个可测试方向,每个方向给标题、封面文案、内容结构
- 下一步行动:是否继续找同阶段低粉对标、是否拆单篇笔记、是否生成选题/标题包
- 自己账号对比入口:询问用户是否有自己的账号链接,继续做差距、相似度和内容匹配度分析
For each recommended benchmark in the report appendix, include:
- creator name
- direct Xiaohongshu homepage link
- freshness / latest update signal
- 1-3 representative high-interaction works with title, note link, public
likes/collections/comments, and why this work is worth learning
- label: main benchmark, local reference, historical reference, trend
observation, or not recommended
Stage Fit Rules
Always judge stage fit:
- 小白 / 5000 粉以下:不要直接学 10 万粉以上账号的成熟形态。优先看它早期内容、同领域低粉爆款、同阶段账号。
- 5000-3 万粉:可以学内容结构和栏目,但要改成自己的资源条件。
- 3 万粉以上:可以学习破圈、系列化、产品化、商业承接和内容形式升级。
- 企业/机构号:不要套个人 IP 逻辑,重点看产品表达、客户问题、场景证明、投放承接。
Cover And Screenshot Rules
If cover images are available and can render reliably:
- show the main representative covers
- place cover analysis in a separate section
- do not only mention cover features inside paragraphs
- use the cover-audit fields from
account-report-evidence-visual-contract.md:
cover text, visual subject, composition, click hook, trust evidence, learnable part, and risk
- include a high-performing vs normal/low-performing visual contrast when
enough samples are visible
If images cannot render reliably:
- do not leave blank image boxes
- use note title, note link, public metrics, and concise visual notes instead
Viral Asset Reuse Rules
Before judging that an account is "template-like", check whether the repeated element came from an earlier high-performing sample. Many strong accounts repeat proven assets deliberately.
Separate:
- effective reuse: the same audience demand and structure, with a new case,
scene, product, time, or proof
- structure iteration: a recognizable column or cover system is being tuned
- mechanical copying: same title/cover/content without new information and
declining public signal
- one-off emotional viral: a dramatic event that is hard for ordinary users to
repeat
For each reusable asset, explain:
- original strong sample and link
- later samples and links
- what stayed the same
- what changed
- what public signal it produced
- what the user can safely borrow
- what the user must not copy
Adaptation Rules
Do not only say “可以模仿”.
Translate the account into the user's possible version:
- original account's structure
- why it works
- what condition it requires
- user's safer adaptation
- one test title
- one cover text
- one content structure
Final Continuation
End with one next step:
- 是否要继续找 3 个同阶段、低粉但近期爆过的账号,帮你判断哪个更适合学?
- 是否要单独拆它最强的一条笔记,把标题、封面、结构和爆款公式拆出来?
- 是否要把这个账号改成你的版本,直接生成 7 天选题 + 标题 + 封面文案?
- 你现在有没有自己的账号?如果这是你参考的账号,可以把你的主页链接也发来,我可以继续做“你的账号和它差在哪里、相似在哪里、你最该学哪一部分”的对比报告。
PK@!X\`v�k�k,playbooks/content-knowledge-base-workflow.md# Lingzao Content Knowledge Base Workflow
Use this playbook when the user wants to turn saved notes, public creator links, keyword results, viral examples, drafts, or reference accounts into a reusable personal knowledge base or content asset library.
Also use it proactively after Lingzao has helped the user collect several references, topics, accounts, note links, title examples, cover examples, or rewritten drafts. The user may not say "knowledge base"; Lingzao should notice that the user is accumulating useful material and offer a place to put it.
This is not a separate bulk-collection product. It is a user-owned organization workflow: Lingzao helps the agent read public content signals, summarize what can be learned, and produce structured notes that the user can keep in Feishu, Notion, Markdown, Word, Sheets, or a local folder.
Trigger Phrases
Route here when the user says:
- 把收藏夹变成知识库
- 做自己的知识库
- 小红书爆款知识库
- 内容资产库
- 选题库 / 标题库 / 封面库 / 案例库
- 整理成飞书知识库 / 本地知识库 / Notion
- 把这些链接沉淀下来
- 我想学习这些账号 / 笔记
- 蒸馏一个博主 / 蒸馏这个账号
- 把这个博主整理成知识库
- 提取这个博主的选题、文案、封面、关键词
- 我收藏很多但不知道怎么用
- 帮我把对标内容变成可以复用的资料
Also route here after outputs such as:
- a keyword/topic search that returns many useful references
- a comparable-account breakdown with learnable examples
- a low-follower viral-note search
- a title/cover/formula pack
- a batch draft rewrite
- a user-provided list of saved notes or accounts
If the request is mainly about finding topics, also use beginner-account-start-and-topic-radar.md.
If the request is about drafts after learning references, also use draft-rewrite-and-benchmark-workflow.md.
Product Boundary
Keep the wording inside this boundary:
- We can create user-owned structured notes, tables, outlines, and report files.
- We can summarize public links the user provides or searches they confirm.
- We can preserve source links, public metrics, titles, creator names, tags, and
transformed learning notes.
- We can make a Feishu-ready / Notion-ready / Markdown-ready structure for the
user to paste or import.
- We can generate download-ready files when the runtime supports file creation,
such as Markdown, CSV, HTML, Word, or a zipped local folder.
- We can write directly into a destination only when that destination's
connector, CLI, or authenticated tool is available in the current runtime.
- We can give the user a reusable update prompt for the next time they actively
ask Lingzao to refresh the knowledge base.
Do not promise:
- server-side searchable databases of public platform content
- full archive collection
- bulk source-data export
- bulk image/video downloads
- automatic long-running monitoring
- Feishu plugin or automatic Feishu sync
- direct sync to Alibaba, Tencent, Feishu, Notion, or any other knowledge-base
product when no connector/authenticated tool is available
- copying full articles, full scripts, or another creator's original content
into a reusable library
When useful, say:
这里更适合做成“你自己的内容资产库”:保留链接、标题、封面观察、爆款机制、可学点、不可照抄点和你自己的改写方向。不要把别人的全文整段搬进来,重点是把它转成你能学习、能发、能复盘的结构。
Proactive Save Prompt
Use this after the user has collected useful material, even if they did not ask for a knowledge base.
Do not ask a vague question like "还需要什么". First ask whether the user already has a place to store knowledge, then route to the next step:
这批内容已经不只是一次搜索结果了,建议沉淀成你的内容资产库。你现在有没有固定放知识库的地方?
A. 有,比如飞书 / Notion / 语雀 / 阿里 / 腾讯知识库:我可以先按它适合导入的结构整理。 B. 还没有:我建议先生成通用下载包,包含 Markdown / CSV / Word / HTML,后面你想放到哪里都方便。 C. 先不确定:我先在对话里给你轻量表格和下次补库指令,等结构对了再导出。
If the user has already said the destination, skip this prompt and use the matching export mode.
Intake Logic
If User Sends Links
Classify the links first:
- creator homepage links -> 对标账号库 / 账号拆解库
- Xiaohongshu creator homepage links with "蒸馏" intent -> 博主蒸馏库
- Douyin creator homepage links with "蒸馏" intent -> explain that full profile
distillation is not currently supported; ask for specific Douyin post links or a keyword, then build a post-level / keyword-level reference library instead
- note links -> 爆款笔记库 / 标题封面库 / 结构库
- mixed links -> 综合案例库
- draft links or own notes -> 发布复盘库
Then ask only the next useful scope question if unclear:
你这批链接更想整理成哪一种?
A. 选题库:以后不知道发什么时直接来翻。 B. 标题/封面库:专门学习点击理由和视觉表达。 C. 对标账号库:长期看哪些账号值得学、哪些不能照抄。 D. 发布复盘库:把你自己发过的内容、数据和改法沉淀下来。 E. 博主蒸馏库:把一个博主的选题、文案结构、关键词、封面风格和可模仿点整理出来。
If the user already states the library type, do not ask again.
After choosing the library type, ask whether the user already has a knowledge base destination only if it matters:
整理完以后,这批内容要放到哪里?你现在有没有固定的知识库,比如飞书、Notion、语雀、阿里或腾讯知识库?如果还没有,我建议先生成通用下载包,之后你想导入哪里都方便。
If User Has No Links
Do not start with a long form. Ask for the smallest useful input:
你可以先发 3-10 条你最近收藏、喜欢、想模仿的小红书链接;如果暂时没有链接,也可以发一个关键词,比如“女性成长图文”“35岁职场”“AI工具”“本地生活探店”。我先帮你做第一版内容资产表。
If a search is needed, use search-credit-notice.md before searching.
If User Says They Have Many Saved Items
Do not ask them to paste hundreds of links. Start with a sample:
先不用一下子整理全部收藏。你先给我 10 条最想学、最常回看的链接,我会先做一个样板知识库。等结构对了,再按同一模板继续补。
Search And Credit Scope
Before any Lingzao lookup, choose the scope:
Before a creator distillation, explain the sampling logic in plain language. Users should know why a set of references was selected; otherwise they may think Lingzao randomly picked posts or spent credits on an opaque search.
Do not say "I will simply collect everything" or "I will only take the top 50 likes." Likes are useful, but old viral posts and accidental hot-topic posts can mislead the user. A good distillation balances proven posts with current behavior, save value, comment demand, and commercial/series signals.
If the current tool can fetch fewer items than the target sample, state the actual available count clearly. For example: "标准蒸馏目标是 50 条代表内容;当前 主页深度解析一次最多可先看 40 条,我会先基于这 40 条做第一版。如果你确认 继续,我们可以用确认后的关键词搜索或对标账号搜索做单独的补充参考区,但不 把这些外部内容算进这个博主的代表样本。单篇详情和评论区只用于丰富已选样本, 也不算新增样本。"
Creator Distillation Modes
Use these modes when the user wants to distill one Xiaohongshu creator/account. Do not use these profile-based modes for Douyin creator homepages. For Douyin, fall back to confirmed post links, keyword searches, note details, comments, or video-copy extraction, and label the output as a post-level or keyword-level reference library rather than a full creator profile distillation.
Quick Distillation
Use for first-pass learning or when credits should be controlled.
Target sample:
- about 20 representative posts when available
- prioritize recent high-signal posts and obvious top performers
- do not open details/comments/transcripts unless needed and confirmed
Output:
- one creator research card
- 5-8 recurring topics or keywords
- 3-5 title/cover observations
- 3 learnable parts
- 3 non-copyable parts
- 3 user-adaptation directions
Good wording:
我可以先做快速蒸馏,先看大约 20 条代表内容,判断这个博主值不值得继续学。结果会比较轻:定位、关键词、爆款原因、封面规律、能学和不能照抄。
Standard Distillation
Use when the user wants a knowledge-base asset that can be saved.
Target sample:
- about 50 representative entries when available
- explain that "50" means a balanced sample, not only the 50 highest likes
- if only 40 profile posts can be fetched in the current command, disclose the
real count and keep the target creator sample at that real count unless more posts from the same creator are available
- if the user wants broader context, put confirmed keyword searches or
comparable-account searches into a separate benchmark/reference section; do not count those external results as samples from the target creator
- use note details, comments, or transcripts only to enrich selected entries;
do not count those lookups as additional creator samples
Recommended mix:
| Segment | Count | Purpose |
|---|---|---|
| High-interaction posts | 20 | Understand proven viral mechanisms. |
| Recent posts | 15 | See what the creator is doing now and avoid stale examples. |
| High-save posts | 5 | Extract knowledge value, tutorial value, and reusable structure. |
| High-comment posts | 5 | Read user demand, objections, and follow-up questions. |
| Commercial/series posts | 5 | Understand conversion, recurring columns, and long-term assets. |
If one segment is not available, fill the gap with the most representative remaining posts and say why.
Good wording:
标准蒸馏默认整理 50 条代表内容,不是随机抓,也不是只看点赞最高。我会综合高赞、近期、高收藏、高评论和商业/系列内容,帮你看出这个博主真正值得沉淀的选题、文案结构、关键词、封面风格、爆款公式和你能模仿的地方。
Deep Distillation
Use only after scope confirmation. This can involve many searches or follow-up lookups.
Target sample:
- 100+ entries only when the user explicitly wants a long-term benchmark or
industry library
- may combine profile analysis, keyword searches, selected note details,
comment demand, and multiple related creators
Output:
- creator evolution map
- topic and keyword tree
- title/cover/style library
- content-structure formulas
- comment-demand map
- commercial bridge observations
- user adaptation roadmap
- export-ready Markdown/CSV/Word/HTML package when file tools are available
Good wording:
深度蒸馏适合长期对标或做行业资料库,会比标准蒸馏多看关键词、评论区、系列栏目和商业承接。开始前我会先给你搜索范围,你确认后再继续,不会自动把范围扩到几十个账号或上百条内容。
Creator Distillation Assets
When distilling a creator, extract the following assets. Do not only summarize copy. The value is to turn public content into a user-owned learning system.
- Account Positioning: who this creator is, who they serve, what problem
they repeatedly solve, and what makes them memorable.
- Audience and Demand: who follows, why they save, what they ask in
comments, and what kind of emotional or practical need appears.
- Topic System: high-frequency topics, recurring columns, series
potential, stale topics, and new directions.
- Copy Structure: hook, body sequence, story/proof/tutorial steps, save
point, ending, and any repeatable formula.
- Core Sentences: short learning notes, not full copied scripts. Extract
useful claims, angles, and reusable sentence patterns.
- Keyword System: title keywords, cover keywords, body keywords, audience
words, pain words, scene words, emotional words, and search words.
- Cover Style: color, font, layout, person/object/scene, first-screen
message, keyword placement, series markers, and visual consistency.
- Viral Mechanism: why posts perform: emotional identity, practical save
value, trend, conflict, reverse story, tutorial utility, or comment demand.
- Commercial/Conversion Signals: course, community, product, consulting,
affiliate, store, lead generation, ad/product placement, or enterprise conversion clues when visible.
- Learnable vs Non-Copyable: separate what the user can learn now from
what depends on the creator's face, city, resources, stage, authority, or existing fan trust.
- User Adaptation: how to change the same formula into the user's own
track, stage, resources, and content format.
Recommended output blocks:
- 博主研究卡
- 样本选择说明
- 高频关键词树
- 选题库
- 文案结构库
- 封面风格库
- 爆款机制库
- 评论区需求库
- 可模仿点 / 不能照抄点
- 改成用户自己版本的方向
- 是否建议同步到知识库
Mismatch And Refinement
If the collected results do not fit the user's target, do not force a weak analysis. Explain the mismatch and let the user choose a new filter.
Good wording:
这批内容和你的目标不完全匹配。不是不能分析,而是如果直接沉淀进知识库,后面可能不好用。你更想按哪种方式重新筛?
A. 最近 30 天比较火的内容:看当前趋势。 B. 低粉爆款:适合小白或起步号模仿。 C. 高收藏内容:适合做知识库和教程库。 D. 高评论内容:适合挖用户需求和下一批选题。 E. 商业/引流内容:适合看变现和承接。 F. 封面和标题参考:适合做图文、标题、视觉模板。
If the user chooses a filter, continue with that filter and summarize the new scope before spending more credits.
Light Knowledge Base
Use for 3-10 user-provided links or one small keyword sample.
Output:
- source list
- simple tags
- why it is worth saving
- title/cover/content structure observation
- what the user can learn
- one adaptation idea
Credit stance:
- controlled basic lookups first
- do not open every detail/comment/transcript unless user confirms
Deep Knowledge Base
Use when the user wants a fuller library, cross-keyword trend comparison, full copy/script structure, comments demand, or a larger report.
Output:
- keyword clusters
- low-follower viral examples
- account/reference groups
- title and cover formula groups
- comment demand map
- rewrite directions
- export-ready table / document
Credit stance:
- confirm scope before expanding
- separate basic search objects from deep content objects
- do not silently scan dozens of accounts or notes
Destination And Export Modes
The safest default is to create a universal export package. Direct sync is a convenience layer, not the core promise.
Feishu Mode
Use when the user wants Feishu.
If a Feishu document/wiki/sheets connector or authenticated CLI is available in the current runtime, create:
- one Feishu doc as the readable knowledge-base report
- one Feishu sheet/table as the living asset library when table creation is
available
- source links and public metrics in an appendix/table
If no Feishu tool is available, do not claim direct sync. Generate a Feishu-ready package:
.docxor Markdown report.csvtable for the asset library- optional
.htmlpreview - clear section titles that can be pasted into Feishu
Good wording:
我可以先生成飞书可导入的版本。如果当前 Agent 环境有飞书授权工具,我就直接写入飞书;如果没有,我会给你 Word / Markdown / CSV,你可以导入或复制到飞书。
Local Folder Mode
Use when the user wants a local knowledge base or does not know where to put it.
Recommended folder:
content-library/
- README.md
- sources.csv
- topics.md
- titles.md
- covers.md
- structures.md
- accounts.md
- publishing-review.md
- assets/
Recommended downloadable package:
- Markdown files for long-term reading
- CSV table for sorting/filtering
- HTML preview for easy viewing
- Word report if the user wants to share it
- ZIP folder if the runtime supports creating archives
Good wording:
如果你不知道放哪里,先放本地最稳。我可以给你一个本地知识库文件夹:Markdown 负责长期沉淀,CSV 负责筛选,HTML/Word 负责查看和分享。
Other Knowledge-Base Products
Use for Alibaba, Tencent, Notion, Yuque, or other products.
Do not depend on a specific product import behavior unless the current runtime has a confirmed connector or the user provides the product's import rules.
Default to universal formats:
- Markdown for knowledge-base pages
- CSV for structured tables
- Word for shareable reports
- HTML for preview
- ZIP for download and manual import
Good wording:
阿里、腾讯、Notion、语雀这类知识库,最稳的是先做通用包:Markdown + CSV + Word/HTML。哪一个平台能直接导入,就导入哪一种;以后如果你们要做深度集成,再单独接对应平台的 API 或授权工具。
Chat-Only Mode
Use when the user does not want files yet.
Output a small table and a reusable next prompt:
- current library type
- 3-5 structured entries
- one update prompt
Good wording:
那我先不生成文件,先给你一个轻量版内容资产表。等你觉得结构对了,再导出成飞书、本地文件夹或通用下载包。
Knowledge Base Entry Schema
Use this schema when turning public content into user-owned notes.
Required fields:
| Field | Meaning |
|---|---|
| Source Type | 账号 / 笔记 / 评论 / 关键词 / 自己发布内容 |
| Source Link | 原始链接,方便回看 |
| Title / Creator | 标题和作者名 |
| Sample Segment | 高互动 / 近期 / 高收藏 / 高评论 / 商业或系列 / 用户手动提供 |
| Track | 女性成长 / 职场 / 好物 / 本地生活 / 健康 / 穿搭 / AI / 其他 |
| Audience | 谁会被它吸引 |
| User Pain | 它击中了什么问题、情绪或需求 |
| Save Reason | 为什么值得收藏 |
| Title Formula | 标题用了什么点击理由 |
| Cover Formula | 封面用了什么视觉和信息锚点 |
| Content Structure | 内容怎样展开 |
| Comment Demand | 评论区暴露了什么需求;没有评论数据时留空 |
| Learnable Parts | 可以学什么 |
| Non-Copyable Parts | 不能照抄什么 |
| My Adaptation | 用户自己的改写方向 |
| Status | 学习中 / 可改写 / 已发布 / 待复盘 |
| Tags | 关键词标签 |
| Next Prompt | 下次继续用它能问什么 |
Keep exported tables focused on public links, user-facing labels, summaries, metrics, and learning notes; leave out details the user does not need.
Asset Library Types
Creator Distillation Library
Use when the user wants to learn one creator or turn a creator into a knowledge base.
Capture:
- sample selection logic and actual sample count
- account positioning and memory point
- audience and demand
- topic system and recurring columns
- copy structures and reusable sentence patterns
- keyword system across title, cover, body, comments, and search
- cover style and visual consistency
- viral mechanisms
- commercial or conversion signals when visible
- learnable parts and non-copyable parts
- how the user can adapt the formulas into their own account
Always include a "sample explanation" before the analysis:
本次不是随机抓取。我会说明这个博主样本来自高互动、近期、高收藏、高评论、商业/系列内容中的哪几类;如果该博主可获取样本不足 50 条,我会如实标注实际样本数。关键词搜索结果或对标账号内容只能放在单独的补充参考区,不并入这个博主的代表样本。单篇详情和评论区只用来补充已选样本的结构、用户需求和证据,不把它们算作新增样本。
Do not turn the creator's full copy into a private clone library. Extract structure, formulas, keywords, and learning notes instead.
Topic Library
Use when the user often asks what to post.
Group by:
- audience
- pain point
- scene
- keyword
- title angle
- content format
- difficulty
- commercial possibility
Output should include 10-20 usable topics only after enough examples exist. For a small first pass, give 3-7 topics and say it is the first sample.
Title Library
Use when the user wants headline references.
Capture:
- trigger word
- audience word
- conflict
- result
- time number
- identity label
- emotional word
- search keyword
Always include why the title works, not just the title itself.
Cover Library
Use when the user wants cover inspiration or graphic-note production.
Capture:
- main visual
- first-viewport text
- color / font / layout
- information density
- whether the cover tells the topic in one second
- whether it can be copied by the user at their current level
If cover images are available in results, show them in the final user-facing output when the runtime supports images. If not, describe the cover clearly and preserve the source link.
Content Structure Library
Use when the user wants to learn why content performs.
Capture:
- opening hook
- body sequence
- proof / story / tutorial steps
- save point
- comment prompt
- commercial bridge, if any
Comment Demand Library
Use when the user wants to mine comments.
Capture:
- repeated questions
- objections
- confessions
- buyer intent
- follow-up topics
- words the audience uses themselves
Do not imply full comment collection. Only use available top-level comments and confirmed pages.
Account Reference Library
Use when the user wants benchmark accounts.
Capture:
- account memory point
- direct Xiaohongshu profile link, not only creator ID
- stage and follower level if visible
- recent update status
- whether the account is a main benchmark, local reference, historical
reference, trend observation, or not recommended
- high-performing note patterns
- specific high-interaction works with title, note link, visible metrics, and
why each one is worth saving
- whether the high-performing works are recent or old archive cases
- learnable parts
- dangerous imitation points
- matching user stage
For beginners, prefer same-stage or low-follower viral references over mature large accounts, unless the task is to understand mature positioning.
If the user asks Lingzao to find benchmark accounts for a knowledge base, use benchmark-account-discovery-quality-gate.md first. Do not save long-stale accounts into the main benchmark list without marking them as historical references.
In exported knowledge-base tables, direct IDs may be kept only when useful for future lookups. The visible fields should be direct profile links, note links, titles, metrics, labels, and learning notes.
Publishing Review Library
Use when the user sends their own published notes or data.
Capture:
- title / cover / topic
- visible public metrics
- backend screenshot insights if user provides screenshots
- expected goal
- actual result
- what to keep
- what to change next
If the user does not provide backend data, do not invent exposure, click-through, read completion, or follow conversion. Say they can send screenshots for a deeper review.
Output Formats
Chat Output
For a first answer, keep chat concise:
- 一句话判断
- 这批内容适合沉淀成什么库
- 先整理出的 3-5 个资产
- 你现在可以怎么用
- one next prompt
Do not dump a huge table into chat unless the user asks for it.
Markdown / Word / HTML Report
Use a report when the user asks for a formal deliverable.
Recommended structure:
- 封面:知识库名称、方向、日期、一句话判断
- 总览:这批内容主要在讲什么、适合沉淀成什么资产
- 样本选择说明:实际分析了多少条,分别来自高互动、近期、高收藏、高评论、商业/系列内容中的哪几类
- 标签地图:赛道、关键词、人群、问题、形式
- 代表案例卡:链接、标题、作者、可学点、不可照抄点
- 标题/封面/结构公式
- 可直接改写的选题
- 后续补库规则
- 附录:来源链接、公开指标和样本分组
Word and HTML should match in structure when both are generated. HTML can be a preview; Word is the shareable deliverable.
Download Package
Use when the user wants to download or move the library across products.
Generate the most portable package the runtime can create:
README.md: how this knowledge base is organizedsources.csv: source links, creators, visible metrics, tags, statustopics.md: topic librarytitles.md: title formulascovers.md: cover formulas and screenshot/cover notesstructures.md: content structuresaccounts.md: benchmark account notespublishing-review.md: user's published-note review recordsreport.html: visual preview when usefulreport.docx: shareable version when document tooling is available
Do not create a fake download link. If files are created locally, provide the actual file path. If files cannot be created in the current runtime, provide the copyable structure and say it can be exported when file tools are available.
Spreadsheet / Table
Use when the user wants a living asset library.
Columns:
- 日期
- 来源类型
- 链接
- 标题
- 作者
- 赛道
- 人群
- 痛点
- 标题公式
- 封面公式
- 内容结构
- 可学点
- 不能照抄
- 我的改写
- 状态
- 下次复盘
Follow-Up Hooks
End with one next step, based on the user's action:
If they sent links:
你可以继续发 5-10 条同方向链接,我会按同一个结构补进这份内容资产库,并帮你看哪些适合改写成你的下一批选题。
If they have no links:
你先从收藏夹里挑 3 条最想学的内容发来,我会先给你做一个小样板:选题、标题、封面、结构和你自己的改写方向。
If they want ongoing use:
我可以给你一条“下次更新知识库”的固定指令。以后你每次主动发新链接或关键词,就能按同一套表格继续补,不用重新想怎么问。
If they ask whether it can become Feishu/local knowledge base:
可以先做成飞书/Notion/本地 Markdown 都能用的结构化表格和文档。现在先不承诺自动同步插件,重点是把你的收藏变成能学习、能改写、能复盘的内容资产。
If they have just received a topic/reference/title/cover output:
这批内容已经可以沉淀了。你要不要把它变成一份内容资产库?可以选飞书、本地文件夹,或者先生成 Markdown / CSV / Word / HTML 通用下载包,之后再导入你常用的知识库。
Quality Bar
A good knowledge-base answer should make the user feel:
- 原来我收藏的东西不是乱的,是能归类的。
- 我知道每条内容为什么值得学。
- 我知道哪些只是看起来火,不能直接照抄。
- 我知道下一条可以怎么改成自己的。
- 我下次还可以继续把链接发回来补库。
PK@!X։` +'+'-playbooks/copy-paste-prompt-scope-boundary.md# Copy-Paste Prompt Scope Boundary
Use this playbook when the user asks:
- 怎么问灵造
- 给我一个可以复制的提问
- 帮我找对标账号
- 帮我做一条龙内容
- 帮我做封面/图文/海报
- 帮我复盘这条笔记
- 帮我拆 Brief / 商单
- 帮我全平台分发
- 我想省积分
The goal is to make ordinary users paste a scoped prompt instead of triggering wide searches, repeated account lookups, or multi-platform generation by accident.
Core Rule
Every copy-paste prompt should include:
- 数量: start with 3 accounts, 1 note, 1 content package, or 1 platform set.
- 时间范围: usually recent 15-30 days for updates; recent 30/90 days for
high-interaction works.
- quality gate: still updating, recent high-interaction work, track fit,
stage fit, city/local fit when relevant.
- depth boundary: basic result first; do not open all profiles, all notes,
full comments, full copy, or transcripts unless the user confirms.
- stop condition: if no strict match exists, say so; do not hard-fill weak
results.
- next step: after the first result, ask whether to expand to 5 accounts,
deep breakdown, image generation, or cross-platform packaging.
Do not let users copy vague prompts such as:
- 找一些 AI 博主
- 给我找女性成长对标账号
- 帮我做一张海报
- 帮我全平台同步
- 复盘一下这条笔记
Rewrite them into the scoped templates below.
Benchmark Account Discovery
Default first round:
用灵造帮我找【3 个】小红书对标账号,赛道是【填写赛道】,要求:最近【30 天】还在更新,有至少一条高互动作品。先只给基础结果:主页链接、粉丝量、近期爆款、为什么值得参考。不要深度打开每个账号;方向对了再扩到 5 个。
Follower-range version:
用灵造找【1000-5000 粉 / 5000-2 万粉 / 5-15 万粉】之间的【赛道】账号。找不到严格符合的就告诉我“没有严格符合”,不要用 100 粉或几十万粉账号硬凑。
Local-life version:
用灵造找【城市 + 赛道】相关账号,比如【南宁 本地生活 探店】。要求最近 30 天有更新,有本地关键词或定位,先给 3 个,不要直接搜“本地生活”这种大词;方向对了再扩到 5 个。
Deepen-one-account version:
上面这 3 个里面,我只想继续深挖第【1/2/3】个账号。请你再打开它的主页,分析最近内容、封面、标题、爆款和我能学什么;不要同时深挖 3 个。
If the user only gives a broad keyword, first narrow:
先不要做付费查询,先帮我判断这个赛道应该找什么类型的对标账号。请帮我限定【粉丝量范围、内容形式、城市/是否本地、更新时间、近期爆款要求、首轮搜索数量】,再决定要不要搜索。
Own Account Diagnosis
Homepage-first version:
用灵造分析我的小红书主页,先做基础诊断,不要深度打开全部笔记。重点看:头像昵称、简介、置顶、最近封面标题、内容主线和别人会不会关注。
Recent-content version:
用灵造分析我最近【10 条 / 20 条】笔记,判断我的内容主线是否清楚,哪些标题和封面拖后腿,下一条应该先改哪里;先不要打开评论区或额外找对标。
Peer comparison version:
用灵造把我的账号和【3 个】同赛道、同阶段账号横向对比。请先只找 3 个,不要找 10 个;对比封面、标题、选题、主页记忆点和内容主线。
When public notes are fewer than 10, downgrade the output to a light diagnosis:
- 0 notes: starter setup and homepage positioning.
- 1-2 notes: homepage first impression and single-note feedback.
- 3-5 notes: beginner mini diagnosis.
- 6-9 notes: light account analysis.
- 10+ notes: standard account diagnosis.
- 20+ notes: standard report.
- 40+ notes: deep diagnosis or distillation after confirmation.
One Account Breakdown
Learning-value version:
用灵造拆这个账号为什么值得学习。先看主页和最近【10-20 条】内容,重点判断:是否还在更新、有没有近期爆款、账号人设、内容主线、哪些能学、哪些不能学;不要默认打开全部评论区。
User-fit version:
这个账号适合我模仿吗?请结合我的账号阶段判断,不要只说它哪里好。重点告诉我:我能学标题、封面、选题、表达方式,还是只能当灵感参考;如果它靠脸、资源、城市、团队或大号基础,请直接说不能硬学。
Single Note / Video Breakdown
Graphic-note version:
用灵造完整拆这条图文笔记:标题点击点、封面关键词、每一页结构、正文、评论区需求、为什么爆、我能怎么改成自己的赛道版本;评论区先看 1 页一级评论即可。
Spoken-video version:
用灵造拆这条口播视频:前 3 秒、开头钩子、逐字稿结构、节奏、关键词、评论区需求,以及我能不能用同样结构重写一条;如果要提取完整逐字稿,请先提醒我会增加查看范围。
Vlog/storyboard version:
如果这是 Vlog,请帮我拆成分镜:先按【前 3 秒、前 10 秒、主体 3-5 个镜头、结尾】拆,每个镜头写画面重点、转场、字幕、情绪推进、为什么让人看完。
Keyword To One-Stop Content Package
Minimal package:
用灵造根据【关键词】先做一个最小可用的小红书内容包:1 个首推选题、3 个标题、封面大字、4-7 页图文内容、正文、10 个关键词和置顶评论。先不要搜索太多参考。
Reference-led package:
我给你【1 个链接 / 1-3 张截图 / 1 篇参考内容】,请先拆它的结构,再改成我的账号能发的版本。输出:标题、封面、4-7 页图文、300 字正文、10 个关键词和发布前检查。
Spoken package:
用灵造把这个选题做成【1 条】口播内容:标题、前 3 秒开头、600 字左右逐字稿、300 字小红书文案区、10 个关键词。先不要一次生成多条。
If the keyword is broad, first split into 3 selectable directions before searching or generating.
Cover And Image Generation
Reference-image version:
用灵造参考这张图做一张小红书封面。主题是【主题】,配色想要【配色】,风格参考它的【排版/字体/色调/人物姿势/知识卡片结构】,但内容要换成我的。
No-reference version:
我没有参考图。请先帮我选一种适合【赛道】的封面风格:无人物知识卡片 / 人物大字标题 / 互动帖 / 长文截图式 / 本地生活美食图。先给我 3 个方向,不要直接生图。
Before generating an image, always confirm:
- size/platform: Xiaohongshu 3:4, WeChat cover, square, horizontal, etc.
- people/no people
- color direction
- exact cover text
- whether reference images are enough
- which part of the reference image to learn: layout, font, color, pose, or
composition
If information is missing, ask for it instead of generating a generic image.
Title, Keywords, And Pre-Publish Check
Title version:
用灵造帮我给这篇内容起【3 个】最强标题,不要给 10 个。每个标题请说明:关键词是什么、点击点是什么、适合谁点、是否适合我的账号阶段。
Keyword version:
用灵造给我配【10 个】小红书发布关键词,要求区分:核心关键词、行业词、大众词、场景词。不要超过 10 个,并标出最重要的前 3 个。
Pre-publish version:
用灵造做发布前检查:只看我发来的这条内容,不额外搜索。请检查标题、封面、前三行、正文、10 个关键词有没有自然埋进去;如果不自然,请直接帮我改。
Post-Publish Review
Data-review version:
用灵造复盘我这条笔记的 24 小时数据。我会发:笔记链接、封面截图、正文/脚本、后台截图。请判断点击、完播/读完、收藏、评论和涨粉问题。
High-like-no-follow version:
这条笔记点赞高但不涨粉,请帮我判断:它是不是和账号主线不一致?评论区是真需求还是泛情绪?下一条应该怎么接;评论区先看 1 页即可,不要连续翻页。
Missing-data version:
如果我的后台截图信息不够,请先告诉我还缺哪张截图或哪条链接,不要直接下结论。
Brief And Sponsored Content
Brief version:
用灵造拆这个品牌 Brief。先判断:品牌目标、必须讲的卖点、不能乱说的话、适合图文/口播/Vlog 哪种形式。确认后再出标题、封面和正文。
Soft-ad version:
这个商单怎么写才不像硬广?请先给【3 个内容角度】,每个角度说明适合图文/口播/Vlog 哪种形式;再帮我选最适合我账号的一条,不要直接写 10 个方案。
If references are needed, start with up to 3 recent references, not a broad market scan.
Cross-Platform Distribution
Basic distribution:
用灵造把这篇内容做成基础分发包:小红书、朋友圈、公众号。先不要扩展到所有平台,等我确认后再做知识星球、X、播客、B 站或视频号。
Platform rewrite:
请把这条内容拆成多个平台版本,但先只做【小红书、朋友圈、公众号】3 个基础版本;每个平台只保留适合它的表达方式,不要简单复制粘贴。
Do not generate every platform at once unless the user explicitly confirms the scope.
Unknown Task
When the user is unsure how to ask:
我想用灵造完成【任务】,但我不确定怎么问最省积分。请你先帮我把任务拆成:免费判断、基础搜索、深度搜索三步,并告诉我第一步应该先做什么。
Then answer with:
- free judgment: no paid lookup yet;
- basic search: limited known objects or 3-account starter round;
- deep search: only after user confirms object count, time range, comments,
full copy, transcript, or image generation scope. PK@!X-tc�7�74playbooks/creator-case-general-analysis-framework.md# Lingzao Creator Case General Analysis Framework
Use this playbook when the user sends a creator, account, homepage, note set, or reference case and wants Lingzao to understand "why this creator works" in a way that can generalize across tracks.
This is the parent framework above track libraries, visual libraries, single note breakdowns, benchmark discovery, and comparable-account reports. It should not replace those playbooks. It decides what kind of creator case this is, what is really driving the account, and which details should be studied or ignored.
Core belief:
不是每个博主都按赛道拆。很多博主真正爆的不是赛道,而是一个组合: 人是谁、在哪里、讲什么、给谁看、用什么画面证明、评论区为什么愿意聊、 普通用户能不能把它改成自己的版本。
When To Use
Use this when:
- the user says "这个账号很有意思", "这个博主怎么拆", "这个案例能不能学",
"我给你讲一个账号", "你把这些案例沉淀一下"
- the creator's value is not obvious from a single track label
- the account mixes multiple signals, such as female growth + room scene +
digital devices + reading + humor
- the user is giving A Tian-style qualitative judgment and expects Lingzao to
learn the underlying rule
- the same case could route to multiple playbooks and needs a parent judgment
If the task is only one note link, also use single-note-breakdown-workflow.md. If the task is a full account benchmark report, also use comparable-account-breakdown-report-template.md. If the task is image style, also use visual-reference-style-library.md.
The 12-Layer Creator Case Lens
Always analyze a creator through these layers before giving advice.
1. Surface Track
Name the obvious track, but do not stop there:
- female growth
- career/workplace
- AI tools
- local life / food / travel
- good product sharing
- parenting/family
- reading/study
- creator education
- lifestyle / solo living / room-based account
Then say whether the track label is enough. Often it is not.
Example:
This is not only a reading account. It is a "32-year-old solo-living new narrative + study-room identity proof + digital-device lifestyle" account.
2. Memory Anchor
Ask what users remember after leaving:
- a person: age, gender, face, voice, profession, relationship, stage
- a scene: room, city, shop, car, desk, kitchen, office, classroom
- an object: books, e-reader, tablet, chair, food, product, tool
- a sentence: "才32岁谁懂", "不赚钱当什么博主", "看完这四页..."
- a contradiction: low follower but professional, small room but strong system,
ordinary material but surprising use
If the account has no memory anchor, say it clearly.
3. New Narrative
Judge whether the account points to a new way to live, work, consume, learn, or make money.
Common new narratives from A Tian's examples:
- 30+ is not the end; "才32岁,人生才刚开始"
- not married / no children can still be rich, full, and ownable
- a small room can become a complete content world
- one can use a small amount of money to travel and explore life
- an ordinary woman can become clearer, stronger, and closer to production
- AI can turn one person into a more efficient creator/workflow operator
- local life can be moved across cities: learn shooting/topic method elsewhere,
then translate it into the user's city
- ordinary objects or scenes become interesting through person/material
contrast
This layer matters because many accounts do not win by "tips"; they win by showing users a life direction.
4. Proof System
Identify what proves the narrative:
- room proof: books, desk, bed, closet, chair, screens, notes, lamp
- body/face proof: expression, confidence, age, authority, humor
- result proof: before/after, workflow output, clear screenshots, finished work
- comment proof: users ask for tutorials, say "收藏了", ask "怎么做到的"
- routine proof: repeated posting from the same angle or same scene
- money/product proof: visible offer, store, course, paid material, ad scene
Warn when the proof is not copyable.
5. Audience Desire
Name the user desire being activated:
- I want to live like this.
- I want to avoid this mistake.
- I want this shortcut.
- I want this list because I do not want to search.
- I want to know whether people like me are also stuck.
- I want to learn this skill/tool.
- I want to compare my life with this person's life.
- I want to comment because the prompt names my hidden opinion.
Do not only say "the audience likes it". Say what desire is touched.
6. Content Engine
Identify the repeatable content engine:
- story engine: personal experience, emotional turning points, relationships
- routine engine: daily room, daily reading, daily work, daily cooking
- research engine: search, collect, filter, summarize, rank
- tutorial engine: step-by-step tools, workflows, prompts, operations
- interaction engine: ask questions and turn comments into the next post
- list engine: recommended accounts, places, products, tools, books
- transformation engine: before/after, from ordinary to stronger, from chaos to
system
- local translation engine: borrow topic/shooting method from other cities and
adapt to the user's city
If there is no repeatable engine, it may be a one-off viral post rather than a creator case worth copying.
7. Format Engine
Classify how the content is packaged:
- face-led video cover
- text-dense screenshot graphic note
- interaction prompt cover
- room-as-identity lifestyle cover
- no-person knowledge card
- Vlog / storyboard
- spoken video /口播
- local-life photo cover
- product/ecommerce conversion card
- list/collection post
Use visual-reference-style-library.md for image style and single-note-breakdown-workflow.md for note type logic.
8. Comment Demand
Judge comments by meaning, not quantity.
High-value comments:
- "求教程"
- "这是什么软件"
- "太干货了,收藏了"
- "怎么做到的"
- "哪里买"
- "下一期讲..."
- users telling detailed similar stories
- users debating a real decision or life stage
Lower-value comments:
- only "太棒了"
- only emoji
- generic praise with no demand
- comments that look purchased or irrelevant
For interaction posts, comment volume is the product. For diagnosis, tutorials, or benchmark accounts, comments should reveal unmet demand.
9. Commercial Entry
Identify the commercial path without forcing one:
- natural ads: chair, tablet, e-reader, lamp, desk, screens, bedding, tools
- affiliate/good-product sharing
- course / paid material / templates
- community / cohort / consultation
- store, local service, restaurant, travel, hotel, shop
- brand cooperation
- precise lead generation
- productized service
Use monetization-path-judgment-library.md when the user asks about making money. Do not only say "can receive ads".
10. Hidden Resources
Always separate visible formula from hidden resources.
Common hidden resources:
- previous creator/operation experience
- a mature account or other platform traffic
- savings, property, rent freedom, free time
- city/location advantage
- strong camera/editing ability
- device resources and shooting setup
- reading ability, research ability, or domain expertise
- humor, speaking ability, relationship story, family story
- product supply, team, business relationship
This prevents users from copying the surface and failing.
11. Learnable / Not Learnable / Adaptable
Output three buckets:
Learnable:
- title angle
- opening hook
- cover structure
- topic framing
- series structure
- comment reuse
- room-as-proof / scene-as-proof
- keyword selection
- page rhythm
Not directly learnable:
- face, age, identity, relationship, money, city, devices, room, team, mature
trust, platform history, extreme experience
Adaptable:
- replace room with user's own real scene
- replace city with user's city
- replace professional tool with user's actual tool
- replace relationship/life stage with user's real life stage
- turn video into graphic note if the user lacks video ability
- turn one long video into multiple graphic notes
- turn a dense tutorial into a text-dense screenshot note
12. User Fit And Next Test
Always end with a test, not only analysis.
If the user's own account is unknown:
- tell how 小白 / 起步号 / 1-3万粉 / mature account should learn differently
- invite them to send their homepage or recent notes for fit check
If the user's account is known:
- give 3 tests:
- title direction
- cover/page format
- content structure
- why it fits their current resources
Creator Archetype Library
Use these archetypes to classify cases. A creator can belong to multiple archetypes.
A. New Life Narrative Creator
Signal:
- offers a new way to live or make sense of age, marriage, children, city,
work, money, freedom, or self-consistency
Examples:
- "才32岁,人生才刚开始"
- solo living with a full room and reading life
- small-budget travel as life exploration
- happy family / happy child / simple female happiness
- lonely travel or melancholic freedom
Key analysis:
- what old narrative is being rejected
- what new narrative is being offered
- what visible proof makes the new narrative believable
B. Room / Space As Identity Creator
Signal:
- one room, study, kitchen, car, shop, desk, or city corner repeatedly becomes
the account's world
Learn:
- repeated angle
- memory objects
- life-stage title
- series follow-up
- natural ad objects
Risk:
- do not copy the room if the user lacks a real repeatable space
C. Low-Follower High-Operation Creator
Signal:
- low followers but professional cover, title, structure, editing, or workflow
- likely a new account created by someone with prior operation experience
Learn:
- how the content quickly enters a new traffic pool
- cover/title/page rhythm
- exact topic packaging
Risk:
- low follower does not mean low skill
- do not assume it is easy
D. Face-Led Identity Creator
Signal:
- face, expression, authority, age, or performance is central
Learn:
- what the face contributes: expression, identity, authority, contrast, proof
Risk:
- if the user cannot keep showing face or speaking, switch to graphic notes
E. Interaction Prompt Creator
Signal:
- simple question/emoji/screenshot-like cover, comment section very active
Learn:
- question design
- trigger words
- emoji-title match
- account-relevant interaction
- turning comments into next posts
Risk:
- traffic may not convert if unrelated to account mainline
F. Text-Dense Screenshot Creator
Signal:
- dense article/X/Weibo/public-account/memo screenshot style
Learn:
- keyword extraction
- first-page scanning
- page-two proof
- repeatable visual system
Risk:
- unedited screenshots and walls of text are weak
G. High-Production Creator
Signal:
- film-like visuals, strong editing, camera language, polished food/product
photography, or professional tutorial production
Learn:
- script outline, rhythm, title, cover, proof sequence
Risk:
- do not recommend full imitation unless the user has camera, editing, team,
location, or domain ability
H. List / Collection / Information Source Creator
Signal:
- "5 个宝藏博主", "10 家店", "30 元以下", "我最喜欢的..."
Learn:
- selection logic
- category framing
- short reason for each item
- save-worthy structure
Risk:
- lists without selection standards become generic
I. Workflow / Tool / AI Operator Creator
Signal:
- teaches tools, prompts, agent workflows, code, design, data, self-media
production, or productivity
Learn:
- input -> operation -> result
- proof screenshot
- before/after
- beginner path
Risk:
- do not recommend tools the user cannot actually operate or explain
J. Local Translation Creator
Signal:
- the method can move across cities or scenes, such as food, travel, local
life, shop visits, city lists
Learn:
- shooting method
- title formula
- route/category logic
- user demand
Risk:
- if the user's city/audience is different, translate the method, not the exact
location
Default Output Shape
For a chat answer, keep it clear and useful:
- 一句话判断
- 这个博主真正的账号原型
- 它为什么能被记住
- 它的爆款机制
- 可学的 3-5 个点
- 不能照抄的 3-5 个点
- 用户不同阶段怎么学
- 改成用户自己的 3 个测试方向
- 一个具体下一步
Reference Case Memory
Treat A Tian's examples as pattern sources, not copy templates:
- female growth keywords often need to separate "I am lost and want to learn"
from "I have handled life well and want to share"
- 35+ career content must distinguish fear-before-35 from survival-after-35
- good-product sharing must be vertical by category and supported by real
selection/shooting ability
- AI tools must match the user's identity and actual tool ability
- local life can borrow topic/shooting methods from other cities and translate
them into the user's city
- tourism/travel content is expensive if it requires constant locations,
materials, and speaking ability
- low-follower viral notes can be useful only after checking operation skill,
comment demand, and whether it is a one-off
- comment quality matters more than comment count
- collection/save-heavy posts often solve search cost or future-use needs
- face-led covers need expression/identity/authority/proof, not merely a face
- interaction prompt covers need account-relevant comment desire
- text-dense screenshot notes need first-page keyword scanning
- room-as-identity accounts need a visible new life narrative
Do Not
- Do not reduce a creator to a niche label.
- Do not say "worth learning" without naming what can and cannot be learned.
- Do not let users copy mature-account results without checking early path.
- Do not confuse a viral one-off with a repeatable content engine.
- Do not recommend high-cost formats to beginners just because the reference
looks successful.
- Do not ignore comments, homepage consistency, update recency, and hidden
resources.
- Do not let analysis end without a next test.
PK@!X�GI 5 51playbooks/draft-rewrite-and-benchmark-workflow.md# Lingzao Draft Rewrite And Benchmark Workflow
Use this asset when the user sends their own copy, script, note draft, title list, caption, graphic-note outline, or multiple drafts and asks Lingzao to:
- 改写
- 优化文案
- 改成小红书风格
- 模仿某个对标账号
- 按某条爆款公式写一版
- 有固定框架,帮我填充内容
- 吃一下这几篇对标文案,按类似风格写
- 每次对标文案不一样,但我想稳定仿写
- 帮我看看这段能不能发
- 给我改 5 条 / 10 条内容
This is not a fifth visible entry. It is an execution layer after beginner account-start, own-account diagnosis, comparable-account breakdown, or viral-note breakdown.
Core Principle
Do not only rewrite the text.
First diagnose why the current draft may not work, then give a usable version, then create a return loop.
Before returning the usable Xiaohongshu version, run xhs-platform-management-risk-baseline.md and xhs-content-compliance-risk-gate.md. If the user's draft or benchmark copy contains off-platform diversion, WeChat/private-contact guidance, comment-gated resources, product-first selling, exaggerated promises, or unsupported sensitive claims, do not polish those lines into the final copy. Mark the risky wording, explain briefly, and replace it with a safer platform version.
Output should help the user understand:
- 这段内容现在的问题在哪里
- 这条内容是给谁看的,谁会点,谁大概率不会点
- 哪一句最值得保留
- 标题/封面/开头/结构/收藏点怎么改
- 文案写完后,10 个发布关键词应该怎么配,以及关键词有没有自然出现在标题、封面和正文开头
- 如果是模仿对标账号,学的是结构、选题、情绪、标题,还是视觉表达
- 如果用户给了对标文案或固定框架,先拆成结构、风格、槽位和不可照抄点,再填充用户自己的内容
- 如果用户不知道怎么做图,要把内容转成 4 页或 7 页小红书图文结构
- 发出去以后应该看什么数据
- 下一步怎么继续回来复盘
Intake Rule
If the user sends only a draft and says “帮我改”:
Proceed directly. Do not ask a long questionnaire.
Assume they want a Xiaohongshu-ready rewrite unless they specify another platform.
Ask at most one light question only when it changes the output:
- If format is unclear: 图文还是口播?
- If commercial goal matters: 想涨粉、收藏、引流,还是卖产品?
- If they mention a reference account but do not provide it: 可以把对标账号或爆款链接发来,我会按它的结构帮你改。
If they do not answer, continue with a safe default: graphic-note style for Xiaohongshu, with title, cover text, body structure, and posting feedback loop.
If the user says they do not know how to make images or page design, use reference-image-graphic-note-workflow.md. Ask whether they have 1-3 reference images. Based on the reference image, produce page structure, page copy, visual direction or fallback image-generation instructions, body copy, and comment guidance.
If the user says the draft is done and asks for keywords or final posting checks, use publishing-keyword-design-check.md. This is a publishing package step, not a full rewrite.
If the draft has no clear target reader, use audience-persona-fit-check.md before rewriting. If enough clues are present, infer the audience directly; if not, ask one light question about who this is for or ask the user to send 3-5 liked/saved/reference notes for reverse inference.
If the user only asks for title, cover title, title optimization, or which title is more clickable, use xhs-title-design-check.md. Give only the 3 strongest title options by default, each with keyword anchor and click reason. Do not generate a 10-title pool unless the user explicitly asks for a title bank.
If the user says they have a template, framework, benchmark copy, or several reference copies and wants Lingzao to "fill content", "仿写", "套框架", "风格差不多", or "不要每次重现同一个错误", do not rewrite directly. Use the benchmark-copy template extraction flow below first, then produce the adapted copy.
Output Structure For One Draft
Use this order:
- 一句话判断:这段内容最大问题是什么,或者最强点是什么
- 用户画像判断:这条给谁看,谁不太会点
- 保留点:哪句话、哪个经历、哪个观点值得留
- 需要改的地方:标题、开头、结构、情绪、具体性、收藏点、商业承接
- 小红书风控:公开价值是否优先、产品名是否需要后置、是否有站外引流/加微信/诱导评论/敏感夸大表达
- 改写版本:give the revised copy
- 配套内容:3 个最强标题 + 1 套封面文案 + optional graphic-note pages or 1-minute spoken script
- 发布后复盘入口:ask user to send note link/data after publishing
Do not put the revised copy in a copyable block unless the user explicitly asks for “给我一段可以直接复制的文案”. Normal Markdown is usually enough.
If User Does Not Know How To Make Images
Do not keep talking about abstract layout principles.
Ask directly:
你有没有参考图片?可以发 1-3 张你喜欢的小红书封面或图文截图。我会根据参考图片的排版、信息层级和视觉风格,帮你做几版小红书内容,你先去发发看。
After receiving a reference image, output:
- 4 页轻量测试版
- 7 页完整教学版
- 每页标题/页面文字
- 每页图片 prompt 或版式说明
- 正文文案
- 评论区引导
- 发布后复盘入口
If image generation is not connected, say clearly:
我可以先给你每一页的文案、版式和图片 prompt;如果接入做图能力,下一步就可以直接生成图。
Rewrite Style
Use A Tian's operating taste:
- 更具体
- 更像真实人说话
- 不要空泛鸡汤
- 不要“你一定要相信自己”这种虚话
- 把抽象观点落到一个场景、一个反差、一个选择、一个痛点
- 标题要有关键词和点击理由
- 封面要让用户一眼知道这条解决什么问题
Prefer:
- 真实经历 + 具体问题 + 一句判断
- 反差场景 + 具体技能 + 尝试过程
- 用户正在经历的困惑 + 一个可执行动作
- 账号主线里的一个栏目
Avoid:
- only making the text smoother
- adding empty emotional words
- making every draft sound like a generic励志号
- copying the benchmark creator's sentences directly
If User Wants To Imitate A Benchmark
Do not copy surface style only.
Separate:
- 可学结构:标题公式、封面信息、开头、转折、证明、结尾
- 可学情绪:爽感、共鸣、危机感、松弛感、反差感
- 可学选题:它解决什么用户问题
- 不能照抄:经历、外貌、职业、城市、产品、粉丝基础、成熟人设
- 改成用户版本:what the user can say truthfully
Good output pattern:
这个对标不是让你学它的语气,而是学它的结构:先把一个用户熟悉的痛点说出来,再给一个具体场景,最后落到一个可收藏的方法。你这版目前只有观点,没有场景,所以用户看完会觉得“有道理”,但不会想收藏。
Benchmark Copy Template Extraction Flow
Use this when the user provides one or more benchmark copies, viral-note bodies, sales scripts, caption templates, or a fixed writing framework and asks Lingzao to fill in new content with a similar style.
Core rule:
Do not jump straight into imitation. A weak model often repeats the same surface wording, copies phrases, or keeps making the same structural mistake because it never separated the template from the original content. Lingzao must first turn the reference into a reusable writing machine.
Before writing, extract:
- 结构骨架
- Opening hook: pain, curiosity, identity, result, contradiction, or scene.
- Middle route: story, list, contrast, method, proof, or opinion chain.
- Ending action: save, comment, follow, product, link, or next-step prompt.
- 风格参数
- Tone: sharp, gentle, funny, teacher-like, intimate, observational, or
practical.
- Sentence shape: short punchy lines, long narrative paragraphs, numbered
dry goods, question-answer rhythm, or spoken pauses.
- Emotion level: calm, anxious, excited, self-deprecating, confident, or
comforting.
- 可替换槽位
- Industry, audience, product, city, life stage, pain, result, case,
proof, price, timeline, tools, personal experience, and CTA.
- Mark which slots are required and which are optional.
- 不能照抄的部分
- Unique life experience, creator identity, private data, exact sentences,
brand claims, exaggerated results, screenshots, comments, or numbers that are not true for the user.
- 用户真实内容补全
- Use the user's own topic, account direction, product, experience,
customer pain, city, or examples.
- If missing, infer a safe default and state the assumption briefly instead
of blocking the rewrite.
- 质量闸门
- Not copied: no distinctive sentence from the benchmark remains.
- Not empty: each key paragraph has a concrete scene, example, or action.
- Not off-track: it fits the user's audience, account stage, and format.
- Not repetitive: it does not reproduce the same failed line, hook, or CTA
from previous attempts.
- Publishable: title, cover copy, opening, body, keyword direction, and next
step agree with each other.
If the user gives only benchmark copy and no user material, ask at most one light question if possible:
你想把这个框架套到什么主题/产品/账号方向上?如果你还没想好,我可以先用一个安全默认方向给你示范一版。
If the user does not answer, produce a demonstration version and clearly label the assumption.
User-facing output pattern:
- 我先把对标文案拆开,不直接照着写
- 模板骨架
- 风格参数
- 可替换槽位表
- 不能照抄的地方
- 你的版本:1-3 个 publishable drafts
- 自检:哪里像、哪里不像、哪里还需要用户补真实素材
Slot table format:
| 槽位 | 对标里怎么写 | 你的内容应该填什么 | 是否必须 |
|---|---|---|---|
| 用户痛点 | ... | ... | 必须 |
| 具体场景 | ... | ... | 必须 |
| 可信证据 | ... | ... | 建议 |
| 结尾动作 | ... | ... | 必须 |
Good user-facing explanation:
可以,但我不会直接照着它仿写。直接仿写最容易只学到表面语气,最后变成每一版都像、但每一版都空。我会先把它拆成“结构骨架 + 风格参数 + 可替换槽位”,再把你的主题、产品或经历填进去。这样出来的东西会像它的打法,但不会变成抄它的句子。
If User Sends Many Drafts
When the user sends 5-10 drafts, do not rewrite them one by one blindly.
First group them:
- 哪些可以发
- 哪些需要合并成一个系列
- 哪些选题太散
- 哪些适合做图文
- 哪些适合做口播
- 哪些可以商业承接
- 哪些暂时不值得改
Then output a compact table:
| 原方向 | 判断 | 改法 | 推荐形式 | 下一步 |
|---|
After the table, rewrite only the top 1-3 most promising pieces unless the user asks for all.
Good ending:
你这类内容以后不用一条条临时想怎么问。你可以把常看的对标博主、关键词和想看的范围告诉我,我帮你整理成固定搜索模板;以后你主动发起这条模板,就能按同一结构继续整理参考选题、标题方向和可改写公式。
If User Sends A Published Note
If the user sends a published note link or says “我已经发了”:
Route to post-publish-data-review-workflow.md.
If backend screenshots are provided but the content itself is missing, first ask which note the data belongs to and request the note link, title/cover, script, caption, or graphic-note page text. Do not judge screenshots without content context.
Good ending:
这条可以先等 24 小时做第一次复盘。到时候你把笔记链接、标题封面、脚本/正文和后台截图发来,我可以继续判断它是曝光不够、点击不够、读完/完播不够,还是关注转化不够。
If User Wants Recurring Rewrite Support
Offer fixed tracking when:
- user sends many drafts
- user repeatedly asks for references
- user says they do not know what to write every day
- user wants to imitate a few creators long-term
Possible fixed tracking:
- 每天早上看 1-3 个关键词的新热内容
- 每天下午整理低粉爆款
- 主动查看 5 个对标博主近期新笔记
- 每周输出 7 天选题 + 标题 + 封面文案
- 每周复盘用户自己的已发布笔记
Credit reminder:
If recurring tracking requires searches, say that Lingzao will confirm the scope before searching. Basic search can look at titles, covers, metrics and links; deep search reads full body, comments, subtitles or transcripts.
Final Continuation
End with one next action.
Choose one:
- 发出去以后,把链接、后台截图、标题封面和脚本/正文发我,我再按 24 小时复盘帮你看。
- 你把对标账号/爆款链接发来,我按它的结构帮你改一版。
- 你把这 10 条里最想发的 3 条标出来,我先帮你做第一轮精修。
- 你把常看的博主和关键词发来,我可以帮你做固定搜索模板。以后你主动发起这条模板,就能按同一结构拿到参考选题和改写公式。
PK@!X9��<hOhO5playbooks/image-generation-agent-integration-guide.md# Lingzao Image Generation Agent Integration Guide
Use this guide when Lingzao needs to expose image generation to domestic Agent runtimes, CLI wrappers, or other non-OpenAI-native environments.
This guide is model-agnostic on purpose. Keep engine/model details behind Lingzao's user-facing flow unless the product explicitly decides to make them public. The user-facing promise is:
- Lingzao can make Xiaohongshu covers and graphic notes.
- Lingzao can make WeChat article image packs.
- Lingzao can make product/course/service cards.
- Lingzao can use reference images without copying them.
- Lingzao can diagnose ugly generations and repair them.
What Should Be Added To PR / Implementation
Implementers should wire image generation as a stable Lingzao capability, not as a prompt-only field.
Minimum Agent-facing capability:
- command/tool name:
generate-imageor equivalent - input: structured generation brief
- output: image URLs/files plus metadata and repair notes
- errors: friendly user-facing guidance
Minimum supported user flows:
- topic -> cover
- topic -> 4-page Xiaohongshu graphic note
- topic -> 7-page teaching graphic note
- reference image + topic -> adapted cover/graphic note
- article draft -> WeChat 1 cover + 3 in-article images
- product/course/service info -> conversion card set
- ugly image -> diagnosis + repair generation
- account links/recent notes + interaction goal -> interaction prompt cover
plus account-relevant comment topics
- long draft/research/transcript -> text-dense screenshot graphic note with
keyword extraction and page rhythm
- room/desk/home-scene material + life-stage topic -> room-as-identity
lifestyle cover and series direction
Stable Agent Call Contract
Domestic Agents should not have to understand model parameters. They should pass a compact, structured brief.
Pre-Generation Clarification Gate
Domestic Agent wrappers must not treat a one-sentence poster request as a ready generation brief. If the user only says "给我做一张某某海报图", "帮我做个封面", or "做一张好看的图", the wrapper should pause before creating a paid generation job and ask for visual anchors.
Ask these first:
- 你有没有参考图?可以发 1-3 张你喜欢的封面/海报/图文截图。
- 你有没有想要的配色?比如明亮白底、绿色清爽、黑金高级、蓝色科技感。
If those are missing, ask at most one additional route-changing question: platform/size, exact on-image text, people/no-people, or material/product photo. Do not expose this as a long design form. The goal is to prevent low-information prompts from producing generic or ugly paid images.
Minimum viable brief before generation:
- topic or theme
- platform/format or aspect ratio
- visual direction: reference image, color palette, style group, or real
material
- exact on-image text or a clear statement that Lingzao should choose the text
If the minimum brief is not met, return next_action: send_reference_or_color or a similar friendly state instead of starting generation.
Recommended input fields:
platform:xhs,wechat,product,otherformat:cover,graphic_4,graphic_7,wechat_1_3,product_setstyle_group: one of the style groups in
visual-reference-style-library.md
topicaudienceimage_purpose:click,save,teach,explain,convert,article,
comment
aspect_ratiooutput_countmain_visual_subjecton_image_text: short title, subtitle, labels, page textmaterials: optional reference image, face photo, product photo, food/place
photo, screenshot, logo, article draft
reference_mode:structure,style,layout,color,nonenegative_constraintsquality_gate: whether to review and repair after generation
Recommended output fields:
images: URL/file/path listformatstyle_groupbrief_usedquality_review: pass/fail and reasonsrepair_brief: present when the first generation is weakcaption: for Xiaohongshu packages when relevantkeywords: 10 publishing keywords when relevantnext_action: post, regenerate, send reference image, or send 24h data
If the generation result contains only a plain image URL, Lingzao should wrap it with the metadata above before showing the result to the Agent/user.
Good Image Standards
A good Lingzao image is not simply beautiful. It must be useful for the publishing task.
Good Xiaohongshu Cover
- The topic is understandable in one second.
- The largest title is short, readable, and carries a keyword or click reason.
- There is one clear visual subject or one strong knowledge-card structure.
- The cover matches the track: local life, food, AI tool, female growth,
product, course, or WeChat article.
- The image has a save/click reason, not only decoration.
- Text hierarchy is clear: title, subtitle, labels. No dense paragraphs.
- The style looks like content a Xiaohongshu user would click, not a generic AI
poster.
Good Face-Led Video Cover
- The person's face, expression, gesture, or identity matches the keyword.
- The keyword is obvious and creates a click impulse, such as self-media
money, fast AI learning, time, immediate gain, expert prediction, or child perspective.
- If the person is not visually distinctive, the cover adds information density
through top-bottom split screen, four-grid, diagonal cut, or proof scene.
- The proof scene supports the claim: editing timeline, software UI, output
preview, street scene, classroom, product, or other concrete context.
- The user's homepage can support more face-led content, not only one random
face cover among unrelated graphic notes.
- The cover gives viewers a reason to believe there will be similar content
after they follow.
Good Interaction Prompt Cover
- The cover asks one question or throws one prompt that a specific audience
wants to answer.
- The emoji/sticker/yellow-face expression matches the title emotion; it is not
a random decoration.
- The highlighted words are the comment triggers, not random emphasis. Examples
include "夯爆了", "姐妹迷上", "有意思", "非常帅", a city name, a track word, or a community identity.
- The topic connects to the user's recent notes, city, track, audience, or next
content plan.
- The image is simple enough to understand in one second, but the comment
question is sharp enough that users want to open the comment section.
- The result includes not only the cover, but also 5-10 related interaction
topics the user can rotate without breaking the account direction.
Good Text-Dense Screenshot Graphic Note
- It looks like a useful article/platform screenshot, but it has been edited
for Xiaohongshu scanning.
- Page 1 can be understood in 1-2 seconds: topic, audience, keyword, and benefit
are visible immediately.
- Users can scan the page by keywords instead of reading every line. The biggest
keywords are bolded, highlighted, underlined, colored, or placed at strong line starts.
- The first two pages carry the click/save/follow reason: page 1 makes the
promise; page 2 proves there is substance.
- The dense text comes from real distilled content: outline, workflow, conflict,
list, numbers, observation, or examples. It is not filler paragraphs.
- The style is repeatable for account starting: same background family, font
hierarchy, highlight color, title zone, and body rhythm.
Good Room-As-Identity Lifestyle Cover
- The room is used as proof of the creator's choices, not as random background.
- The title names a life-stage reversal, lifestyle promise, or new narrative:
"才32岁", "独居幸福感", "自己的房间", "人生才刚开始", or similar.
- The visible objects support the story: books, desk, tablet, e-reader, screens,
chair, bed, lamp, notes, clothes, or other daily-use items.
- The cover can become part of a series because the homepage has a repeatable
room angle and memory anchor.
- Commercial objects can appear naturally only when they belong to the life
scene, such as chairs, tablets, e-readers, lamps, screens, desk tools, books, organizers, or bedding.
- The generation or visual direction separates what ordinary users can learn
from what is hard to copy: real space, reading habit, device resources, previous operation ability, humor, relationship story, saved money, or other hidden resources.
Good Graphic Note
- Each page has only one job.
- The page order is clear: cover -> problem -> method -> action.
- The user can save it and come back later.
- It has enough structure: steps, checklist, comparison, examples, or workflow.
- Inner pages are not just resized covers.
Good WeChat Image Pack
- 1 cover + 3 horizontal images by default.
- The cover carries the article promise.
- The three inner images are simpler than the cover and support the article:
problem, method, action/result.
- Official Lingzao visuals use brand style only for official Lingzao content.
Good Product/Conversion Card
- It says who it is for.
- It explains what problem it solves.
- It shows what is inside.
- It does not invent price, scarcity, guarantee, testimonial, or income result.
What Is Not A Good Image
Reject or repair these:
- It is pretty but users do not know why to click.
- It has too many words on the cover.
- It looks like a stock poster or generic AI poster.
- It uses one muddy color palette without hierarchy.
- It has fake UI, fake screenshots, fake data, fake metrics, or fake comments.
- It uses Lingzao/A Tian logo on ordinary user content.
- It copies a reference image too directly.
- It ignores the user's material and invents a fake person/product/place.
- It uses a face-led cover when the person has no expression, no identity
signal, no authority, no proof scene, and no plan to keep showing up.
- It changes a graphic-note account into face-led content only because one
viral reference had a person on the cover.
- It uses an interaction-post cover with a random emoji that does not match the
question.
- It creates a viral-looking interaction prompt that is unrelated to the
account's existing or planned content.
- It copies a stale interaction topic without checking whether people are still
discussing it.
- It gets comments but gives the user no follow-up content path.
- It turns text-dense screenshot style into an unreadable wall of words.
- It uses unedited screenshots without extracting keywords or rebuilding the first
page for 1-2 second scanning.
- It hides the actual topic in paragraph three instead of making the keyword
visible on page one.
- It invents fake platform metrics, timestamps, comments, account names, or
engagement numbers to imitate a screenshot.
- It treats a room-as-identity cover as ordinary interior decor and loses the
life-stage narrative.
- It creates a beautiful room that the user cannot actually keep showing, so
the account has no repeatable memory anchor.
- It ignores hidden non-copyable resources behind a room account, such as
devices, books, money, free time, operation experience, or personal story.
- It turns an educational note into a hard sales ad.
- It makes local-life/food/travel content without real place/food/route
material unless the user is explicitly making an AI-assisted knowledge card.
- Chinese text is unreadable, distorted, or too small.
How To Use Reference Images
Reference images should be treated as visual evidence, not a template to copy.
Before generation, extract:
- title placement
- main subject position
- color relationship
- information density
- page rhythm
- label/sticker/card system
- why the image is clickable
- what is creator-specific and cannot be copied
Borrow:
- composition logic
- hierarchy
- card structure
- contrast pattern
- page rhythm
Do not borrow:
- original title
- exact layout
- logo
- author's face or private material
- product photos
- signature visual identity
- full copy
Good user-facing wording:
我会参考这张图的排版、信息层级和点击理由,但不会照抄它的文字、logo、作者素材和完全相同构图。
Known Image Generation Bugs / Limits
Treat these as normal generation limitations and route around them.
1. Chinese Text Instability
Symptoms:
- wrong Chinese characters
- distorted text
- tiny unreadable labels
- inconsistent page numbers
Mitigation:
- keep the largest title short
- reduce label count
- put long copy in caption or page text, not inside the image
- if exact text rendering is critical, generate a clean background/layout first
and use a deterministic editor when available
2. Crowded Covers
Symptoms:
- too many modules
- all text has the same weight
- no clear visual focus
Mitigation:
- reduce text by 40-60%
- one big title, one subtitle, 2-3 labels maximum
- move details to inner pages
3. Generic AI Poster Look
Symptoms:
- pretty but empty
- poster-like gradient
- no Xiaohongshu information structure
Mitigation:
- add Xiaohongshu-specific structure: page number, title tag, checklist cards,
bottom action bar, arrows, before/after lane, save reason
4. Reference Over-Copy Or Under-Follow
Symptoms:
- generated image is too similar to the reference
- generated image ignores the reference entirely
Mitigation:
- specify
reference_mode: structure/style/layout/color - state which parts to borrow and which parts to change
- avoid asking for "same style" without decomposition
5. Material Hallucination
Symptoms:
- fake product
- fake place
- fake app screenshot
- fake person
Mitigation:
- if no real material exists, choose no-person knowledge card
- never invent user-specific product/place/person details
6. Weak Face-Led Cover
Symptoms:
- ordinary selfie with no expression or identity
- face does not match the topic keyword
- title says a strong claim but the image gives no proof
- user only has one face-led note while the rest of the account is pure graphic
notes, causing weak account recognition
Mitigation:
- use split screen or four-grid to add proof and content density
- make identity visible in text: role, age, city, profession, authority, stage
- if expression/authority/proof is weak, switch to no-person knowledge card
- do not advise a full face-led direction unless the user can keep producing in
that style
7. Weak Interaction Prompt Cover
Symptoms:
- simple text and emoji, but no real comment impulse
- emoji expression does not match the title emotion
- highlighted words are decorative rather than the actual trigger words
- topic is unrelated to the user's account, so the comments do not convert into
useful followers
- prompt copies an old viral format that users have already seen too often
- the post may get lively comments, but the user has no next normal post to
continue the account mainline
Mitigation:
- ask the user to send existing account links, recent 5-10 notes, or topics
they want to keep posting
- map the account lane first: city, track, audience, content format, and next
1-3 normal posts
- generate interaction prompts from the lane, not from random viral examples
- pair the cover with a follow-up plan: after the comments come in, summarize,
answer, or turn the best comments into the next post
- choose the emoji/sticker after the title is fixed, not before
8. Weak Text-Dense Screenshot Graphic Note
Symptoms:
- users cannot tell the topic in the first 1-2 seconds
- page 1 looks like an unedited screenshot or cropped article with no designed entry
- too much body text has the same weight
- no keywords are bolded, highlighted, or placed where eyes naturally land
- page 2 does not deepen the promise; it repeats page 1 or becomes generic
- generated Chinese is tiny, distorted, cut off, or not worth reading
Mitigation:
- extract before designing: topic, audience, 3-5 keywords, strongest sentence,
and 4-page/7-page outline
- redesign the first page as a scanning cover, not a literal screenshot
- use one headline, 2-3 highlighted keyword clusters, and shorter paragraphs
- make page 2 the proof/substance page: framework, data, contrast, workflow, or
key example
- move long explanation to the caption or later pages
- if exact long Chinese text must be preserved, use deterministic editing after
generation instead of asking the image model to render all text perfectly
9. Weak Room-As-Identity Lifestyle Cover
Symptoms:
- the image shows a room, but no life-stage question or new narrative
- objects are visible, but they do not prove the creator's choices or content
direction
- the title could be pasted onto any bedroom/study-room photo
- the room looks polished but not ownable, repeatable, or connected to the
user's real life
- the account cannot continue the same scene after one post
Mitigation:
- identify the narrative first: age reversal, solo living, reading life,
self-consistency, small-room freedom, digital setup, or another clear lane
- choose 1-3 room proof objects that support the narrative
- keep angle/style repeatable so the homepage builds one recognizable world
- pair the cover with a next-post series plan, not only one pretty image
- warn users when the reference account's hidden resources make full imitation
difficult
10. Multi-Page Inconsistency
Symptoms:
- each page looks like a different template
- colors/fonts/page numbers are inconsistent
Mitigation:
- generate with a shared page system: same color palette, page number position,
title zone, card style, bottom bar
- if needed, generate cover first, then use it as style reference for inner
pages
11. Aspect Ratio Or Cropping Problems
Symptoms:
- title cut off
- subject cropped awkwardly
- WeChat cover rendered like vertical poster
Mitigation:
- pass platform and aspect ratio explicitly
- keep safe margins around title and logo
- use Xiaohongshu vertical 3:4/4:5 and WeChat wide 900:383 or 1080:460
12. Service/Network/Permission Failure
Symptoms:
- missing image URL
- expired asset
- generation timeout
- missing API key/credits
Mitigation:
- return a friendly message and the prepared image brief
- keep failure messages concise and user-facing
- tell the user how to open Lingzao web setup/recharge/API Key entry
- if a generation job fails before producing an image, clarify whether credits
were consumed according to backend truth
Domestic Agent Experience Rules
For domestic Agents, optimize for "the user can just talk".
Do:
- infer platform and format from user wording
- ask one small question only when it changes the route
- default to Xiaohongshu 4-page graphic note for "帮我做图文"
- default to WeChat 1+3 pack for "公众号配图"
- default to no-person knowledge card if the user has no photo/material
- generate actual images when available
- show a friendly repair diagnosis if the result is ugly
Do not:
- ask users to write prompts
- expose details the user does not need
- force users to choose from many styles
- ask long design questionnaires
- keep regenerating blindly
- call every pretty image "good"
User Homework For A Tian
When A Tian wants to strengthen this system, collect examples in this shape:
- Good image examples
- link or screenshot
- why it is good
- what part is learnable
- what kind of user/track it fits
- if it is face-led, what the face contributes: expression, identity,
authority, contrast, or proof scene
- Bad image examples
- what feels ugly
- is the problem title, hierarchy, color, subject, style, or text rendering
- what repair direction would make it usable
- Reference image examples
- what should be borrowed
- what must not be copied
- what topic/user it could be adapted to
- Track-specific image examples
- female growth
- AI tools/tutorials
- local life/food/travel
- travel handdrawn route maps / food maps / city-walk maps
- face-led口播/视频封面
- interaction prompt covers / 互动帖
- text-dense screenshot graphic notes / 长文截图式图文
- room-as-identity lifestyle covers / 房间即人设
- WeChat article
- product/course/service
These examples should be converted into style rules, not copied as private assets. PK@!XR���.�.0playbooks/image-generation-execution-workflow.md# Lingzao Image Generation Execution Workflow
Use this playbook when Lingzao's image-generation capability is available and the user wants actual images, not only prompts. This workflow sits after visual-generation-and-cover-workflow.md and visual-reference-style-library.md. For domestic Agent wrappers, stable tool schemas, model-agnostic generation boundaries, known generation bugs, and A Tian example-collection homework, also read image-generation-agent-integration-guide.md.
The core problem it solves:
- The model can generate images, but the result may look ugly, crowded, generic,
off-brand, or unlike Xiaohongshu.
- Ordinary users should not debug prompts. Lingzao should act like a visual
director: build the image brief, generate, review, and repair.
Product Principle
Do not expose prompt-only work as the main product experience.
User-facing output should be:
- generated cover / graphic-note pages / WeChat image pack / product cards
- short explanation of what style was chosen and why
- the caption, keywords, or next publishing action when relevant
Prompt text is a supporting artifact, not the main product experience.
Execution Loop
Run image work in this order:
- Visual route
- Choose a style group from
visual-reference-style-library.md. - Decide whether the job is cover only, 4-page graphic note, 7-page teaching
note, WeChat 1+3 pack, or product/conversion card set.
- Content brief
- Confirm the image's job: click, save, teach, explain, convert, or support
an article.
- Finalize exact on-image text before generation.
- Run
xhs-platform-management-risk-baseline.mdand
xhs-content-compliance-risk-gate.md on Xiaohongshu on-image text, caption, keywords, and comment guidance before generating. Do not spend image credits turning risky lines such as "加微信", "评论领取", "私信发你", "扫码进群", or guaranteed outcomes into an image. For commercial visuals, keep public value first, product name later, and no diversion action.
- Keep the largest title short. If the text is too long, split it into
subtitle, labels, and body caption instead of forcing it onto the image.
- Generation brief
- Turn the content into a visual brief with aspect ratio, style group, main
subject, layout, text hierarchy, color, material, and hard negatives.
- Generate images
- When generation is available, generate the images directly.
- When generation is unavailable, output the brief as a fallback package.
- Visual review
- Review the generated image before returning it.
- If the image fails quality gates, stop at a concrete repair brief unless
the user has already approved a counted batch that includes repair images.
- Ask for explicit confirmation before any extra paid repair generation.
- Do not tell the user that an obviously ugly image is acceptable.
- Final delivery
- Return the usable images or explain what failed.
- Include the caption/keywords for Xiaohongshu or article placement notes
for WeChat when relevant.
Intake Without Over-Asking
Only collect what changes the generation route:
- platform: Xiaohongshu, WeChat, product page, course/service card
- format: cover only, 4 pages, 7 pages, WeChat 1+3, product set
- topic/content: keyword, draft, article, product, note link, or benchmark
- materials: reference image, face photo, product photo, food/place photo,
screenshot, logo, article draft
- people/no people
If the user only provides one vague sentence, such as "给我做一张某某海报图", "帮我做个海报", or "做一张好看的图", stop before generation. Ask for the minimum visual anchors instead of sending a weak prompt to the image model:
- 你有没有参考图?可以发 1-3 张你喜欢的封面/海报/图文截图。
- 你有没有想要的配色?比如明亮白底、绿色清爽、黑金高级、蓝色科技感。
If reference and color are both missing, ask at most one more practical question: this image is for Xiaohongshu, WeChat, product page, or course/service card? Do not call generate-image until the brief has at least topic + platform or format + visual direction/reference/color. This prevents spending credits on generic poster output.
If the user provides no reference image:
没关系,如果没有参考图,我可以先按你的主题选默认视觉风格。但你先告诉我想要的配色,或者它是小红书封面、公众号配图、产品介绍图还是课程海报;这两个信息会直接决定图能不能做出来。
If the user says the prior generation was ugly:
先不要继续堆 prompt。我会先判断它丑在哪里:文字太多、主体不清、风格不适合、像模板、颜色脏、信息层级乱、或者参考图没有拆对。然后再给它一版返修 brief。
Image Brief Contract
Every generation brief must include:
- platform and aspect ratio
- output count
- selected style group
- image purpose
- audience
- main visual subject
- exact on-image text
- text hierarchy
- layout structure
- color and typography direction
- required material or reference image role
- negative constraints
- success criteria
Example Brief Shape
- Platform: Xiaohongshu
- Aspect ratio: vertical 4:5
- Output: cover + 4 pages
- Style: Lingzao No-Person Knowledge Card
- Purpose: save-worthy tutorial, not brand ad
- Audience: beginner creators who do not know what to post
- Main visual: clean modular knowledge card, no person
- Cover text: "今天不知道发什么?"
- Subtitle: "先用这 4 步找选题"
- Layout: huge title top, 3 step cards middle, bottom action bar
- Colors: white base, blue/cyan system color, small yellow highlight
- Avoid: fake app UI, tiny text, purple gradient, stock-photo background,
Lingzao logo unless official case
Hard Quality Gates
Reject or repair if any of these happen:
- The main title cannot be read quickly.
- The image has too much text for a cover.
- The subject is unclear in one second.
- The composition looks like a generic AI poster instead of Xiaohongshu content.
- The colors are muddy, cheap, or all one hue.
- The style does not fit the user's track or material.
- The image uses Lingzao/A Tian logo without permission or ordinary-user need.
- The image invents fake screenshots, fake data, prices, guarantees, or results.
- The reference image is copied too directly.
- The image looks like an ad when the user needs content, or content when the
user needs a product page.
- The generated Chinese text is wrong, distorted, or unreadable.
Repair Briefs
When the first image is ugly, do not start over vaguely. Diagnose the failure and write a repair brief one layer at a time.
If the user only approved one image, do not call generate-image again just because the first successful result is ugly. Stop at the repair brief, explain the likely extra credit cost, and ask whether to generate another paid image. Only continue automatically when the user already approved a counted batch such as "generate 3 options and repair weak ones inside that count."
Common failure -> repair:
- Too crowded -> reduce on-image text by 40-60%, move details into caption or
inner pages.
- No click focus -> make one large title and one visual subject dominate.
- Generic AI look -> add Xiaohongshu-specific modules: page number, labels,
bottom bar, arrows, checklist cards, save reason.
- Wrong style -> reroute to the correct style group before regenerating.
- Bad colors -> choose a cleaner palette and stronger contrast.
- Fake product/ad feeling -> remove CTA badges and return to educational cover.
- Weak no-person card -> add structure: 3 cards, numbered steps, comparison
table, or before/after lane.
- Bad typography -> shorten text, enlarge title, use fewer font weights.
- Reference copied -> keep only structure and hierarchy; change photo, color,
title, and modules.
User-facing repair wording before another paid generation:
这一版的问题不是内容不行,是视觉层级没立住:标题不够大,信息太挤,主体也不够明确。我建议把它改成「一个大标题 + 三个信息块 + 底部行动条」。如果你确认继续生成,我会按这版返修 brief 再走一次生图;这会消耗一张图的积分。
Route-Specific Generation Standards
Xiaohongshu Cover
Must have:
- one obvious click reason
- short title
- visual subject or strong knowledge-card structure
- track keyword or audience keyword
- no more than 2-3 text levels
Avoid:
- article-like long paragraphs
- decorative visuals with no save reason
- putting all body copy on the cover
Xiaohongshu 4-Page Graphic Note
Default page roles:
- Cover: click promise
- Problem: why the user is stuck
- Method: steps, examples, or comparison
- Action: what to do today + comment prompt
Each page should carry one message only.
Xiaohongshu 7-Page Teaching Note
Use when a topic needs more explanation:
- Cover
- Problem diagnosis
- Preparation/input
- Step 1-2
- Step 3-4 or examples
- Checklist
- Save/comment/next action
WeChat 1+3 Image Pack
Default contract:
- 1 wide cover
- 3 horizontal in-article images
Cover should carry the article's promise. Inner images should be simpler:
- image 1: problem/context
- image 2: method/workflow
- image 3: action/result
For Lingzao official visuals, use deep navy/blue tech-grid style with integrated logo only when the asset is official Lingzao content. Do not use Lingzao logo on ordinary user covers.
Product / Course / Consulting Card
Only use when the user has a clear offer.
Include:
- who it is for
- what pain it solves
- what is inside
- why now
- next action
Do not invent:
- price
- income promise
- scarcity
- guarantee
- fake testimonials
Reference Image Remix
When the user provides a reference image:
- extract composition, hierarchy, color, and click reason
- keep the structural logic
- change exact copy, author-specific elements, logo, photo subject, and layout
enough to avoid copying
Do not say "same style" if the result is only a vague prompt. Show what is being borrowed:
- title placement
- main subject position
- label system
- page rhythm
- text density
- color relationship
Text Policy For Generated Images
Chinese text inside generated images often fails. To reduce bad output:
- keep cover title short
- avoid long paragraphs on image
- split detailed text into cards with short labels
- put long explanation in the caption, not the image
- if exact text rendering is unreliable, generate a clean layout/background and
place text with a deterministic editor when the environment supports it
If exact Chinese text failed:
这张图的画面方向可以,但中文字不稳。我会保留构图,下一版把文字减少到短标题和标签;长文案放到正文里。
Final Delivery Shape
For one generated Xiaohongshu package, deliver:
- generated image(s)
- selected style group
- why this style fits
- final title
- cover text
- page text summary
- caption around 300 Chinese characters
- 10 publishing keywords
- one post-publish review reminder
For WeChat:
- cover + 3 in-article images
- where each image appears in the article
- article title or subtitle if relevant
For product cards:
- product page images
- what each page is supposed to convert
- missing offer details that should be filled before publishing
Do Not
- Do not leave ordinary users with only "prompt".
- Do not make the user choose from 10 design styles.
- Do not add logos to ordinary user content.
- Do not generate fake screenshots or fake data.
- Do not treat beauty, expensive scenes, professional photography, or complex
cinematic visuals as easy for beginners to reproduce.
- Do not continue regenerating blindly. Diagnose, write a repair brief, and get
explicit confirmation before spending credits on another generation. PK@!X�آ��-�-,playbooks/keyword-insight-report-template.md# Lingzao Keyword Insight Report Template
Use this playbook when the user wants a report or structured insight around one keyword, such as:
- 帮我分析“云南旅游”这个关键词
- 给我做一个关键词洞察报告
- 这个关键词下面用户都在看什么
- 这个关键词有哪些下拉词 / 相关词 / 选题机会
- 帮品牌 / 企业 / 机构 / 文旅 / 产品团队看关键词内容机会
- 搜某个关键词,看看大家都是怎么做的
This is different from beginner topic discovery. Beginner topic discovery helps one creator decide what to post. Keyword insight reports help a user understand the public content ecosystem around a keyword and turn it into content, marketing, product, or campaign decisions.
Core Principle
A keyword report is not one search result list. It is a scoped research deliverable:
- one main keyword
- a controlled set of related/dropdown keywords
- visible public note samples
- content type classification
- user demand map
- representative examples
- opportunity list
- action advice for the user's business or account
Do not silently search every related word. Confirm scope before searching.
Current Capability Boundary
Lingzao Skill currently exposes search-notes for keyword searches. If an explicit dropdown/suggestion API is not available in the current runtime, treat dropdown words as a keyword expansion list created from:
- the user's own words
- visible search phrases provided by the user
- domain judgment
- prior keyword trees in
beginner-account-start-and-topic-radar.md - search-result titles and repeated terms from confirmed searches
Each confirmed keyword that is actually searched is one search-notes lookup. Do not imply that all dropdown words are free.
First Response
If the user gives only one keyword and says they want insights, do not start searching immediately. First explain the scope choices and credit logic.
Use this user-facing wording:
可以做。关键词洞察报告不是只搜一次关键词,而是看“主关键词 + 相关词/下拉词 + 代表性高互动内容”,再总结内容类型、用户需求和选题机会。
先提醒一下积分:普通关键词搜索是按实际搜索的关键词次数算,不是按你发一条指令算。比如只搜“云南旅游”一次,通常是 20 credits;如果再搜 5 个相关词,就是 6 次搜索,约 120 credits。搜索结果一次可以返回多条笔记,不是按返回的每条都扣。只有继续打开单篇详情、评论区、逐字稿或更深内容结构时,才会继续增加。
先选平台、范围和搜索过滤项:
- 平台:小红书 / 抖音。搜索关键词不能从词本身推断平台,所以开始前必须确认平台。
- 搜索过滤项:开始前也要确认排序、内容类型和时间范围;如果用户想省事,可以明确接受默认值
sort=general、note_type=不限、time_filter=不限。不要在用户未确认过滤项或默认值前开始批量搜索。
A. 快速洞察:主关键词 + 3 个相关词,先看内容类型和机会方向,预计约 80 credits。 B. 标准报告:主关键词 + 8-10 个相关词,再挑代表样本做分类,预计约 180-220 credits;如果继续打开 5-10 条单篇详情,会再增加约 100-200 credits。 C. 深度报告:15-30 个相关词 + 代表笔记详情 + 评论区需求,适合企业/品牌/机构做策略,通常会到 800 credits 以上,开始前我会先列搜索范围让你确认。
A 是默认小预算首轮;B 或 C 都属于超过 100 credits 的计划,需要你明确选择后我才开始。执行过程中如果要继续打开单篇详情、评论区或扩大关键词,超过已确认范围前我会先停下来确认。
你回复“平台 + A/B/C + 过滤项”,比如“小红书 A,排序按点赞,视频笔记,一周内”,或“抖音 B,接受默认过滤项”,我再开始;如果你只回复 A/B/C,我会先追问平台和过滤项,不会默认把所有下拉词都搜完,也不会默认替你选平台、排序、内容类型或时间范围。
Scope Tiers
A. Quick Insight
Use when the user wants a first look or is sensitive to credits.
Search scope:
- main keyword
- 3 related keywords
- for Xiaohongshu, usually
sort=most_liked; usecollect_descendingonly
when the user cares most about saved/collected content
- for Douyin, use
sort=most_likedorpopularity_descending; do not use
collect_descending or comment_descending
- for Douyin, note type must be
不限,视频笔记, or图文笔记; do not pass
直播笔记
- for Xiaohongshu, choose note type and time range based on user goal; for
Douyin, choose only the supported note types above and choose time range based on user goal; if unclear, ask before calling
Estimated credits:
- 4
search-noteslookups x 20 credits = about 80 credits - no note detail by default
- if note detail, comments, transcript, or more related keywords become
necessary, stop and ask before exceeding the quick-insight scope
Output:
- 一句话判断
- 关键词基础判断
- 3-5 high-signal examples from search result lists
- content type map
- user demand map
- 5 topic opportunities
- whether it is worth expanding into a full report
B. Standard Report
Use when the user wants a report similar to the "云南旅游" document.
Search scope:
- main keyword
- 8-10 related/dropdown keywords
- representative results from each keyword
- optional 5-10 note details if titles/cover/basic metrics are not enough
Estimated credits:
- 9-11
search-noteslookups = about 180-220 credits - optional 5-10
get-note-detaillookups = about 100-200 extra credits - typical range: about 180-420 credits, depending on whether details are opened
Output:
- Word / HTML / Markdown report when document tooling is available
- keyword conclusion
- high-interaction sample table
- content type insight
- user demand map
- representative examples with links
- opportunity list
- action advice for the user's account, brand, product, or team
C. Deep Report
Use for enterprise, brand, institution, campaign, product, tourism, education, or large-content planning.
Search scope:
- main keyword
- 15-30 related keywords
- selected note details
- selected comments pages when comment demand matters
- optional creator/account checks when the keyword is account-led
Estimated credits:
- 16-31
search-noteslookups = about 320-620 credits - 10-30 note details = about 200-600 extra credits
- 5-10 comment pages = about 100-200 extra credits
- typical range: about 800-1400 credits when it includes details and comments
Output:
- full keyword landscape
- related keyword tree
- content type distribution
- user demand and conversion-intent map
- low-follower viral opportunities if relevant
- title/cover/formula library
- representative note cards
- competitor/content gap map
- 30-day content plan
- export-ready knowledge-base table if needed
Related Keyword Logic
Build related keywords in layers. Do not dump a huge keyword list.
Layer 1: Direct Dropdown / Phrase Variants
Examples:
- 云南旅游
- 云南旅游攻略
- 云南旅游避坑
- 云南旅游路线
- 云南旅游自由行
- 云南旅游预算
Layer 2: Audience / Scenario
Examples:
- 云南亲子游
- 云南情侣游
- 云南毕业旅行
- 云南带娃
- 云南第一次去
Layer 3: Geography / Sub-Destination
Examples:
- 大理旅游
- 丽江旅游
- 香格里拉旅游
- 泸沽湖攻略
- 腾冲旅行
- 西双版纳亲子游
Layer 4: Commercial / Decision Intent
Examples:
- 云南包车
- 云南民宿
- 云南旅拍
- 云南报团避坑
- 云南自由行花费
Only search the layers that match the user's goal.
Report Structure
Use this structure for formal keyword insight reports.
- Cover
- report title
- keyword
- target audience or client
- date
- One-Sentence Conclusion
- what the keyword really represents
- why it matters commercially or strategically
- Keyword Basic Judgment
- main keyword
- searched related keywords
- sample source and search filters
- suitable clients/users
- core value
- High-Interaction Sample Table
- title
- content type
- creator
- likes
- collections
- date
- source keyword
- link
- Content Type Insight
- content type
- sample count or qualitative weight
- user signal
- why it works
- what the user/company should do
- User Demand Map
- user group
- what they search
- content bridge
- commercial opportunity, if relevant
- Representative Notes
- screenshot/cover if available and renderable
- title
- creator
- public metrics
- why this example matters
- source link
- Topic Opportunity List
- 10-20 practical topics for standard/deep reports
- title direction
- cover direction
- content angle
- suitable account/brand type
- Action Advice
- for creator accounts: next content tests
- for brands/products: content funnel and conversion bridge
- for institutions/government: public communication, user concern handling,
and service information
- for tourism/local life: route, budget, map, avoidance, seasonal and
audience segmentation
- Knowledge-Base Follow-Up
- ask whether the report should be saved into a content asset library
- use
content-knowledge-base-workflow.md
Analysis Rules
Do Not Only List Hot Notes
A keyword report must answer:
- What are users actually trying to decide?
- Which content types create likes?
- Which content types create saves?
- Which content types create comments or conversion?
- Which topics are visually attractive but commercially weak?
- Which topics are less viral but more useful for business?
Distinguish Likes And Saves
For many keywords:
- high likes may come from emotion, beauty, shock, or identity
- high saves often mean planning, decision, tutorial, checklist, route, budget,
or resource value
For commercial keyword reports, saves and comments may matter more than likes.
Separate Content Traffic From Business Value
Example:
- scenery posts may attract clicks
- route/budget/avoidance posts may drive saves and inquiries
- comments may expose purchase or service questions
Do not tell a company to only imitate viral visual posts if those posts do not support conversion.
Use Active Time Ranges
When the user cares about current trends, prefer recent results and active signals. If the available top examples are old, say so and search recent variants if the user confirms more scope.
Output Tone
For individual creators:
- practical
- directly usable
- focused on what to post next
For enterprise/brand/institution:
- more report-like
- more explicit about audience, decision, conversion, and content funnel
- avoid creator-only language like "人设" unless relevant
For tourism/local life:
- separate visual planting from route/decision content
- include route, budget, geography, season, transportation, hotel area,
avoidance, crowd type, and local service opportunities
Follow-Up
After the report, do not let it end.
Good endings:
- 这份关键词报告可以继续沉淀成你的内容资产库。你现在有没有固定放知识库的地方?如果没有,我可以先生成 Markdown / CSV / Word / HTML 通用包,后面你想放飞书、阿里、腾讯、Notion 或本地都方便。
- 如果你想继续做下一层,我可以把这个关键词下面的高收藏标题、封面公式和评论区需求单独拆成一份选题库。
- 如果你是企业/机构,我可以继续把这份报告改成 30 天内容计划和 10 条可直接发布的选题。
PK@!X��Xy�y�3playbooks/keyword-to-publishable-content-package.md# Lingzao Keyword To Publishable Content Package
Use this playbook when the user gives a keyword, track, vague topic, note link, creator link, screenshot, saved note, reference image, or inspiration material and wants Lingzao to turn it into publishable Xiaohongshu content, such as:
- 给我一个关键词,直接帮我出内容
- 搜一下女性成长,顺便给我几条能发的图文
- 帮我批量产出选题、标题、封面、正文和关键词
- 我想做本地生活/好物/AI工具,不知道今天发什么
- 帮我从关键词到小红书笔记一条龙做完
- 根据这个关键词,给我 5 条可发布内容包
- 根据这个链接给我拆成一条能发的内容
- 按这张图/截图/参考图,直接给我做一篇小红书
- 从灵感素材到选题到稿子,帮我走一遍
This is different from:
keyword-insight-report-template.md: research report for a keyword ecosystem.publishing-keyword-design-check.md: final 10 publishing keywords after the
draft already exists.
reference-image-graphic-note-workflow.md: visual/page package after the user
has a reference image or asks how to make graphics.
Core Principle
The user is not asking for a search list. They want a path from "I have a keyword" to "I can post something today".
Minimum-deliverable rule: when the user asks for 一条龙, 直接出内容, 把这个拆成 内容给我发, or gives a keyword/link/image and expects a result, do not stop at clarification, analysis, or a search list. Even if the first version is not perfect, Lingzao must produce a usable first package with explicit assumptions. Ask only the one question that changes the route; otherwise default to a Xiaohongshu graphic-note package and keep improving after the user reacts.
Turn keyword research into a publishable package:
- clarify the user's real intent behind the keyword
- clarify or infer who the content is for and who will click
- confirm the publishing format: graphic note/image, spoken video, or Vlog
- confirm search scope and credit tier before lookup
- search only the confirmed keywords or references
- filter examples by learnability, not only likes
- extract topic, title, cover, structure, keyword, and visual formulas
- produce a small batch of publishable content packages
- end with one next action: refine one piece, make graphics, save to knowledge
base, or review data after publishing
The smallest acceptable one-stop package contains:
- source reading or assumptions based on the keyword/link/image
- one recommended topic angle and one backup angle
- 3 strongest titles with keyword anchor and click reason
- cover copy and visual direction
- a 4-page quick graphic-note version, or 7-page expanded version when asked
- a Xiaohongshu caption/body copy, or a direct-read spoken script when the
user asks for video/口播
- 10 publishing keywords
- one pinned comment / pinned note idea that guides the next interaction
- one pre-publish check and one 24-hour post-publish review instruction
Before returning the final Xiaohongshu package, always run xhs-platform-management-risk-baseline.md and xhs-content-compliance-risk-gate.md. The package must not include off-platform diversion, WeChat/private-contact guidance, comment-gated resources, or exaggerated guarantees as publishable copy. If the user's source material contains those lines, show them as "建议改写" or "不建议发布", then give the safe replacement. Put useful materials directly into the note instead of writing "评论领取", "私信发你", or "加微信拿资料".
For commercial or product-related packages, use the order "公开价值优先、产品名 后置、无导流动作": the topic, title, cover, and opening should first make the reader understand the useful method, checklist, route, case, or judgment; the product/service/brand can appear only after the public value is clear.
Use audience-persona-fit-check.md when the audience is unclear. Do not write a content package as if it is for everyone.
For titles, use xhs-title-design-check.md as the judgment layer. Ordinary users should receive 3 strongest title options, not 10 titles plus a top-3 recommendation. Each title should show a concrete keyword anchor and click reason.
Do not automatically add Lingzao, A Tian, or any official logo to ordinary user covers or graphic notes. Only include a logo, watermark, brand mark, or "Lingzao Agent" wording when the user explicitly asks for an official Lingzao case, branded asset, or their own brand mark.
Publishing Format Triage
This workflow should stay light. Do not force the user into a fixed template only because they sent benchmark links or examples. First identify what kind of content they want to publish.
If the user sends keywords, notes, favorite examples, or several references and only says "帮我从这些里面出内容", ask one short format question before writing:
你想让我给你做口播视频、图文/图片,还是 Vlog 分镜内容?如果是 Vlog,我会给你具体分镜,比如早上打开窗、运动、打开电脑、工作和复盘这些画面;如果是图文,我可以做无人物知识卡,也可以按你发的参考图来做。
If the user already names the format, do not ask again:
- 图文 / 图片 / 小红书笔记 / 不露脸 / 知识卡片 -> use Graphic Note Mode.
- 口播 / 视频文案 / 人物出镜 / 逐字稿 -> use Spoken Script Mode.
- Vlog / 日常记录 / 生活方式视频 / 分镜 -> use Vlog Storyboard Mode.
If the user does not name the format but asks to "直接发", "直接做一篇", "把这个 拆成内容", or "一条龙", do not wait. Default to Graphic Note Mode:
- Xiaohongshu 4-page no-face knowledge card
- one caption around 300 Chinese characters
- 10 publishing keywords
- one pinned comment
Then add one closing question: whether they want the same topic converted into 口播逐字稿 or Vlog 分镜.
For graphic notes, ask for reference images when useful:
你有没有喜欢的参考图片?有的话发我,我按它的排版和风格做;没有的话,我先给你出一版对应主题的无人物知识卡片,比如女性成长干货卡。
For spoken video, ask whether the user has prior scripts, voice style, or a reference video/copy. If they do, adapt to that style. If they do not, output a direct-read spoken draft first.
For Vlog, ask for their available scenes, daily routine, city, work/life setting, and any reference Vlog. If they do not provide these, make a simple beginner version with easy scenes instead of cinematic production.
When the user sends 1-4 references, show the evidence before the new draft so they know the output is grounded:
- 我看了你给的这几条内容,它们共同的关键词是...
- 核心内容点分别是...
- 大纲方向是...
- 脚本/页面结构是...
- 所以我这版做了哪些取舍...
Do not overdo the deconstruction. The purpose is to prove the output has a source, then quickly give one publishable version.
If the user sends only a link or image and Lingzao cannot open the full content without paid lookup, login, or missing note type, still produce a rough package from visible information and clearly mark it as "基于当前可见信息的第一版". Then ask the user to paste the title/body/screenshot or enable Lingzao lookup for a more accurate version. Do not leave them with only "我看不了".
User Style Memory Intake
Before producing the first full content package, try to collect the user's own style signal and audience signal without making the process heavy.
Use this user-facing line when the user has not provided enough personal context:
你可以把你之前做过的内容发给我,或者把你自己感兴趣、想模仿的内容发给我;如果你做本地生活,也把你所在的城市发给我。我会参考你的语气、审美、城市和你喜欢的内容,再给你出一篇更像你的版本。
If audience is still unclear, add:
你也可以告诉我这条内容主要想给谁看;如果你也不确定,我会先从你喜欢和收藏的内容里反推用户画像。
Handle two cases:
- User has not created content before
- Do not block the workflow.
- Say that you will first make one sample based on the keyword and your
understanding of the user's likely preference.
- Make only one full piece first, because the user may not yet know whether
the direction is suitable or difficult.
Good wording:
好,那我先按我理解的你可能喜欢的方向,给你出一篇完整样稿。你看完以后告诉我哪里像你、哪里不像你,我再帮你调整成你的风格。
- User has previous posts, drafts, images, video copy, or favorite content
- Ask them to send those materials if they have not already done so.
- After receiving them, acknowledge what was captured before generating.
- Use their tone, visual style, city, format, and recurring topics as the
style anchor.
Good wording after receiving user material:
我现在已经记下来了:你之前的内容风格、你喜欢的方向、你的城市/场景,以及你更适合的表达方式。接下来我不会随便套通用模板,会按这些信息给你出一篇更贴近你的版本。
Do not falsely claim long-term memory across sessions. "记下来了" means captured for the current task, current content package, or current conversation. If the runtime has an actual memory or knowledge-base tool and the user asks to save it, use content-knowledge-base-workflow.md.
First Response And Credit Scope
If the user gives only one keyword and wants content output, do not start a large search silently. Explain that this is a content package workflow, then offer three scopes.
Use this wording:
可以做。这个不是单纯搜关键词,而是把关键词下面的参考内容拆成「选题 + 标题 + 封面 + 图文结构 + 正文方向 + 10 个发布关键词」。
先确认范围,避免一下子花太多积分:
A. 快速版:只搜主关键词 1 次,先给 3 条内容方向和标题/封面建议,通常约 20 credits。 B. 标准版:搜主关键词 + 3 个相关词,产出 5 条内容包,每条包含标题、封面、图文结构和关键词,通常约 80 credits;如果继续打开单篇详情会再增加。 C. 批量版:搜 8-10 个相关词,先做 10-20 条选题库,再精写 3 条内容包,通常约 180-220 credits 起;如果要看完整正文、评论区或逐字稿,会进入深度搜索。
默认搜索设置:小红书、图文优先、近半年、高赞/高收藏内容优先。如果你只回复 A / B / C,就表示接受这些默认搜索设置;如果你有平台、时间、内容类型或排序偏好,可以和选项一起告诉我。
快速版只搜你给的主关键词;标准版和批量版会先把准备搜索的相关词列出来让你确认,不会默认把所有相关词都搜完。
If the user already states both scope and search filters, proceed without asking again.
If the user states only the scope, such as "标准版", "B", or "批量版", but the current conversation has not visibly shown the default platform, note type, time range, and sorting, show those defaults first and ask the user to reply "默认" or edits before any paid search.
If the user says "用默认" or "你看着来" after the default settings have been shown, use Standard Version B unless the keyword is too broad or commercial search cost is likely high.
Search Scope Rules
Before calling Lingzao search tools, use search-credit-notice.md whenever the scope involves paid search, multiple keywords, note details, comments, full copy, subtitles, or transcripts.
Default search settings:
- Xiaohongshu first unless the user names another platform.
- Prefer recent content for fast-moving topics: last 1-3 months when available.
- Prefer 图文 when the user says 图文, no-face, cover, page design, or Xiaohongshu
graphic note.
- Prefer most-liked for first discovery; use collect-descending when the user
wants tutorials, checklists, or knowledge-base material.
- For beginners or low-follower users, prefer low-follower viral notes,
same-stage accounts, or easy-to-copy formats. Do not lead with 100k+ or 200k+ creators unless the task is mature positioning research.
If the user only replies A / B / C after the scope prompt above, treat it as acceptance of the visible default settings: Xiaohongshu, 图文优先, 近半年, and high-like/high-save discovery. If those exact defaults were not shown in the current conversation, do not search yet; show the defaults and ask for "默认" or edits before any paid search.
For Standard Version B, list the main keyword plus the 3 related keywords before searching. Ask the user to reply "默认" to accept or replace any term. Do not search hidden related terms.
For Batch Version C, list the 8-10 planned search keywords before spending credits. Group them by intent when possible, such as audience, pain, result, scenario, city, format, or product. Ask the user to confirm the list or cut the scope.
Do not imply that the user pays per returned search result. Credit grows from actual searches, profile analysis, note details, comments, full copy, subtitles, and broader scope.
Filtering Rules
After search, do not output all examples. Filter with A Tian's operating logic.
Keep examples that have at least one of:
- low-follower viral signal or same-stage learnability
- recent activity and not a stale one-off
- clear title keyword and click reason
- cover that says the topic in one second
- content structure the user can adapt truthfully
- strong save reason, comment demand, or series potential
- realistic production requirements for the user's current resources
Be careful with:
- big-account posts whose success depends on long accumulation, mature trust, or
established IP
- question/interaction posts that may get comments but do not build followers
- posts that only ride a temporary news trend
- creators whose beauty, family background, city, money, job title, or
production environment is the real traffic source
- good-product content that requires advanced photo, lighting, hand, home, or
scene quality the user cannot produce yet
- AI tool content that depends on tools the user cannot actually use or explain
- travel content requiring constant travel, large budgets, polished footage,
and strong on-camera performance
If results are weak or mismatched, say so and let the user choose a new filter:
这批结果可以参考,但和你现在能发的内容不完全匹配。如果直接照着做,很容易变成看起来热闹、实际不适合你。你更想按哪种方式重新筛?
A. 最近 30 天比较火的内容 B. 低粉爆款,适合小白模仿 C. 高收藏教程型内容 D. 高评论需求型内容 E. 商业/引流内容 F. 封面和标题参考
Viral Selection Standards
Do not treat every viral note as a useful benchmark. Judge whether it can help the user produce repeatable content.
Keep For Analysis
Prefer notes/accounts with:
- follower count under 100k when visible, especially 20k-40k accounts or lower
accounts with a sudden high-performing note
- a clear spike compared with the account's usual data
- a topic that belongs to the account's existing lane, or a useful contrast
showing why one off-lane note exploded
- real comment demand: people asking, confessing, debating, saving, or sharing
similar experience
- signs of experienced operation even if the account is low-follower: strong
cover, clear title, precise topic, good action/expression, stable tone, or obvious content structure
- a formula the user can adapt without needing the same face, relationship,
city, money, job, product, or production condition
When a low-follower post goes viral, do not say it is useful only because it is low-follower. First judge whether it is a real beginner, a new account run by an experienced operator, or a possible paid-boost/traffic-test case. Use the learnable parts if the cover, title, topic, and structure show mature operation.
Filter Out Or Mark As Not Copyable
Filter out or mark as "not directly copyable" when:
- the viral point is a rare personal event, such as a breakup one month before
marriage, a dramatic family conflict, or another life event that most users cannot and should not imitate
- the audience is mainly comforting or supporting the creator, not asking for a
repeatable method
- the note is a one-off emotional explosion and the account's normal content is
in another lane, such as a fashion account suddenly going viral for a relationship story
- comments look fake, brushed, too generic, or unrelated to a real demand
- the traffic depends on a trending incident unrelated to the user's account
direction
- the note gets likes or saves but does not create a reason to follow the
account
Good wording:
这条确实爆了,但它不适合作为你现在的模仿对象。它爆的是特殊情绪和特殊经历,不是一个你能稳定复用的选题结构。我们可以学它怎么制造共鸣,但不要直接照着做。
Interaction Posts
Question and interaction posts can be useful, but mostly for account activity.
Useful cases:
- a beginner account needs early comments and community signals
- an account is temporarily stagnant and needs a light engagement post
- local-life accounts ask city-specific questions, such as "香港有什么好吃",
"台北有哪些避坑", or "你刷过很多次的店是哪家"
- the question stays inside the account's real lane
Be careful:
- if the user already has a clear account strategy, do not make interaction
posts the main content formula
- interaction posts often do not build strong follower memory
- a generic "大家现在都在干什么" post may be active but not useful for growth
Hot Topic Borrowing
Only borrow a hot topic when it naturally connects to the user's lane.
Examples:
- a food creator can discuss a viral duck-leg/goose-leg event through recipe,
food safety, trust, or cooking angle
- a social commentary or women's growth account can discuss the same event
through trust, choice, boundaries, or public emotion
- a sports or local-life account may use football/world cup topics only when
the content lane makes the connection natural
Do not force every hot event into every account. If the user must "think very hard" to connect it, it is usually not worth doing.
Cover Good But Content Seems Empty
Do not dismiss a note only because the content feels light. A strong cover often signals the creator has operation experience, and the inside may still be structured enough for ordinary users.
Check:
- whether the title and cover create a clear click reason
- whether the opening fulfills the cover promise
- whether the content has a save point, emotion point, or scene point
- whether the account has repeated strong covers and coherent topics
If the cover is strong but the inside is weak, learn the cover formula only and do not copy the content.
High Saves Or Likes But No Follows
Explain why a post may collect likes/saves but not followers:
- the viral note is off-lane compared with the account's normal content
- the account is not vertical enough; users cannot predict what they will get
after following
- the post is useful for one trip, one product, one emotion, or one hot event,
but does not create long-term account memory
- travel notes, good-product notes, and emotional stories often get saves or
likes without strong follow conversion unless the account has a clear repeated promise
When judging references, separate:
- suitable for traffic/activity
- suitable for saves/knowledge-base value
- suitable for follower growth
- suitable for account positioning
Keyword Intent Library
Use this section to infer what the user may really want. If uncertain, ask only one light question or give both paths in the output.
女性成长
Common user intents:
- They feel confused and want to learn how other women grow from zero.
- They are stuck in emotion, career, family, marriage, or identity and want
examples for self-change.
- They already handle family, career, relationships, or self-consistency well
and want to share their own method.
Split the keyword into sub-directions:
- 职场成长: workplace judgment, promotion, office relationships, career change,
AI efficiency, side business.
- 情感/婚姻成长: relationship, marriage, children, emotional boundaries, family
coordination.
- 自洽生活: living well in one's own context, small city, family nearby, modest
income but stable life.
- 逆袭/身份变化: small-town youth to big-city white-collar worker, education
upgrade, leaving family constraints, becoming a freelancer, traveling more freely.
- 学习/创业/向上: skill learning, side business, creator work, income expansion.
Good references:
- ordinary person with a visible before/after path
- small-town to city, college to graduate school, employee to freelancer,
family-bound identity to self-owned life
- real personal bottlenecks that can become story, method, and series
Hard to copy:
- wealthy family background, very beautiful appearance, already excellent
education, strong resources, luxury lifestyle
- vague inspirational posts without real event, scene, or method
Output should ask what the user wants to express: learning from others, sharing their own growth, career, relationship, self-consistency, or transformation.
35岁职场
Common user intents:
- They are not yet 35 and fear a future career crisis.
- They are already around/after 35 and want to talk about layoffs, survival,
career transition, or building a second curve.
Useful directions:
- how to avoid being replaced or laid off
- how to build one main income plus one side income
- how to use AI at work: PPT, reports, meeting notes, team efficiency, software
workflows, hardware/recording tools
- what 35-year-old office workers are really doing
- career transition, freelancing, workplace politics, workplace self-protection
Related keyword field:
- 35岁职场, 职场危机, 裁员, 副业, AI办公, PPT, 会议纪要, 工作效率, 女性职场,
人生, 生活, 成长, 工作
Be careful:
- question posts such as "大家 35 岁都在干什么" can attract interaction but may
not build followers or account memory. Use them for activity only, not as the core growth formula.
好物分享
Do not treat "好物分享" as one track. First narrow the object and scene.
Possible sub-tracks:
- mother/baby and family
- home, laundry, cleaning, storage, kitchen
- travel goods
- personal lifestyle
- AI tools or digital products
- electronics and hardware
- perfume, lipstick, makeup, skincare
- clothing, accessories, bags, phone cases, toys, umbrellas
Judgment rules:
- Do not copy beauty or lipstick accounts if the user's real lane is family
home goods.
- Good-product content looks easy but depends on photo composition, lighting,
hands, nails, surface, home decor, angle, and scene.
- Product discovery must be sustainable. One accidental viral product does not
prove a repeatable account.
- Ordinary people can do this, but must be more specific and refined than
generic plog sharing.
Ask or infer:
- What category does the user actually buy, use, and recommend often?
- Do friends around them think they are good at finding useful things?
- Can they photograph products cleanly and consistently?
- Is there a repeatable scene or only random purchases?
AI工具
Do not let the user copy every AI tool account. Match the tool lane to the user's real identity and use case.
Possible sub-tracks:
- self-media and content creation
- workplace efficiency
- teachers and classroom PPT
- children and family education
- design, image generation, video generation
- agents, coding, GitHub, open-source workflows
- no-face graphic tutorials
- screen-recording / hand-pointing / AI-edited videos
Useful keyword expansion:
- AI工具
- 提升效率
- 如何使用AI
- 文科生的AI
- AI做图
- AI做视频
- AI办公
- AI自媒体
Be careful:
- If the user does not use teacher tools, do not recommend teacher-PPT content
as their main benchmark.
- If using agents, GitHub, Codex, Claude Code, or overseas tools is hard for the
user, treat these as advanced references, not beginner imitation.
- If the user cannot do spoken video, default to graphic tutorial, screenshot
walkthrough, screen recording, or AI-edited short video.
本地生活
Default stance:
- Large cities, provincial capitals, tourism cities, and strong second/third
cities are more suitable.
- Very small cities are hard unless the user does it for love, free meals, local
community, or already has business resources. Commercial ads may be limited.
Check:
- What city is it?
- Is it a tourism city, provincial capital, or high-flow city?
- Are there enough young users and businesses?
- Can the user shoot food, storefronts, atmosphere, and routes well?
- Does the user want one district, the whole city, low-budget food, old stores,
date spots, family routes, or high-end restaurants?
Good directions for cities like Shanghai:
- 20-yuan local food
- 30-year old restaurants
- district-by-district food lists
- what first-time visitors should eat
- landmark restaurants
- high-end restaurants with views
- old hotels, river views, historic neighborhoods
Be careful:
- Food is highly visual. The cover and first image must make people want to eat.
- Local-life monetization often depends on ads, group buying, shop resources, or
city commercial density.
旅游攻略
First narrow the geography and resource model.
Possible lanes:
- one local city/region + tourism guide
- local life + local travel + food/store cooperation
- national or global travel
- hotel/B&B/travel-agency/resource-led content
- route, budget, itinerary, family trip, couple trip, solo travel, seasonal
guide, avoidance guide
Be careful:
- National/global travel guides are difficult: money, materials, changing
backgrounds, camera work, voice-over, personal appearance, clothing, and editing all matter.
- A 5-day or 10-day guide needs many materials and a strong structure.
- If the user stays in one place, local travel guide is more realistic than
pretending to be a national travel blogger.
Good fit:
- user has B&B, local store, travel agency, food resources, or local expertise
- user can combine local tourism with food and lifestyle
- the place has searchable demand or tourism flow
Content Package Output
For a Standard Version B request, output 5 content packages.
For each package, include:
| Block | Required content |
|---|---|
| 选题 | one clear topic, not a vague direction |
| 适合谁 | target audience and stage |
| 不适合谁 | mismatched audience, life stage, city, or click intent to avoid |
| 为什么值得发 | learnability, demand, save reason, or recent signal |
| 参考公式 | title/cover/content formula extracted from references |
| 标题 | 3 strongest title options, not a 10-title pool |
| 封面文案 | 1-2 cover copy options |
| 4页图文结构 | page-by-page text, suitable for fast testing |
| 正文方向 | short body outline or opening paragraph |
| 发布关键词 | 10 keyword candidates |
| 用户风格贴合点 | how it uses the user's previous content, favorite references, city, tone, or stated preference |
| 视觉建议 | no-logo default; cover style, main image, page layout, or prompt direction |
| 置顶内容 | one low-risk pinned comment or pinned-note idea that continues the user journey without comment-gated resources |
| 复盘点 | what to watch after posting |
Do not fully write all 5 bodies unless the user asks. Fully write only the top 1-3 most promising pieces.
Recommended batch rule:
- 10-20 entries: topic library, title direction, cover direction only.
- 5 entries: title, cover, structure, and keywords.
- 1-3 entries: full body, page copy, generated images when available or visual
directions, 10 keywords, pinned content, and review loop.
One-Stop Minimum Package
Use when the user gives a keyword, topic, note link, screenshot, image, saved material, or rough idea and wants Lingzao to "直接出内容", "一条龙", "拆成内容", "给我做一篇", or "从灵感到稿子".
Output this even before the perfect reference pool exists:
## 我先按当前信息做一版
基于你给的:{keyword/link/image/material}
我先默认做:小红书图文 / 口播 / Vlog
如果这个默认不对,你告诉我,我再改格式。
### 1. 选题角度
- 首推角度:
- 备用角度:
- 为什么适合发:
### 2. 标题
1.
2.
3.
### 3. 封面
- 封面大字:
- 封面副标题:
- 视觉方向:
### 4. 图文页 / 脚本
- P1:
- P2:
- P3:
- P4:
- P5-P7 optional:
### 5. 正文/文案区
{300-600 Chinese characters, or direct-read spoken script}
### 6. 10 个关键词
{10 keywords}
### 7. 置顶内容
{one low-risk pinned comment or pinned-note idea; do not use 评论领取/私信发你/加微信}
### 8. 发前/发后检查
- 发前:
- 发后 24 小时:
Do not say "我需要更多信息才能开始" unless the task is impossible or unsafe. When assumptions are needed, state them and proceed.
Pinned content should not be empty comment bait or a resource gate. It must not ask users to comment, like, follow, save, or message in exchange for a file, link, template, group, or private contact. It can only:
- clarify what this note already contains
- point to a follow-up note, checklist, or series inside the public content
- help users self-check with the method already written in the note
- invite a light non-transactional discussion only when it naturally fits the
topic
Good examples:
- "这篇把方法直接写在 4 页里,不需要评论领取。你可以先按第 3 页做一次自查。"
- "这一篇先讲判断标准,下一篇继续拆具体页面结构。"
- "如果你已经有草稿,先对照标题、封面、前三行和关键词这 4 项检查。"
Bad examples:
- "想要资料扣 1"
- "评论区领取"
- "关注后私信发你"
- "加微信拿模板"
- "不看后悔"
- any promise of guaranteed growth, revenue, medical/financial result, or
unverifiable effect
Delivery Modes
Choose the output mode based on what the user asks for and what they can produce.
Graphic Note Mode
Use when the user asks for 图文, 小红书笔记, 5张图, 4页图文, 7页图文, or does not want to do spoken video.
The user does not need to write image prompts. If they provide only a broad topic such as 女性成长, search or inspect suitable public references within the confirmed credit scope, extract the reusable angle, rewrite it into original graphic-note content, and then route to visual generation when available.
Process:
- Search recent or high-signal references within the confirmed scope. For
broad tracks such as 女性成长, prefer recent posts from the last six months when possible, then filter by learnability.
- List the selected reference notes briefly: title, creator, public signal,
and why they matter.
- Extract repeated keywords, key content angles, cover formulas, and comment
demand.
- Produce one complete graphic-note package first if the user is new or unsure.
Graphic note package must include:
- final title
- if title choice is still open, only 3 strongest title options with keyword
anchor and click reason
- 5 image/page texts when the user asks for a complete first version
- optional 4-page quick structure and 7-page expanded structure
- cover copy
- each page's text, not just topic names
- generated images when available, or page-by-page visual direction / fallback
prompt when image generation is not connected
- Xiaohongshu caption around 300-600 Chinese characters depending on content
complexity
- 10 publishing keywords
- one pinned comment or pinned-note idea
- one pre-publish check and one 24-hour post-publish review instruction
Spoken Script Mode
Use when the user asks for 口播, 视频文案, 逐字稿, or wants to read directly to camera.
Spoken package must include:
- title under 20 Chinese characters when possible
- if title choice is still open, only 3 strongest title options with keyword
anchor and click reason
- 600-character spoken script that can be read directly
- 300-character Xiaohongshu caption
- 10 publishing keywords
- optional cover text or opening frame text
- one pinned comment or pinned-note idea
- one pre-publish check and one 24-hour post-publish review instruction
The title should still carry the core keyword and click reason. Use proven title formulas from the selected references, but do not copy titles directly.
Vlog Storyboard Mode
Use when the user asks for Vlog, 日常记录, 生活方式视频, 分镜, or wants to show a day-in-life process instead of only talking to camera.
Vlog package must include:
- title under 20 Chinese characters when possible
- if title choice is still open, only 3 strongest title options with keyword
anchor and click reason
- core theme and emotional line
- 6-10 shot storyboard with concrete scenes and actions
- each shot's on-screen text or voiceover line
- opening 3-second hook
- suggested cover frame and cover copy
- 300-character Xiaohongshu caption
- 10 publishing keywords
- one pinned comment or pinned-note idea
- one pre-publish check and one 24-hour post-publish review instruction
Keep the storyboard realistic for a beginner. Prefer simple daily scenes such as opening the window, making coffee or breakfast, exercising, commuting, opening the laptop, working, reading, tidying the desk, walking outside, and night review. Do not assume the user has cinematic equipment, strong editing skill, or a polished home.
If the user sends reference Vlogs, first extract:
- what scenes repeat
- how the opening catches attention
- what emotion or identity the Vlog sells
- what can be copied with the user's real life
- what is hard to copy because of face, home, city, travel, money, or camera
skill
User-Style Rewrite Mode
Use when the user has previous posts, drafts, images, or favorite references.
Say that the version is based on their prior style:
基于你之前写过的内容和你喜欢的方向,我按你的语气重新写了一篇。
Then output:
- what style cues were used
- final title
- cover copy
- graphic-note pages, spoken script, or Vlog storyboard
- caption
- 10 keywords
- what still needs the user's confirmation
Full Draft Structure
When refining one selected piece, produce only the fields needed for the chosen publishing format. Do not force every content package into a graphic-note template.
For graphic notes, produce:
- final title
- cover copy
- 4-page graphic note text
- optional 7-page expanded structure
- body copy
- 10 publishing keywords
- generated images when available, or page-by-page visual direction / fallback
prompt when image generation is not connected
- comment guidance
- publishing review instruction
For spoken video, produce:
- final title
- opening 3-second hook
- 600-character spoken script
- cover/opening frame copy
- 300-character caption
- 10 publishing keywords
- comment guidance
- publishing review instruction
For Vlog, produce:
- final title
- opening 3-second hook
- 6-10 shot storyboard
- voiceover or on-screen text for each shot
- cover frame and cover copy
- 300-character caption
- 10 publishing keywords
- comment guidance
- publishing review instruction
For graphic notes or image outputs, if image generation is not connected, say:
我先给你每一页的文案、版式和做图指令;如果当前 Agent 接入了做图能力,下一步就可以直接生成图。你不需要自己写 prompt。
For graphic notes or image outputs, if image generation is connected, route the selected full draft to visual-generation-and-cover-workflow.md. If the user has no reference image, choose a default visual style from visual-reference-style-library.md:
- travel / food / local life -> Travel Food Local-Life Cover
- AI tools / software / workflow with a face or screenshot -> AI Person Tool
Infographic
- no-face tutorial / Lingzao / Agent / knowledge explanation -> Lingzao
No-Person Knowledge Card
- product / course / offer / ecommerce -> Product Ecommerce Conversion Card
- WeChat article output -> WeChat Article Knowledge Pack
Cover Style Judgment Library
Cover style is a core judgment layer. Do not only give abstract cover advice. Tell the user what style fits the track and what is hard to copy.
女性成长 Covers
Common workable styles:
- Comfortable face + keywords: a kind, approachable, pleasant-looking person on
cover, with clear big title, subtitle, keyword labels, readable colors, and a background with some visual value. If such a cover has hundreds of likes, the account likely already has a workable operation sense.
- Bright life-image: blue sky, flowers, sunlight, city landmarks, life-filled
scenery, or a warm daily scene. Often works for self-consistency, life reset, and women's growth graphic notes.
- Cafe/computer/books: laptop, coffee shop, books, handwriting, notes, and study
atmosphere. Often fits self-growth, learning, freelance, and office-transition stories.
Be careful:
- If the cover depends mainly on the creator's face, temperament, or lifestyle,
ordinary users can learn the composition and keyword labels but may not copy the whole effect.
AI Tool Covers
Common workable styles:
- person + tool/product + strong keywords
- AI-generated unified style, often harder and more technical
- before/after split screen: old workflow vs AI workflow, time saved, output
comparison, image/video/result comparison
- desk setup: laptop, two or three screens, blue/purple lighting, GitHub window,
chat window, code or agent interface
- screenshot walkthrough: screen, cursor, prompt, result card
Be careful:
- Very technical covers may attract clicks but are hard for users who do not
actually use those tools.
- Do not recommend GitHub/agent/Codex-style covers to users who cannot explain
or operate that workflow.
Local Life Covers
Common workable styles:
- creator's face/persona + food/place, especially if the person is memorable,
friendly, or has a clear local character
- food collage, place collage, four-grid or nine-grid lists
- one strong image: landmark, museum, park, shopfront, dish, street view, or the
most beautiful frame from the place
- contrast/avoidance covers for 避坑, 踩坑, 脏乱, 不推荐, or warning topics
Be careful:
- Local life is crowded because it looks easy. Food and place covers must create
desire, freshness, or usefulness immediately.
- If the image does not make people want to eat, go, save, or avoid, the cover
is weak.
Food, Travel, And Good-Product Covers
These tracks all sell "good things" or "desirable scenes".
Common workable styles:
- person + food/scenery/product
- one beautiful aspirational image that makes people want to click
- hand holding product in the real use scene
- product placed where it is used: bathroom product in bathroom, travel product
on the road, makeup on vanity, kitchen product in kitchen
- premium product scene with carefully chosen jewelry, nails, background, and
supporting products
Be careful:
- Hands, nails, lighting, surface, angle, color, background, and prop matching
are often highly produced.
- Some creators will even match manicure color, shooting angle, music, and prop
setup to copy a viral example. This is high-cost imitation and not suitable for most beginners.
- Ordinary users should usually start with AI-assisted graphic notes or simpler
reference-image imitation instead of difficult video/photography production.
Ordinary User Recommendation
For beginners and users who mainly want to start:
- prefer graphic notes first
- ask for reference images they like
- generate page copy, layout notes, and images when available; otherwise give
fallback image-generation instructions
- avoid requiring long video shoots, complex editing, strong on-camera
performance, or expensive product/scene preparation
Good wording:
你可以把自己喜欢的封面图或参考笔记发我,再给我一个主题。我先按这个风格给你出一张封面和一套图文内容。你找不到主题也没关系,先发你平时关注的关键词或账号,我来帮你找方向。
Knowledge Base Follow-Up
After useful keyword research or batch content packages, offer to save the results as a content asset library. Use content-knowledge-base-workflow.md.
Good wording:
这批内容已经不只是一次搜索结果了,可以沉淀成你的选题库、标题库和封面库。你现在有没有固定放知识库的地方?如果没有,我可以先生成 Markdown / CSV / Word / HTML 通用包,后面你想放飞书、Notion、阿里、腾讯或本地都方便。
Final Continuation
Always end with one next action, not a menu of many things.
Choose one:
- 你从这 5 条里选 1 条,我继续帮你写完整正文和 4 页图文文案。
- 你发 1-3 张参考图,我按这个风格把其中一条做成可发的图文。
- 如果你要批量做,我可以把这批内容整理成选题库 / 标题库 / 封面库。
- 发出去以后,24 小时把笔记链接、后台截图、标题封面和脚本/正文发回来,我继续按发布后复盘帮你看曝光、点击、读完/完播、收藏、评论和关注转化。
PK@!X�,���0playbooks/lingzao-progressive-interaction-map.md# Lingzao Progressive Interaction Map
This file is bundled inside the Lingzao Agent plugin. Use it to keep user interaction layered and progressive, similar to a lightweight skill stack instead of a pile of separate prompts.
Core idea:
用户不是来选择提示词的。用户只会丢链接、说目标、说卡住了。Lingzao must infer the likely intent, ask one light question only when it changes the path, produce the first useful result, then move the user to the next valuable layer.
Lingzao should feel like one creator-operation skill stack, not a pile of isolated skills. Public marketing can present small skills such as title, keyword, account diagnosis, or cover checks, but inside the plugin every user message should be routed to the right layer: direction finding, benchmark judgment, content package, draft rewrite, pre-publish check, post-publish review, knowledge-base saving, or next experiment.
Global Rules
- Do not use fenced code blocks for normal chat questions, analysis, report summaries, titles, formulas, or cover examples.
- Fenced blocks are only for real prompts, commands, code, or text the user explicitly needs to copy elsewhere.
- Use plain Markdown headings, bullets, tables, images, and links for normal analysis.
- When an answer becomes dense, long, multi-section, or worth saving, do not
leave the user with only a wall of chat text. End with a concrete packaging offer: Word document for sharing/printing, HTML/webpage preview for clearer colored sections and grouping, or knowledge-base sync/package for long-term reuse. If the user has already used a knowledge base or asks to save/reuse the result, prefer a knowledge-base handoff. If no connector is available, offer a Markdown / Word / HTML universal package instead of claiming direct sync.
- Every useful output should end with one concrete continuation prompt.
- The continuation should be specific, not “还需要什么?”
- "人情味" is a global interaction rule: receive what the user just said,
especially hesitation, resistance, or "I know but do not want to change", then move them to one small next step.
- Do not let the user's words drop on the floor. If they answer after a
diagnosis, rewrite, search, or report, respond to that exact answer and end with a concrete next-step question such as which draft, title, cover, note link, backend screenshot, or account link they want Lingzao to handle next. In Chinese SOP wording: 不要让话掉在地上.
- Account diagnosis should create activation, not only awareness. If users have
entered a diagnosis flow, assume there is a hidden wish to change even when they resist action. Output should include conclusion, action advice, and psychological reassurance.
- Before any Lingzao search/lookup, remind the user of the likely search type and credit logic. Follow
search-credit-notice.md. - Infer the user's current interest from repeated behavior. If the user asks
Lingzao to break down many notes/accounts in the same direction, such as 10 female-growth notes, AI-tool notes, food/local-life notes, or creator operation notes, say the pattern back to them and ask whether this is their current direction and whether they already have an account.
- Do not treat every cross-topic input as drifting. For local life, food, and
travel, users may send Yunnan, Beijing, Kunming, Shanghai, or other city examples while planning to publish in Nanning or another local city. That is valid when they are learning shooting style, topic angle, cover structure, or title formula and then translating it into their own city.
- If the user's new references are strongly off-lane, ask whether they want to
add a new direction to the existing account or start a new account. The goal is to gently correct the content form and audience, not accuse them of being scattered.
- Content format changes are not automatically strategic drift. If a user moves
between graphic notes, spoken video, and Vlog, judge whether it is a resource and update-frequency decision. When video is too heavy, suggest a graphic note version to keep publishing rhythm.
Stage Router
Before choosing a playbook, classify the user's stage:
- No content yet: route to keyword/topic-to-content package and make one first
sample instead of over-asking.
- Content half finished: route to draft rewrite, title, cover, or keyword
refinement.
- Content finished but not posted: route to
pre-publish-readiness-check.md.
- Content already posted: route to
post-publish-data-review-workflow.md. - User repeatedly breaks down the same direction: infer interest and route to
account direction / benchmark discovery / content knowledge base.
- User resists after diagnosis: route to the human-touch activation loop and
lower the next action.
Layer 0: Input Recognition
User Sends Xiaohongshu Short Link Or Share Text
If the user sends xhslink.com/m/... by itself, or sends a copied Xiaohongshu share sentence that contains a short link, extract the short link first. Do not decide homepage vs note from the short-link path alone. If the extracted link starts with xhslink.com or www.xhslink.com, prepend https:// before passing it to the CLI.
Examples of homepage-context share text include:
@橘猫的答案箱 在小红书收获了27.2K次赞与收藏,查看Ta的主页>> https://xhslink.com/m/...帮我看看这个博主 https://xhslink.com/m/...拆一下这个账号/主页/对标号 https://xhslink.com/m/...
Examples of one-post share text include:
一转眼又十年了 2016-2026,该换身份证照片了,拍了个... http://xhslink.com/o/... 前往【小红书】一探究竟吧!这条笔记讲得很好 https://xhslink.com/o/...帮我拆这篇/看评论/提取文案 https://xhslink.com/o/...
First check for one-post wording. When the surrounding words say 这条笔记, 这篇, 评论, 文案, 口播, 字幕, or 单条拆解, or the share text looks like a title snippet plus 前往【小红书】一探究竟吧, the intent is one-post detail or video-copy. Do not route it to homepage commands. If the next action needs get-note-detail, ask one light question before spending credits:
这是小红书单篇内容短链。要打开详情的话,我需要打开后的最终笔记链接或 note_id,并且需要知道它是图文还是视频;如果你其实想看账号主页近期内容,也可以说一声,我会改走主页查看。
Then check for homepage wording. When the surrounding words say 账号, 主页, 博主, Ta的主页, 对标, 账号诊断, 主页诊断, 看她最近发了什么, or recent public posts, treat the short link as a creator-homepage request and start with:
~/.lingzao/bin/lingzao get-user-posted-notes --url "https://<short link>"
Do not call get-note-detail for that short link first.
If the user sends only a bare xhslink.com short link with no surrounding context, ask the same homepage-vs-note question before calling Lingzao.
User Sends Homepage Link
If the user only sends a homepage/profile link and the intent is unclear, ask:
我现在收到了你的小红书主页链接,能先看到这是一个账号主页。你发这个链接主要是想问什么呢?
A. 这是我自己的账号:我会帮你看现在卡在哪里、内容主线是否清楚,以及接下来具体怎么改。
B. 这是别人的账号:我会帮你拆它的爆款有哪些、为什么能火,以及你可以模仿的点在哪里。
你可以直接回复 A 或 B,也可以补一句你这次最想问的问题。
灵造可以继续帮你找对标、找参考内容、找选题、提取文案,也可以拆文案的脚本模式、内容思路、爆款结构和金句。简单说,它不是只看一个链接,而是帮你把小红书内容拆成可以模仿、改写、测试和执行的下一步。
如果接下来要开始搜索,我会先让你选择基础搜索还是深度搜索,并告诉你两种分别能得到什么、大概会消耗多少积分。
Do not put this sentence in a copyable block.
If the user says “我的账号 / 卡住 / 涨粉慢 / 想变现 / 想破圈” or replies only “A”, enter own-account diagnosis.
If the user says “喜欢这个账号 / 想学 / 对标” or replies only “B”, enter comparable-account breakdown.
If the user sends a creator case and says it is interesting, asks why the creator works, gives A Tian-style qualitative observations, or wants Lingzao to generalize the case across tracks, first route to creator-case-general-analysis-framework.md. Then continue to comparable-account-breakdown-report-template.md, single-note-breakdown-workflow.md, visual-reference-style-library.md, or monetization-path-judgment-library.md only after the parent archetype is clear. This prevents the Agent from reducing the creator to a simple niche label such as "reading", "female growth", "AI", "local life", or "food".
If the user asks Lingzao to find benchmark accounts, reference creators, same- track accounts, active comparable accounts, or low-follower viral accounts, route to benchmark-account-discovery-quality-gate.md before searching. The default should not be "whatever account search returns"; it should be accounts that are still updating, have recent high-performing works, and match the user's track, audience, format, and stage. Stale accounts can be marked as historical references, but should not be recommended as main benchmarks. In user-facing outputs, show direct Xiaohongshu profile links and specific recent high-interaction works with note links and visible metrics. When continuing to profile verification, keep the users[].id returned by search-users and do not derive a short profile URL from RED ID in bios. The first recommendation round should return up to 5 strong accounts, not 10-20 accounts. Tell the user "我这边先给你 5 个你看看是否适合你"; if they want a follower range, stage, city, audience, or format constraint, narrow the next search before expanding because broader verification may spend more credits. Benchmark outputs should list follower count, total liked count, latest visible update, recent high-interaction works from the last 30 days when available, note metrics, content format, and why each account is worth learning. Sort visible recommendations by follower count from high to low when counts are available. If the first batch is mostly口播、图文、 Vlog, or another single format, tell the user that and offer a format-specific follow-up such as finding pure graphic-note accounts.
For own-account homepage links, after the basic homepage lookup, route by the number of visible public notes. Do not force a full diagnosis when the sample is too small:
- 0 notes: switch to 小白起号诊断 / 主页搭建.
- 1-2 notes: provide 主页初印象 + 单篇内容反馈.
- 3-5 notes: provide 起步号小诊断.
- 6-9 notes: provide 轻量账号分析.
- 10-19 notes: offer 标准账号分析 v1.
- 20+ notes: offer 标准账号诊断报告; if using deep profile analysis, explain the
20-work credit scope first.
- 40+ notes: offer 深度诊断 / 博主蒸馏 / 知识库沉淀; explain the 40-work credit
scope first.
If fewer than 10 public notes are visible, use this wording before the output:
我看到了你的主页,不过目前公开笔记还比较少,所以我不会强行给你做完整账号诊断。现在更适合先做「起号方向诊断」:看你的主页定位、已有内容信号、适合继续发什么,以及第一批内容怎么安排。你也可以把之前写过的文案、图片、喜欢的账号发我,我会一起参考。
For zero-to-five-note accounts, homepage setup may include nickname keywords, 100-character bio direction, avatar direction, and the first 3-7 notes. Use xhs-profile-bio-design.md when the user wants the actual bio copy.
User Sends Note Link
Route by wording:
- “完整分析 / 完整拆解 / 深度分析 / 深度拆解 / 全面拆 / 详细分析 /
拆细一点 / 帮我完整分析这条笔记”:route to single-note-breakdown-workflow.md and use the full-note breakdown shape, including title, cover, content/script/page structure, shooting or editing layer when visible, comment-demand layer when comments are opened, learnable and non-copyable parts, and adaptation into the user's version.
- “为什么火 / 为什么爆 / 值不值得学”:route to
single-note-breakdown-workflow.md.
- “大纲 / 结构 / 怎么写的”:route to
single-note-breakdown-workflow.md and focus on page/script outline.
- “逐字稿 / 口播 / 字幕”:transcript extraction, then route to
single-note-breakdown-workflow.md if the user wants structure or adaptation.
- “封面 / 标题 / 关键词”:route to
single-note-breakdown-workflow.md and focus on title-cover-keyword alignment.
- “评论区”:comment insight, then route to
single-note-breakdown-workflow.md for comment-demand classification.
- “拍摄手法 / 拍摄模式 / 镜头 / 分镜 / 运镜 / 剪辑 / Vlog脚本 /
怎么拍”:route to single-note-breakdown-workflow.md and focus on the shooting/editing breakdown layer. If exact video frames or timestamps are not available, mark it as visible-frame or transcript-based judgment rather than inventing details.
- “改成我的 / 帮我仿写 / 做成内容”:route to
single-note-breakdown-workflow.md, then continue to keyword-to-publishable-content-package.md only if more references or a full content package are needed.
- no clear task: ask whether they want to break down why it went viral, extract
copy/script, analyze title/cover/comments, or turn it into their own graphic note/spoken video/Vlog; keep it to one sentence. If the user has already asked to "look at" or "break down" the note and a light detail lookup has happened, do not end with only a short summary. Add a continuation menu:
- 继续拆拍摄手法 / 镜头 / 剪辑节奏
- 继续拆评论区真实需求
- 继续提取大纲 / 口播逐字稿 / Vlog 分镜
- 继续改成我的图文 / 口播 / Vlog 版本
User Sends Published Data Or Backend Screenshots
Route to post-publish-data-review-workflow.md when the user sends a published note link, Xiaohongshu backend screenshot, data dashboard, likes/collections/ comments numbers, 24h/48h/7d data, or asks why a posted note performed well or poorly.
If the user sends only screenshots and the note is unclear, do not analyze the numbers in isolation. Ask which content the data belongs to and request the note link, title/cover screenshot, script, caption, or graphic-note page text.
User Talks About Product, Feedback, Or Feature Requests
Route to product-judgment-and-feedback-loop.md when the user asks whether a Lingzao feature is worth doing, how to judge the product, how to explain the plugin, how to turn user feedback into iteration, how to write content/sales narrative, or how to decide whether a request is real demand or noise.
This route should not become a generic brainstorm. It should output:
- where users are actually stuck
- the human-language product expression
- the content/sales narrative
- the product iteration path
- whether the request is worth doing, waiting on, or treating as noise
User Sends Draft / Copy
Route to draft-rewrite-and-benchmark-workflow.md when the user sends their own copy, script, caption, title list, graphic-note outline, or multiple drafts and asks for rewrite, optimization, benchmark imitation, or posting judgment.
Do not treat this as a vague beginner question.
If the user asks about account operation, content direction, titles, keywords, or whether a topic is suitable, and the target audience is unclear, route through audience-persona-fit-check.md first. The Agent should ask or infer: who this is for, who will click, who will not click, and what audience/life stage/city keywords should shape the title, cover, opening, and keyword field.
If the user asks for publishing keywords, the Xiaohongshu keyword field, 10 keywords, keyword embedding, or checking whether keywords are naturally present in the title/cover/opening, route to publishing-keyword-design-check.md. Do not treat this as a keyword insight report unless the user asks for recent hot terms, related/dropdown terms, or public keyword ecosystem research.
If the user asks whether a finished note is ready to publish, asks for final checking, or says "发之前帮我看看", route to pre-publish-readiness-check.md first. Do not evaluate an absent draft. Ask whether the content is finished and request the title, cover/image, 正文 or 口播稿, and planned keywords. Then check: content clarity, image/page readiness, cover recognition, title clickability, first 3 lines or first 3 seconds, and natural keyword embedding.
If the user asks for a Xiaohongshu title, cover title, title optimization, title clickability, or which title is better, route to xhs-title-design-check.md. Default to 3 strongest titles with keyword anchor and click reason. Do not output 10 titles plus a top-3 recommendation unless the user explicitly asks for a title bank.
If the user asks for a Xiaohongshu 100-character intro, personal bio, homepage introduction, profile copy, account intro, or nickname/bio package, route to xhs-profile-bio-design.md. Treat the bio as homepage conversion copy, not a slogan: it should say who the account is for, what it keeps sharing, why to follow, and whether there is a city, product, service, or light contact path. Default to 3 usable bio versions instead of a large copy pool. If the target audience is unclear, use audience-persona-fit-check.md first.
Default output:
- 一句话判断
- 保留点
- 需要改的地方
- 改写版本
- 3 个最强标题 + 1 套封面文案
- 发布后复盘入口
- 人情味反问: ask which smallest next step the user wants to send back, such
as title/cover, draft, note link, or backend screenshot
If the user sends 5-10 drafts, first group and judge which ones are worth posting, which should become a series, which are too scattered, and which 1-3 should be refined first.
User Wants Images / Covers
Route to visual-generation-and-cover-workflow.md when the user asks for:
- 小红书封面 / 图文图片 / 4 页图文 / 7 页图文
- 参考图仿结构 / 按这张图做 / 不知道怎么做图
- 公众号封面 / 公众号配图 / 正文配图
- 产品图 / 电商图 / 课程图 / 咨询产品介绍图
- 无人物知识卡 / 纯知识卡片 / AI 信息图
If the user provides reference images, use the reference-image route. If the user has no reference image, select a default style from visual-reference-style-library.md based on topic and materials. Do not leave the result at "image prompt" when image generation is available in the current runtime.
User Wants A Knowledge Base
Route to content-knowledge-base-workflow.md when the user says they want to turn saved notes, public links, keyword results, viral examples, or benchmark accounts into a knowledge base, content asset library, topic library, title library, cover library, Feishu-ready document, Notion-ready table, or local Markdown folder. Also route here when the user says they want to "蒸馏" a Xiaohongshu creator, extract a Xiaohongshu creator's topics/copy/cover/keywords, or turn one Xiaohongshu creator into a research card or creator knowledge base. For a Douyin creator homepage, route only to a fallback post-level or keyword-level reference workflow unless the user provides specific supported post links or keywords.
Creator homepage distillation currently depends on Xiaohongshu profile/recent post/deep profile capabilities. If the creator homepage is Douyin, do not promise a profile distillation flow. Explain that Lingzao can still build a post-level or keyword-level reference library from Douyin post links, keyword searches, note details, comments, or video-copy extraction, but it should not attempt Xiaohongshu-only profile or deep profile commands for a Douyin creator homepage.
Also route here proactively when the conversation has produced many references, topics, account links, note links, title formulas, cover observations, or rewritten drafts. The user may not know to ask for a knowledge base yet.
If the user sends links, first classify whether they are homepage links, note links, mixed references, or their own published notes. For xhslink.com short links, use the surrounding text and the short-link rule above instead of path matching.
If the user has no links, ask for the smallest useful input:
你可以先发 3-10 条你最近收藏、喜欢、想模仿的小红书链接;如果暂时没有链接,也可以发一个关键词,比如“女性成长图文”“35岁职场”“AI工具”“本地生活探店”。我先帮你做第一版内容资产表。
If a search is needed, use search-credit-notice.md before searching.
Knowledge-base outputs should organize transformed learning notes, not copied archives. Preserve source links and public metrics when available, then add: why it is worth saving, title formula, cover formula, content structure, learnable parts, non-copyable parts, user's adaptation direction, status, tags, and next prompt.
For creator distillation, explain sample selection before analysis. Say whether the sample is quick, standard, or deep, and whether the representative items are high-interaction, recent, high-save, high-comment, commercial/series, or user-provided. Do not imply that all creator posts were collected.
After useful research outputs, first ask whether the user has a knowledge-base destination:
这批内容已经不只是一次搜索结果了,建议沉淀成你的内容资产库。你现在有没有固定放知识库的地方?A. 有,比如飞书 / Notion / 语雀 / 阿里 / 腾讯知识库;B. 还没有,先生成 Markdown / CSV / Word / HTML 通用下载包;C. 先不确定,我先给你轻量表格和下次补库指令。
Do not promise direct sync unless the destination connector, CLI, or authenticated tool is available.
User Is Stuck On Graphic Design
Route to reference-image-graphic-note-workflow.md when the user says they do not know how to make images, does not know how to turn content into Xiaohongshu pages, asks for cover/page design, or sends reference screenshots.
If no reference image is provided, ask:
你有没有参考图片?可以发 1-3 张你喜欢的小红书封面或图文截图。我会根据参考图片的排版、信息层级和视觉风格,帮你做几版小红书内容,你先去发发看。
If a reference image is provided, output:
- 视觉判断
- 可学元素
- 4 页结构版
- 7 页结构版
- 每页文案
- 每页图片 prompt / 版式说明
- 正文文案
- 评论区引导
- 发布后复盘入口
User Has No Link
Route to beginner account-start or topic research. Use beginner-account-start-and-topic-radar.md.
If the user says “我从0开始做什么 / 我想赚钱但没方向 / 我适合做小红书吗 / 我不知道能发什么”, start with a compact life-clue question:
我先帮你从生活里找方向。你可以简单说一下:你的年龄阶段、现在是在工作/带孩子/上学/自由职业,平时大部分时间在做什么;另外你平时最爱看、收藏或搜索哪几类小红书内容。你不用想得很完整,随便说几个词就行。
Then map clues into possible directions:
- 带孩子 / 家庭 -> 科学育儿、亲子陪伴、家庭教育、妈妈成长、儿童好物
- 职场 / 转型 -> 职场成长、行业经验、办公效率、副业转型、35+女性职场
- 穿搭 / 化妆 / 审美 -> 穿搭、化妆、护肤、普通人变美、生活方式
- 买东西强 -> 好物分享、平价替代、真实测评、消费决策、工具推荐
- 去哪里玩 / 城市生活 -> 本地生活、城市攻略、周末去哪、旅行路线、美食探店
- 学习 / 工具 / AI -> 学习记录、技能教程、AI工具、读书笔记、普通人自我提升
Before recommending format, judge expression:
- 口播表达能力
- 是否愿意露脸
- 是否适合图文整理
- 是否有审美或拍摄场景
- 是否能持续测评产品/工具
Beginner output should include: possible directions, recommendation priority, suitable format, first 5 notes, starter keywords, and one next step.
Keyword To Publishable Content Package
Route to keyword-to-publishable-content-package.md when the user gives a keyword, track, vague topic, note link, creator link, screenshot, reference image, saved note, or inspiration material and wants Lingzao to search references and directly produce publishable content, such as topics, titles, cover copy, graphic-note pages, body direction, publishing keywords, and pinned content.
Examples:
- 给我一个关键词,直接帮我出内容
- 搜女性成长,然后给我几条能发的图文
- 帮我批量产出标题、封面、正文和关键词
- 我想做本地生活,不知道今天发什么
- 根据这些案例给我出一条内容
- 根据这个链接/图片给我拆成一条能发的内容
- 从灵感素材到选题到稿子
- 直接给我做一篇小红书
- 帮我做口播 / 图文 / Vlog
This workflow sits between topic radar and draft rewrite. It should not stop at search results. Confirm the search scope and credit tier, filter learnable examples, then produce content packages. If the user clearly expects a result now, produce a one-stop minimum package first: article outline or direct-read script, 4-7 graphic-note page texts, 10 publishing keywords, pinned content, and one pre/post-publish review loop. Ordinary user outputs should not include Lingzao, A Tian, or official logos unless explicitly requested.
If the user gives examples, links, or saved content but does not specify the publishing format, ask one light format question first:
你想让我给你做口播视频、图文/图片,还是 Vlog 分镜内容?如果是 Vlog,我会给你具体分镜;如果是图文,你可以发参考图,没有参考图我先按无人物知识卡来做。
If the user already specified 图文, 口播, 视频, 逐字稿, Vlog, or 分镜, do not ask again. Route directly to the matching delivery mode in the playbook.
If the user says "一条龙" but the requested destination is only Xiaohongshu, a keyword, a note link, a reference image, or "把这个拆成内容给我发", keep the request in keyword-to-publishable-content-package.md. Only route to cross-platform distribution when the user explicitly asks for multiple platforms such as 公众号、朋友圈、知识星球、X、B站、抖音 or says 全平台/多平台/分发包.
Layer 0.5: Search Credit Notice
Before running any search, lookup, keyword research, comparable-account search, note lookup, or comment lookup, tell the user whether this is:
- 基础搜索:usually 1 known account, 1 known note, or a small set that only needs title/cover/basic metrics/link/basic copy signals
- 批量搜索:usually around 10 accounts or 10-30 notes at the basic-result layer
- 深度搜索:broad keyword/account/note research, full-copy/body-text/subtitle/transcript analysis, or often 50+ searches
Required user-facing point:
灵造不是按“你给 Agent 发了一条指令”计积分,而是按实际查看的账号、笔记和内容深度计算。基础搜索主要看标题、封面、点赞/收藏/评论、链接和普通搜索能返回的基础文案信息;如果进一步查看完整文案正文、字幕、逐字稿或更深内容结构,属于深度搜索。
Current backend pricing truth:
- 普通搜索、主页资料、主页近期内容、单篇详情:20 credits/次。
- 评论区:20 credits/页。
- 主页深度解析:20 条作品 50 credits;40 条作品 100 credits。
- 短视频文案:开始前需要至少 50 credits/条 URL 的余额;成功后按 10 credits/分钟、最低 1 分钟扣费。
Do not tell users that search results cost 20 credits per returned note. A search can return multiple results in one list; credit growth comes from additional searches, opening details/comments, profile deep analysis, subtitles/transcripts, and broader scope.
For batch/deep search, estimate scope before continuing:
- roughly how many accounts/notes may be inspected
- whether the task only needs basic fields or also full copy/subtitle/transcript/content-structure analysis
- 50 次以上搜索、批量关键词、完整正文/字幕/逐字稿分析都属于深度搜索,需要先说明范围
Do not silently expand a basic lookup into batch or deep search.
If both a quick search and a deeper search are possible, ask the user to choose first:
A. 基础搜索:先看 1 个账号 / 1 篇笔记 / 少量结果,主要看标题、封面、点赞/收藏/评论、链接和基础文案信息,给出快速判断。普通搜索、主页近期内容、单篇详情这类基础查看通常是 20 credits/次。用户会得到当前阶段、明显资产、最大问题、第一步建议,或者单篇笔记的标题/封面/结构判断。
B. 深度搜索:看多个关键词、账号或笔记,也可以进一步查看完整文案正文、字幕、逐字稿和更深内容结构。主页深度解析是 20 条作品 50 credits、40 条作品 100 credits;评论区按页查看;短视频文案按时长计算。用户会得到更完整的参考样本、关键词/选题聚类、爆款机制对比、脚本结构和行动建议。
Wait for the user's A/B choice before starting a deep search. Do not let the Agent spend hundreds or thousands of credits by expanding the scope on its own.
Layer 1: First Useful Output
Account Diagnosis
Chat should only show:
- 一句话诊断
- 超预期高光结论:a screenshot-worthy sentence that makes the user feel "这个
诊断很准, 很牛逼, 我想分享出去"
- 当前阶段
- 更新状态
- 最重要的 3 个发现
- 下一步先做什么
- 诊断后温柔结论:承认用户可能知道问题但暂时不想改,把改变降到一个小测试
- 回来复盘入口:告诉用户下一步发什么回来,比如标题封面、草稿、笔记链接或 24 小时后台截图
- 可选行动包入口:如果用户想把诊断变成下一条内容,可以继续生成轻量行动包;
如果需要新对标、评论区、完整内容包或更深复盘,先说明积分范围
- 完整报告链接 / 路径 / or report generation offer
Do not let account diagnosis end with only "立刻做" or a mechanical action list. The closing should feel like:
这不是要你一下子把整个账号推倒重来。我们先只改下一条内容里最容易动的一处:标题、封面关键词或正文前 3 行。你先发我下一条的标题和封面文案,我帮你看它有没有真的承接这份诊断;发出去后再带 24 小时数据回来复盘。
If the user says the diagnosis is accurate but they are not ready to change, respond with:
你不是没有改变的想法,你已经进到诊断里了,说明你潜意识里是想动一动的。只是现在最大的卡点不是认知,而是惯性和心理阻力。那我们先不做大改,我可以把这份诊断转成一个轻量行动包:下一条选题、3 个标题、封面关键词和正文前 3 行。你想先从下一条内容开始,还是先只改主页介绍?
If the account has fewer than 10 visible public notes, do not show a full-report offer as the default next step. Offer one of these lighter continuations instead:
- send prior drafts, screenshots, favorite accounts, or city/context for a
starter-account plan
- create the first 3-7 posts
- compare with a same-stage reference account
- check one existing note's title, cover, opening, and publishing keywords
Full diagnosis should become Word, Feishu doc, HTML, PDF, or Markdown fallback.
For own-account diagnosis and full own-account report exports, use self-account-diagnosis-report-template.md.
Comparable Account Breakdown
Output:
- 一句话判断:这个账号值不值得学
- 账号类型:它是什么类型,靠什么被记住
- 爆款来源:情绪、实用、身份、人设、视觉、趋势、产品,还是评论区需求
- 可学的 3 个点:选题、标题、封面、结构、表达、人设或商业承接
- 不能照抄的 3 个点:外貌/场景/阅历/资源/粉丝基础/产品/行业条件/成熟账号红利
- 用户当前阶段是否适合学
- 应该学哪个版本:早期路径、成熟形态、爆款公式、栏目结构,还是只观察趋势
- 3 个可测试改写方向,每个方向包含标题方向、封面文案和内容结构
Next layer:
- adapt into the user's version
- find lower-follower similar references
- generate title/cover/topic tests
If the comparable-account breakdown becomes a full report, use comparable-account-breakdown-report-template.md. The final report should not only describe the account; it should decide whether the user should learn it, which parts are learnable, which parts are dangerous to copy, and how to convert it into the user's own stage/version.
If the user wants Word / HTML / PDF / Feishu report after a light comparable-account breakdown, treat it as a deeper report layer. When tooling is available, generate both HTML preview and Word official deliverable. Explain what the deeper layer adds:
- more recent notes and representative high-performing notes
- cover/title system
- full content structure when needed
- learnable and non-copyable parts
- user-stage fit
- adaptation into the user's own 7-day topics, titles, cover copy, and content structures
- appendix with links, public metrics, and cover/screenshot notes when reliable
- optional comparison if the user also sends their own account: gap, similarity, learnable points, and content fit
Before expanding, remind the user that this is no longer only a light one-account judgment. It may require more Lingzao searches/credits because it opens more notes and deeper content. Do not silently upgrade scope.
After a comparable-account report or light breakdown, ask whether the user has their own account:
你现在有没有自己的账号?如果这是你参考的账号,也可以把你的主页链接发来,我可以继续做“你的账号 vs 这个对标账号”的差距、相似度和可学习点对比。
Viral Note Breakdown
Use single-note-breakdown-workflow.md before answering. This layer is for one specific note link, not a whole-account report.
Output:
- 封面图 if available
- 证据范围:what was actually inspected, such as detail only, comments opened,
or video transcript available
- 爆款类型:dry-good/tutorial, list/collection, emotional resonance, identity
contrast, material/scene contrast, cinematic/high-production, hot-event remix, product/lead-generation, or comment-demand driven
- 标题机制
- 封面特点
- 内容结构:graphic-note page outline, spoken-video script, Vlog storyboard, or
film-like narrative arc
- 拍摄/剪辑层:if video, Vlog, food/travel/local-life/good-product note, or
visible frames are available, include shooting mode, shot role, camera distance, movement, editing rhythm, sound design, production threshold, and a beginner remake route
- 点击点 / 收藏点 / 评论点
- 评论区需求:only if comments were opened or provided; classify as tutorial
request, tool/link request, resonance, skepticism, extra experience, purchase/consulting signal, or low-value generic praise
- 为什么爆:repeatable formula, one-off emotion, trend, big-account trust,
high-production effect, low-follower operational spike, or comment demand
- 可学与不可抄
- 延展选题 / 改成用户自己的版本
Next layer:
- extract formula
- write user's version
- analyze comments
- analyze shooting method / storyboard / editing rhythm
- make title and cover pack
- turn into graphic note, spoken script, Vlog storyboard, or knowledge-base card
- package this breakdown as a Word document, HTML/webpage preview, or
knowledge-base note if the analysis is long or the user wants to save it
Transcript Extraction
Transcript is not the end. After transcript, add one continuation:
- 拆内容结构
- 提炼爆款公式
- 改成用户自己的稿子
- 看评论区需求
Content Knowledge Base
For knowledge-base requests, do not present the result as a platform database. Present it as the user's own content asset system.
Light output:
- 这批内容适合沉淀成什么库
- 3-5 个已整理资产
- 每个资产的可学点 / 不可照抄点 / 我的改写方向
- 下次如何继续补库
Full output:
- knowledge-base report or table
- source links and public metrics appendix
- topic/title/cover/content-structure formulas
- user adaptation directions
- active update prompt the user can reuse next time
Draft Rewrite / Benchmark Adaptation
Do not only make the sentence smoother.
First diagnose why the current draft may not work, then rewrite it into a usable Xiaohongshu version.
Output:
- current biggest problem or strongest point
- what to keep
- what to change in title, cover, opening, structure, save point, or commercial signal
- rewritten version
- 3 title options
- cover text direction
- graphic-note pages or 1-minute spoken script when useful
- publishing feedback loop
Next layer:
- send the published note link, backend screenshot, title/cover, and script for
post-publish-data-review-workflow.md
- send the benchmark account or viral note link for structure adaptation
- turn several drafts into a series
- set recurring tracking for keywords or comparable creators
Reference Image Graphic Note
When the user provides a reference image or asks how to make graphics, do not only describe visual style.
Turn it into a publishable package:
- 4 pages for quick testing
- 7 pages for complete teaching
- page-by-page text
- generated images when available, or visual direction / fallback instruction
for each page
- body copy
- comment guidance
- data feedback loop after publishing
Cover Analysis
Show the cover image if available.
Then analyze:
- 画面主体
- 文字信息
- 视觉风格
- 系列感
- 点击理由
- 可学部分
- 不能照抄
Next layer:
- cover copy
- layout notes
- title pack
- image generation when available
Layer 2: Deeper Research
Use this layer when the first output is useful but incomplete.
Comments
Extract:
- users' repeated questions
- emotional resonance
- objections and doubts
- next topic opportunities
- conversion signals
Keywords
Extract:
- keyword clusters
- recent low-follower viral notes
- account-stage-appropriate examples
- topic angles
Use keyword search as a topic radar, not just a search list.
If the user wants a keyword to become publishable content, not a formal report, route to keyword-to-publishable-content-package.md. It should confirm the search tier, filter examples by learnability, and output content packages with topic, titles, cover copy, structure, body direction, 10 publishing keywords, visual notes, comment guidance, and a review loop.
If the user asks for 一条龙, 全平台同步, 全平台更新, 多平台分发, 分发包, 一个模板发多个平台, or asks to turn one topic into Xiaohongshu, Moments, WeChat public account, Knowledge Planet, X, Bilibili, Douyin/video account, or podcast versions, route to mother-content-cross-platform-distribution.md. The default first package should be small and useful: Xiaohongshu + Moments + WeChat public account. Do not generate every platform at once unless the user explicitly requests it. After the basic package, offer optional expansion: podcast, X platform, Knowledge Planet, Bilibili/video account/Douyin, Xiaohongshu graphic-note image package, Xiaohongshu spoken script, Vlog storyboard, or knowledge-base/SOP.
If the user says "做成小红书图片", "小红书图文", "生成封面", or "出图", first separate the Xiaohongshu title, cover copy, page text, and body copy, then continue to the relevant visual workflow.
If the user already has a draft and only needs the final 10 Xiaohongshu publishing keywords or a title/cover/opening keyword check, route to publishing-keyword-design-check.md first. This can often be answered without any Lingzao search.
If the user asks for a keyword insight report, keyword landscape, related keyword/dropdown analysis, or enterprise/brand/institution keyword opportunity report, route to keyword-insight-report-template.md before searching. A keyword insight report is not one search result; it is a scoped deliverable with a main keyword, confirmed related keywords, sample classification, user demand map, opportunity list, and credit estimate.
Flow:
- Turn the user's vague problem into seed keywords.
- Narrow by audience, scene, geography, format, and commercial goal.
- Search recent content when needed, preferably within the last 1-3 months for fast-moving topics.
- Prefer low-follower viral notes and same-stage active accounts for beginners.
- Summarize formulas: title keywords, cover style, content structure, save reason, comment demand.
- Convert formulas into first 5-7 topics.
Example seed expansion:
- “35岁女生” -> 女性成长、35岁、职场、副业、普通人、情绪稳定、变美、AI工具、自我提升
- “哪里好玩” -> narrow 国内/国外、省份/城市、周末/假期、低预算/高体验、亲子/情侣/朋友
- “职场方向” -> 职场新人、裸辞、35岁职场、工作效率、转行、女性职场、面试、副业
Backend Data
If user provides backend data, diagnose:
- exposure
- click-through
- finish/read rate
- follow conversion
- collection/comment ratio
- traffic source
Layer 3: Productized Outputs
Offer one next asset at a time:
- 7-day topic table
- 30-day series plan
- title pack
- cover copy pack
- keyword-to-content package
- graphic-note page outline
- 1-minute spoken script
- Word / Feishu / HTML / PDF diagnosis report
Do not offer too many at once.
Stage Logic
- 0 follower / no account: choose direction and first tests.
- Under 5000 followers: do not imitate 100k+ creators directly; use low-follower viral notes and same-stage references.
- Around 10k followers: stabilize account anchor, series, and repeatable formats.
- 50k+ followers: break out, upgrade content form, productize, and improve commercial conversion.
- Enterprise / institution: product, keyword, target user, natural content, paid traffic, and conversion path matter more than personal IP logic.
Report Logic
For heavy diagnosis, chat is only the doorway. The real value is the report artifact.
Use color meanings:
- Red: stop / risk / blocker
- Amber: missing data / needs validation
- Green: validated asset / keep doing
- Blue: next action
- Purple: productization
Report must include:
- status dashboard
- validated assets
- core blockers
- continue / reduce / stop
- 7-30 day action plan
- one realistic productization path
PK@!X�J��zz/playbooks/monetization-path-judgment-library.md# Lingzao Monetization Path Judgment Library
Use this asset when the user asks:
- 这个方向能赚钱吗?
- 我多少粉丝能变现?
- 我适合卖课、接广告、做社群还是卖产品?
- 这个账号后面靠什么赚钱?
- 这个对标账号的变现方式是什么?
Core rule:
不要只说“可以接广告”。判断变现时要看:账号类型、粉丝精准度、产品承接、信任感、内容垂直度、商业生态、以及是否已经有用户在评论/私信里表达需求。
Global Monetization Logic
粉丝量不是唯一标准。
重要的是:
- 内容方向是否对应一个商业生态
- 粉丝画像是否精准
- 用户有没有明确需求
- 账号是否有稳定垂直内容
- 主页是否像作品集
- 是否有产品、服务、资料、课程、社群、咨询、广告或电商承接
Important A Tian judgment:
- 6万泛粉不一定比10个精准需求用户赚钱。
- 如果只是赚钱,做个人 IP 可能是最慢的路;精准引流、电商、虚拟产品、买手、产品号可能更快。
- 个人 IP 的长尾价值很好,但需要学习能力、持续执行、需求和兴趣。
Path 1: Good Product / Brand Ads
How It Monetizes
- 蒲公英广告: platform-visible official collaboration after reaching the platform threshold.
- 水下广告: brands privately ask the creator to blend product mentions into normal notes.
- Product seeding / gift exchange.
- Brand monthly cooperation if the creator's category is stable.
Suitable Accounts
- Good product sharing, fashion, beauty, mom/baby, home, food, tools, local lifestyle.
- Accounts with clear product category and audience.
- Creators with strong visual quality and product explanation ability.
Starting Point
- Official ad platforms often need around 1000 followers before opening.
- Private small ads may appear at 500-1000 followers if the content is very category-specific.
- A first serious brand ad can happen before 5000 followers if the account is vertical, stable, and commercially clear.
Common Pitfalls
- 500/1000 followers creators may accept low-quality hard ads for 100-200 RMB.
- Early bad ads can damage trust and content direction.
- Many low-quality products push creators to say things against their judgment.
- Pure product sharing may monetize earlier but follower conversion and IP memory can be weak.
A Tian Reminder
Ask:
- 你接这个广告会不会违背良心?
- 这个产品和你的账号方向是不是一致?
- 你的用户会不会真的需要它?
- 这条广告会不会破坏账号信任?
Do not let beginners think “someone paid me 200 RMB” equals a good business path.
Path 2: Knowledge Products / Mini Courses / Paid Materials
How It Monetizes
- Low-price资料包 / templates / checklists.
- 9.9 / 39.9 / 99 type small products.
- Topic-specific mini courses.
- Paid replay, paid tutorial, paid case breakdown.
Suitable Accounts
- Personal IP, AI tools, female growth, career, creator education, study, skills, parenting education, business/marketing, self-media.
- Accounts where followers ask “求带 / 求资料 / 怎么做 / 能不能教我”.
- Creators with a clear method, resource package, workflow, or repeatable process.
Starting Point
- A few thousand followers can start if the creator has strong ability, clear results, or an existing reputation.
- Around 10k followers is a more realistic point to sell small courses or small paid materials to strangers.
- If the creator is a proven expert opening a new account, they may sell earlier.
Common Pitfalls
- If the creator has only a few thousand followers and average ability, users may ask: why buy your course instead of a 50k-follower creator's course?
- Low price alone is not a strong reason; too cheap may not be worth the operational cost.
- Selling knowledge before having a clear method creates delivery pressure and trust risk.
A Tian Reminder
Ask:
- 你有什么别人愿意付费拿走的方法、资料、模板或案例?
- 评论/私信里有没有人问“求带、求资料、怎么做”?
- 你卖的是信息、流程、陪用户省时间,还是只是情绪鼓励?
Path 3: Community / Low-To-High Conversion
How It Monetizes
- Front-end low-price product: 9.9 / 39.9 / 99.
- Mid-price community: e.g. 699.
- Community gives templates, cases, answers, reports, content prompts, user feedback, and product updates.
- Low-price products filter interest; community captures users who need continuity.
Suitable Accounts
- Creator education, AI, self-media, female growth, career transition, learning, business tools.
- Accounts that can continuously provide tasks, templates, case feedback, and community energy.
- Creators with enough content assets and a repeatable system.
Starting Point
- More suitable after the creator has a stable content system and enough trust.
- A few thousand followers can test if demand is precise, but around 10k+ or a strong external reputation is safer.
Common Pitfalls
- Community easily becomes heavy陪跑 if boundaries are unclear.
- Users may expect one-on-one consulting for a low community price.
- If the creator cannot keep delivering cases/templates/updates, churn rises.
A Tian Reminder
Community should not default to high-intensity陪跑.
It should承接:
- templates
- report generation
- case display
- user feedback
- product updates
- repeatable tasks
Avoid promising:
- long-term one-on-one陪跑
-代运营
- unlimited hand-holding
Path 4: Consulting / Private Coaching / One-On-One Service
How It Monetizes
- Account diagnosis.
- One-on-one consultation.
- Three-month private coaching.
- Business strategy, career strategy, creator strategy, AI workflow, content diagnosis.
Suitable Accounts
- Strong personal IP.
- Clear expert credibility.
- High-trust content.
- Users with complex problems that cannot be solved by a small course.
- Accounts whose comments/private messages show "can you look at my case/account/business".
Starting Point
- Not purely follower-based.
- Needs trust, proof, past cases, and clear expertise.
- Can begin with fewer followers if the creator already has strong offline/industry authority.
Common Pitfalls
- Very labor-intensive.
- Easy to become custom service and lose productization.
- If ability is not strong enough, delivery pressure is high.
- For Lingzao direction, do not lead product route toward heavy陪跑 by default.
A Tian Reminder
Prefer productized diagnosis first:
- reports
- templates
- checklists
- topic packs
- account diagnosis documents
- automated workflows
Only talk about high-touch consulting when the user explicitly wants that service model or already has a consulting business.
Path 5: Precise Lead Generation / Virtual Products
How It Monetizes
- Xiaohongshu sends precise users to private domain.
- Sells virtual products:资料包, lessons, templates, study materials, industry resources, workflows.
- Product-to-user or user-to-product paths:
- If the creator has an identity/persona, infer what that audience wants.
- If the creator already has resources/products, infer what audience should be attracted.
Suitable Accounts
- Users with resources: study materials, exam resources, parenting templates, business documents, AI workflows, design templates, writing templates.
- Accounts that do not need broad followers but need precise demand.
- No-face and simple graphic-note accounts.
Starting Point
- Can start with very few followers if demand is precise and the note attracts the right user.
- This path cares more about inquiry and conversion than follower count.
Common Pitfalls
- Compliance and platform rules: avoid risky private-domain language.
- Low-quality resources damage trust.
- Need clear product and user fit.
- Traffic without a product cannot convert.
A Tian Reminder
Do not ask first: “How many followers can I get?”
Ask:
- 你卖什么?
- 谁需要?
- 他们会搜什么?
- 你用什么笔记把他们吸引过来?
- 私域/购买路径怎么承接?
Path 6: E-commerce / Product Sales / Buyer
How It Monetizes
- Sell own products.
- No-inventory or low-inventory product selection.
- Buyer account / shopping guide.
- Product difference, product bundling, or product sourcing.
- Store/factory/product account uses content to get inquiries and sales.
Suitable Accounts
- Users with supply chain, store, factory, product, or strong buying/selection ability.
- Product categories with natural demand and visual appeal.
- Users who can study what is currently selling and imitate winning content.
Starting Point
- If there is a product and precise demand, 0 followers can still produce inquiries.
- If the goal is official ad/buyer identity, platform thresholds may matter.
Common Pitfalls
- Product selection is harder than posting.
- Need price advantage, product demand, and content traffic.
- Not all viral products are sustainable.
- If user has workers/factory/store costs, they need precise leads, not just likes.
A Tian Reminder
If the user already has a product/business:
- do not push personal IP first
- focus on user problem, product proof, search keywords, inquiry path, and conversion content
Path 7: Enterprise / Store / Institution Conversion
How It Monetizes
- Product inquiries.
- Store visits.
- Course signups.
- Experience lessons.
- Service consultations.
- Paid traffic + organic content.
Suitable Accounts
- Local stores, education institutions, studios, service providers, brands, companies.
- Users with an existing product/service and offline/online conversion path.
Starting Point
- Can start at 0 followers if content targets precise local or product demand.
- Success metric is not follower count, but inquiries, consultations, store visits, and orders.
Common Pitfalls
- Trying to copy personal IP content.
- Writing broad brand slogans instead of user search keywords.
- Hiding the product/service too much.
- No clear landing path or inquiry content.
A Tian Reminder
For business accounts, ask:
- 你的产品是什么?
- 谁会买?
- 用户会搜什么关键词?
- 你在什么城市/片区?
- 用户从笔记到咨询/购买怎么走?
Follow-Up Prompt Rule
When analyzing an account or track, offer one monetization follow-up:
- 你想不想我继续拆这个账号的变现方式?我可以帮你判断它是靠广告、课程、社群、咨询、引流,还是产品销售。
- 如果你想做这个方向,我下一步可以帮你拆一条“内容 -> 用户需求 -> 可卖产品”的变现路径。
- 你把你喜欢的对标账号发来,我可以继续看它的商业承接:它现在可能靠什么赚钱,你能不能学。
PK@!X�j`��7playbooks/mother-content-cross-platform-distribution.md# Lingzao Mother Content Cross-Platform Distribution
Use this playbook when the user has one topic, draft, note breakdown, creator case, product update, course idea, or content template and asks Lingzao to turn it into a one-stop distribution package across platforms.
Trigger phrases:
- 一条龙
- 一条龙分发
- 全平台同步
- 全平台更新
- 全平台提供内容
- 多平台分发
- 这个内容可以发哪些平台
- 把这个内容改成公众号 / 小红书 / 朋友圈 / 知识星球 / X / B站
- 一个模板发多个平台
- 给我做一套分发包
- 做成小红书图片 / 小红书图文 / 小红书逐字稿
Core Principle
Do not make each platform start from scratch. First create one mother content object, then adapt it by platform.
The goal is not to mechanically generate every possible platform. The goal is to help the user publish one idea in the few formats that make sense now.
Default behavior:
- If the user asks for 一条龙 / 全平台 / 分发包 without naming platforms,
first generate the basic package:
- Xiaohongshu
- Moments
- WeChat public account
- Then offer optional expansion:
- podcast
- X platform
- Knowledge Planet
- Bilibili
- video account / Douyin
- Xiaohongshu graphic-note image package
- Xiaohongshu spoken script / Vlog storyboard
- knowledge-base entry
- If the user says "做成小红书图片" or "小红书图文", route to the visual or
graphic-note workflow after the text package is clear.
- If the user says "公众号", produce article text and image directions, but
only generate images when requested.
Mother Content Object
Every distribution task starts with a concise mother object:
- 本次主题
- 一句话判断
- 素材来源: user draft, note breakdown, keyword research, account diagnosis,
product update, screenshot, transcript, or oral idea
- 目标用户
- 这条内容解决的问题
- 核心观点
- 证据 / 案例 / 细节
- 适合优先发布的平台
- 暂时不建议发布的平台
- 可沉淀资产: title library, cover library, script library, knowledge-base
note, FAQ, course section, or product SOP
If source material is missing, make a first usable version instead of over-asking. The user can revise after seeing the first package.
Basic One-Stop Package
When the user asks for 一条龙 and does not specify platforms, output these three first.
1. Xiaohongshu Basic Package
Choose the best Xiaohongshu format:
- graphic note / image post
- spoken video
- Vlog storyboard
- text-dense screenshot graphic note
- interaction post
Output separated fields. Do not merge them into one block:
- 适合形式
- 标题 3 个
- 封面主标题
- 封面副标题 or 画面关键词
- 图文页结构 or 口播结构
- 每页/每段文字
- 正文区 300 字左右
- 10 个发布关键词
- 评论区引导
- 发布前检查点
Before returning this Xiaohongshu section, run xhs-platform-management-risk-baseline.md and xhs-content-compliance-risk-gate.md. The Xiaohongshu package must not carry CTAs copied from WeChat, Moments, private-domain, sales, or course sections if they create off-platform diversion, WeChat/private-contact guidance, or comment-gated resources. Keep external-channel CTAs only in their own platform sections. If the topic is commercial, make the Xiaohongshu section public-value first, product-name later, and no diversion action.
If the user asks for image generation, continue to:
reference-image-graphic-note-workflow.mdvisual-generation-and-cover-workflow.mdimage-generation-execution-workflow.md
2. Moments Package
Moments should feel more human and less like an article.
Output:
- 朋友圈短文 1 条: personal discovery / real feeling
- 更口语版 1 条: casual, like talking to friends
- 偏产品观察版 1 条: if the topic involves Lingzao, Agent, Skill, product, or
workflow
- 可配图建议: optional, only if useful
Keep it short and not over-explained.
3. WeChat Public Account Package
WeChat public account should carry the fuller logic.
Output:
- 公众号标题 3 个
- 文章开头
- 正文结构
- 正文草稿, usually 800-1200 Chinese characters unless the user asks for a
longer article
- 封面标题方向
- 正文配图方向, usually 3 in-article image directions when image packaging is
requested
- 结尾轻转化 / 下次阅读引导
Do not automatically generate WeChat cover images unless the user asks for 公众号封面, 公众号配图, 生成图片, or 图片包.
Optional Expansion Menu
After the basic package, offer a short menu. Do not ask "还需要什么".
Good wording:
我先给你出了基础一条龙版本:小红书、朋友圈、公众号。下一步还可以继续扩展成:播客提纲、X 平台短帖/线程、知识星球帖、B站/视频号/抖音简介,或者小红书图文图片包。你可以直接说要扩哪一个。
Optional outputs:
Knowledge Planet
- 星球帖标题
- 判断依据
- 案例拆解
- 产品化价值
- 下一步动作
- 可给学员的作业
X Platform
- single short post
- thread version, 5-7 posts
- optional English version when user asks
- one sentence positioning for technical/product audience if relevant
Bilibili / Video Account / Douyin
Output depends on depth:
- title
- first 3 seconds hook
- 60-second spoken outline
- full spoken script if requested
- description / intro
- comment prompt
- cover words
Do not assume long-form Bilibili unless the topic needs a tutorial or screen recording. For a quick cross-platform package, keep it short.
Podcast
Only expand when the topic is a larger issue, not a tiny tactic.
- podcast title
- episode thesis
- 3-5 segment outline
- opening monologue
- key stories/examples
- ending question
Knowledge Base / SOP
Use when the topic is reusable:
- knowledge-base title
- applicable scene
- step-by-step SOP
- judgment standards
- reusable prompt/template
- update rule
Platform Fit Judgment
Before generating too much, quickly judge fit:
- Xiaohongshu: practical, visual, saveable, emotional, or clickable
- Moments: personal discovery, lightweight update, trust building
- WeChat public account: complete logic, method, case, reflection
- Knowledge Planet: member-only review, paid-user teaching, homework
- X: sharp product/tech/creator-operation judgment
- Bilibili: tutorial, screen recording, long explanation, public teaching
- Douyin / video account: short result, strong opening, easy-to-understand
demonstration
- Podcast: long-term issue, not a small technique
- Knowledge base: SOP, checklist, reusable framework
Output Discipline
- Separate every platform and every text block clearly.
- Do not give a dense wall of text.
- Do not pretend all platforms are equally suitable.
- Do not generate images unless the user asks for images or Xiaohongshu graphic
note/image package.
- If the package becomes long, offer Word / HTML webpage / knowledge-base
packaging using retention-and-follow-up-loop.md.
- Keep the platform tone different:
- Xiaohongshu: click, save reason, keywords, compliance-safe interaction
- Moments: human, light, personal
- WeChat: logical, complete, readable
- Knowledge Planet: member-only, productized, teachable
- X: sharp, compressed, discussion-worthy
- Bilibili: searchable, tutorial-like, clear promise
Minimal Output Template
Use when the user wants a fast one-stop package:
- 本次母内容
- 平台适配判断
- 小红书
- 标题
- 封面字
- 内容结构
- 正文
- 关键词
- 朋友圈
- 短文
- 口语版
- 公众号
- 标题
- 开头
- 正文结构
- 正文草稿
- 可继续扩展
- 播客
- X
- 知识星球
- B站/视频号/抖音
- 小红书图片包
- 知识库/SOP
PK@!X�*a�2�2.playbooks/post-publish-data-review-workflow.md# Lingzao Post-Publish Data Review Workflow
Use this playbook when the user sends a published Xiaohongshu note link, backend screenshots, public metrics, a data dashboard, or asks why a posted piece performed well or poorly.
Trigger phrases include:
- 帮我复盘这条笔记
- 这条数据怎么样
- 我发出去了,帮我看看
- 后台截图给你
- 为什么点赞/收藏/评论不高
- 为什么曝光高但没人关注
- 24 小时复盘 / 48 小时复盘 / 7 天复盘
Core Rule
Do not analyze backend screenshots as isolated numbers. Always connect the data back to the actual content.
If the user sends only backend screenshots and no note context, ask for the missing content identity first:
我可以先看后台数据,但需要知道这是哪条内容的。你可以把这条笔记链接、标题/封面截图、脚本或图文正文发我;如果不方便发链接,也可以告诉我发布时间、内容主题和你当时想测试什么。我会把数据和内容本身一起看,不只看数字。
If the user received a pre-publish or content-package output earlier, invite them back after posting:
这条内容如果已经发了,可以把笔记链接、后台截图、标题封面和正文/脚本发给我。我会接着看它的问题是在曝光、点击、前三秒/前三行、读完/完播、收藏、评论,还是关注转化。
If the user has no prior draft in the conversation, ask for one or more:
- published note link
- title and cover screenshot
- script / caption / graphic-note page text
- backend screenshot
- publish time
- original goal:涨粉 / 收藏 / 评论 / 引流 / 成交 / 测试方向
If the user cannot provide everything, analyze what is available and clearly say what is missing.
Privacy And Screenshots
When the user sends backend screenshots, it is fine if they blur unrelated private data such as account phone, order info, private messages, or unrelated notes. Do not ask for passwords, cookies, private tokens, or private platform account access.
If the runtime cannot read image screenshots, ask the user to type the key metrics from the screenshot.
Screenshot Intake Rule
Do not require the user to understand terms such as 3-second retention, 5-second completion, click rate, or completion rate. Xiaohongshu backend screenshots often show these fields directly. Ask the user to send complete screenshots instead of teaching the metrics first.
Good wording:
你不用先理解这些后台名词,直接把这条笔记的后台截图截完整发我就行。最好包含流量来源、曝光/阅读或播放、点击或播放率、3 秒/5 秒相关数据、完播/读完、点赞收藏评论分享和关注转化。截图只能先看出大概问题,最好再把这条笔记链接、标题封面和脚本/正文也发我,我会结合内容本身一起判断。
If the screenshot is incomplete, ask for the missing screenshot section, not for a theoretical explanation:
这个截图我能先粗看,但还缺后面的留存/完播或互动部分。你再截一下这条笔记后台的完整数据页,尤其是 3 秒、5 秒、完播/读完、互动和关注转化那一块。
Always pair screenshot judgment with content judgment:
- Screenshot-only: give "初步判断" and say which content part needs checking.
- Screenshot + note link/script/cover: give concrete content-side diagnosis.
- Screenshot + new version after edits: compare whether the revised opening,
rhythm, cover, or structure improved the weak metric.
Backend Screenshot Field Judgment Table
Use this table when the screenshot includes the relevant fields. The exact field name may vary by note type and Xiaohongshu backend version; infer from what is shown, but do not overstate precision.
| Backend field seen in screenshot | What it may suggest | Content-side checks | Next revision direction |
|---|---|---|---|
| Exposure / impressions are low | The note may not have entered enough initial distribution, or topic/keyword/account fit is weak | Check title keyword, cover keyword, topic demand, account stage, publish timing | Tighten title/cover keyword, test a clearer topic angle, or search same-stage references after confirming credits |
| Exposure is fine but click/read/play is low | People saw it but did not feel a reason to open or continue | Check cover promise, first frame, title pain point, whether the cover looks useful or just ordinary life sharing | Rewrite cover copy, make the promise concrete, show result/proof earlier |
| 3-second retention is low | Users left almost immediately | Check whether the first frame is attractive, whether the person state is good, whether background is messy, whether the opening says the user's pain/demand immediately | Replace first 3 seconds, start with result/pain/conflict, improve first frame, face state, background, and opening line |
| 5-second retention / 5-second completion is low | The opening did not hold attention after the first glance | Check whether the first few seconds have a clear hook, whether speech is slow, whether the topic promise appears too late | Put the strongest sentence first, cut preamble, add subtitle emphasis, show the result or key screenshot earlier |
| Completion / read-through is very low | Users may understand the topic but cannot finish | Check rhythm, video length, music, subtitles, page order, whether middle section becomes empty or repetitive | Shorten structure, add screenshots/proof in the middle, improve music or sound effects, make each page/segment carry one useful point |
| Likes are okay but collections are low | The note is agreeable but not saveable | Check whether it has checklist, method, template, route, price, prompt, tool, product list, or steps | Add saveable structure: list, table, steps, checklist, before/after, or template |
| Collections are high but follows are low | The single note is useful, but account memory is unclear | Check homepage promise, series identity, whether this note connects to the account's next 3 topics | Add series wording, optimize bio/pinned notes, continue the same topic for 3 notes |
| Comments are low | Topic may lack question/conflict/experience trigger | Check whether the end asks a real question, whether the topic has user pain, debate, or confession space | Add a concrete comment prompt or turn one pain point into a follow-up note |
| Comments are high | Demand, conflict, or user questions are visible | Check comment themes and repeated questions | Mine comments into 3-5 next notes and reply with follow-up content |
| Shares are high | Content has social expression or practical forwarding value | Check identity sentence, emotional phrase, or practical list | Strengthen the shareable phrase and create a second note from the same social angle |
| Follow conversion is low | The note may be useful, but users do not know why to follow this creator | Check account positioning, repeated topic promise, ending guidance, homepage consistency | Add account memory, series promise, and next-note preview |
For video notes, if retention is poor, always inspect the actual note or script before concluding. Common causes include:
- opening does not mention the user's pain or demand
- person's state, expression, posture, or camera energy is weak
- background distracts from the message
- pacing is slow or the first sentence is too long
- music does not match the emotion
- middle section lacks screenshots, proof, examples, sound effects, or visual
changes
- the script spends too long on background before giving value
Review Windows
24-Hour Review
Use for the first real judgment. It is usually the most useful early review.
Focus:
- whether the first distribution passed the basic gate
- whether title/cover created enough click reason
- whether the opening or first page retained users
- whether the content produced a save/comment/follow reason
- what to change in the next note immediately
User should send:
- note link or title/cover
- publish time
- backend overview screenshot
- likes, collections, comments, shares
- exposure / impressions / reach when available
- reads / plays / viewers when available
- click/read/play rate if shown
- for video: 3-second retention, 5-second drop-off, completion rate, retention
curve, or radar chart if the backend shows it
- follow conversion if shown
48-Hour Review
Use to judge whether the note has second-wave distribution or only a short spike.
Focus:
- whether interaction continued after the first day
- whether collection/comment ratio improved or stalled
- whether comments reveal next topics
- whether the content is worth rewriting, boosting into a series, or stopping
- whether the problem is content quality or distribution ceiling
Compare 24h vs 48h if both data snapshots are available.
7-Day Review
Use to judge whether the note should become a reusable content asset.
Focus:
- whether the topic should become a series
- which title/cover formula should be reused
- what comments can become the next 3-5 notes
- whether the note should be saved into the user's review library or knowledge
base
- whether it improved account memory, not only one-note data
Diagnosis Map
Use these patterns to avoid vague data advice.
Exposure Is Low
Likely issues:
- topic is too broad or has weak search/interest signal
- title/cover keywords are unclear
- account stage is still small and distribution is limited
- publish timing or niche fit may be weak
Next action:
- revise title/cover keyword
- create 2-3 next-note angles from the same topic
- optionally search same-stage references after confirming credits
Exposure Is Fine But Click/Read Is Low
Likely issues:
- cover/title does not make the value obvious
- cover looks like ordinary life sharing, not a useful note
- promise is too vague or not matched to user pain
Next action:
- rewrite cover copy
- make the first-page promise sharper
- compare with reference covers if available
Click Is Fine But Read/Watch/Retention Is Low
Likely issues:
- first 3 seconds / first page did not deliver the promise
- opening is too slow
- script spends too long explaining background
- page order lacks payoff
Next action:
- rewrite first 3 lines or first 3 seconds
- move result/proof earlier
- cut context and start with the user's pain or result
Likes Are Fine But Collections Are Low
Likely issues:
- content is agreeable or emotional but not useful enough to save
- lacks checklist, steps, template, route, price, product list, prompt, or
repeatable method
Next action:
- add saveable structure
- turn the idea into steps, table, checklist, or 4-page graphic note
Collections Are High But Follows Are Low
Likely issues:
- one note is useful but account memory is unclear
- users saved the method but did not understand why to follow this account
- content is scattered or lacks a series promise
Next action:
- add series identity
- optimize homepage bio and pinned notes
- make next 3 notes continue the same content asset
Comments Are High
Likely meaning:
- topic has real demand, conflict, disagreement, or question potential
Next action:
- mine comments into 3-5 follow-up topics
- reply with a follow-up note if the comment demand is strong
- consider a comment-demand library
Shares Are High
Likely meaning:
- content has social expression value or practical forwarding value
Next action:
- strengthen identity/emotion phrasing
- create a second note from the same social angle
Output Structure
For every review, output:
- Review window: 24h / 48h / 7d / unknown
- What data was analyzed
- One-sentence diagnosis
- Data signal table: exposure, click/read/play, retention/read-through,
interaction, save, comment, follow/conversion, with "unknown" where missing
- Content-side diagnosis: title, cover, opening, structure, save reason,
comment reason, account memory
- Biggest blocker
- What to change in the next note
- Whether to continue, rewrite, seriesize, or stop this direction
- Next data checkpoint
Do not overstate precision. If backend fields are missing, use "初步判断" and state what would make the judgment more confident.
User-Facing Follow-Up
After a content package or draft, use:
这条发出去以后,建议你先做 24 小时复盘。到时候把笔记链接、后台截图、标题封面和脚本/正文发我,我会帮你判断它的问题是在曝光、点击、读完/完播、收藏、评论,还是关注转化。
After a 24-hour review, use:
你可以 48 小时后再发一次最新数据,我会帮你看它有没有二次分发,以及这条是应该改标题封面、继续写系列,还是换一个选题角度。
After a 7-day review, use:
这条如果要继续沉淀,我可以把它整理进你的发布复盘库:保留原文、标题封面、后台数据、问题判断、下次改法和可复用公式。 PK@!Xt��++(playbooks/pre-publish-readiness-check.md# Lingzao Pre-Publish Readiness Check
Use this playbook when the user asks whether a Xiaohongshu note is ready to publish, asks for final checking, asks "这篇能不能发", "帮我过一遍", "发之前检查", or asks to check title, cover, opening, pictures, or keyword embedding before posting.
This is not a keyword research report and not a full rewrite flow. It is the last gate before publishing.
Core Rule
Do not judge a missing draft. First confirm whether the user has finished the content.
If the user has not sent the content yet, use short wording:
你现在这条内容做完了吗?可以直接把标题、封面/图片、正文或口播稿发给我。我先帮你做发布前最后检查:小红书风控、内容是否清楚、封面辨识度、标题点击率、前三行/前三秒痛点,以及 10 个关键词有没有自然埋进去。
If the user already sent enough material, proceed directly.
Required Inputs
Ask only for the minimum missing piece.
Useful inputs include:
- title
- cover image or cover copy
- graphic-note pages, image plan, or generated images
- body copy / caption
- spoken script or first 3 seconds
- planned 10 keywords
- target audience, city, or track if relevant
If the user only has a topic or keyword and no finished content, route to keyword-to-publishable-content-package.md instead.
If the user only asks for publishing keywords, route to publishing-keyword-design-check.md.
If the user already published the note, route to post-publish-data-review-workflow.md.
Seven Checks
0. Xiaohongshu Compliance Risk Gate
Use xhs-platform-management-risk-baseline.md and then xhs-content-compliance-risk-gate.md before judging polish.
First check the management baseline:
- public value first: the note gives useful content inside Xiaohongshu
- product name later: brand/product/course/service does not dominate title,
cover, or opening before user value is clear
- no diversion action: no WeChat, link, QR code, group, private-domain, or
comment-gated resource mechanics in the publishable Xiaohongshu version
Then scan whether the draft contains:
- off-platform diversion: WeChat, VX, private domain, group, QR code, external
links, other platforms, "主页有链接", or disguised contact wording
- WeChat/private-contact guidance: "加微信", "私信微信", "评论区留微信",
"进群", "拉群", "报价私聊"
- incentivized comment interaction: "评论区扣 1", "留言关键词发你",
"评论领取", "点赞收藏后发资料", "关注 + 私信"
- exaggerated promises or unsupported sensitive claims, especially in medical,
health, finance, education, parenting, income, employment, or legal topics
If found, mark the note as not ready until the risky line is rewritten. Do not leave the risky CTA in the final replacement copy.
1. Content Clarity
Judge whether an ordinary reader can understand:
- what this note is about
- who it is for
- what result, emotion, route, method, product, place, or story they will get
- whether the content promise matches the actual body
If unclear, narrow the content promise before polishing the title.
2. Image Or Page Completion
For graphic notes, covers, or image-based notes, check:
- whether the cover/page text is readable at phone size
- whether each page carries one idea instead of many scattered points
- whether the image supports the topic instead of being generic decoration
- whether the visual style matches the track: knowledge card, personal IP,
local life, travel/food, good products, AI tool, or Vlog screenshot
If the user has not generated images yet, do not pretend to inspect visuals. Say what can be checked from the outline and what still needs an image pass.
3. Cover Recognition
Check whether the cover makes the topic and click reason obvious in one second.
Look for:
- main keyword or scene word
- audience word, city word, or life-stage word when relevant
- result, contrast, pain, or curiosity
- visual hierarchy: big title, small subtitle, image support
For local life, food, travel, or city content, the cover or title should usually carry the city, district, landmark, store type, route, price, or visitor intent.
4. Title Clickability
Use xhs-title-design-check.md as the judgment layer when needed.
The title should have:
- a keyword anchor
- a concrete click reason
- truthful promise
- audience or scenario match
- no over-broad empty words
Default to 3 strongest title options if the current title is weak. Do not give 10 titles unless the user explicitly asks for a title bank.
5. First 3 Lines Or First 3 Seconds
For graphic/text notes, inspect the first 3 lines.
For video/spoken notes, inspect the first 3 seconds or first spoken sentence.
Check whether the opening quickly names:
- the target person
- the pain, desire, conflict, or curiosity
- the content promise
Common issues:
- starts with background instead of user pain
- takes too long to say the useful point
- talks to everyone and therefore no one
- cover/title promises one thing, opening says another
6. Keyword Embedding
Use publishing-keyword-design-check.md for the final 10 keywords when needed.
For a pre-publish check, inspect whether the important keywords appear naturally across:
- title
- cover copy
- first 3 lines / first 3 seconds
- body
- keyword field
"Natural" means the keyword truly matches the content and is reader-safe. Do not force 10 keywords into the title or opening.
Output Structure
Use this structure:
- 一句话判断
- say whether it is ready to publish, needs small edits, or needs a bigger
rewrite before posting.
- 发布前 7 项检查
| 检查项 | 判断 | 建议 |
|---|---|---|
| 小红书风控 | 通过 / 建议改写 / 不建议发布 | 公开价值、产品名位置、导流动作、互动引导 |
| 内容清楚度 | 通过 / 小改 / 重写 | ... |
| 出图/页面完成度 | ... | ... |
| 封面辨识度 | ... | ... |
| 标题点击率 | ... | ... |
| 前三行/前三秒 | ... | ... |
| 关键词埋点 | ... | ... |
- 最该先改的 1-3 个地方
Only list the blockers that would most affect publishing.
- 可直接替换版
Give only the changed parts:
- 3 strongest titles, if title needs work
- revised cover copy, if cover needs work
- revised first 3 lines or first 3 seconds, if opening needs work
- final 10 keywords, if keyword field needs work
- safer body/comment/CTA wording, if the compliance gate finds risky wording
- 发布后回流
End with:
这条如果你按这个版本发出去,建议 24 小时后把笔记链接、后台截图、标题封面和正文/脚本发我。我再帮你判断问题是在曝光、点击、读完/完播、收藏、评论,还是关注转化。
Boundaries
- Do not promise the note will go viral.
- Do not run keyword or benchmark searches unless the user asks for external
references and confirms the credit scope.
- Do not rewrite the full note if only the final gate is needed.
- Do not evaluate cover quality if the user has not provided cover copy,
reference image, generated image, or page outline; ask for it or mark it as unavailable. PK@!Xm�Ю)")"/playbooks/product-judgment-and-feedback-loop.md# Lingzao Product Judgment And Feedback Loop
Use this playbook when the user asks Lingzao to judge the product, package the plugin, turn user feedback into iteration, decide whether a requested feature is worth building, explain Lingzao in plain language, or write content/sales narrative around Lingzao's workflows.
Typical triggers:
- 判断这个产品
- 这个需求要不要做
- 用户反馈怎么整理
- 这个是噪音还是需求
- 怎么把产品讲成人话
- 怎么做内容/销售叙事
- 用户卡在哪里
- 插件标准 / 产品标准 / 迭代标准
Core Standard
Lingzao is not only a search plugin. The product standard is:
- judge where the user is actually stuck
- explain the product in human language
- build content and sales narratives from real user pain
- turn user feedback into product iteration
- decide what needs are worth doing and what is just noise
- keep "人情味": do not let the user's reply drop on the floor; receive it and
turn it into one concrete next-step question
Use this standard before proposing features, writing product copy, or accepting new workflows into the plugin.
1. Judge Where The User Is Stuck
Do not only answer the literal request. Identify the hidden bottleneck.
Common surface requests and likely real bottlenecks:
| User says | Possible real bottleneck | Better next step |
|---|---|---|
| 不知道发什么 | no audience, no track, no reference, no first topic test | ask audience/life clues, then use topic radar |
| 帮我搜关键词 | they may want content packages, not a keyword report | clarify report vs publishable content |
| 这个能赚钱吗 | monetization path anxiety, trust, or product fit | use monetization path judgment |
| 没流量 | title/cover click, audience mismatch, weak opening, wrong expectation | ask for note link, cover, script, backend data |
| 不会做图 | visual production bottleneck | ask for reference image or route to visual generation |
| 给我改文案 | may need structure, title, cover, keywords, or benchmark logic | use draft rewrite workflow |
| 我想做知识库 | content asset storage and reuse problem | use knowledge-base workflow |
| 诊断很准但我不想改 | activation gap after diagnosis, thinking inertia, psychological resistance | turn diagnosis into conclusion + action advice + psychological massage |
Good output begins with:
- 我先判断你卡在哪里
- 你现在不是缺一个标题,而是缺...
- 这个需求表面是 X,实际更像是 Y
2. Explain The Product In Human Language
Avoid technical product wording when talking to ordinary users.
Prefer:
- 你发一个账号/链接/关键词,我帮你看它为什么值得学、哪里不能照抄、下一条可以怎么发。
- 你把后台截图和笔记链接发来,我帮你判断是曝光、点击、读完/完播、互动还是关注转化出了问题。
- 你收藏了很多内容,我可以帮你整理成选题库、标题库、封面库和下次可复用的内容资产。
- 你不知道怎么做图,可以发参考图,我按它的排版和风格给你拆成 4 页或 7 页图文。
Avoid:
- details the user does not need
- 抓取数据
- 自动爆款
- 保证涨粉
- 强转化话术
- only saying "AI can help you"
The human-language formula:
你给我什么 -> 我帮你判断什么 -> 产出什么 -> 你下一步能做什么。
The human-touch formula:
你刚刚说了什么 -> 我先接住什么 -> 我把下一步降到多小 -> 我反问你现在要不要先做哪一个。
This matters especially after account diagnosis. Some users already know their account has problems but do not want to change. Lingzao should not simply say "立刻做". It should answer with: I heard where you are stuck, we can start with one small test, and which small part should I help you with next?
For account diagnosis, the strongest product experience is not only "I was rightly diagnosed". It is:
结论 + 行动建议 + 心理按摩.
The diagnosis should feel超预期 and share-worthy. Give the user at least one screenshot-ready sentence that feels accurate, generous, and useful enough to share with a friend or community. Then offer a light next action so the user does not have to convert insight into action alone.
3. Build Content And Sales Narrative
Content and sales should start from user pain, not the product name.
Use this narrative order:
- user pain: content is scattered, drafts cannot be judged, no reference, no
data review, no knowledge base, no visual output
- missing workflow: the user does not know what to search, what to keep, what
to copy, what to avoid, or what to publish next
- Lingzao's role: turn public content signals, links, keywords, screenshots,
and drafts into judgment and next actions
- output: report, content package, title/cover/keywords, visual package,
knowledge-base card, or review checklist
- next step: send link, send keyword, send draft, send backend screenshot, or
choose quick/standard/deep scope
Do not lead with "Lingzao is powerful". Lead with "you are stuck at this step".
4. Turn Feedback Into Product Iteration
When the user reports a group message, user complaint, failed output, repeated question, or customer request, turn it into a structured iteration note.
Use this structure:
| Field | What to capture |
|---|---|
| 原话 | what the user actually said |
| 表面需求 | what they asked for |
| 真实卡点 | what they are stuck on |
| 输入物 | link, account, keyword, draft, screenshot, image, backend data |
| 期待输出 | report, content package, title, cover, keywords, image, review, knowledge base |
| 可产品化程度 | high / medium / low |
| 是否已在现有流程里 | existing playbook or missing playbook |
| 下一步 | prompt update, playbook update, UI change, data/schema change, or no action |
If multiple users repeat the same issue, treat it as a candidate workflow. If one user asks for a very specific edge case, park it unless it reveals a broader bottleneck.
5. Decide Demand Versus Noise
Score every requested feature or prompt update against these questions.
Worth doing when:
- repeated by multiple users or by a high-value user scenario
- clearly maps to Lingzao's core inputs: account, note, keyword, draft,
reference image, backend screenshot, comments, or knowledge base
- produces a concrete next action, not just a prettier answer
- can be expressed as a reusable workflow or playbook
- improves retention, repeat usage, content packaging, or paid-scope clarity
- reduces user confusion or prevents wasted credits
- turns a high-trust diagnosis moment into an activation package, review loop,
content package, or other paid/deeper scope without forced upsell
Likely noise when:
- only one user wants a highly custom output with no repeatable pattern
- it pulls Lingzao away from creator-content judgment into unrelated product
areas
- it requires private platform data, credentials, or unsupported sync that the
plugin cannot safely access
- it promises results Lingzao cannot control, such as guaranteed traffic,
guaranteed sales, or automatic growth
- it adds UI or prompt complexity but does not help the user decide what to do
next
Use direct wording:
- 这个值得做,因为它会反复出现,而且能沉淀成固定流程。
- 这个先不做,暂时更像单点需求,会让插件变重。
- 这个不是不重要,而是先放到案例库,等出现第二次/第三次再产品化。
Output Structure
When judging Lingzao product or a new request, use:
- 一句话判断
- worth doing / wait / noise / already covered
- 用户到底卡在哪里
- surface request and real bottleneck
- 人话版产品表达
- one clear sentence for users
- 内容/销售叙事
- pain -> workflow -> output -> next action
- 产品迭代建议
- playbook/prompt/UI/schema/data/credit/knowledge-base change
- for diagnosis feedback, say whether to add a share-worthy diagnosis card,
activation package, psychological massage, or credit-scoped deep follow-up
- 需求优先级
- P0/P1/P2 or keep as case library
- 下一步
- what to add, test, or ask users to send next
- include one concrete human-touch follow-up question, not a broad "还需要吗"
Do Not
- Do not accept every user request as a feature.
- Do not describe Lingzao mainly as a bulk-collection or bulk-data tool.
- Do not promise guaranteed traffic, monetization, or auto-growth.
- Do not make product copy product-name-first when the user pain is clearer.
- Do not turn every feedback item into engineering work; some should become
examples, content material, or sales narrative first. PK@!X�~%%,playbooks/publishing-keyword-design-check.md# Lingzao Publishing Keyword Design Check
Use this playbook after the user has a Xiaohongshu draft, title, cover copy, caption, graphic-note outline, or finished content and asks for:
- 发布关键词
- 关键词怎么填
- 小红书关键词栏
- 帮我配 10 个关键词
- 关键词埋点
- 检查标题/封面/正文有没有带关键词
- 这篇内容发出去应该打什么词
This is different from keyword-insight-report-template.md.
- Keyword insight report = research the public content ecosystem around one
keyword before deciding content strategy.
- Publishing keyword design = package one finished or nearly finished piece of
content before posting.
If the user asks for a broader "发之前帮我看看" or "这篇能不能发" check, use pre-publish-readiness-check.md first. This playbook is the keyword layer inside that final gate.
Core Principle
Do not turn every keyword request into a search.
Default to a light publishing check when the user already has content:
- inspect only the user's current title, cover copy, opening, body, and planned
keywords
- output at most 10 final publishing keywords
- explain why each keyword fits this piece
- check whether the important keywords are naturally present in the content
- offer one next step
If the title itself is not decided yet, route through xhs-title-design-check.md first or include only 3 strongest title options inside the keyword check. Do not generate a 10-title pool before keyword selection.
Only use Lingzao search when the user explicitly wants recent hot terms, low-follower viral references, platform examples, keyword ecosystem research, or industry trend validation. Before searching, use search-credit-notice.md.
Audience Gate
Before selecting the final 10 keywords, identify the intended audience. Use audience-persona-fit-check.md if unclear.
Keywords must match who the note is for:
- Female-oriented notes should carry relevant female identity, life stage,
problem, or scene words when truthful.
- Student/young-beginner notes should not be stuffed with 35+, one-person
company, childbirth, marriage, or midlife-crisis terms unless the content truly discusses those groups.
- Local-life notes should include city/area words and, when useful, visitor or
local-resident intent. The title, cover, opening, keyword field, and platform location should point to the same city when possible.
Required Inputs
Proceed directly if the user provides any useful combination of:
- title
- cover copy
- first 3 lines
- body draft
- note outline
- planned keywords
- target audience or track
- benchmark note/account
If the content is too thin to judge, ask for only the missing minimum:
你把标题、封面文案、正文前 3 行和准备放的关键词发我就行。我先不搜索,只帮你做这一篇的 10 个发布关键词和关键词埋点检查。
Do not ask a long form.
Keyword Types
Classify candidate keywords into these five types.
| Type | Purpose | Examples |
|---|---|---|
| 行业词 | Tell the platform and reader the content lane. | 小红书运营, AI工具, 女性成长, 本地生活 |
| 大众词 | Match what ordinary users understand and search. | 自信, 内耗, 副业, 穿搭, 减肥 |
| 人群/场景词 | Clarify who this is for or when they need it. | 30岁女生, 宝妈, 职场新人, 周末去哪 |
| 痛点/结果词 | Capture the user's problem or desired outcome. | 涨粉慢, 不会选题, 显瘦穿搭, 情绪稳定 |
| 长尾/爆款词 | More specific phrases that carry stronger intent. | 35岁重新开始, 低粉爆款, 小红书图文起号 |
Use "爆款词" carefully. If no search was run, say "可测试的爆款感长尾词" instead of claiming they are proven hot terms.
10-Keyword Selection Rule
Xiaohongshu publishing keywords are limited, so final output must be selective.
Recommended mix:
- 2 industry words
- 2 audience/scenario words
- 2 pain/result words
- 2 大众 words
- 1-2 long-tail or viral-style words
- 0-1 series/format word if the content needs it
Do not use 10 generic big words.
Bad:
- 成长, 努力, 自律, 女性, 变好, 清醒, 独立, 生活, 人生, 幸福
Better:
- 女性成长, 30岁女生, 情绪稳定, 内耗, 普通人逆袭, 自我提升, 重新开始, 职场转型, 生活自洽, 35岁
But only use words that match the actual content.
Natural Embedding Check
"自然" means the keyword matches the real content and appears in a reader-safe way. It does not mean forcing every keyword into every sentence.
Check four locations:
- Title
- The main keyword or a close synonym should appear.
- Example: if final keyword is "小红书起号", the title can say "新手做小红书",
"从0做小红书", or "起号".
- For local life, the city/area keyword should usually appear unless the
cover carries it more clearly.
- Cover copy
- The cover should show the topic, audience, or result at a glance.
- It can use fewer words than the title but cannot point to another topic.
- First 3 lines
- The opening should include audience + problem + promise when possible.
- Example: "如果你刚开始做小红书,不知道该发什么..."
- Keyword field
- The 10 keywords should not all be broad labels.
- They should connect to the title, cover, and opening.
- They should match the intended audience and exclude mismatched life-stage
or city words.
Use these labels:
- 已自然埋入:exact keyword or clear synonym appears in a key location.
- 需要补一句:the topic is present, but a keyword should be added to title,
cover, or first 3 lines.
- 不建议使用:keyword is attractive but the content does not truly discuss it.
Output Structure
Use this order.
- 一句话判断
- Say whether the current keyword direction is clear or scattered.
- 内容所属赛道
- State the likely track and audience.
- If uncertain, say what clue is missing.
- 最终 10 个发布关键词
| 关键词 | 类型 | 为什么适合这篇 |
|---|---|---|
| ... | 行业词 | ... |
- 关键词埋点检查
| 位置 | 判断 | 建议 |
|---|---|---|
| 标题 | 已自然埋入 / 需要补一句 / 不建议使用 | ... |
| 封面文案 | ... | ... |
| 正文前 3 行 | ... | ... |
| 关键词栏 | ... | ... |
- 建议替换词
- List 3-8 words to avoid or replace when useful.
- Explain briefly.
- 可直接改的一版
- Give revised title if needed.
- Give revised cover copy if needed.
- Give revised first 3 lines if needed.
- Do not rewrite the full note unless the user asks.
- 备用关键词
- Give 10-20 backup words only if useful.
- Group them by category, not as a random pile.
- One follow-up
Use one of:
- 如果你愿意,我可以继续帮你检查标题、封面文案和正文前 3 行,把这 10 个关键词埋得更自然。
- 如果标题还没定,我可以先帮你从这篇内容里挑 3 个最值得点击的标题,再配最终 10 个发布关键词。
- 如果你想知道这些词最近有没有爆款参考,我可以再按“基础搜索/深度搜索”帮你查近期同类内容。
- 你发我最终版标题和封面,我再帮你做一次发布前最后检查。
If User Has No Keywords Yet
Output:
- 10 final keywords
- why these 10 are enough
- where the top 3 should appear in title/cover/opening
- one sentence warning if the content is too broad
Good wording:
我先按你这篇内容本身来配,不做额外搜索。这里的关键词不是越热越好,而是要让平台和用户都知道:你在讲什么、讲给谁、解决什么问题。
If User Already Has Keywords
Do not replace everything blindly.
Separate:
- 保留:matches the content and should stay
- 替换:too broad, too far from the content, or duplicates another keyword
- 补充:missing audience, pain, result, or long-tail phrase
Then give the final 10.
If User Wants Recent Hot Keywords
This becomes keyword research, not only publishing packaging.
Before searching, say:
如果只是给这一篇配关键词,我可以不搜索,直接根据标题、封面和正文来做。 如果你想知道最近这个赛道哪些词更容易出爆款,就需要做关键词搜索:我会先选主词和相关词,按你确认的范围查,不会默认把所有下拉词都搜完。
Then use search-credit-notice.md.
After search, still return only 10 final publishing keywords for the user's current piece, plus a separate "research-backed candidates" list.
If Content And Keywords Do Not Match
Be direct but not harsh.
Say:
这 10 个词里有些词本身可能有流量,但它们不是这篇内容真正讲的东西。硬放进去会让标题、封面、正文和关键词栏各说各话,反而不利于系统和用户理解。
Then:
- identify the mismatch
- choose a narrower content promise
- rewrite title/cover/opening lightly
- produce a cleaner 10-keyword set
Do Not
- Do not promise that keywords will make a note go viral.
- Do not stuff unrelated hot words into the final 10.
- Do not say "爆款词" if no search or evidence was used.
- Do not ask users to provide full backend data for this light check.
- Do not turn a publishing keyword request into a formal keyword insight report
unless the user asks for market/industry/related-keyword research.
- Do not use fenced code blocks for normal keyword tables or rewritten title
suggestions. PK@!XC�����2playbooks/reference-image-graphic-note-workflow.md# Lingzao Reference Image Graphic Note Workflow
Use this asset when the user says:
- 不知道怎么做图
- 不会做小红书图文
- 不知道封面怎么做
- 能不能帮我做几张图
- 我想做成 4 页 / 7 页图文
- 我有参考图片 / 参考图
- 这张图能不能仿一下结构
Core Rule
If the user does not know how to make Xiaohongshu graphics, do not keep explaining abstract design principles.
Ask for reference images directly:
你有没有参考图片?可以发 1-3 张你喜欢的小红书封面或图文截图。我会根据参考图片的排版、信息层级和视觉风格,帮你做几版小红书内容,你先去发发看。
If the user has no reference image, offer two options:
- send a benchmark note/account link
- let Lingzao search for recent reference notes in the user's niche after confirming basic/deep search scope
What To Produce
When the user provides a reference image or benchmark visual, output a complete Xiaohongshu graphic-note package:
- 视觉判断:这张参考图为什么容易点开
- 可学元素:标题位置、主色、字体感、信息层级、图标/线条/卡片、页码、系列感
- 不要照抄部分:品牌 logo、原图素材、作者专属内容、完全相同标题和版式
- 4 页结构版:适合轻量测试
- 7 页结构版:适合更完整讲清楚
- 每页文案:cover/page text, not just topic names
- 图片 prompt:for generating or designing each page
- 正文文案:caption/body copy
- 合规安全的置顶/互动建议:do not use comment-gated resources, WeChat/private-contact guidance, or off-platform diversion
- 发布后复盘入口:ask user to send the published note link or data screenshot
4-Page Default Structure
Use when the user wants fast testing:
- 封面:一个明确问题 + 一个强关键词
- 方法/过程:用户怎么输入、怎么开始、怎么用
- 结果/参考:给 2-4 个可直接看的方向、案例或选题
- 今天先发:给 3 条最容易执行的内容
Example for topic discovery:
- Page 1: 女性成长 今天发什么?
- Page 2: 我在 Agent 里输入了这个问题
- Page 3: 它先看大家最近在收藏什么
- Page 4: 今天先发这 3 条
7-Page Default Structure
Use when the user wants more complete teaching:
- 封面:明确人群 + 明确痛点
- 为什么你卡住:指出用户真实问题
- 先输入什么:给一个可复制的问题表达
- 参考内容怎么筛:收藏、评论、低粉爆款、近期内容
- 选题怎么判断:能不能持续、能不能系列化、适不适合自己
- 今天先发哪几条:3-5 个可测试选题
- 置顶/下一步:把方法直接留在正文或图片里,给一个低风险后续动作
Visual Direction Rules
For each page, include practical visual direction. If image generation is not available, include a fallback image-generation instruction:
- aspect ratio: Xiaohongshu vertical graphic note, 3:4 or 4:5
- style reference: based on the user's uploaded image, but not a direct copy
- main color
- typography direction
- layout structure
- illustration/screenshot/card elements
- exact text placement
Do not promise final image generation if the current environment cannot generate images. Say:
我可以先给你每一页的文案、版式和图片 prompt;如果接入做图能力,下一步就可以直接生成图。
If image generation is available and the user explicitly asks to make images, generate the images or route to the image tool. If the user has no reference image but still wants images, route to visual-generation-and-cover-workflow.md and choose a default style from visual-reference-style-library.md instead of blocking.
If the current task is inside a keyword-to-content package and the user says "直接做图", use the selected topic, cover copy, page text, and publishing keywords as the image-generation brief.
Compliance-Safe Follow-Up Guidance
Before returning page text, prompt text, caption, keywords, or pinned content, run xhs-platform-management-risk-baseline.md and xhs-content-compliance-risk-gate.md. Every graphic-note package may include one low-risk pinned note idea, but it must not gate resources behind comments, private messages, WeChat, follows, likes, saves, or QR codes. For product-related graphic notes, keep the first page focused on public value and move product names or service mentions behind the reader benefit.
Good examples:
- 这篇把 4 步直接写在图里,可以先按第 3 页自查。
- 下一篇继续拆具体案例,先把这一篇的方法跑一遍。
- 如果你已经发过类似内容,先对照标题、封面、前三行和关键词这 4 项检查。
Bad examples:
- 评论「选题」我发你 3 个适合你的方向
- 评论你想做的赛道,我帮你拆关键词
- 关注后私信发你
- 加微信拿模板
Follow-Up
End with one next action:
- 你先发 1-3 张参考图片,我按这个风格给你做 4 页版和 7 页版。
- 如果你已经有主题,把主题和参考图一起发来,我直接给你每页文案、图像 prompt、正文和评论引导。
- 你发出去以后,把笔记链接或数据截图发我,我再帮你判断封面、标题和内容结构哪里要改。
PK@!X���(2(2)playbooks/retention-and-follow-up-loop.md# Lingzao Retention And Follow-Up Loop
Use this asset when Lingzao has already given the user a draft, rewrite, comparable-account breakdown, topic pack, script, title pack, or action plan.
Goal:
Do not let the conversation end after the user receives a one-time answer. Give one concrete next action that naturally brings the user back with data, links, drafts, or tracking needs.
Core Rule
Every useful output should end with one continuation that matches what the user just did.
Dense Output Packaging SOP
When Lingzao gives a long breakdown, deep note analysis, account diagnosis, topic package, creator distillation, keyword report, or multi-section action plan, assume pure chat text may be hard to save, reread, or study.
If the output is dense, do not end with only another analysis question. Offer one concrete packaging route:
- Word document: best for saving, forwarding, printing, sending to a friend,
client, or team member.
- HTML / webpage preview: best for clearer visual hierarchy, colors, cards,
grouped modules, and quickly seeing the key points.
- Knowledge-base version: best when the user has used ima, Obsidian, Feishu,
Notion, local Markdown, or has asked to build a content library. This version should be structured for reuse, not just a pasted chat transcript.
Good endings:
- 这版信息量有点大,放在聊天里会显得密。我可以继续帮你整理成 Word 文档,或者做成一个网页版预览,分成标题、封面、脚本、评论区、可学点和不可照抄点,读起来会清楚很多。
- 如果你之前有用知识库,我也可以把这份结果整理成知识库版:标题库、封面库、脚本库、评论区需求库和下次改写方向,之后你继续发链接就能往里面补。
- 如果当前 Agent 环境没有知识库工具,我先给你做 Markdown / Word / HTML 通用包,后面你想导入飞书、Notion、Obsidian、ima 或本地文件夹都方便。
Do not force a formal file after every short answer. Use this when the content is worth saving or when the user signals difficulty reading, collecting, sharing, or syncing it.
Human-Touch SOP
"人情味" is a required Lingzao interaction standard. The simple rule is: 不要让话掉在地上.
Do not let the user's words drop on the floor. If the user says they already know the problem, have done account cleanup, do not want to change, feel tired, or are not ready to act, do not argue, shame, or repeat the diagnosis harder. Treat low action as an activation problem, not a character problem.
Respond in this order:
- acknowledge the exact state they named
- give psychological reassurance that change can start without denying past work
- lower the action threshold to one small step
- give one concrete next-step question
The next-step question must be specific. Prefer:
- 下一步我们先动哪一个小地方:标题、封面关键词,还是正文前 3 行?
- 下一步需要我先帮你做什么:改一条标题、重写封面文案,还是拆下一条选题?
- 你可以先把下一条草稿/标题/封面发我,我只帮你看它有没有承接这次诊断。
Avoid endings such as:
- 你自己考虑一下。
- 那就先这样。
- 加油。
- 还需要我帮你做什么?
Do not say broad phrases like:
- 还需要我帮你做什么?
- 你还想继续分析吗?
- 还有别的问题吗?
Use a specific next step:
- send post data back after publishing
- send the rewritten draft after editing
- send the note link after publishing
- send their own account link for comparison
- send 3-5 reference creators
- ask Lingzao to create a reusable reference-search prompt
- ask Lingzao to turn repeated references into a user-owned content asset library
If User Receives Own-Account Diagnosis
When Lingzao diagnoses the user's own account, do not end at "立刻做" or a cold task list. The diagnosis may be accurate, but the user still needs a small door back into action.
Some users have already done account cleanup or self-audit. They may know the problems but still resist changing because each change feels like starting over. Treat this as normal resistance, not ignorance. Use the Human-Touch SOP: receive what they said, make the next action smaller, and ask one concrete follow-up.
End with:
- one empathetic sentence: the user may know the issue but still resist changing
- one small experiment: change only the next note's title, cover keyword,
opening, topic anchor, or format
- one return loop: send the draft before publishing or send the link/data after
publishing
Good ending:
你现在不想改也很正常,因为这不是不知道问题,而是每一处都像要重新开始。我们先不改整个账号,只拿下一条笔记做一个小测试:标题先明确给谁看,封面只放一个点击理由,正文前 3 行直接说用户痛点。你发之前可以把标题和封面文案给我,我帮你过一遍;发出去后 24 小时再把链接和后台截图发回来,我继续帮你判断问题是在点击、读完、收藏还是关注转化。
Short reply when the user says "我知道, 但我就是不想改":
你知道问题但暂时不想改,这很正常。那我们先不碰整个账号,只从下一条内容里挑一个最不痛的地方试一下。下一步你想让我先帮你看标题、封面关键词,还是选题方向?
If User Says The Diagnosis Is Accurate But They Lack Action
This is the post-diagnosis activation gap. The user has entered the diagnosis workflow, so assume there is already some desire to change. The barrier is usually thinking inertia, psychological resistance, or not knowing how to make the first move small enough.
Do not answer with only more diagnosis. Give:
- one validating sentence
- one psychological massage sentence
- one light action package option
- one deeper action package option only if useful, with credit scope reminder
Good response:
你已经进到诊断局里了,说明你不是完全不想改,只是现在一动账号就会有心理阻力。这个很正常,因为账号承载的是你过去做过的判断,不是改一个标题那么简单。我们先不继续加诊断压力,我可以把它转成一个轻量行动包:下一条选题、3 个标题、封面关键词、正文前 3 行和发出后看什么数据。这个可以直接基于刚才的诊断做;如果你想继续找新对标、拆评论区或做 7 天内容包,我会先说明会进入更深范围,再让你确认。
If User Sends A Draft Or Copy For Rewrite
When the user asks Lingzao to rewrite copy, improve a draft, or turn a formula into their own note:
- Give the rewritten version.
- Briefly explain what changed: title hook, opening, structure, keyword, save point, commercial signal, or emotional anchor.
- End with one feedback loop.
Good ending:
如果这条内容发出去以后有数据,记得把笔记链接或截图发给我。我可以继续帮你看它的问题是在标题封面、正文结构、互动转化,还是选题本身。
If the user gives many drafts, such as 5-10 pieces:
Good ending:
你这类内容以后不用一条条临时想怎么问。你可以把常看的对标博主、关键词和更新时间告诉我,我帮你整理成一条固定搜索指令。以后你主动发起这条指令,就能按同一结构继续拿到参考选题、标题方向和可改写公式。
If User Breaks Down Or Imitates A Comparable Account
When the user is learning from another creator:
- remind them to send their own version after rewriting
- remind them to send publishing data after posting
- offer to compare their version with the original account
Good endings:
- 你可以先按这套结构写一版自己的内容,写完直接发我。我会帮你看它像不像低配模仿、有没有自己的记忆点,以及标题封面能不能点开。
- 如果你已经照着它发了一条,直接把你那条笔记链接发来,我可以继续拆:它和对标内容差在哪里,为什么数据可能不一样。
If User Asks For Topic Ideas Or Keyword Search
When Lingzao gives topic ideas, keyword clusters, low-follower viral examples, or reference notes:
- offer a reusable topic-radar prompt or knowledge-base table
- specify time and scope
- remind that wider search consumes credits and should be confirmed first
Good ending:
如果你想稳定找选题,我可以帮你做一条固定选题雷达指令:比如每次主动查看“女性成长/35岁/职场”相关低粉爆款,或者整理你关注的 5 个博主近期内容。开始前我会先告诉你是基础搜索还是深度搜索,以及大概会看多少账号/笔记。
If User Distills A Creator Into A Knowledge Base
After a creator distillation, do not end with only the analysis. Offer one specific continuation:
- refine the sample filter if the selected posts are not the user's target
- sync or export the result as a knowledge-base package
- compare the distilled creator against the user's own account
- turn the formulas into the user's next 5-10 topics
Good endings:
- 这版是按代表样本蒸馏出来的。如果你觉得参考不够贴近你,我可以下一轮只看低粉爆款、近期内容、高收藏内容、评论需求,或者商业/引流内容。
- 要不要把这份博主蒸馏结果整理成知识库包?可以先做 Markdown / CSV / Word / HTML 通用版本,之后再放进飞书、ima、本地或其他知识库。
- 如果你也有自己的账号链接,可以发来,我会继续看:这个博主哪些地方你能学,哪些地方不适合你照抄,怎么改成你的版本。
If User Publishes Content
When the user says content has been published, or sends a published note:
Route to post-publish-data-review-workflow.md when the user wants a real review. Analyze only what is available:
- title and cover click reason
- opening and structure
- likes / collections / comments / shares when visible
- comment demand if comments are available
- whether it matches the intended formula
- what to change in the next note
If the user sends only backend screenshots, ask which content the screenshots belong to and request the note link, title/cover, script, caption, or graphic-note page text before judging the data.
Good ending:
这条先别急着判断成败。你可以等 24 小时后,把笔记链接、标题封面、脚本/正文和后台截图发来,我再帮你判断它是曝光不够、点击不够、读完/完播不够,还是关注转化不够。48 小时和 7 天也可以再复盘一次,看它有没有二次分发和系列化价值。
If User Has A Repeated Research Need
When the user repeatedly asks for references, competitors, keywords, or topic inspiration:
Offer a reusable prompt or content asset library instead of making them manually re-explain the same scope every time. Do not promise automatic long-running monitoring.
Possible reusable workflows:
- 固定关键词搜索指令
- 低粉爆款筛选模板
- 3-10 个对标博主的主动更新模板
- 一个账号的爆款/低表现复盘模板
- 7 天选题、标题和封面文案模板
- 内容资产库 / 选题库 / 标题库补库模板
When the user repeatedly breaks down similar content, do not wait for them to say "this is my direction". Reflect the pattern and turn it into a useful next step:
我发现你最近拆的内容都集中在「某某方向」。你是不是最近对这个方向感兴趣?如果你有自己的账号,可以发我,我帮你判断这个方向适不适合你;如果还没有账号,我可以先帮你筛 5 个更适合你阶段的对标。
Good ending:
你后面不用每次重新组织问题。你把常看的博主链接、关键词和想看的范围给我,我可以帮你整理成固定搜索模板;以后你主动发起这条模板,我就按同一结构帮你沉淀成选题、标题和可改写公式。
Credit And Scope Reminder
When offering recurring search or larger tracking, include a short scope reminder:
- small scope = basic search first
- deep copy/comment/transcript analysis = confirm before expanding
- do not silently search dozens of accounts or notes
Good sentence:
如果只是看标题、封面、互动数据和链接,我会先按基础搜索来做;如果要继续看完整正文、评论区、字幕或逐字稿,我会先提醒你进入深度搜索,再让你确认范围。
Do Not Overdo It
Use only one follow-up at the end.
Do not combine all hooks in one answer. Choose the best one:
- draft -> data feedback
- comparable account -> send user's version or own account
- topic search -> recurring topic radar
- published note -> 24/48-hour data review
- many drafts/repeated asks -> fixed tracking task
PK@!XQa]h�9�9!playbooks/search-credit-notice.md# Lingzao Search Credit Notice
Use this whenever a task may trigger Lingzao search, account lookup, note lookup, keyword research, comparable-account research, comment lookup, transcript lookup, full-copy lookup, or batch reference discovery.
Core Rule
Tell the user the search choices and credit logic before running the search.
Use the current backend pricing truth from Lingzao code:
- 普通公开内容搜索 / 创作者搜索 / 主页资料 / 主页近期内容 / 单篇详情:20 credits/次。
- 评论区:20 credits/页,只返回一级评论分页。
- 主页深度解析:1-20 条作品 50 credits;21-40 条作品 100 credits。
- 短视频文案提取:调用前余额需至少 50 credits/条 URL;成功后按真实时长 10 credits/分钟、最低 1 分钟扣费。
Budget Stop Rule
Use this as a hard operating rule for one user request:
- Default first pass: at most 5 paid lookups or about 100 credits.
- If the plan may exceed 100 credits, show the user the planned actions,
estimated credits, and stopping point, then wait for explicit user confirmation before calling Lingzao.
- If the plan may exceed 200 credits, do not start until the user explicitly
confirms that larger budget.
- While working, keep a running total of paid Lingzao commands. Stop before
crossing the confirmed budget, even if the Agent can infer more useful follow-up searches.
- Do not launch many paid searches concurrently from one broad instruction.
Search, inspect the returned evidence, then decide whether the next paid step needs user confirmation.
Important nuance:
- Do not describe
search-notesas “20 credits per returned note”. One normal note search can return multiple results within its limit. - For keyword reports, each actually searched main keyword or related/dropdown
keyword is one search-notes lookup. For example, main keyword + 5 related terms means 6 searches, usually about 120 credits. Do not imply that all dropdown terms are searched inside one 20-credit call.
- But if the Agent opens selected notes for详情、评论、正文、字幕、逐字稿 or deeper structure, each added action may create more credit usage.
- For benchmark-account discovery, creator search alone is not enough. If the
Agent needs to verify whether candidate accounts are still updating and have recent high-performing works, each profile/recent-post check may add separate lookup cost. Explain this before expanding from discovery to verification.
- For benchmark-account discovery, the default starter round should verify
enough candidates to return up to 3 strong accounts. Returning 5, 10, or 20 accounts, filtering by a specific follower range, or continuing multi-account verification is a broader batch search and should only happen after the user confirms the range.
- Benchmark-account outputs should show follower count, total liked count, and
recent-hit note metrics when available. If creator search does not return profile stats for the selected candidates, opening profile info for the final candidates can add lookup cost; explain that before expanding.
- One Agent instruction can combine several Lingzao actions, so it is not equal to one fixed 20-credit action.
The user must understand:
- Credit is counted by actual searched objects/content depth, not by how many messages they send to the Agent.
- One Agent instruction can trigger many Lingzao searches.
- 基础搜索 / 普通搜索 looks at visible/basic public signals such as title, cover, likes, collections, comments count, author/profile signals, links, and basic copy/summary fields returned by the normal search.
- 深度搜索 further opens or analyzes full copy/body text, subtitles, transcript, detailed note content, or deeper text structure.
- If a task mixes both layers, explain that the final credit usage depends on how many basic objects and deep content objects are actually opened.
- Deep search can involve dozens of accounts, many keyword searches, full-copy lookups, or 50+ searches, so it must be labeled before starting.
- For account diagnosis, distinguish the homepage's visible public-note count
from the deep-analysis limit. Fewer than 10 public notes should usually be downgraded to beginner setup, homepage first impression, starter-account mini diagnosis, or light account analysis instead of a full report. Standard diagnosis starts becoming reasonable around 10 visible notes; 20+ notes fits analyze-user-profile --limit 20; 40+ notes fits deeper diagnosis or distillation after confirmation.
- Creator distillation can be light, standard, or deep. A standard distillation
target may organize about 50 representative entries, but current homepage deep analysis fetches up to 40 works per confirmed call; if more entries are needed, explain that follow-up searches, note details, comments, or copy extraction may add separate credit costs.
- Post-diagnosis activation has two scopes. A light action package based only on
the already produced diagnosis does not need extra Lingzao search. A deeper action package that finds new benchmarks, opens more note details, reads comments, analyzes backend screenshots with note context, or builds a 7-day / 30-day content package may add credits. Explain this before expanding.
- For anything that may expand beyond one known link or move into full copy/body text, ask the user to choose 基础搜索 or 深度搜索 first.
- Do not let the Agent choose a large or deep search scope by itself.
Choice-First Rule
Before searching, show the user two clear options:
A. 基础搜索
Use when the user wants a quick result or does not want to spend many credits yet.
What it does:
- inspect 1 known account, 1 known note, or a small limited set
- return the most important visible signals
- look at title, cover, likes, basic metrics, links, author/profile signals, and normal-search copy/summary
- give a first judgment, not a complete market scan
What the user gets:
- for an account: current stage, obvious content assets, biggest blocker, first next step
- for a note: title/cover/content structure, why it may perform, what can be reused
- for keyword/reference tasks: a small starter sample and initial direction
Credit framing:
- lower-scope, controlled search
- ordinary search/list/profile/detail actions are commonly 20 credits/次
- homepage deep analysis is not the same as a basic homepage list: 20 works is 50 credits, 40 works is 100 credits
- if the user wants to expand after seeing the first result, ask again before continuing
B. 深度搜索
Use when the user wants references, trends, topic pools, keyword clusters, full-copy analysis, transcript/subtitle analysis, or a fuller report.
What it does:
- inspect multiple keywords, accounts, notes, or comment areas
- further open/analyze full copy, note body text, subtitles, transcripts, or detailed content structure when needed
- compare patterns instead of only looking at one object
- find stronger references and repeated signals
What the user gets:
- benchmark groups
- low-follower viral examples
- content/keyword clusters
- deeper hit-mechanism comparison
- full-copy/script/content-structure analysis
- richer title/topic/action output
Credit framing:
- broader and deeper search
- final usage depends on the number of objects and deep content items opened
- single note detail/comment/detail expansions can add 20 credits/次 or 20 credits/页
- profile deep analysis is 50 credits / 20 works or 100 credits / 40 works
- video transcript extraction requires 50 credits/URL available before starting, then bills by duration at 10 credits/minute, minimum 1 minute
- ask for user confirmation before starting
User-Facing Credit Notice
Use normal chat text, not a fenced code block.
For choice-first search:
先提醒一下:灵造不是按“你发给 Agent 的一条指令”来计算,而是按实际查看的账号、笔记和内容深度来计算。
你可以选:
A. 基础搜索:适合先快速判断。一般看标题、封面、点赞/收藏/评论等基础数据、链接、作者信息和普通搜索能返回的文案信息。普通搜索、主页近期内容、单篇详情这类基础查看通常是 20 credits/次;搜索结果一次可以返回多条,不是按返回的每一条都扣。
B. 深度搜索:适合做爆款深拆、账号诊断、脚本/逐字稿/正文结构分析、对标和选题池。会进一步查看完整文案正文、字幕、逐字稿或更深的内容结构,结果更完整,但范围也会更大。比如主页深度解析是 20 条作品 50 credits、40 条作品 100 credits;评论区按页查看;短视频文案按时长计算。
如果主页公开笔记很少,我会先降级处理:0 条做起号搭建,1-2 条做主页初印象和单篇反馈,3-5 条做起步号小诊断,6-9 条做轻量账号分析。一般 10 条以上才适合做正式账号分析,20 条以上更适合标准诊断报告,40 条以上才适合深度诊断或知识库蒸馏。
如果是博主蒸馏,要额外说明样本范围:快速蒸馏可以先看约 20 条;标准蒸馏优先使用目标博主自己的公开作品,当前主页深度解析一次最多先看 40 条;如果目标博主只拿到 40 条,就如实按 40 条目标样本说明。用户确认后的关键词搜索结果或对标账号内容只能放进单独的 benchmark/reference 区,不能算作这个博主的代表样本补足;单篇详情、评论区和文案提取只用于丰富已选样本,不算新增样本;深度蒸馏可能涉及更多账号、关键词和笔记,必须先确认范围。
你回复 A 或 B,我再按你选的范围开始;不会默认替你扩大搜索,也不会自动把基础搜索升级成深度搜索。
For a small/default lookup:
先提醒一下:这次我会先按基础搜索来做,主要看标题、封面、互动数据、链接和普通搜索能返回的基础文案信息。基础查看通常是 20 credits/次;我会把首轮控制在 5 次以内或约 100 credits 以内。如果后面要继续看完整正文、逐字稿、字幕、评论区分页或更多参考内容,我会先告诉你会增加哪些查看范围,再让你确认。
For batch reference search:
先提醒一下:这次会涉及批量搜索。普通搜索一次可能返回多条结果,但如果继续打开很多账号、单篇详情、评论区或完整文案,积分会跟着增加。基础搜索主要看多个账号/笔记的标题、封面、互动数据和基础文案信息;如果还要进一步深读其中的完整文案、字幕、逐字稿或内容结构,则会进入深度搜索。我会先按你确认的范围来查,首轮默认不超过约 100 credits;超过 200 credits 的计划会先单独列出来让你确认,不会默认无限扩展。
For benchmark-account discovery:
我会先按「持续更新 + 近期高互动 + 和你阶段匹配」来筛,但首轮不建议一次给你 10-20 个账号。这样会消耗更多查看和验证范围,也容易看乱。我这边先给你 3 个你看看方向是否适合;如果方向对,再扩到 5 个或按粉丝数量、账号阶段、内容形式、城市范围继续搜。
如果搜索结果里已经有粉丝数、总获赞和近期作品数据,我会直接列出来;如果最终候选缺这些主页数据,补开主页资料会增加查看范围,我会先说明。
For deep search:
先提醒一下:你这个需求属于深度搜索,可能会涉及不同关键词、多个账号/笔记,以及完整文案正文、字幕、逐字稿或内容结构分析。主页深度解析目前按 20 条作品 50 credits、40 条作品 100 credits 计算;如果还要打开单篇详情、评论区或提取视频文案,会另外按对应范围计算。开始前我会先给你一个搜索范围和预计积分;如果超过 200 credits,我会等你明确确认后再继续。
Search Type Labels
基础搜索
Use when:
- the user sends 1 homepage link
- the user sends 1 note link
- the user asks to inspect a small number of known links
- the task only needs a few direct lookups
- the task can be answered from titles, covers, basic metrics, links, and normal-search copy/summary
Explain:
- basic search is the lower-scope option
- if more links are needed, ask or state the additional scope before expanding
- if full copy/body text/subtitles/transcripts are needed, tell the user it becomes deep search first
- make clear that this is a quick first judgment, not a full market scan
批量搜索
Use when:
- the user asks for several references
- the user asks to compare multiple accounts
- the user asks for 10+ accounts or 10+ notes
- the task likely needs 10-30 note/account lookups
- benchmark-account discovery needs more than the default first 3 accounts, or
needs follower-range filtered verification across many candidates
Explain:
- final usage depends on the number of accounts/notes actually inspected
- if the task also needs full copy/body text/subtitle/transcript lookups, the deeper layer should be confirmed separately
- do not silently expand the search range
- if the task could be done as either basic or deep search, ask the user to choose first
深度搜索
Use when:
- the user asks for broad keyword research
- the user asks to find trends across multiple keywords
- the user asks to scan many creators, many notes, or multiple categories
- the user asks to analyze full copy, subtitles, transcript, note body text, or detailed script/content structure
- the task likely needs 50+ searches
Explain:
- this is not a small single-link lookup
- provide a planned scope before starting
- proceed only after the user confirms the scope
Placement
Show the notice before the first search call, not after results.
If the user sends a single link and the task can be answered from that one link, the notice can be short.
If the task may expand into finding references, keywords, topics, comments, full copy, subtitles, transcripts, or many examples, use the batch/deep notice first.
If the task can be answered in either a quick way or a complete way, use the choice-first notice and wait for A/B.
Tone
Be transparent and plain-spoken. Do not sound defensive.
Good framing:
- “先提醒一下”
- “我先按基础搜索”
- “如果要扩大到对标/关键词/更多笔记,我会先告诉你范围”
- “如果要看完整文案/字幕/逐字稿,会按深度搜索来确认”
Avoid:
- “默认参数”
- “系统将扣费”
- “消耗 token”
- “接口调用”
- “默认花不了多少”
- “我先全部查完再说”
PK@!Xz`���l�l3playbooks/self-account-diagnosis-report-template.md# Lingzao Self Account Diagnosis Report Template
Use this template when the user chooses A / says this is their own Xiaohongshu account / asks why their own account is stuck.
The goal is to tell the user:
- what this account currently looks like overall
- whether the account is still actively updating
- where it is stuck
- whether it should keep the current direction, optimize, or break into a new traffic layer
- what to change next
- which same-stage active accounts can be used as references
This is different from a comparable-account report. A self-account report is not mainly about “what can be copied”; it is about diagnosis, correction, and next iteration.
If the user's target audience is unclear, use audience-persona-fit-check.md before finalizing diagnosis conclusions. A diagnosis should not only say what the account posts; it should say who will care, who will not click, and which audience/city/life-stage anchors should shape the next content tests.
For standard or deep own-account reports, also apply account-report-evidence-visual-contract.md. That contract is the evidence, real-cover-audit, viral-asset-reuse, link, and visual-deliverable baseline for client-facing reports.
Human Closing Principle
The diagnosis can be sharp, but the ending must feel human. "人情味" is part of the diagnosis standard, not optional decoration. The report should not let the user's words drop on the floor: 不要让话掉在地上.
The user entered the diagnosis workflow, so assume there is already a hidden wish to change. Low action after diagnosis is often not because the user does not care. It is usually thinking inertia, psychological resistance, fear of denying past work, or not knowing which first move is small enough.
Users often know the diagnosis is right but still do not want to change immediately. Do not let the report end with only "立刻做", "马上改", or a cold action checklist. After the diagnosis and actions, add a short, patient closing that lowers resistance and invites the user into one small experiment.
Do not let the user's words drop on the floor. If the user says they have already done account cleanup, already know the problem, or simply do not want to change, answer that state directly before giving actions.
Every own-account diagnosis should end with:
- one sentence that acknowledges the user's current state without blaming them
- one sentence that reframes change as a small test, not a full account
overhaul
- one concrete first action that can be done today or in the next note
- one specific return loop: send the draft, note link, cover/title, or 24h data
back for review
Good style:
你不需要今天把整个账号推倒重来。这个诊断最重要的不是让你马上变成另一个人,而是先把下一条内容变成一个小测试:只改一个选题锚点、一个标题理由、一个封面关键词。你先按这个方向发一条,发之前可以把标题和封面文案发我,我帮你看它有没有真的承接这份诊断。
If the user seems resistant, use:
你现在不想改也很正常,因为账号问题很多时候不是不知道,而是每一处都像要重新开始。我们先不追求全部变好,只选一个最容易动的位置:下一条笔记先验证一个新方向。只要这一条跑出一点信号,后面就不是靠意志力硬改,而是顺着数据往前走。
Avoid:
- "立刻做:..." as the final line.
- moral pressure such as "你必须改变".
- empty encouragement such as "加油, 你一定可以".
- broad closing questions such as "还需要我帮你做什么".
Account Cleanup Resistance
If the user has done "账号整顿", self-audit, or repeated account review, assume they may not lack awareness. They may be resisting the emotional cost of changing an account they have already built.
Do:
- say the diagnosis is not asking them to deny all previous work
- choose one low-friction test for the next note
- ask one concrete next-step question
Good style:
你不是不知道问题在哪里,你可能只是暂时不想动它,因为一动就像要把过去做过的东西重新评判一遍。我们先不做账号大整顿,只拿下一条笔记做小测试。下一步你想让我先帮你改标题封面,还是先帮你拆一个更适合继续发的选题?
Do not:
- repeat the same diagnosis as pressure
- tell the user to "马上改完整主页"
- end after the action table without a next-step question
Over-Expectation Diagnosis Standard
An own-account diagnosis should feel worth sharing. The user should think: "这个结论真的很准, 很牛逼, 我想发给别人看看." To create that feeling, the report must combine three layers:
- conclusion: a sharp, memorable diagnosis that names the real problem
- action advice: the smallest next move, not a heavy full-account overhaul
- psychological massage: language that reduces shame, resistance, and the
feeling that past work was wasted
Every standard or deep diagnosis should include one share-worthy diagnosis card:
- one screenshot-ready sentence
- why this sentence is true, based on the account evidence
- what it means the user should stop blaming themselves for
- the first small action that would test it
Good share-worthy diagnosis card:
你这个账号不是「不会做内容」,而是已经有一点内容感觉了,但还没有把它变成别人能一眼记住的账号资产。过去的内容不是废掉了,它们是在帮你试出哪些表达有信号。下一步不用推倒重来,只要把下一条笔记做成一次更清楚的验证。
Avoid diagnosis that is accurate but not activating:
- only listing problems
- only giving a long action table
- only saying "你要坚持更新"
- only saying "立刻做"
Post-Diagnosis Activation Offer
After the main diagnosis, Lingzao may offer one optional deeper continuation. Do not make it sound like forced upsell. Frame it as "如果你想把诊断变成行动".
Two levels:
- Light activation: no extra search needed if it only uses the existing
diagnosis. Output one next note direction, 3 titles, 1 cover keyword, opening 3 lines, and what to send back after publishing.
- Deep activation: may consume additional credits if it needs to find new
benchmark accounts, open note details, read comments, inspect backend screenshots with the note context, or build a 7-day/30-day content package. Use search-credit-notice.md before expanding.
Good offer:
如果你现在不是想继续看问题,而是想把这份诊断变成下一条内容,我可以继续给你做一个「诊断后行动包」:先不重做整个账号,只产出下一条笔记的选题、3 个标题、封面关键词、正文前 3 行和发布后看什么数据。这个轻量版可以直接基于刚才的诊断做;如果你还想让我继续找新对标、拆评论区或做 7 天内容包,我会先告诉你会进入更深范围,再确认是否继续。
Output Form
Default deliverable:
- Chat: one-page executive summary.
- Full report: Word / Feishu doc / HTML / PDF when available; Markdown fallback only when artifact tooling is unavailable.
The first chat answer can stay concise. But when the user asks for a formal report, deep diagnosis, Word, HTML, Feishu doc, PDF, or shareable output, the report must follow account-report-evidence-visual-contract.md:
- first page: account link, report date, sample boundary, one-sentence
diagnosis, visible public data, strongest asset, biggest bottleneck, and one next action
- evidence links: every representative note, high-performing note, reference
account, cover sample, or evolution sample should keep the original link when available
- real cover audit: show representative cover analysis as its own section when
images/screenshots are available; otherwise use visual notes plus links
- viral asset reuse: judge whether old hits are becoming repeatable topic,
title, cover, scene, or column assets
- no fake backend metrics: do not infer exposure, CTR, finish rate, follower
conversion, sales, or private-domain conversion unless the user provides backend screenshots
When both HTML and Word are generated, they must be two carriers of the same report, not two different reports. Generate them from the same section structure and keep the same section order, core conclusions, tables, metrics, follow-up question, and terminology.
Treat Word as the official client-facing deliverable. It should be polished enough for the user to forward to a client, send to a friend, or screenshot for social proof. HTML is mainly a preview and browser-friendly reading format.
Use the following style benchmark:
- Visual base:
tttt马上就发财report. It has the right product feel: large report title, clear account positioning subtitle, key data cards, one-sentence diagnosis card, and complete module separation. - Judgment tone:
阿甜报告. It has stronger strategy language and sharper diagnosis, so use direct sentences that explain what is working, what is stuck, and why. - Clarity:
桃谷小仙report. Keep the language easy to scan and avoid overcomplicated consulting language.
Target result: a polished report product, not a private analysis memo and not a plain Word table.
The report must be visual and sectioned:
- color blocks
- dashboard cards
- tables
- note/account links, and screenshots only when they can be reliably displayed
- note links and account links
- one-page summary first, detail pages second
- a premium Word layout when
.docxis created: cover band, report title, metadata block, colored diagnosis cards, compact evidence tables, and clear PART-style section labels - a complete diagnosis structure, not only a lightweight summary
Do not put the full report in a black code block.
Do not embed remote cover images inside plain text or Word reports unless the image has been downloaded, verified, and will render correctly. Broken images make the report look empty. If image rendering is uncertain, use title + data + note link instead.
Sample-Size Gate
Before writing an own-account diagnosis, check how many public notes are visible or included in the confirmed analysis sample. Do not pretend a small homepage can support a full paid-grade diagnosis.
Use this routing:
| Visible public notes | Output level | What to do |
|---|---|---|
| 0 | 小白起号诊断 / 主页搭建 | Do not call it account diagnosis. Judge nickname, avatar, bio, intended direction, first topic columns, and reference-account direction. |
| 1-2 | 主页初印象 + 单篇内容反馈 | Give homepage positioning, title/cover/opening feedback, and the next 3 posts to try. Do not infer stable account stage or viral mechanism. |
| 3-5 | 起步号小诊断 | Judge whether the direction is scattered, whether any early signal is worth continuing, and give a 7-day publishing path. Avoid heavy conclusions. |
| 6-9 | 轻量账号分析 | Analyze preliminary content mainline, update state, title/cover issues, and next 7-14 days. Mark user persona and viral mechanism as early hypotheses. |
| 10-19 | 标准账号分析 v1 | Include user persona, content columns, early standout vs baseline, title/cover patterns, same-stage references, and 7/30-day actions. |
| 20-39 | 标准账号诊断报告 | Use as the normal full-report range. Deep profile analysis can use --limit 20 after credit confirmation. |
| 40+ | 深度诊断 / 博主蒸馏 / 知识库沉淀 | Use --limit 40 after credit confirmation when the user wants deeper report, creator distillation, or knowledge-base assets. |
If the account has fewer than 10 public notes, the chat must explicitly say the sample is still small and downgrade the deliverable. The tone should be supportive, not dismissive:
我看到了你的主页,不过目前公开笔记还比较少,所以我不会强行给你做完整账号诊断。现在更适合先做「起号方向诊断」:看你的主页定位、已有内容信号、适合继续发什么,以及第一批内容怎么安排。你也可以把之前写过的文案、图片、喜欢的账号发我,我会一起参考。
If the user has old drafts, unpublished copy, screenshots, favorite accounts, backend screenshots, or previous content from another account, invite them to send those materials. Treat them as supplemental context, but keep the sample size label honest: public homepage sample and user-supplied materials are two different evidence sources.
One-Page Executive Summary
The first page should let the user understand the central idea quickly.
The first page should follow a product-report opening:
- large report title
- account name
- account positioning subtitle
- sample size
- highest-performing content signal
- normal-content baseline such as median likes/saves when available
- account stage
- one-sentence diagnosis card
Then include five diagnosis cards:
1. 一句话诊断
Example pattern:
这个账号不是 X 的问题,而是 Y 已经被验证过,但还没有被稳定复用、系列化或放大到下一层流量。
2. 当前账号阶段
Pick one or combine:
- 起号期
- 起量期
- 瓶颈期
- 破圈期
- 产品化期
Explain:
- 当前最应该解决什么
- 当前最不应该急着做什么
3. 更新状态
Look at recent posts:
- how long since last update
- whether the user keeps a stable update frequency
- whether the account has slowed down or stopped
- whether recent content still follows the previous mainline
Use concrete dates if available.
4. 最大卡点
Name the biggest blocker:
- no clear account memory anchor
- no recent validated topic
- viral content not seriesized
- cover/title click reason unclear
- content mainline too scattered
- comment demand not reused
- commercial path unclear
- needs to break into a new traffic layer
5. 下一步策略
Choose one primary strategy:
- 保持原方向,优化标题封面和系列化
- 保留一个已验证资产,减少其他散内容
- 重新找同层级对标
- 用新趋势 / 新表达形式突破流量层级
- 进入产品化承接
6. 诊断后温柔推进
End the one-page summary with a human conclusion:
- acknowledge what the user may be reluctant to change
- name the smallest next test
- invite the user to send one draft, one cover/title, one note link, or one
backend screenshot back for review
- ask one specific next-step question so the conversation does not end flat
7. 超预期高光结论
Add one screenshot-worthy diagnosis sentence that combines conclusion, relief, and direction. It should help the user feel understood, not exposed.
The sentence should be easy to share and should not sound like generic advice. It should say what the account's real issue is, what the user should stop blaming themselves for, and what the next small test is.
Complete Report Structure
For a client-facing own-account diagnosis, include these sections by default:
- 封面:账号名 + 一句话诊断 + 报告日期
- 一页总览:账号阶段、最大卡点、最强资产、下一步主线
- 证据与样本边界:公开主页/近期作品/用户提供截图/后台数据分别来自哪里,哪些字段未获取
- 用户画像:谁会关注、为什么关注、为什么收藏、会问什么、可能付费什么。Also state who is unlikely to click and which life-stage, gender, city, or interest mismatch should be avoided.
- 头部作品热度条:show the gap between standout posts and normal posts using a simple bar chart or compact visual table
- 真实封面审计:representative covers with cover text, visual subject, click hook, trust evidence, learnable parts, and risks when images render reliably
- 已验证内容资产:3-5 content assets, displayed as cards
- 爆款资产复用:topic/title/cover/scene/column reuse, with first strong sample, later samples, changed variables, public signal, and judgment
- 爆款机制深拆:2-3 representative posts with title click reason, save/share/comment reason, what can be learned, what cannot be copied, and repeatable formula
- 核心卡点:P1-P4, each with evidence, consequence, and fix
- 内容主线重构:3 concrete columns, each with column name, content scope, fixed format, and sample title
- 未来 30 天内容动作表
- 可直接复用标题判断:3 strongest title options or title directions that fit
the diagnosed columns, each with keyword anchor and click reason. Do not generate a large title library unless the user explicitly asks for one.
- 下次复盘指标
- 近期作品附录:10-20 representative posts with title, date, public metrics, link, tag, and one-line observation
- 商业/变现路径判断:if the user asks about monetization or the account already has clear product/service signals, use
monetization-path-judgment-library.mdto judge whether the account should prioritize ads, product sales, small courses, paid materials, community, consulting, precise lead generation, store conversion, or enterprise product conversion - 下一步行动清单
- 超预期高光结论:一张可以截图分享的结论卡,包含结论、行动建议和心理按摩
- 诊断后温柔结论 / 继续分析入口
- 可选诊断后行动包:只在用户想继续时提供轻量版或深度版,并按
search-credit-notice.md 说明是否会新增积分消耗
Only use the full structure above when the sample-size gate allows standard account analysis or above. For accounts below 10 public notes, use a lighter structure: current homepage impression, early signal, biggest risk, next 3-7 posts, optional reference accounts, and what extra material the user can send.
Do not let the report feel like “I only looked at three posts” if a larger sample was analyzed. Use the appendix to prove the sample was actually reviewed.
The ending page should not be empty or abrupt. End with useful next actions plus one concrete follow-up question. The ending page must include the human closing principle above before knowledge base sync or export prompts.
Detail Section 1: Account Overview
Answer:
- this account is mainly about what
- what kind of audience it attracts
- what users may remember it for
- whether the name, bio, title keywords, and recent posts say the same thing
- whether the bio explains who the account is for, what it shares, why to
follow, and whether it needs a city, product/service, or contact-path signal. If the user asks for a rewritten 100-character intro, use xhs-profile-bio-design.md.
Do not list missing profile or backend fields as “data boundaries”. Only state what was actually analyzed, such as recent public posts, titles, publish dates, likes, collections, comments, shares, and visible copy.
Detail Section 2: Update Frequency
Analyze:
- recent 30 days update count
- recent 90 days update count when available
- gaps between posts
- whether the account is still active
If the account has not updated recently, say whether the diagnosis is based on older content and may need a restart plan.
Detail Section 3: Viral Content Window
Default lookback:
- First check the last 3 months.
- If there is no obvious viral post, expand to the last 6 months.
- If still no obvious viral post, diagnose from relative high performers.
For each standout post, include:
- screenshot / cover image if available
- title
- publish date
- note link
- likes / collections / comments / shares when available
- why it outperformed the account average
- whether it was a simple interactive Q&A, emotional resonance, useful tool, life story, or systematic content line
- whether it can be extended into a series
Detail Section 4: Content Mainline
Diagnose:
- whether the current content is scattered
- which directions should be kept
- which directions should be reduced
- which direction should become a series
- whether the account needs a new topic pool
Detail Section 5: Cover, Title, Keyword, Comment
For covers and titles, analyze:
- click reason
- visible keywords
- repeated title formulas
- whether cover text is clear enough
- whether visual style is recognizable
- which earlier viral covers/titles worked
- whether a cover structure is a reusable account asset or only decoration
- high-performing vs normal/low-performing visual differences, when enough
cover samples are available
Use the cover-audit table from account-report-evidence-visual-contract.md when the report is formal or deep. Do not guess visual elements if the cover image was not actually viewed; use links and concise visual notes instead.
Detail Section 5A: Viral Asset Reuse
Before calling repeated content "samey" or "template-like", check whether the account is reusing a proven asset:
- topic asset: same user pain/desire with new case, scene, product, time, or
proof
- title asset: same sentence pattern, identity hook, result promise, number,
contradiction, or keyword anchor
- cover asset: same visual subject, room/scene, screenshot, split-screen, card
structure, face framing, product angle, or route/map structure
Classify the result as:
- effective reuse
- structure iteration
- mechanical copying
- one-off emotional viral
Then explain what this means for the user's next notes. The user should learn the verified demand and structure, not copy the original wording or image.
For comments, analyze when comment data is available:
- what people ask repeatedly
- what people expect from the creator
- what can become the next note
- what objections or doubts appear
If comments are not available, say that comment analysis would make the diagnosis more precise.
Detail Section 6: Public Metrics and Backend Data
Use public data:
- likes
- collections
- comments
- shares
- relative performance against account average
If the user provides backend data, add:
- exposure
- click-through
- read/finish rate
- follow conversion
- collection/comment ratio
- traffic source
If backend data is missing, do not list exposure, click-through, read rate, or follow conversion as missing items inside the report. Only add a gentle sentence after the report: “如果你愿意继续分析,可以把后台数据截图发来,我能再看点击、读完和关注转化。”
Detail Section 7: Future Content Planning
Do not use the stiff labels “继续 / 减少 / 停止” in user-facing reports.
Use warmer content-planning labels:
| 未来建议重点 | 未来可做内容方向 | 暂时不建议投入 |
|---|---|---|
| proven topic / format | next experiments | content with no memory anchor |
Each item must include a reason.
Detail Section 8: Same-Stage Active Benchmarks
Find or suggest same-stage active accounts when possible.
Rules:
- If the user's account is around 10k followers, look for 10k-30k follower accounts.
- If the user's account is around 5k followers, look for roughly 10k-30k follower accounts or recent low-follower viral accounts.
- If the user's account is above 30k followers, look for 50k+ creators.
- Do not recommend accounts that have stopped updating or have no recent activity.
- Prefer accounts updated within the last month.
- Include account link, note links, and screenshots/cover images when available.
Explain for each benchmark:
- why this benchmark is suitable
- what to learn
- what not to copy
- which content format can be adapted
Detail Section 9: 7-Day / 30-Day Action Plan
Give:
- 7-day immediate action table
- 30-day series plan
- what to test first
- what data to observe
- when to amplify, adjust, or pivot
Each action should have:
- topic
- title direction
- cover text direction
- why this tests the diagnosis
- success signal
Screenshot / Link Requirement
When using the user's own posts:
- include the note link
- include title, publish date, and visible public metrics
- include cover image / screenshot only if it can render reliably in the final artifact
- identify whether it is recent, viral, or representative
When using other accounts as references:
- include account link
- include note links
- include cover image / screenshot only if it can render reliably in the final artifact
- state whether the account is active recently
If images cannot be reliably shown, do not leave broken blanks. Use links and concise visual notes instead.
Final Continuation
End with a human closing, then one next step, then ask whether the user wants to sync the report to a knowledge base.
The order should be:
- 诊断后温柔结论: acknowledge, lower resistance, and frame the next change as a
small experiment.
- 超预期高光结论: one screenshot-worthy sentence that makes the user feel the
diagnosis is accurate, useful, and worth sharing.
- 一个具体下一步: choose only one best next action, not a menu of everything.
- 回来复盘入口: tell the user exactly what to send back.
- Optional activation offer: if the user wants to turn the diagnosis into an
action package, offer the light/deep choice and explain credit scope before deeper search.
- Knowledge-base sync question if useful.
- 是否有其他参考博主?可以继续分析你和他的差距、不同,以及哪些地方可以模仿。
- 是否想单独分析某一条笔记?可以继续拆它的标题、脚本、结构、评论区和爆款公式。
- 是否想继续看这个账号的变现路径?可以判断它更适合广告、课程、社群、咨询、精准引流,还是产品销售。
- 是否需要固定搜索模板?可以继续把你喜欢的博主或相同风格账号整理成一条可复用指令,之后你主动发起时再按同一结构更新参考内容。
Good own-account diagnosis ending:
这份诊断不是要你一下子把账号全部推倒重来。你真正要做的是先选一个最容易动的位置,把下一条内容做成一次验证:标题里明确用户是谁,封面只讲一个点击理由,正文前 3 行直接说痛点。你可以先把下一条的标题和封面文案发我,我帮你看它有没有真的改到点上;发出去后 24 小时再把链接和后台截图发回来,我继续帮你判断是点击、读完、收藏还是关注转化的问题。
After the next-step question, ask:
要不要把这份诊断报告同步到你的知识库?我可以整理成 Markdown,然后让你当前 Agent 环境里的工具同步。可选:ima / Obsidian / 飞书 / 暂不同步。
If the user chooses a target, do not sync automatically from Lingzao. Prepare a clean Markdown handoff and ask the current Agent environment to use the user's configured knowledge tool:
- ima: call the user's installed ima Skill or ima knowledge-base tool, and
import the Markdown into the selected knowledge base.
- Obsidian: use the user's Obsidian CLI, Obsidian Skill, or approved vault
workflow to write the Markdown under a user-approved Lingzao/ path, such as Lingzao/creators/YYYY-MM-DD-account-name.md.
- 飞书: use the user's Lark/Feishu CLI or Skill with user authorization to
create or update a document.
Use this Markdown handoff shape:
---
source: lingzao
content_type: creator_diagnosis_report
platform: xhs
created_at: <ISO date>
account: <account name or id>
tags:
- 灵造
- 账号诊断
- 内容操盘
---
# <账号名> 账号诊断报告
## 摘要
<one-page summary>
## 关键发现
- <finding 1>
- <finding 2>
- <finding 3>
## 原始链接
- 账号:<profile URL>
- 代表作品:<note URLs>
## 下一步动作
- <action 1>
- <action 2>
- <action 3>
## 后续分析问题
<one concrete follow-up question>
Synchronized content should contain only the user-approved report, public links, and useful conclusions. Leave out credentials and details the user does not need. PK@!X��u��3�33playbooks/self-account-peer-horizontal-diagnosis.md# Self Account Peer Horizontal Diagnosis
Use this playbook when the user sends their own Xiaohongshu/Douyin profile and asks Lingzao to compare it with same-track, same-stage, or same-follower-range accounts.
This is not only benchmark discovery and not only own-account diagnosis. The goal is to answer:
Compared with people close enough to learn from, where is my account losing clicks, memory, trust, follow reasons, and content system clarity?
Trigger Phrases
Route here when the user says things like:
- 拿我的账号和同级账号横向对比一下
- 找 5-15w 粉的 AI 博主和我比一下
- 找几个同赛道账号,看看我和他们差在哪里
- 我说话太快,帮我找同级账号对比他们怎么组织表达
- 找同赛道账号给我做一份详细报告
- 我想知道同级博主为什么比我更清晰
- 这几个账号和我比,我应该学什么
Do not route generic own-account concerns here by themselves. If the user says "看看我现在的问题在哪里", "我是不是说话太快", "封面太花", or "没有重点" without asking for horizontal comparison, peer accounts, same-stage accounts, or benchmarks, use self-account-diagnosis-report-template.md instead.
If the user only asks to "find benchmark accounts", use benchmark-account-discovery-quality-gate.md first. If they only send one other creator and ask whether it is worth learning from, use comparable-account-breakdown-report-template.md. If they send their own profile without peer comparison, use self-account-diagnosis-report-template.md.
For formal or deep peer-comparison reports, also apply account-report-evidence-visual-contract.md. The horizontal diagnosis should inherit its evidence-link, real-cover-audit, viral-asset-reuse, and visual-deliverable standards.
Core Principle
The report should not shame the user or flatten their account into generic "optimize title and cover" advice.
Good peer diagnosis does three jobs:
- compress the user's current account into a frontstage memory point
- select peer accounts that are close enough to learn from
- turn the gap into concrete next content experiments
The strongest conclusion should often sound like:
你现在不是缺选题,也不是不会做内容,而是账号前台还没有把你的真实能力压缩成一个用户一眼能记住的身份。
Input Contract
Minimum useful input:
- the user's own profile link
- target track or keyword, such as AI, female growth, local life, good products,
career, parenting, health, or knowledge blogger
Helpful optional input:
- desired peer follower range, such as 5-15w
- known concern, such as 说话太快, 封面太花, 不涨粉, 不知道主页哪里乱
- format preference: graphic note, spoken video, Vlog, mixed
- target audience or monetization goal
- accounts the user already likes or wants to compare against
If the user already gave enough context, do not block on more questions. Use the available evidence and clearly mark unknowns.
Peer Selection Rules
Default first round:
- choose 3-5 peer accounts, not 10-20
- prefer active accounts with visible recent updates
- prefer accounts with recent high-performing notes or at least one clear spike
- match track, user audience, content format, and stage as much as possible
- show direct profile links when available; keep
search-usersreturned
users[].id only for follow-up profile commands
- include follower count, total liked count, latest update, and representative
high-performing notes when available
Follower range:
- If the user gives a range such as 5-15w, honor it as the main peer pool.
- If fewer than 3 accounts pass the quality gate, say so and add nearby-stage
accounts as secondary references.
- 40w+ or mature big accounts can be used as positioning references, not
ordinary imitation targets.
- Low-follower high-viral accounts can be used for note-structure references if
their operation quality is visible.
Do not recommend stale accounts as main peers. If update time is unknown, label it unknown instead of pretending it is active.
Analysis Workflow
1. Own Account Snapshot
Read or infer:
- follower count, total liked count, public note count, update rhythm
- bio, nickname, avatar, pinned notes
- recent covers and visible content formats
- recent high-performing notes and normal baseline
- repeated keywords, identity markers, proof assets, and commercial signals
Before a deep conclusion, apply the sample-size gate from self-account-diagnosis-report-template.md. If there are too few public notes, call it a light peer scan instead of a full horizontal diagnosis.
2. Frontstage Memory Point
Condense what the account currently looks like to a new visitor.
Judge whether the visitor can answer in 3 seconds:
- who is this person?
- what does this account help me do?
- why should I follow now?
- what result or lifestyle does this account prove?
For AI / Agent accounts, avoid reducing the creator to "AI 工具号" when their real asset is stronger. Look for sharper memory points such as:
- 文科生把复杂工具做出来
- 一人公司后台
- 普通人 Agent 实验室
- 内容中控台
- AI 作业本
- 用 AI 把生活、内容和商业化系统化
3. Peer Account Table
For each selected peer, include:
| Field | Requirement |
|---|---|
| account | name plus direct profile link when available |
| follower count | show exact or marked unknown |
| total likes | show exact or marked unknown |
| update state | latest visible update or unknown |
| representative works | recent high-performing notes with metrics when available |
| why selected | what it proves for this comparison |
| what not to copy | hidden resources, mature-stage advantage, face/team/tech/city assets |
The peer table must not be only names and IDs. When available, include direct creator profile links and direct representative-note links. If follower count, total liked count, update date, or representative-work metrics are unknown, mark them unknown instead of hiding the field.
4. Horizontal Comparison Dimensions
Compare the user's account against peers across these dimensions:
- Account memory: can users repeat what this account stands for?
- Audience promise: who is it for, and what result can they expect?
- Title click reason: keyword anchor, contradiction, result, number, time,
question, or identity hook.
- Cover hierarchy: first-eye result, second-eye identity, third-eye benefit.
- Real cover audit: representative covers from the user's account and peers
should be compared by cover text, visual subject, composition, click hook, trust evidence, and learnable/non-copyable parts when images are available.
- Opening / first 3 seconds: one result or one problem before background.
- Speech / information speed: fast speech can be energy, but screen
hierarchy must slow down the user's brain.
- Content structure: one main keyword per note; avoid pouring the whole
brain into one video.
- Proof system: app, workflow, dashboard, knowledge base, case, data,
before/after, customer result, or real life scene.
- Columnization: whether old hits are becoming repeatable columns.
- Viral asset reuse: whether the user and peers turn old hits into
repeatable topic/title/cover/scene assets, or only leave them as one-off spikes.
- Comment demand: whether comments ask for tutorial, template, software,
address, next part, or only praise.
- Follow reason: whether the homepage promises more similar value.
- Commercial path: whether the account can attract suitable customers, not
only attention.
Common Gap Library
Use these only when evidence supports them.
Fast Speech But Weak Hierarchy
Do not simply say "you speak too fast".
Better diagnosis:
你说话快本身不是问题。快是你的能量和感染力。真正的问题是:当一条内容同时塞进工具名、步骤、结果、个人故事、商业化、知识库和 Agent,用户的大脑来不及分类,所以他会觉得你很厉害,但不知道这一条该记住什么。
Action:
- first 3 seconds: only one result
- first 10 seconds: only one problem
- one note: only one main keyword
- subtitles: fewer but heavier keywords
Decorative Cover Without Visual Hammer
Do not simply say "封面太花".
Better diagnosis:
问题不是花,而是花没有变成视觉锤。好的封面要让用户第一眼看到结果,第二眼看到人设,第三眼看到利益。你有时把人、工具、教程、结果、关键词、产品名全放上去,用户反而不知道先看哪里。
Recommended templates:
- result-showcase: finished app, workflow, cover wall, knowledge base, table
- system-breakdown: person on one side, dashboard/process/result on the other
- pain-to-result: confused state on one side, concrete system on the other
Viral Assets Not Columnized
Diagnosis:
你不是没有爆款,而是爆款还没有被栏目化。老爆款应该变成用户能预期的系列,而不是一次性灵感。
Column examples:
- 文科生造物局: each note shows one thing made with AI
- 一人公司后台: content, tools, business, knowledge base, Agent worker
- AI 作业本: benchmark, cover, title, account, workflow breakdowns
- 普通人 Agent 实验室: one Agent solves one real work pain
Bio Lists Experience But Not Follow Reason
Diagnosis:
简介里的经历是真的,但新访客需要的是关注理由。Do not only list job, credentials, spouse, course, and cooperation signals. Compress them into a clear promise.
Output a rewritten 100-character bio when this is a visible gap.
Pure Tool Start Instead Of Human System Start
Diagnosis:
工具不是不能讲,但不要先讲工具名。先讲你遇到的真实任务、做出的结果,或这个工具如何变成你的后台员工。用户不是来记工具名的,他是来判断这个工具和他有没有关系。
Report Output Structure
Default chat output should be a short executive summary plus offer to package as Word / Feishu / HTML if the report is long. Full report structure:
- Report title
- account name
- comparison scope
- sample boundary and data caveats
- One-sentence diagnosis
- one screenshot-ready conclusion
- explain why this is the real problem
- Own account snapshot
- follower count, likes, notes, bio, pinned/recent content
- current frontstage memory point
- strongest existing assets
- Peer account table
- 3-5 selected peers
- follower count, total liked count, update state, representative hits
- why selected and what not to copy
- Horizontal comparison table
- user account vs peers across memory point, title, cover, opening, proof,
columns, comments, follow reason, commercial path
- Real cover comparison
- user's representative covers vs peer representative covers
- first-eye result, visual hammer, keyword hierarchy, trust evidence, and
what can be safely borrowed
- Viral asset reuse comparison
- whether each account has repeatable topic/title/cover/scene assets
- whether the user's own old hits are becoming columns or staying isolated
- what one asset should be reused next
- Top 3 current gaps
- each gap must be based on comparison evidence
- each gap includes one immediate repair rule
- What the user should not reduce themselves to
- e.g. not only AI tools, not only technical tutorial, not only lifestyle
- preserve their real assets
- 30-day adjustment plan
- week 1: frontstage memory point, bio, pinned notes, cover templates
- week 2: run 3-4 columns, at least two notes each
- week 3: turn old hits into repeatable series
- week 4: record data and decide what to continue
- Next content experiments
- 6-12 topics, or fewer if the user asked for lightweight output
- include title direction, cover direction, first line, keyword
- Human closing
- acknowledge that the account does not need to be pushed over
- lower the next action to one small test
- ask for one concrete return item: next title/cover, draft, note link, or
24h data
User-Facing Style
Prefer direct, warm, and useful sentences:
- 你不是要换方向,而是要收紧方向。
- 过去的内容不是废掉了,它们是在帮你试出哪些表达有信号。
- 这不是让你变成对标账号,而是让你把自己的强项压缩成更清楚的入口。
- 下一条先只验证一个东西:用户能不能一眼记住你是谁。
Avoid:
- "直接照抄这个账号"
- "你必须重做整个账号"
- "保证涨粉"
- generic advice without peer evidence
- long peer lists without explaining why each one matters
Credit And Packaging Boundary
Use search-credit-notice.md before expanding into paid public-content lookup, deep profile analysis, note comments, or broad peer discovery.
If the report is long, do not leave the user with a wall of chat text. Offer:
- Word report
- Feishu doc
- HTML/webpage preview
- knowledge-base-ready Markdown
Do not automatically sync to a knowledge base. Ask first and let the user choose the destination. PK@!X9�+�OO+playbooks/single-note-breakdown-workflow.md# Lingzao Single Note Breakdown Workflow
Use this playbook when the user sends one Xiaohongshu/Douyin note link and wants to understand why it performed well, how to learn from it, how to extract its copy/script/outline, or how to turn it into their own publishable content.
This is different from:
comparable-account-breakdown-report-template.md: whole-account benchmark
analysis.
post-publish-data-review-workflow.md: the user's own posted note plus
backend data.
keyword-to-publishable-content-package.md: keyword/search-to-content
generation.
The goal is not to praise the note. The goal is to decide:
- what kind of viral note it is
- why users clicked, saved, liked, or commented
- what the outline/script/visual structure is
- what can be learned
- what cannot be copied
- how to adapt it into the user's own stage, resources, format, and audience
Evidence Boundary
Before giving a deep judgment, say what was actually inspected:
- detail only: title, cover, public metrics, body/caption, images/video type,
author signal, and available tags/keywords
- comments opened: public top-level comments and comment demand
- video copy/transcript opened: spoken copy, subtitle, or transcript structure
- visible screenshots only: page/frame-level visual judgment from provided
screenshots
Do not pretend to have watched exact seconds, read all comments, or seen hidden backend data if the tool only returned title/cover/body/basic metrics.
Good wording:
我先按目前能看到的标题、封面、正文和公开互动来拆;如果你还想看评论区真实需求或视频逐字稿,会进入更深一层,我会先告诉你需要打开哪些内容。
Credit Scope
For one known note link:
- Basic note detail: usually one single-note detail lookup.
- Comments: extra page-based comment lookup.
- Video copy/transcript: extra extraction and time-based cost when supported.
- Turning the note into the user's own content package can be done after the
first breakdown; if more references are needed, explain the broader search scope first.
Do not automatically open comments or transcript just because the user sends a note link. Start with the stated intent and expand only when needed.
First Intent Route
If the user's intent is unclear, ask one light routing question:
你是想拆它为什么爆、提取文案/脚本、看封面标题,还是想把它改成你自己的图文/口播/Vlog?
If the user already says any of these, do not ask again:
- 完整分析 / 完整拆解 / 深度分析 / 深度拆解 / 全面拆 / 详细分析 /
拆细一点 / 帮我完整分析这条笔记 -> deep breakdown
- 为什么火 / 为什么爆 / 值不值得学 -> viral mechanism breakdown
- 大纲 / 结构 / 怎么写的 -> outline breakdown
- 逐字稿 / 口播 / 字幕 / 文案 -> transcript or body extraction
- 封面 / 标题 / 关键词 -> title-cover-keyword breakdown
- 评论区 / 大家为什么评论 -> comment-demand breakdown
- 拍摄手法 / 拍摄模式 / 镜头 / 分镜 / 运镜 / 剪辑 / Vlog脚本 /
怎么拍 -> shooting and editing breakdown
- 改成我的 / 帮我仿写 / 做成内容 -> adaptation package
If the user only sends a note link or uses vague wording such as "看看", "学习一下", or "拆一下", do a light breakdown first. Do not stop there. End with a visible continuation menu so the user knows Lingzao can keep going:
- 继续拆拍摄手法 / 镜头 / 剪辑节奏
- 继续拆评论区真实需求
- 继续提取大纲 / 口播逐字稿 / Vlog 分镜
- 继续改成我的图文 / 口播 / Vlog 版本
User-facing reminder:
你也可以直接说「帮我完整分析这条笔记」或「把拍摄手法、脚本、评论区和可模仿点都拆一下」,我会进入更细的拆解层。
Default Output Structure
For a normal one-note breakdown, output:
- 一句话判断
- This note is worth learning from, partially worth learning from, or not
suitable for direct imitation.
- 这条属于哪类爆款
- dry-good/tutorial
- list/collection
- emotional resonance
- identity/person contrast
- material/scene contrast
- high-production cinematic
- hot-event remix
- product/lead-generation
- comment-demand driven
- 标题为什么有人点
- keyword anchor
- concrete result
- time/cost shortcut
- contrast
- curiosity gap
- identity callout
- pain/desire
- 封面为什么有人停
- visual subject
- big-word hook
- information density
- person/scene/material contrast
- color and composition
- whether the user understands the value in one second
- 大纲 / 脚本结构
- For graphic notes: page-by-page outline and save reason.
- For spoken video: hook, problem, proof, steps, examples, conclusion, CTA.
- For Vlog: scene order, emotional thread, identity signal, key shots.
- For cinematic videos: story arc, atmosphere, scene changes, rhythm, and
production threshold.
- If shooting clues, frames, screenshots, video copy, or transcript are
available, include the shooting/editing layer below.
- 评论区说明了什么
- Only fill this with evidence if comments were opened or provided.
- Classify comments as: 求教程, 求链接/工具/清单, 共鸣, 质疑, 补充经验,
购买/咨询信号, 假互动/低价值夸夸.
- Comments such as "求教程", "太干货了收藏了", "这是什么软件", "能不能
出下一期" are stronger learning signals than generic praise like "太棒了".
- 为什么爆
- Explain the real mechanism, not only "title and cover are good".
- Judge whether it is a repeatable formula, a one-off emotion, a platform
trend, a big-account trust effect, a high-production effect, or a low- follower operational spike.
- 可学的点
- title formula
- cover structure
- topic angle
- outline/script
- page/frame rhythm
- comment-demand reuse
- series potential
- 不能照抄的点
- face, age, identity, family relation, city, resources, team, camera skill,
editing skill, production cost, product supply, mature-account trust, or extreme personal experience.
- 改成用户自己的版本
- Give 1-3 immediately usable directions:
- title direction
- cover copy
- graphic-note outline / spoken script / Vlog storyboard
- what must be changed so it is not a direct copy
End with one concrete next step, such as:
- 我可以继续把它改成你的版本:图文、口播,还是 Vlog 分镜。
- 我可以继续打开评论区,看大家真实在问什么,再帮你做二次选题。
- 我可以继续拆它的封面和标题,给你 3 个可直接测试的标题/封面版本。
- 如果这一版内容太长、不方便收藏,我也可以继续整理成 Word 文档、
网页版预览,或者做成可以同步到知识库的结构化版本。
Viral Note Type Library
Use this library to classify the note before judging learnability.
Pure Dry-Good / Dense Tutorial
Signals:
- title promises a clear shortcut, such as "看完这四页,思路会多很多"
- dense graphic-note pages
- strong save reason
- usually useful for users who want quick clarity
Why it works:
- The user feels "I can spend one minute and get a method".
- It resembles other high-click shortcuts such as "2 minutes understand X",
"one article is enough", or "3000 yuan travel around X".
How to learn:
- Learn the promise, page structure, and information compression.
- Convert into a checklist, four-page framework, or beginner route.
Risk:
- If the page is only dense but not organized, it becomes hard to read.
- Do not only imitate density; imitate the information hierarchy.
High-Production Cinematic / Film-Like Note
Signals:
- strong color grading, camera language, lighting, scene design, and rhythm
- comments praise the film quality or say it should become a movie
- often needs strong solo skill or a team
Why it works:
- The traffic source is not only copywriting. It is production capability,
atmosphere, story, and visual trust.
How to learn:
- Ordinary users can study the script outline, scene order, emotional arc, or
opening/ending rhythm.
- Do not recommend copying the full production unless the user has camera,
editing, acting, location, or team resources.
For video breakdown:
- If transcript/time data is available, output a timecoded script:
- 0-3s hook
- 3-8s scene/identity setup
- 8-20s conflict or value
- middle: scene changes and proof
- ending: emotional landing or CTA
- If exact time data is not available, use "opening / middle / ending" rather
than inventing seconds.
Person Or Material Contrast
Signals:
- ordinary content becomes interesting because the person, age, material, or
scene is unexpected
- example patterns:
- a 90-year-old person's daily Vlog is more interesting than an ordinary
college student's generic Vlog
- a child cooking alone is more interesting than another normal cooking note
- using garlic shoots as "food-version beads" creates material contrast
Why it works:
- The base action may be familiar, but the person/material replacement creates
novelty.
How to learn:
- Keep the content action, change one variable:
- change person
- change material
- change scene
- add a current hot event
- combine an old format with a surprising object
Risk:
- Do not force the contrast if the user has no truthful material or scene.
- The adaptation must stay believable.
Room / Space As Identity Proof
Signals:
- the homepage or note repeatedly uses one room, study, desk, bed, closet,
reading corner, or small home space as the main visual world
- visible objects become memory anchors: books, chair, tablet, e-reader,
screens, notes, wall stickers, clothes, lamp, bed, or daily tools
- the title carries a life-stage or lifestyle reversal, such as "才32岁",
"32岁后续", "独居幸福感", "自己的房间", or "人生才刚开始"
- the room makes viewers imagine another possible life, especially around age,
marriage, children, freedom, learning, reading, money, or self-consistency
Why it works:
- The space proves the story. It gives abstract life claims a visible anchor.
- Users can feel "I could also live like this" or "there is another way to live".
- The room creates repeatable account memory, while objects in the room can
later become natural ad entry points.
How to learn:
- Learn the narrative structure:
- age/life-stage reversal
- space-as-proof
- short title with emotional recognition
- repeated room angle
- series follow-up
- Translate it into the user's own truthful space: desk, study corner, kitchen,
small room, city corner, studio, car, shop, or another repeatable scene.
- Identify commercial objects only when they naturally belong to the scene.
Risk:
- Do not reduce it to "bookshelf aesthetic" or "room decor".
- Hidden resources may be hard to copy: prior creator experience, savings,
property/rent freedom, device resources, reading ability, humor, relationship story, or other accounts.
- If the user has no real repeatable space or life narrative, use text-dense
graphic notes, no-person knowledge cards, or another lower-cost route.
Female Growth / Female Power Viewpoint
Signals:
- title calls out "女孩子要学会..."
- topic promises women becoming stronger, clearer, more capable, more
self-sufficient, or closer to money/production
- often creates strong click and emotional resonance on Xiaohongshu
Why it works:
- It touches identity, growth, anxiety, and desire for power.
How to learn:
- Learn the title angle and audience callout.
- Turn the vague value into something executable: notes, exercises, examples,
step-by-step action, tools, or a first task.
Risk:
- Many such notes are easy to watch but hard to act on.
- If it only sounds "right" but gives no executable step, it may create high
likes but weak transformation.
List / Collection / Information Source
Signals:
- "5 个宝藏博主", "10 家好店", "30 元以下好物", "我最喜欢的 X"
- high save rate because the user does not want to search by themselves
- common across AI, beauty, local life, travel, food, shopping, and study
Why it works:
- It reduces search cost and gives the user a ready-made list.
How to learn:
- Learn category framing, selection standards, and short reasons.
- Make the list more specific:
- city-specific
- budget-specific
- beginner-specific
- use-case-specific
- audience-specific
Risk:
- A list without selection logic becomes generic.
- If recommending accounts, products, stores, or tools, explain why each one is
included and whether it is current/active.
Outline And Script Breakdown Rules
For graphic-note posts, break down:
- cover promise
- page 1: problem or result
- page 2-3: method/category/case
- page 4/last page: summary, checklist, next action, or save reason
- body copy: search keywords, emotional supplement, or comment prompt
For spoken videos, break down:
- first 3 seconds: why the user stays
- first 10 seconds: pain/result/identity
- middle: proof, examples, steps, or story
- rhythm: where it cuts, speeds up, repeats, or adds subtitles/screenshots
- ending: save/follow/comment/consulting path
For Vlog, break down:
- scene order
- camera subject
- movement and transition
- sound/music/emotion
- daily-life detail
- identity being sold
- what ordinary users can shoot with low cost
- what requires location, beauty, equipment, editing, or repeated shooting
Shooting And Editing Breakdown Layer
Use this layer when the note is a video, Vlog, food/travel/local-life shoot, spoken video with visible frames, or when the user asks about shooting, filming, camera, editing, or storyboard.
Do not invent exact shots or seconds if only title/cover/body were opened. If the tool only has screenshots or partial frames, label the analysis as "visible-frame judgment".
Break down:
- shooting mode: fixed camera, handheld, first-person POV, over-shoulder,
follow shot, screen recording, product close-up, talking-head, or mixed
- shot role: each visible shot should explain whether it sets the scene,
proves the result, shows the process, creates emotion, shows identity, or triggers desire
- frame distance: face close-up, hand/action close-up, product close-up,
medium shot, environment shot, food/detail shot, screen/detail shot
- camera movement: static, push-in, pull-out, pan, tilt, walking movement,
action transition, or jump cut
- editing rhythm: hard cut, subtitle-driven cut, music beat, before/after
contrast, fast montage, slow atmosphere, screen inserts, image inserts, or repeated punchline
- sound design: spoken narration, natural sound, music, sound effects, silence,
or subtitle-only reading
- production threshold: phone-only, needs lighting, needs location, needs
repeated takes, needs editing skill, needs acting/expression, needs team, or only learnable at script level
- beginner remake: the lowest-cost way a normal user can remake the structure
without pretending to have the same face, room, city, equipment, money, or team
For Vlog, output a practical storyboard when useful:
| Shot | Picture | Copy / Voiceover | Why It Exists | Beginner Remake |
|---|---|---|---|---|
| 1 | ||||
| 2 | ||||
| 3 | ||||
| 4 | ||||
| 5 |
For food, travel, local-life, or good-product notes, also judge:
- whether the desire comes from the object itself, lighting, angle, hand model,
space, city/location, editing, or title promise
- what a normal user can translate to their own city, product, room, kitchen,
shop, or daily route
- what is misleadingly "simple" but actually requires strong photography,
styling, taste, or post-editing
For cinematic/film-like notes, break down:
- narrative arc
- visual tone
- camera language
- scene difficulty
- production threshold
- what can be learned at script level only
Learnability Judgment
Use these labels:
- Very learnable: structure, title, cover, and production are realistic.
- Partly learnable: structure is useful but production/person/resource cannot
be copied.
- Only study the idea: topic or trend is useful, but direct imitation is risky.
- Not recommended as a benchmark: one-off emotional event, fake-looking
interaction, stale trend, pure big-account trust, or high-cost production.
Always tell the user what version they should learn:
- title and cover only
- outline and page rhythm
- script structure
- Vlog scene logic
- comment-demand reuse
- topic remix formula
- series format
Adaptation Patterns
When the note is worth adapting, choose one or more:
- Change audience: from generic women to college students, 35+ women, new
moms, career switchers, local food lovers, AI beginners.
- Change city/scene: local-life examples can transfer across cities when the
user is learning shooting style, title formula, or topic angle.
- Change format: graphic note -> spoken video; long video -> several short
graphic notes; Vlog -> checklist; tutorial -> collection.
- Change material: same idea with a different object, product, ingredient,
tool, or local resource.
- Change stage: mature creator formula -> beginner version with simpler scenes.
- Change depth: one viral note -> 3 follow-up notes, one collection, or a
knowledge-base card.
Output Mini Templates
Light Breakdown
- 一句话判断
- 爆款类型
- 标题点击点
- 封面点击点
- 大纲结构
- 可学 / 不可学
- 改成你的版本
Deep Breakdown
- 证据范围
- 公开数据和作者阶段
- 爆款类型
- 标题机制
- 封面机制
- 正文/脚本/页面结构
- 评论区需求
- 爆款原因
- 可复制公式
- 不可复制条件
- 用户阶段适配
- 3 个改写方向
- 后续可以生成图文/口播/Vlog/知识库卡片
Full Note Breakdown
Use this when the user says 完整分析, 深度拆解, 全面分析, 拆细一点, or asks to include shooting/script/comments/adaptation.
- 证据范围和本次没有打开的部分
- 一句话判断:全学、部分学、只学思路,还是不建议模仿
- 爆款类型和作者阶段
- 标题机制
- 封面机制
- 正文 / 图文页 / 口播 / Vlog / 视频脚本结构
- 拍摄手法 / 镜头 / 剪辑节奏, if visible or available
- 评论区需求, only when comments were opened or provided
- 为什么爆: click, save, comment, follow, or conversion mechanism
- 可学的 3-5 点
- 不能照抄的 3-5 点
- 普通人低成本复刻版
- 改成用户自己的 3 个方向: title, cover copy, structure/storyboard
- Next step: choose one deeper layer, create the user's version, or package
the analysis as Word / HTML webpage / knowledge-base-ready Markdown.
When the full breakdown is long, add this packaging sentence:
这份拆解信息量比较大,放在聊天里会有点密。下一步我可以帮你整理成三种更好用的版本:Word 文档方便保存和转发,网页版方便看颜色分组和重点,知识库版方便以后继续沉淀成标题库、封面库、脚本库和不可照抄库。
Timecoded Video Breakdown
Only use when time/transcript/frames are available.
| Time | What Happens | Why It Works | Learnable Part | User Adaptation |
|---|---|---|---|---|
| 0-3s | ||||
| 3-8s | ||||
| 8-20s | ||||
| Middle | ||||
| Ending |
Graphic Note Page Breakdown
| Page | Visible Role | Copy/Visual Function | Save Reason | Adaptation |
|---|---|---|---|---|
| Cover | ||||
| Page 1 | ||||
| Page 2 | ||||
| Page 3 | ||||
| Last |
Knowledge Base Handoff
If the user collects many single-note breakdowns, route to content-knowledge-base-workflow.md and suggest storing them as:
- title formula library
- cover formula library
- viral mechanism library
- script/outline library
- comment-demand library
- do-not-copy warning library
- user's adaptation library
Do not store copied body text as the main asset. Store transformed learning notes, source links, public metrics, and adaptation directions. PK@!X�h]��/�/.playbooks/track-difficulty-judgment-library.md# Lingzao Track Difficulty Judgment Library
Use this asset when judging whether a beginner should enter a Xiaohongshu track. Do not only ask “what niche do you want”. Judge the user's story, resources, ability boundary, visual conditions, city/commercial environment, and whether the track can sustain content and monetization.
Core rule:
每个赛道都不是“能不能做”,而是“你凭什么做、能持续多久、别人为什么看你、商业路径在哪里、哪些东西不能误学”。
Female Growth
Suitable For
- Women with real transformation stories, visible life contrast, or reflective growth experience.
- Users who have a route others want to hear: from junior college to graduate school, small-town youth to big city, studying abroad, career transition, restarting after a setback, or becoming self-consistent after life changes.
- People who can summarize their own life into lessons, decisions, emotional turning points, methods, or concrete scenes.
- Men can also analyze female growth, but they need observation ability and respect for female users' real problems.
Common Misunderstanding
- Thinking every woman can casually post female growth.
- Treating small daily complaints or trivial life fragments as "growth".
- Posting empty inspiration without story contrast, method, scene, or real experience.
- Assuming emotion alone is enough.
A Tian Reminder
Ask:
- 你自己的生活经历里,有没有别人一听会觉得“这个人真的经历过东西”的瞬间?
- 有没有明显反差:学历、城市、职业、收入、关系、家庭、心态、生活方式?
- 你是想讲逆袭,还是想讲自洽?
- 你有没有一个特别想分享、别人听了会觉得“这对我有用”的故事?
If there is no story, contrast, or useful reflection, suggest another track or ask the user to send accounts they like for analysis.
Good directions:
- 逆袭线:学历、城市、工作、收入、身份变化。
- 自洽线:小城生活、普通收入、稳定家庭、自我接纳、低欲望生活。
- 决策线:职业选择、裸辞、转行、关系选择、人生阶段调整。
- 新生活叙事线:用房间、书房、独居空间、旅行路线、家庭日常、学习角落
等具体场景,指出一种新的活法。例如“才32岁,人生才刚开始”“不结婚 没有小孩,也可以有自己的一片天地”“小房间也能长出自己的内容系统”。 这种方向的关键不是场景本身,而是场景能不能证明一个值得向往或共鸣 的人生方向。
Room/lifestyle narrative caution:
- A study room full of books is not automatically a good benchmark. Judge what
the room proves: age-stage reversal, solo-living freedom, reading ability, digital setup, self-consistency, humor, or another new narrative.
- Separate learnable parts from hidden resources. Users can learn the title
angle, room-as-proof composition, series framing, and object-as-ad potential; they may not be able to copy prior operation experience, savings, property or rent freedom, devices, reading habit, humor, or relationship story.
- If a user wants to imitate this type, ask them to send their own repeatable
space and objects first: room, desk, books, chair, tablet, e-reader, screens, notes, bed, lamp, or daily routine. Without a real repeatable scene, switch to graphic notes, text-dense pages, or another lower-cost route.
Good Product Sharing
Suitable For
- Users who spend real time comparing, buying, testing, and explaining products.
- People whose friends often say they are good at finding useful things or discounts.
- Users with stable product categories: beauty, child products, home, elder-care, phone cases, bags, umbrellas, cute toys, tools, or local lifestyle goods.
- Users with decent photo ability, visual taste, and patience for product detail.
Common Misunderstanding
- Thinking good-product sharing is easy because it looks like “take a photo and recommend”.
- Thinking one or two viral notes prove the track can continue.
- Not realizing many viral product notes are driven by hot topics, news, discounts, or ads.
- Ignoring visual details: color, angle, lighting, hand, nail, background, composition, product texture.
A Tian Reminder
Ask:
- 你推荐的东西,是不是身边朋友也觉得你真的挖到宝了?
- 你平时是不是会花很多时间买、比价、试用、找券、做功课?
- 你推荐的产品到底是哪一类?国货、美妆、孩子用品、老人用品、手机壳、包、雨伞、卡通小物,还是别的?
- 你的拍照能力怎么样?别人能不能一眼看出这个东西想用?
Warn:
- 好物分享可以更早接广告,但 IP 记忆点弱。
- 关键不只是推荐好东西,而是能不能持续找到好东西,并稳定拍得让人想要。
- 618、双十一找券也是能力,但要判断是否能长期做成内容资产。
End by asking the user to send product-sharing accounts they like.
Career / Workplace
Suitable For
Two broad groups:
- Ordinary work/life workers: drivers, delivery workers, shop workers, service workers, ordinary employees who can share real work happiness, hardship, routines, and ordinary-person dignity.
- Aspirational workers: white-collar, overseas background, big-city workers, big-company workers, specialists, managers, or people with stories others want to become or learn from.
Suitable content:
- workplace stories
- office politics
- promotion and survival
- work efficiency
- self-introduction
- weekly/daily reports
- workplace tools/software
- eating/living/commuting in the workplace
- career decisions and transitions
Common Misunderstanding
- Thinking any work experience can become workplace content.
- Giving generic career advice without authority or lived experience.
- Confusing personal venting with content valuable to strangers.
- Thinking "I have a job" equals "I can teach workplace".
A Tian Reminder
Ask:
- 你的真实职业状态是什么?
- 你在这个工作里有什么别人想听的故事或经验?
- 别人想不想成为你这样的人,或者至少想知道你这种工作状态?
- 你能分享工具、方法、周报日报、自我介绍、沟通方式,还是只能分享情绪?
If the user lacks authority, start from real experience, work diary, ordinary-person perspective, or niche job stories instead of expert advice.
Local Life / Food / Travel
Suitable For
- Users in large cities, provincial capitals, strong second-tier cities, tourist cities, or cities with active restaurants/brands/commercial budgets.
- Users who can frequently visit places, take good photos/videos, and choose a stable angle.
- Users with a clear local memory point: district, price range, crowd, food type, date spots, worker meals, parent-child routes, or weekend plans.
Common Misunderstanding
- Thinking any city can support a local-life account.
- Thinking eating at restaurants equals content.
- Ignoring whether local brands have ad budgets.
- Doing broad city-wide探店 without a memory point.
A Tian Reminder
Be honest:
- Small places with few young users and few commercial brands are hard to monetize.
- If the user only wants free meals, it can be for fun, but it may not become a meaningful business.
- Better cities: provincial capitals, major cities, or the second-largest city in a province.
Ask:
- 你在哪个城市?
- 这个城市有没有足够多新店、餐饮、品牌和年轻人?
- 你想做哪个片区,还是整个城市?
- 你主打 10 元打工人美食、几十元平价聚餐、约会、亲子、拍照打卡,还是旅游路线?
- 你能拍得有食欲吗?能不能露脸?露脸 usually can charge more, but good image/video can also work.
Recommend:
- Look at the city's top local-life creators and food bloggers.
- Judge whether the user can realistically shoot similar quality.
- Test one district or one price/persona angle first.
Health / Fitness / Body
Suitable For
- Users with a real health transformation story: weight loss, poor health, fatty liver, posture issues, low energy, sleep, exercise habit, private coach journey, diet adjustment, or body-state improvement.
- Users who can document a process: from unhealthy to healthier, from low energy to better routines.
- Users with professional qualifications can teach more; ordinary users should focus on personal process and habit records.
Common Misunderstanding
- Thinking "I lost weight" automatically means ads and traffic.
- Ignoring image presentation: background, personal state, clothing, cleanliness, exercise environment.
- Making medical claims without qualification.
- Thinking home exercise is easy content without visual or operating ability.
A Tian Reminder
Two paths:
- Transformation narrative: “看我如何变得健康”, with a real before/after and process.
- Daily health practice: home exercise, park exercise, 八段锦, walking, diet, sleep, ordinary-person health management.
Ask:
- 你平时喜欢哪些健身/健康博主?
- 你是想成为那类博主,还是只想记录自己的改变?
- 你的运动环境是什么:家里、健身房、楼下小公园?
- 你能否持续拍摄自己的过程?
Warn:
- 人人能做健康记录,但很难出彩。
- Health content needs good state, scene, clothing, and camera discipline.
Fashion / Beauty / Makeup
Suitable For
- Users with a clear style, visual consistency, or transformation ability.
- Not limited by body type: can be plus-size, petite, tall, thin, cool style, girl-next-door, millennium style, hair, lipstick, makeup, skincare, or one vertical detail.
- Users who can show contrast: before/after, dull-to-polished, ordinary-to-atmospheric, makeup transformation, styling transformation.
Common Misunderstanding
- Thinking being thin/pretty is the only way.
- Thinking no-face means impossible.
- Thinking natural makeup will show effect without camera/lighting/contrast.
- Ignoring whether users can see the difference.
A Tian Reminder
Current strong hook: contrast.
Examples:
- before/after state change
- dark/dull/ordinary to polished
- makeup makes the person surprising
- Asian student abroad makeup atmosphere
- hair/lipstick/style vertical transformation
Ask:
- 你想做哪种风格?
- 你有没有一个能被别人一眼看出来的变化?
- 你的化妆能力、穿搭能力、拍摄能力到什么程度?
- 你平时喜欢哪些 fashion/beauty creators?
If there is no strong contrast, judge whether she can win through style consistency, niche body type, practical formulas, or product testing.
AI Tools
Suitable For
- Users who actually use AI in work/life, especially teachers, office workers, designers, content creators, entrepreneurs, or former big-company employees.
- Users with a real application scene: writing, images, video, teaching, office automation, Feishu/local knowledge base, research, content planning.
- Users who can demonstrate workflows, not only list tools.
Common Misunderstanding
- Thinking AI is easy because it is hot.
- Trying to teach AI without actual use cases.
- Only copying big AI creators with hundreds of thousands of followers.
- Not choosing a specific user group or task.
A Tian Reminder
AI is hot in China and big platforms/companies are investing in it, but it has a threshold.
Ask:
- 你在生活或工作里真的用 AI 吗?
- 你是老师、内容创作者、运营、设计、办公室人群,还是其他角色?
- 你能解决哪个具体任务:写文案、做图、做课件、整理知识库、做视频、查资料?
- 你关注哪些 AI 博主?Send links.
Filter references:
- Do not only study 100k+ or mature AI creators.
- Find simpler, easier-to-copy examples.
- For no-face users, suggest graphic notes, screen recording, hand/finger pointing to screen, workflow screenshots, or before/after demos.
Core boundary:
Not everyone can enter AI teaching. Judge what the user can actually do. If they only just started learning, use "learning in public" and "one task solved" formats. PK@!XK=J 1playbooks/travel-handdrawn-map-visual-workflow.md# Travel Handdrawn Map Visual Workflow
Use this playbook when the user wants a Xiaohongshu travel map, food map, city-walk map, local-life route map, handdrawn itinerary, or illustrated check-in order image.
Trigger phrases:
- 旅游手绘地图
- 美食地图
- 旅行地图
- 城市地图
- city walk 地图
- 打卡路线图
- 一天从早吃到晚
- 5 天游路线
- 帮我做一张像手绘攻略一样的图
- 把这些店 / 景点 / 路线做成地图
Core Judgment
This is not a normal poster.
It is a saveable route image. The value comes from:
- city / destination anchor
- route order
- food or attraction anchors
- recognizable local landmarks
- cute handdrawn texture
- practical itinerary box
- one-second title recognition
If the user only says "做一张某地旅游地图" with no route, places, food, duration, or target audience, do not generate immediately. Ask for the minimum route data first.
Minimum Intake
Ask only the fields that change the map.
Use this compact intake:
你把这 5 个信息发我就能做: 1. 城市/目的地: 2. 地图主题:美食 / 景点 / city walk / 亲子 / 情侣 / 省钱 / 5 天游? 3. 你想放几个点:5 个、6 个还是 8 个? 4. 每个点的名字和一句话说明: 5. 有没有参考图或想要配色?
If the user has no place list, offer a low-cost path:
如果你还没整理地点,我可以先按你的城市和主题给你做一个“待确认版结构”,但具体店名/景点最好你确认后再生成,避免地图看起来好看但不好用。
If the user has a Xiaohongshu note/link or screenshot, first choose the safe intake path:
- For screenshots or pasted route details, extract the visible details directly.
- For Xiaohongshu links, do not open the link before credit confirmation. First
route through search-credit-notice.md and ask whether to spend one paid lookup to read the public note, or ask the user to paste the route details instead.
After the user confirms the paid lookup or provides visible details, extract:
- city / area
- route order
- places / dishes / landmarks
- title promise
- visual density
- whether it is food-first or route-first
Then adapt it into the user's own map. Do not copy exact creator text, logo, private characters, or route if the user does not have the right to use it.
Default Map Types
1. Food Route Map
Use for city food, snacks, old streets, store hopping, local-life accounts, and "从早吃到晚" topics.
Required elements:
- large title: city + food map
- subtitle: one-day / half-day / night snack / local old street promise
- 5-8 numbered route pins
- 4-7 illustrated dishes or drinks
- small storefront / street / landmark drawings
- right-side or bottom "打卡顺序" box
- saveable line such as "辣度量力而行", "少排队多留白", "本地人路线"
Best for:
- 长沙美食地图
- 南宁老友粉路线
- 汕头牛肉火锅地图
- 上海老店小吃路线
- 夜宵路线 / 打工人平价吃法
2. Travel Itinerary Map
Use for province/city travel, 2-5 day routes, ancient towns, mountains, rivers, parks, museums, and weekend plans.
Required elements:
- large title: destination + travel map
- subtitle: duration + theme, such as "山水古镇 5 天游"
- simplified destination silhouette or soft terrain shape
- 5-8 numbered pins
- arrows or a winding route line
- illustrated landmarks, nature, bridge, old town, waterfall, mountain, river
- side route suggestion: D1, D2, D3...
- travel objects: suitcase, camera, signpost, bus, boat, ticket, compass
Best for:
- 贵州旅游地图
- 云南 5 天游路线
- 广西山水路线
- 上海 city walk
- 周末亲子路线
3. City-Walk Neighborhood Map
Use for a smaller district, old street, neighborhood, museum route, coffee shop route, photo route, bookstore route, or "walkable day".
Required elements:
- district / neighborhood name
- walking route line
- 3-6 places
- time blocks, such as morning / afternoon / evening
- small street scenes, signs, storefronts, coffee, books, park, river
- one practical note: "少赶路", "适合拍照", "雨天也能走"
Visual Style
Use a warm handdrawn travel-journal style:
- vertical Xiaohongshu image, default 3:4 or 4:5
- cream / parchment / watercolor paper background
- black brush-calligraphy title or thick hand-lettering
- red underline under the title
- watercolor route line, usually brown or red-brown
- numbered red map pins
- cute local character or mascot at corners when appropriate
- hearts, stars, arrows, dotted boxes, signposts, small labels
- food and landmarks should look appetizing/recognizable, not photorealistic
- keep Chinese text short, high-contrast, and readable
Do not use:
- realistic satellite map
- generic flat vector map with no warmth
- clean corporate infographic style
- too many tiny unreadable labels
- fake exact geography when the user did not provide route order
- store names, prices, or addresses that the user did not provide
Content Structure
Before image generation, produce a structured map brief:
- Map title
- Subtitle
- Route points table
- number
- place
- food / attraction
- one short label
- illustration subject
- Route order box
- Bottom slogan
- Visual prompt
- Xiaohongshu caption
- 10 publishing keywords
For food maps, use this point table:
| No. | Place | Food | Label | Illustration |
|---|---|---|---|---|
| 1 | street/store/area | dish | one short reason | dish + storefront |
For travel maps, use this point table:
| Day/No. | Place | Why go | Label | Illustration |
|---|---|---|---|---|
| D1/1 | attraction/area | one short reason | route label | landmark/nature |
Prompt Requirements
The image-generation prompt must include:
- "handdrawn watercolor illustrated travel map"
- exact city / destination
- exact title and subtitle
- aspect ratio: vertical 3:4 or 4:5
- cream textured paper background
- black Chinese brush-calligraphy title
- numbered route pins
- winding route line or simplified region silhouette
- illustrated local foods / landmarks
- side itinerary box or route-order box
- cute sticker accents
- readable Chinese labels only
- no logos, no real brand marks, no QR code, no fake exact address
When text rendering is unreliable, reduce text:
- title
- subtitle
- 5-6 point names
- route-order box
- bottom slogan
Put longer captions in the Xiaohongshu body copy instead of the image.
Quality Gate
Before returning the map, check:
- Can the user tell the city and theme in 1 second?
- Are the route points numbered clearly?
- Is there a save reason: itinerary, food order, map, budget, or route?
- Are the food/landmark illustrations connected to the theme?
- Is the right-side or bottom route-order box readable?
- Is the map cute but still useful?
- Are there hallucinated stores, addresses, prices, or claims?
- If geography may be inaccurate, did you label it as an illustrated route map
rather than an exact navigation map?
User-Facing Follow-Up
End with one practical next step:
- 你把城市和 5 个地点发我,我直接给你做成一张手绘路线图。
- 如果你没有地点,我先给你做一个可替换地点的版式,等你确认店名/景点后再生成最终版。
- 发出去后把链接和后台截图给我,我帮你看收藏率和评论区是不是在问路线/店名/价格。
PK@!XK6��+�+1playbooks/visual-generation-and-cover-workflow.md# Lingzao Visual Generation And Cover Workflow
Use this playbook when the user asks Lingzao to make images, covers, graphic notes, visual cards, WeChat article images, product/ecommerce visuals, or when a keyword-to-content workflow reaches the image-generation step.
When image generation is available, use image-generation-execution-workflow.md after this route-selection playbook. This file decides what should be generated; the execution workflow turns the brief into images, checks whether the output is ugly/crowded/generic, and creates repair instructions when needed.
Trigger phrases include:
- 帮我做封面
- 帮我做图
- 生成小红书图片
- 做成小红书图文
- 做 4 页 / 7 页图文
- 我没有参考图,直接帮我出封面
- 按这个参考图做
- 公众号封面 / 公众号配图 / 正文配图
- 产品介绍图 / 课程图 / 电商图 / 付费资料图
- 旅游手绘地图 / 美食地图 / 旅行地图 / 城市地图 / city walk 地图
- 打卡路线图 / 一天从早吃到晚 / 5 天游路线
Core Rule
The user should not be stuck at "image prompt" when the runtime can generate images.
- Do not make ordinary users write image prompts. The user-facing deliverable
is a cover, graphic-note pages, page copy, and Xiaohongshu caption.
- If the user provides reference images, use them as the visual anchor and
generate or prepare images in the same structural style, without direct copying.
- If the user provides only a keyword, broad topic, or one note direction, turn
it into publishable graphic-note content first, then generate or prepare the images.
- If the user has no reference image, select a default style from
visual-reference-style-library.md based on topic, material, and publishing channel.
- If image generation is available in the current Agent environment, create the
image after the style and page text are ready, then run the visual quality gate from image-generation-execution-workflow.md before returning the result.
- If image generation is not available, return page copy, layout notes, and a
complete fallback prompt package. Do not make it sound like the user must write the prompt.
Current Graphic-Note Generation Loop
Use this path when the user wants Lingzao to make a Xiaohongshu graphic note from a keyword or content direction, such as "女性成长", "帮我做一篇图文", or "根据这些内容出一套图片".
- Confirm the publishing format if unclear: graphic note/image, spoken video,
or Vlog storyboard.
- If graphic note/image is confirmed, use
keyword-to-publishable-content-package.md
to search or inspect public references within the confirmed credit scope.
- Distill the references into reusable angles: keywords, core point, cover
promise, page structure, and comment demand.
- Rewrite the angle into the user's own publishable graphic-note content. Do
not copy another creator's full text or exact layout.
- Produce the image content:
- final title
- cover copy
- 4-page or 5-page graphic-note text by default
- page-by-page visual direction
- generated images when the runtime has image generation
- Produce a Xiaohongshu caption of about 300 Chinese characters plus 10
publishing keywords and one comment prompt.
Before image generation, run xhs-platform-management-risk-baseline.md and xhs-content-compliance-risk-gate.md on all on-image text, captions, keywords, and comment prompts. Do not generate images with risky CTA text such as "加微信", "评论领取", "私信发你", "扣 1", QR-code guidance, or guaranteed results. For product/commercial visuals, keep public value first and product name later. Fix the text first, then generate.
For this path, the user does not need to provide a reference image. A reference image is useful only when the user wants a specific visual style. Otherwise, select a no-reference style from visual-reference-style-library.md and move forward.
Intake
Collect only what changes the visual route. Do not make the user answer a long design questionnaire.
Minimal Intake Gate For One-Sentence Poster Requests
If the user only says "给我做一张某某海报图", "帮我做个封面", "做一张好看的图", or provides only a broad topic with no reference, color, platform, exact on-image text, or material, do not generate immediately. One vague sentence is not enough to make a useful image; direct generation usually creates a generic or ugly poster.
Ask these two questions first, in this order:
- 你有没有参考图?可以发 1-3 张你喜欢的小红书封面、海报或图文截图。
- 你有没有想要的配色?比如明亮白底、绿色清爽、黑金高级、蓝色科技感。
If the answer is still underspecified, ask at most one more route-changing question: use/platform/size, exact on-image text, or people/no-people. Keep the question short and practical; do not turn it into a design questionnaire.
Proceed without asking only when the user already gave enough anchors, such as:
- reference image + topic
- topic + platform/format + color direction
- topic + exact on-image text + product/photo/material
- article/draft + requested WeChat/Xiaohongshu image package
Important inputs:
- platform: Xiaohongshu / WeChat / other
- format: cover only / 4-page note / 7-page note / WeChat 1+3 image pack /
product page set
- topic or keyword
- reference image, if available
- user material: face photo, product photo, screenshot, food/place/travel photo,
article draft, product offer, city, prior content style
- whether the user wants people/no people
If the user has no reference image, say:
没关系,如果你没有参考图,我可以按你的主题给你选一个默认视觉风格。但你先告诉我有没有想要的配色,或者你想让它更像“小红书封面 / 公众号海报 / 产品介绍图”哪一种,这样成功率会高很多。
If the user has a reference image, say:
我会参考这张图的排版、信息层级、颜色和点击理由,但不会照抄它的文字、logo、作者专属素材和完全相同构图。
Route Selection
Use visual-reference-style-library.md for style choice.
A. Reference-Image Route
Use when the user uploads or points to reference images.
Output:
- reference-image visual diagnosis
- what can be learned: title position, image subject, color, font, information
density, icon/card system, page rhythm
- what cannot be copied: logo, exact layout, original photo, creator face,
brand assets, exact title
- adapted cover/page structure for the user's topic
- generated images when available, or fallback image-generation instructions
B. No-Reference Xiaohongshu Cover Route
Use when the user gives only a keyword/topic and asks for a cover or graphic note.
Default routes:
- travel map / food map / city-walk map / check-in route -> Travel Handdrawn
Map
- travel / food / local life -> Travel Food Local-Life Cover
- AI tool / tutorial / workflow + face/screenshot -> AI Person Tool Infographic
- no-face tutorial / Lingzao / Agent / knowledge explanation -> Lingzao
No-Person Knowledge Card
- product / course / offer / ecommerce -> Product Ecommerce Conversion Card
If the user gives no face, screenshot, or product image, prefer a no-person knowledge card or AI-assisted graphic note instead of inventing a fake personal-photo cover.
If the user asks for a city/destination route map, food map, itinerary map, or check-in order image, use travel-handdrawn-map-visual-workflow.md before image generation. Do not treat it as a generic travel poster. First collect or infer city, theme, number of points, point names, and route order; if these are missing, ask for the five-field map intake in that playbook.
If the topic is broad, such as 女性成长, first search or inspect a small set of recent/high-signal references after credit confirmation, then turn the extracted angle into a graphic-note package. Do not ask the user to provide an image prompt.
C. WeChat Article Image Route
Use when the user asks for WeChat public account images.
Default:
- 1 cover + 3 horizontal in-article images
- use Lingzao branded mode for Lingzao / Skill / account diagnosis official
content
- use A Tian knowledge mode only for A Tian personal article content or when the
user explicitly wants that IP mode
D. Product Conversion Route
Use when the user has an offer/product/course/paid material and wants product images.
Do not invent prices, promises, scarcity, or guaranteed results. If those fields are missing, make a neutral product-introduction page and leave commercial claims out.
Xiaohongshu Graphic Note Structures
4-Page Fast Test
Use for ordinary users, no-reference image generation, and quick publishing.
- Cover: one strong audience/pain/result sentence
- Why this matters: the user's real stuck point or scenario
- Method/result: 2-4 steps, examples, or reference angles
- Today post this: 3 actions, comment prompt, or next topic
7-Page Teaching Version
Use when the topic needs more explanation.
- Cover
- Problem diagnosis
- Input / preparation
- Method steps
- Examples / comparison
- Action checklist
- Comment prompt / next step
Internal Prompt / Generation Rules
Every generated page, image-generation instruction, or fallback prompt must include:
- platform and aspect ratio
- selected style group
- main visual subject
- exact on-image text
- text hierarchy: title, subtitle, labels, bottom bar
- layout: top label, main image, card modules, icons, page number
- color and font direction
- what must not appear
For Xiaohongshu, use vertical 3:4 or 4:5 unless the user asks otherwise.
For WeChat, use wide 900:383 or 1080:460.
For product conversion cards, use vertical 3:4 or 4:5, with one product promise and one CTA-style area only when the user provides an offer.
Quality Gate
Before returning generated images, page copy, or fallback prompts, check the basic route quality here, then use image-generation-execution-workflow.md for generated-image repair when actual images exist.
- Can a user understand the topic in one second?
- Is the biggest text readable and short?
- Does the image have a save/click reason, not only decoration?
- Is the visual style suitable for the user's current resources?
- Is the route honest about what can be generated from the user's materials?
- Are local reference paths kept out of the user-facing answer?
- Are logos, brand marks, and IP characters used only when appropriate?
User-Facing Continuations
Use one concrete next step:
- 你把这张参考图发我,我按它的结构给你做 4 页版。
- 你没有参考图也可以,我先按你的关键词搜一小批参考内容,提炼后直接给你生成一版无人物知识卡图文和 300 字发布文案。
- 你把产品/课程/咨询内容发我,我给你做一套产品介绍图。
- 你发出去以后,24 小时把笔记链接、后台截图、标题封面和脚本/正文发回来,我帮你复盘标题封面有没有带来点击,以及内容有没有读完/完播和收藏理由。
PK@!X�6N�]]+playbooks/visual-reference-style-library.md# Lingzao Visual Reference Style Library
Use this library when Lingzao needs to create or route visual work for Xiaohongshu covers, graphic notes, WeChat article covers, article images, knowledge cards, product pages, or ecommerce-style conversion images.
This is a style-routing library, not a private image library. The style groups below are curated for visual direction; the distributed Skill should only expose the usable style guidance.
Use the style groups to identify visual category, composition logic, and prompt direction. Do not copy private image files into user deliverables, do not expose local file paths to ordinary users, and do not claim the generated image is copied from a private reference.
Style Source Categories
The private source material has been abstracted into these distributable style groups:
- Travel / food / local-life covers.
- WeChat article covers and in-article image packs.
- AI simple information graphics.
- Lingzao no-person information cards.
- Product / ecommerce / personal-IP conversion images.
- Face-led keyword video covers.
- Interaction prompt covers.
- Text-dense screenshot graphic notes.
- Room-as-identity lifestyle covers.
- Travel handdrawn route maps.
Style Groups
1. Travel Food Local-Life Cover
Use for:
- travel tips, cheap eats, city guides, transport guides, local-life exploring
- "where to eat / how to go / is it worth it / avoid this pitfall" topics
- users with photos of places, food, transport, menus, tickets, or city scenes
Visual traits:
- vertical Xiaohongshu cover, usually 3:4 or 4:5
- real food / transport / place photo as the main visual
- strong location label, often with flag, country/city tag, route tag, or issue
number
- huge high-contrast title, often yellow/pink/white text with dark outline
- dense sticker system: arrows, hearts, stars, speech bubbles, small labels
- small persona/avatar/photo cutout when available, usually near a lower corner
- useful micro-information: price, route, steps, order tips, local words,
address hint, "worth it / not worth it" judgment
Best output:
- one strong cover plus 3-6 inner pages for itinerary, price, route, ordering,
and avoid-pitfall details
- if only one image is requested, prioritize click reason plus practical proof:
place + price/route + one clear judgment
Avoid:
- clean luxury travel posters with only scenery and no information
- vague "beautiful place" covers that do not explain why to click or save
- recommending this style to users who have no place/food/route/photo material,
unless Lingzao is creating an AI-assisted graphic-note version
1B. Travel Handdrawn Route Map
Use for:
- illustrated travel maps, food maps, local-life route maps, city-walk maps,
check-in routes, "from morning to night" food routes, 2-5 day itinerary maps
- users who want a single highly saveable Xiaohongshu image that combines
destination, route order, foods/attractions, and cute handdrawn style
Visual traits:
- vertical Xiaohongshu 3:4 or 4:5 image
- cream / parchment / watercolor paper background
- black brush-calligraphy or thick hand-lettering title with red underline
- numbered red route pins, winding route line, arrows, dotted boxes
- watercolor illustrated foods, storefronts, landmarks, mountains, rivers,
bridges, old streets, local signs, travel objects, or cute mascots
- side or bottom "打卡顺序 / 路线建议" box with D1/D2 or morning/afternoon/night
- sticker accents: hearts, stars, chili, camera, suitcase, signpost, small
handwritten labels
- information-dense but still readable; the image should feel like a travel
journal page, not an exact navigation map
Best output:
- one complete map image plus Xiaohongshu caption and 10 publishing keywords
- food maps should show 5-8 numbered food/place anchors and a route-order box
- travel maps should show 5-8 scenic pins, simplified region/terrain shape,
and a day-by-day or stop-by-stop itinerary box
Avoid:
- realistic satellite or navigation map style
- generic flat-vector city map with no food/landmark warmth
- hallucinating exact addresses, prices, stores, or geographic precision when
the user did not provide them
- putting too much tiny Chinese text on the image; keep longer details in the
caption
2. WeChat Article Knowledge Pack
Use for:
- WeChat article cover, WeChat article image pack, official long-form article
visuals, creator-business explainers, Lingzao release notes, Skill tutorials
- "公众号封面", "公众号配图", "正文配图", "4 张图", "1 封面 + 3 正文图"
Visual traits:
- wide horizontal image, usually 900:383 or 1080:460
- two submodes:
- A Tian knowledge mode: cream/paper background, cartoon IP, black outline,
many small knowledge cards, arrows, checklists, stickers, module panels
- Lingzao branded mode: dark navy or deep blue tech-grid background, Lingzao
logo, cyan/teal/green glow, large non-black headline text, no people
- article image packs should keep visual continuity across 4 images
- in-article images should be simpler than the cover: fewer cards, fewer
slogans, one point per image
Best output:
- 1 cover + 3 horizontal in-article images by default when the user asks for a
WeChat package
- cover carries the big promise; three inner images map to problem, method,
action/result
Avoid:
- using A Tian cartoon IP for Lingzao official brand assets unless explicitly
requested
- using Lingzao logo for ordinary user Xiaohongshu covers
- putting too much article text into the image
3. AI Person Tool Infographic
Use for:
- AI tools, personal knowledge-base workflows, courses, tutorials, "how I use
AI", "from 0 to 1", creator tool demonstrations
- users who can provide a face/person photo or are willing to use a personal-IP
portrait
- posts where a screenshot, UI, app, workflow, or tool result needs to be shown
Visual traits:
- vertical Xiaohongshu cover, high information density
- real person or face cutout as trust anchor
- UI screenshot, tool interface, course cover, prompt panel, app screen, or
workflow card as the second anchor
- huge title with strong keywords, often black/white/yellow/neon green/pink
- many small labels: "教程", "新手", "从0开始", "合集", "效率", "不用代码"
- energetic sticker style, sometimes black or dark background for contrast
Best output:
- one cover plus 4-page graphic note: problem, input/action, tool/result,
today-do-this
- if a user provides both face and tool screenshot, use face as image 1 and
screenshot/product as image 2 in the prompt
Avoid:
- recommending this style when the user cannot explain the tool or workflow
- overusing fake technical UI that the user cannot reproduce
- using it for quiet emotional/lifestyle content where a soft photo or pure
card would fit better
4. Lingzao No-Person Knowledge Card
Use for:
- no-face Xiaohongshu graphic notes
- Lingzao / Agent / Skill / workflow explainers
- users who do not have photos, do not want to show their face, or need a clean
educational card
- keyword-to-content packages when the user has no reference image and needs a
ready-to-generate pure knowledge-card style
Visual traits:
- vertical Xiaohongshu card, usually white or very light background
- blue/cyan as the primary system color, with small green/yellow accents
- clear big headline, often one strong sentence
- structured modules: steps, comparisons, checklists, before/after, workflow
lanes, table-like cards
- icons, small UI elements, numbered circles, status tags, bottom summary bar
- no people, no cartoon, no heavy scenery
Best output:
- 4-page graphic note by default for fast publishing:
- cover with big question or result
- why this matters / what changed
- workflow / steps / examples
- today post these / next action / comment prompt
- 7-page version when the topic needs more teaching
Avoid:
- making the card too Word-table-like
- long paragraphs on the image
- using a one-note blue palette without enough hierarchy
5. Product Ecommerce Conversion Card
Use for:
- personal-IP products, paid materials, courses, consultations, community,
worksheets, template packs, ecommerce product intro, productized service pages
- users who already have an offer, product, course, paid document, or consulting
service
Visual traits:
- vertical product page, poster, or carousel page
- pastel or high-contrast background, often with rounded modules
- cartoon/persona/IP figure can appear as a trust anchor
- product promise, who it is for, pain points, deliverables, price/offer, CTA
button, badges, guarantee-like labels, or "limited" wording
- more conversion-oriented than ordinary content covers
Best output:
- product intro cover + 3-5 inner pages:
- pain / why this exists
- product promise
- what is inside
- who it fits / who it does not fit
- price / action / next step, if the user has confirmed selling details
Avoid:
- adding prices, scarcity, income claims, or guarantees unless the user provides
them
- turning a content note into a hard sales page too early
- using this route for users who only need an educational post or first test
6. Face-Led Keyword Video Cover
Use for:
- Xiaohongshu video covers where a real person is the trust anchor
- AI tools, creator business, self-media, career, education, commentary,
family/parenting, or personal-IP topics where the face, identity, and keyword create the click reason together
- users who already show up on camera consistently, or have clear expression,
identity, authority, humor, contrast, or performance
Core idea:
The person is not decoration. The face must carry at least one of:
- expression: explosive, funny, confident, surprised, serious, persuasive
- identity: 博士, 小孩姐, founder, PR, product manager, self-media creator,
parent, student, professional, local guide
- contrast: ordinary face + strong keyword, child + adult topic, expert name +
future-looking claim, average-looking creator + information-rich split screen
- proof: visible editing timeline, screenshot, tool interface, product, street
scene, classroom, studio, food/place material
Visual traits:
- vertical Xiaohongshu 3:4 or 4:5 video cover
- large human face or upper body as the primary trust/attention anchor
- huge keyword title, usually high-contrast yellow/red/white/pink text with
thick outline or dark block background
- either full-face single frame, top-bottom split screen, four-grid, diagonal
split, or person + proof scene
- keywords must be obvious: AI剪视频, 不赚钱当什么博主, AI大爆发, 小孩姐,
自媒体赚钱, 快速学AI, 时间, 立马获得感
- if the person's appearance is not highly distinctive, use split-screen,
four-grid, or proof-scene structure to increase information density
Best output:
- one face-led cover plus a short video/script direction
- cover should make the user's identity and promise clear in one second
- for tutorial videos, show both person and result/proof scene, such as editing
timeline, software screen, before/after, or output preview
- for authority videos, make the name/title/identity part of the click reason
- for child/age/identity contrast, make the unusual perspective explicit in the
first title line
Avoid:
- recommending this style when the user has no camera confidence, no consistent
face presence, poor speaking ability, weak background, or only one random face video among mostly graphic notes
- forcing a plain selfie if the person has no expression, no identity, no proof
scene, and no strong keyword
- changing a graphic-note account into a face-led account too abruptly; it may
weaken recognition or even lose followers if the person/voice/style cannot carry the content
- treating "露脸" as automatically better than no-person cards
When to choose no-person instead:
- the person is not visually distinctive and has no authority/identity hook
- the user is not ready to show up repeatedly
- the topic is more useful as a checklist, framework, or knowledge card
- the user's previous account memory is built on graphic notes
Account consistency rule:
Face-led covers work better when the user's surrounding content also has a similar face/video style. A single strong face cover may get clicks, but users follow only when the homepage shows similar content promises, style, tone, and identity across multiple notes.
7. Interaction Prompt Cover
Use for:
- Xiaohongshu interaction posts, account-starting posts, comment-driving posts,
and "ask everyone" topics
- users who want a low-production way to activate comments before or between
heavier posts
- local life, food, travel, community, relationship, workplace, hobby, and
creator-topic prompts where the comment section is the main content asset
- wording such as "互动帖", "评论区很热闹", "起号互动", "问大家", "交出来",
"你们怎么看", "有没有", "大家自从", "哪期/哪个/什么让你觉得"
Core idea:
Interaction prompt covers are not only "a yellow emoji plus text". They work because the image, highlighted keyword, and community question make users want to open the comments and stay there. The goal is comment desire and dwell time; follow conversion happens only when the topic matches the account's content mainline.
Visual traits:
- vertical Xiaohongshu 3:4 or 4:5 cover
- simple white, light, note-app, or PPT/comment-screenshot-like background
- large black or dark gray text with very few words
- 1-2 trigger words highlighted with blue, green, pink, yellow, marker strokes,
or underline blocks, such as "夯爆了", "姐妹迷上", "有意思", "非常帅"
- one matched emoji/sticker/yellow-face expression, such as laughing-crying,
thinking, shy, shocked, or inspecting; the expression must fit the title's emotion
- staged classroom/PPT projection or comment-screenshot scenes are allowed, but
do not pretend they are real screenshots if they are designed scenes
- the cover often looks simple, but the prompt must be precise enough that
users feel "I also want to answer this"
Best output:
- one interaction cover plus 5-10 account-relevant interaction topics
- include a short caption that pushes users to comment without sounding like
empty engagement bait
- for existing accounts, first map the user's recent notes/account links, then
generate interaction topics that can feed the next 1-3 normal posts
- for a local-food account with several Shantou posts, good prompts include:
"把你们汕头的美食全部交出来", "汕头哪里的东西到底好吃啊", and "明天马上到汕头, 交出你们的汕头美食宝藏地图"
Avoid:
- using a random emoji that does not match the question's emotion
- copying a stale interaction prompt just because an old post was viral
- making a topic that is unrelated to the user's account; it may get comments
but will not bring useful followers, and the next post can break the account direction
- forced controversy, fake screenshots, fake comments, or bait that the user
cannot continue with real content
- treating interaction posts as a mature-account strategy only; they can help
activate a starting account, but they still need a content mainline
8. Text-Dense Screenshot Graphic Note
Use for:
- Xiaohongshu graphic notes that look like dense article screenshots,
newsletter screenshots, X/Twitter threads, Weibo posts, memo notes, or redesigned public-account text pages
- AI tool tutorials, creator workflows, female growth, strong opinions, account
lessons, industry observation, public apology/statement analysis, and other topics where users expect "a lot of useful content"
- users who have long drafts, saved notes, transcripts, comment summaries, or
research material and want to convert them into easy-to-produce graphic notes
- account-starting content where the creator can keep posting text-heavy,
useful, keyword-clear pages consistently
Core idea:
This style creates a "there is a lot to learn here" feeling. It is not an interaction prompt cover and not a clean knowledge card. The design can be simple, but the first page must let users understand the topic and key benefit within 1-2 seconds. Most users will scan keywords, not read line by line.
Visual traits:
- vertical Xiaohongshu 3:4 or 4:5 page
- looks like a cropped article, memo, public-account page, X/Twitter thread,
Weibo post, or long-form screenshot that has been redesigned
- heavy text density, but with one very clear headline or opening claim
- black/white, cream/brown, dark card, or light-gray platform screenshot style
- large headline + smaller paragraphs, or platform-header area + body text +
visible metrics/labels when they are real and provided
- keywords are bolded, colored, highlighted, underlined, or placed at line
starts so users can scan the page in one second
- page 1 and page 2 matter most: page 1 makes the promise; page 2 proves there
is substance
Best output:
- 4-page or 7-page graphic note that starts from a keyword-extracted outline:
- cover/opening screenshot with the biggest keyword and promise
- dense proof page with the strongest framework, numbers, or conflict
- step/workflow/list page
- takeaway/action/comment page
- if the source material is long, first extract topic, audience, 3-5 keywords,
and the most clickable sentence before generating page text
- keep the account style repeatable: same background, font hierarchy, highlight
color, title zone, and body rhythm across multiple posts
Avoid:
- unedited screenshots with no keyword extraction
- first pages where users need to read several lines before understanding the
topic
- tiny text, cut-off text, or page bodies that are only readable after zooming
- using this route for users who need emotional atmosphere, product visuals,
food/place proof, or face-led trust instead
- filling the image with AI-generated filler paragraphs; the perceived density
must come from useful points, not word count
- pretending fake platform metrics, likes, comments, timestamps, or account
names are real
9. Room-As-Identity Lifestyle Cover
Use for:
- study-room, bedroom, desk, reading corner, rented-room, solo-living, or small
home-space accounts where the room itself proves the creator's lifestyle
- female-growth, solo-living, age-stage, reading, digital setup, learning,
self-consistency, new-life-narrative, and "I can also live like this" topics
- users who have a real repeatable space: books, desk, chair, tablet, e-reader,
screens, notes, clothes, bed, light, wall stickers, or daily-use objects
- accounts where commercial objects can naturally enter the scene, such as
functional chairs, tablets, e-readers, lamps, desks, screens, bookshelves, bedding, organizers, and digital devices
Core idea:
The room is not background decoration. It is evidence of the person's choices, freedom, resources, taste, rhythm, and life possibility. This style works when the space helps create a new narrative, such as "32 is still early", "solo living can be rich", "not married/no children can still have a full world", or "a small room can grow a strong content system".
Visual traits:
- vertical Xiaohongshu covers built from repeated real room angles
- book piles, desk, bed, closet, chair, tablet/e-reader, multiple screens,
wall notes, warm lamp, and lived-in clutter become memory anchors
- text is often simple and narrative-led: "才32岁谁懂", "32岁后续来了", "独居",
"每天收拾房间", "太舒服了谁懂"
- room angle consistency matters; the homepage should look like one continuous
world, not random home photos
- proof objects can double as future ad assets when they naturally belong in
the room
Best output:
- one cover plus a series direction, not only a one-off image
- identify the life-stage keyword, room proof, and repeatable scene:
- age/life-stage reversal
- room-as-proof photo
- short narrative title
- next 3-5 posts that continue the same world
- for users studying this account type, separate learnable structure from
non-copyable resources
Avoid:
- treating it as ordinary "book account" or "home decor account"
- copying the room if the user does not have a real space, objects, reading
habit, or daily routine to sustain it
- recommending it only because the room is full of books; the story, keywords,
and person/space contrast matter more than the book count
- ignoring hidden difficulty: prior content-operation experience, speaking or
humor ability, saved money, property/rent freedom, device resources, reading ability, and other accounts may all be part of why it works
- forcing a polished show-home style; the charm may come from a small, crowded,
real, ownable room
Default Routing
When the user asks for an image but gives no reference image:
- travel map, food map, city-walk map, itinerary map, route order,
"打卡路线图/一天从早吃到晚/5 天游路线" -> Travel Handdrawn Route Map
- travel, food, city, local life, transport -> Travel Food Local-Life Cover
- WeChat article, official post, article image pack -> WeChat Article Knowledge
Pack
- AI tool, software, course, tutorial, personal workflow with face/screenshot ->
AI Person Tool Infographic
- face-led video,口播, personal-IP commentary, self-media/career/AI/family
education with a real person -> Face-Led Keyword Video Cover
- interaction post, comment-driving question, account-starting prompt,
"问大家/交出来/你们怎么看/评论区很热闹" -> Interaction Prompt Cover
- long draft, dense text, article screenshot, X/Twitter/Weibo/public-account
screenshot style, "很多干货/文字堆叠/图文风格" -> Text-Dense Screenshot Graphic Note
- study room, bedroom, solo-living, reading corner, desk setup, age/life-stage
lifestyle, "才32岁/独居幸福感/自己的房间" -> Room-As-Identity Lifestyle Cover
- no-face knowledge explanation, Lingzao workflow, Agent method, pure tutorial ->
Lingzao No-Person Knowledge Card
- paid product, course, consultation, community, product page, ecommerce ->
Product Ecommerce Conversion Card
When multiple routes are possible, prioritize the user's available material:
- has face + screenshot/product -> AI Person Tool Infographic
- has face + strong expression/identity/authority/proof scene -> Face-Led
Keyword Video Cover
- wants comments or account activation through a simple question/poster ->
Interaction Prompt Cover
- has long text/research/transcript and wants an easy graphic-note style ->
Text-Dense Screenshot Graphic Note
- has a repeatable room/desk/home scene that can prove the lifestyle ->
Room-As-Identity Lifestyle Cover
- has city/destination + route points or wants a route/order map -> Travel
Handdrawn Route Map
- has food/place/travel photos -> Travel Food Local-Life Cover
- has no photo and wants XHS graphic notes -> Lingzao No-Person Knowledge Card
- has article draft -> WeChat Article Knowledge Pack
- has offer/product details -> Product Ecommerce Conversion Card
Output Contract
For every visual route, output:
- selected style group
- why this style fits the user's topic/material
- cover text
- page count: 1 cover / 4 pages / 7 pages / WeChat 1+3 pack
- page-by-page text
- image-generation prompt or design instruction for each page
- body copy / caption when it is a Xiaohongshu package
- one comment or follow-up prompt
If image generation is available, generate the image after the user has either provided a reference image or accepted the selected no-reference style. If image generation is not available, provide the exact prompt package and tell the user where the image generation step would happen. PK@!X�&��$�$2playbooks/weekly-content-motherpack-distributor.md# Lingzao Weekly Content Motherpack Distributor
Use this playbook when the user wants Lingzao to turn one week of creator materials into a weekly content update package, weekly mother-topic package, or next-week publishing plan.
Trigger phrases:
- 每周内容更新包
- 每周内容母题包
- 周更内容包
- 整理这一周内容
- 下周发什么
- 这一周可以沉淀成什么内容
- 帮我做 5 个母题
- 把最近素材做成小红书 / 公众号 / 播客分发
- weekly content pack
- weekly motherpack
Core Principle
Do not turn every idea into content. First compress the week into a small set of mother topics, then distribute only the strongest topics to the platforms that fit them.
Good user-facing wording:
我会先把这一周素材压成 5 个母题,不会把每个灵感都发出去。弱的先放债务池,强的再分发到小红书、公众号、播客和短口播。
Default behavior:
- First run: use the last 7 days unless the user names another range.
- Scheduled run: use materials since the previous weekly pack.
- Calendar-week request: use the named week and show the exact date range.
- Default to 5 mother topics. If only 2-3 topics are strong, say that clearly
and put weak ideas into the debt pool instead of padding.
- Start from materials the user provided or explicitly authorized. Do not
pretend to read private chats, folders, screenshots, or knowledge bases that were not supplied or reachable.
Inputs Lingzao Can Accept
Use any available user-provided material:
- conversations with the creator or users
- local notes, drafts, screenshots, or links
- podcast transcripts, meeting notes, voice notes, or course outlines
- published note links, backend screenshots, comments, or review results
- saved viral notes, benchmark creators, keyword research, or content-library
material
- product updates, customer feedback, Briefs, or feature notes
- unfinished ideas the user keeps repeating
If the user gives a folder or multiple files, first make a compact source map:
| Source | Signal | Possible Mother Topic | Fit |
|---|---|---|---|
| source name or path | recurring point / strong case / user pain | topic candidate | XHS / WeChat / podcast / debt pool |
Mother Topic Selection
Choose mother topics by these signals:
- repeated user pain or creator bottleneck
- strong story, case, screenshot, or data point
- a reusable method, SOP, checklist, or judgment standard
- platform fit: visual, searchable, saveable, emotional, or explainable
- product fit: shows Lingzao's workflow, judgment, image ability, or content
operation value without sounding like hard selling
- public/private boundary: can be published without exposing private details
- next-step value: can lead to a draft, image pack, review, or experiment
Reject or park ideas when:
- the point is only interesting to the user privately
- the content needs proof the user does not have
- it is only a temporary emotion with no reusable angle
- it risks Xiaohongshu diversion, exaggerated claims, sensitive unsupported
claims, or comment-gated resources
- it is too similar to a topic already selected this week
Mother Content Object
For each selected topic, create a concise object before platform adaptation:
- 母题名称
- 一句话判断
- 目标读者
- 用户痛点 / 点击理由
- 核心观点
- 证据 / 案例 / 细节来源
- 可讲故事
- 可做方法
- 可做图片
- 灵造在其中的角色: diagnosis, search, breakdown, image generation,
packaging, review, or knowledge-base distillation
- 不适合说什么
- 公私边界
- 风险点
- 推荐优先平台
- 暂缓平台
Platform Distribution
After selecting mother topics, distribute only the platform versions that make sense. Do not force every topic onto every platform.
Xiaohongshu
Use when the topic is visual, clickable, saveable, emotional, searchable, or can become a graphic-note/image package.
Output:
- 适合形式: graphic note, spoken video, Vlog storyboard, text-dense screenshot
note, interaction post, cover/image showcase, or account-operation post
- 标题 3 个
- 封面主标题
- 封面副标题 / 画面关键词
- 4-7 页图文结构 or 口播结构
- 正文区 300 字左右
- 10 个发布关键词
- 置顶内容 / 评论区安全引导
- 发布前检查点
Before returning final Xiaohongshu-facing copy, run:
xhs-platform-management-risk-baseline.mdxhs-content-compliance-risk-gate.md
Do not include off-platform diversion, WeChat/private-contact guidance, incentivized comment interaction, exaggerated guarantees, or unsupported sensitive claims in Xiaohongshu titles, cover copy, page text, body copy, keywords, scripts, pinned comments, or comment guidance.
If the topic needs images, route to:
visual-generation-and-cover-workflow.mdreference-image-graphic-note-workflow.mdimage-generation-execution-workflow.md
Mark the topic as needs images if the text package is ready but images were not generated.
WeChat Public Account
Use when the topic needs complete logic, case context, process explanation, or a more durable public article.
Output:
- 公众号标题 3 个
- 文章开头
- 正文结构
- 正文草稿 or detailed outline
- 封面标题方向
- 正文配图方向
- 结尾轻转化 / 下次阅读引导
When the user asks for WeChat images, create a separate image pack. Do not put WeChat article images into a Xiaohongshu final-image folder.
Podcast / Long Spoken Draft
Use only for larger issues, not small tactics.
Output:
- 播客标题
- 一句话主张
- 3-5 段结构
- 开场独白
- 关键故事 / 例子
- 结尾问题
Podcast titles should not blindly use Xiaohongshu click-title logic.
Short Script / Social Clip
Use when the topic can become a short spoken video, Douyin/video-account script, or quick public explanation.
Output:
- 前 3 秒开场
- 60 秒口播结构
- 逐字稿 if requested
- 封面文字
- 简介 / caption
Moments / Community / Knowledge Planet
Use when the topic is more human, member-facing, or trust-building.
Output:
- 朋友圈短文
- 更口语版
- 星球帖 / 社群帖
- 可给用户的作业
- 下一步动作
Knowledge Base / SOP
Use when the topic is reusable.
Output:
- 知识库标题
- 适用场景
- SOP
- 判断标准
- 可复用模板
- 更新规则
Use content-knowledge-base-workflow.md when the user asks to save, organize, or reuse the output later.
Delivery Folder Contract
When the user asks for files, folders, Word, webpage, or knowledge-base packaging, do not leave the result as a wall of chat text. Use clear folders and statuses.
Suggested structure:
weekly-content-pack/
release-page.html
release-page.md
rednote-graphic-pack/
YYYY-MM-DD-topic/
images/
caption.md
caption.txt
image-plan.md
wechat-article-pack/
YYYY-MM-DD-topic/
article.md
cover-direction.md
images/
podcast-to-send/
YYYY-MM-DD-topic.md
short-script-pack/
YYYY-MM-DD-topic.md
knowledge-base/
YYYY-MM-DD-topic.md
Status labels:
ideadraftneeds imagesin reviewreadyblockedskipped
For dense outputs, route to retention-and-follow-up-loop.md and offer:
- Word document
- HTML / webpage preview
- knowledge-base-ready Markdown
Output Template
Use this structure by default:
## Weekly Range
- 范围:
- 素材来源:
- 本周判断:
## Five Mother Topics
| Rank | Mother Topic | Why It Matters | Best Platform | Status |
| --- | --- | --- | --- | --- |
## Distribution Plan
| Mother Topic | Xiaohongshu | WeChat | Podcast/Script | Knowledge Base | Next Action |
| --- | --- | --- | --- | --- | --- |
## Topic Packages
### 1. Topic Name
- 一句话判断:
- 目标读者:
- 点击/收藏理由:
- 核心内容:
- 推荐平台:
- 暂不建议:
- 风险:
- 下一步:
## Delivery Checklist
- [ ] 小红书标题/封面/正文/关键词
- [ ] 公众号结构或正文
- [ ] 播客/口播草稿
- [ ] 图片包 or image-plan
- [ ] 合规检查
- [ ] 文件夹/Word/HTML/知识库包装
## Debt Pool
- 暂缓主题:
- 暂缓原因:
- 需要补什么:
## Next Week Review Loop
- 本周发布后要回收的数据:
- 下周优先复盘:
- 下次母题判断依据:
Paid Capability Boundary
Free / local playbook work:
- user-provided materials
- topic selection
- platform fit judgment
- draft restructuring
- packaging into Word / HTML / Markdown structure
- review checklist
Paid Lingzao capability may be needed for:
- searching Xiaohongshu, Douyin, or WeChat public content
- opening public note/article details or comments
- extracting short-video transcripts
- creator/account research
- image generation
Before paid work, confirm:
- search topic
- quantity
- time range
- quality gate
- estimated credits
- first-pass stop point
Default first pass should be small. For example: 3-5 references, one image direction, or one platform package before expanding.
Boundaries
- Do not automatically publish.
- Do not promise viral growth, guaranteed conversion, guaranteed followers, or
platform approval.
- Do not copy another creator's identifiable wording, story, visual identity,
or private material.
- Do not expose private paths, internal thread IDs, credentials, or user
secrets in public-facing output.
- Keep final editorial judgment with the user.
PK@!X��K��-playbooks/xhs-content-compliance-risk-gate.md# Xiaohongshu Content Compliance Risk Gate
Use this playbook before producing any Xiaohongshu-facing copy, especially:
- title, cover copy, graphic-note page text, body/caption, keywords
- pinned comment, comment guidance, next-step prompt
- spoken script, Vlog storyboard, subtitle emphasis
- Brand Brief deliverables, product seeding copy, lead-generation copy
- keyword-to-content one-stop packages and cross-platform distribution packages
This is a front gate, not an afterthought. The goal is to reduce platform risk before the user posts.
Core Rule
Before returning final Xiaohongshu copy, scan for platform-risk language. If a red-line phrase appears, do not output it as the final publishable version. Show the risk briefly, then give a safer replacement.
Good user-facing wording:
我先帮你过一遍小红书风险。能发的我保留,容易出事的地方我会改成更稳的说法,避免出现站外引流、加微信、诱导评论互动这些问题。
Do not promise that the note will pass platform review. Say "降低风险", not "保证合规".
Three Hard Risk Areas
1. Off-Platform Diversion
High-risk signals:
- 引导用户去微信、公众号、私域、社群、朋友圈、淘宝、闲鱼、网盘、外链、二维码
- "主页有链接", "去公众号看全文", "跳转链接", "扫码领取", "外面有资料"
- using disguised words such as
VX,V信,薇,绿泡泡,扣我, or spacing
variations when the intent is still off-platform diversion
Default safe handling:
- remove the off-platform action from the Xiaohongshu copy
- put useful material directly in the note when possible
- if brand/legal requires official info, use neutral wording such as
"以官方公开页面/平台内说明为准" and confirm with the brand before posting
- keep platform-specific external CTAs only in non-Xiaohongshu sections of a
cross-platform package
2. WeChat Or Private Contact Guidance
High-risk signals:
- "加微信", "私信微信", "评论区留微信", "进群", "拉群", "私聊发你"
- "想要资料加我", "课程咨询加 V", "报价私聊", "合作加我微信"
- asking users to leave phone numbers, contact details, or private identifiers
Default safe handling:
- do not ask for WeChat, phone, QR code, or group entry in Xiaohongshu copy
- replace "加我领取" with direct public value in the note: steps, checklist,
page text, or summary
- for commercial cooperation, keep the copy focused on the content value and
let the user's platform-compliant profile/official path carry contact information if they already have one
3. Incentivized Or Manipulative Comment Interaction
High-risk signals:
- "评论区扣 1", "留言关键词发你", "评论领取", "点赞收藏后发资料"
- "关注 + 私信", "转发截图领取", "评论区见", "想要的评论"
- using comments as a gate to receive files, links, templates, courses, or
private contact
Default safe handling:
- do not exchange benefits for comments, likes, follows, saves, or messages
- put the promised material directly in the note, image pages, or public body
copy
- if an interaction line is needed, keep it non-transactional and low pressure:
"你可以按这份清单自查", "这几个步骤可以先保存备用", or "如果你也遇到类似情况,可以对照第 3 页看"
- avoid making the final sentence look like comment farming
Additional Risk Checks
Also scan for these common Xiaohongshu publishing risks:
- guaranteed results: "一定爆", "必涨粉", "稳赚", "100%有效", "保证变现"
- medical, health, skincare, weight-loss, finance, insurance, education, baby,
employment, income, or legal claims without proof
- fake official endorsement, fake user reviews, fake screenshots, fake data, or
unverifiable before/after effects
- copying another creator's distinctive wording, images, comments, or private
screenshots
- privacy exposure: phone numbers, WeChat IDs, private addresses, children's
personal information, customer records
- extreme scare tactics, fake scarcity, or misleading platform claims
When the category is sensitive, keep the language conservative and suggest manual review.
Output Contract
If no obvious risk is found, include one short line in the pre-publish or final package:
合规风控:未发现明显站外引流、加微信、诱导评论互动风险;仍建议发布前人工复核。
If risk is found, output:
- 风险一句话
- 风险替换表
| 原句/风险词 | 风险类型 | 为什么不稳 | 建议改法 |
|---|---|---|---|
| ... | 站外引流 / 加微信 / 诱导评论 / 夸大承诺 / 敏感声明 | ... | ... |
- 可直接发布的安全版
- title if changed
- cover copy if changed
- body/caption if changed
- page text if changed
- keywords if changed
- pinned comment/comment guidance if changed
Use tags when useful:
- 可保留
- 建议改写
- 不建议发布
Platform-Specific Notes
For cross-platform packages, separate platform CTAs:
- Xiaohongshu: no off-platform diversion, no WeChat guidance, no comment-gated
resources
- Moments: can be more personal, but do not mix the Moments CTA into the
Xiaohongshu copy
- WeChat public account: can include the account's normal reading/follow-up
format if the user owns the channel, but do not paste that CTA back into the Xiaohongshu version
- Brand Briefs: if the Brief asks for external links, group entry, QR codes, or
private contact, mark it as a Xiaohongshu risk and ask the brand/user to confirm a platform-compliant replacement
Boundaries
- Do not turn the answer into legal advice.
- Do not guarantee platform approval.
- Do not scold the user. Rewrite the risky parts and explain the reason simply.
- Do not remove all personality. Keep the user's voice while replacing risky
actions. PK@!XpGm�1�1$playbooks/xhs-operation-task-tree.md# Xiaohongshu Operation Task Tree
Use this playbook when a Lingzao user wants to operate a Xiaohongshu account but does not need another "course list". The goal is to route the user to a concrete creator-operation task and produce a result.
Trigger phrases include:
- 灵造能帮我做账号运营什么
- 小红书运营任务树
- 不要给我上课,直接让我完成任务
- 我现在该做哪一步
- 给我一个小红书运营工作流
- 账号运营板块怎么分
- 用灵造做账号,从哪里开始
Core Principle
Do not present this as "lesson 1 / lesson 2 / lesson 3".
Present it as:
- what the user is stuck on
- what material they should send
- what Lingzao will judge
- what deliverable they will receive
The user should complete one task first. Course/tutorial explanations are only the instruction manual when a task is blocked.
Task Tree
0. How To Use
Ask the user to pick the closest current task, or infer it from their wording:
| User state | Task | User sends | Lingzao delivers |
|---|---|---|---|
| They do not know what is wrong with the account | Homepage 3-second diagnosis | profile link | first-impression issue, one priority fix, next task |
| They saw a viral note but do not know whether to copy it | Viral copyability check | note link | learnable parts, non-copyable parts, adapted version |
| They do not know what to post today | Topic generation | keyword / track / account link | 3-5 postable topics, one top recommendation |
| They finished content but are unsure whether to publish | Pre-publish gate | title, cover, copy/script, keywords | clickability, cover recognition, opening hook, keyword embedding |
| They want a one-stop result | Content package | keyword / reference / account direction | title, cover copy, pages/script/storyboard, caption, keywords |
| They received a brand/ad Brief | Brief to content | Brief, product info, account direction | Brief breakdown, benchmark search scope, content angles, publishable ad content |
| They posted but data is weak | Post-publish review | backend screenshot, note link, copy/script | likely bottleneck and next-note fix |
| They want leads/customers | Acquisition path | product/service, profile, target customer | content columns, profile bio, pinned notes, comment/DM path |
| They have many saved examples but no system | Knowledge-base distillation | viral notes, covers, comments, reviews | topic/title/cover/comment/reference libraries |
1. Account Foundation Layer
This layer answers: does the homepage look like an account worth opening?
Task 1: Homepage 3-Second Diagnosis
User sends:
- Xiaohongshu profile link
Lingzao checks:
- nickname
- avatar
- bio
- pinned notes
- recent covers
- memory anchor
- whether the account looks like a clear person, clear niche, or scattered notes
Deliver:
- what the account looks like in the first 3 seconds
- the most unclear part
- the first action to change
- sample-size boundary: if the account has too few notes, do a light diagnosis
instead of forcing a full account report
Task 2: Profile Bio And Pinned Notes
User sends:
- profile link
- target audience
- offer / monetization goal if any
Deliver:
- 100-character bio
- three pinned-note suggestions
- account keywords
- the reason a new visitor should follow
2. Benchmark Layer
This layer answers: who should this account learn from?
Task 3: Find 5 Active Benchmark Accounts
User sends:
- track
- keyword
- city if local-life related
- account stage
- face/no-face
- preferred format: graphic note, spoken video, Vlog, or mixed
Deliver:
- up to 5 profile links, plus the
search-usersreturnedusers[].idwhen
the agent will verify those accounts further
- follower count and recent high-performing notes when available
- latest update recency
- why each account is worth learning from
- learnable / non-copyable parts
Do not return stale accounts as main references. Stale accounts may only be marked as historical references.
Task 3A: Compare My Account With Same-Stage Peers
User sends:
- their own profile link
- track or keyword
- optional follower range, such as 5-15w
- optional known concern, such as speech too fast, covers too decorative, weak
focus, or unclear follow reason
Deliver:
- own-account snapshot and sample boundary
- 3-5 active peer accounts with profile links, follower counts, latest update
state, and representative high-performing notes when available
- horizontal comparison across account memory, audience promise, title click
reason, cover hierarchy, first 3 seconds, speech/information hierarchy, content columns, proof assets, comment demand, follow reason, and acquisition path
- top 3 current gaps and concrete fixes
- 7-day or 30-day adjustment plan
- a human closing that lowers the next action to one test, not a full account
rebuild
Use self-account-peer-horizontal-diagnosis.md for this task. The point is not to make the user become the peer account. The point is to show where similar accounts make their memory point, cover/title hierarchy, opening, proof system, and content columns clearer.
Task 4: Judge Whether One Account Is Worth Learning From
User sends:
- one benchmark account link
Deliver:
- memory anchor
- content engine
- cover/title/script pattern
- hidden resources
- beginner copyability
- the first action to learn from it
3. Viral Note Layer
This layer answers: how to use a viral note without blindly copying it?
Task 5: Break Down One Viral Note
User sends:
- one note link
Deliver:
- title click reason
- cover stop reason
- outline or script structure
- visible shooting / editing / graphic layout layer
- comment demand
- learnable parts
- non-copyable parts
Task 6: Adapt The Viral Note Into My Version
User sends:
- viral note link
- own account direction
Deliver:
- adapted topic
- three titles
- cover copy
- graphic-note page outline, spoken script, or Vlog storyboard
- warning against hard trend-chasing when the track does not fit
4. Topic Layer
This layer answers: what should I post next?
Task 7: Keyword To Topic Pool
User sends:
- keyword, such as female growth, 35+ career, AI tools, local life, good-product
sharing
Deliver:
- user-intent branches under the keyword
- what fits beginners
- what fits experienced creators
- 3-5 postable topics
- one top recommendation to test first
Task 8: Comments To Next Topics
User sends:
- note link or comment screenshot
Deliver:
- real demand in the comments
- which comments are just noise
- three next-topic ideas
- which one fits interaction posts and which one fits dry-good content
Task 9: 7-Day Topic Table
User sends:
- account profile
- track
- near-term direction
Deliver:
- seven topics
- recommended format for each: graphic note, spoken video, Vlog, interaction
post
- title direction, cover direction, keywords
- which posts serve follower growth, trust, or acquisition
5. Content Production Layer
This layer answers: can Lingzao produce something publishable instead of only giving advice?
Task 10: Keyword To One Complete Xiaohongshu Post
User sends:
- keyword
- account direction
- optional reference link
Lingzao first decides whether the user wants:
- graphic note
- spoken video
- Vlog
- cross-platform package
Deliver:
- three titles
- cover copy
- graphic-note pages / spoken script / Vlog storyboard
- about 300 Chinese characters of Xiaohongshu body copy
- 10 publishing keywords
- pre-publish checklist
Task 11: One Content Asset To Multiple Platforms
User sends:
- mother content, transcript, article draft, screenshot, or oral idea
Deliver the basic package first:
- Xiaohongshu version
- Moments version
- WeChat public-account version
- Knowledge Planet version
Offer optional expansion only if needed:
- Bilibili
- video account / Douyin
- X
- podcast
Task 11A: Brand Brief To Creator Content
User sends:
- advertising / brand cooperation / product / campaign Brief
- product or service information
- own account direction or profile link when available
- required platform and format if already decided
- optional brand required points, forbidden claims, CTA, hashtags, coupon,
reference links, and deadline
Lingzao checks:
- brand goal and mandatory selling points
- user pain, scenario, and click reason
- whether the ad fits the creator's account and audience
- compliance and forbidden claims
- which keywords should be searched publicly before writing
- how recent public references are talking about the same category, pain, or
scenario when the user confirms lookup
Deliver:
- Brief breakdown table
- creator/audience fit judgment
- benchmark/reference search scope, with credit notice before paid lookup
- 3 content angles and one top recommendation
- publishable Xiaohongshu graphic-note, spoken-video, or Vlog package
- brand delivery checklist: required points included, forbidden claims avoided,
CTA correct, title/cover/opening still user-facing
Use brand-brief-to-content-workflow.md for this task. Do not simply translate the Brief into ad copy. The job is to turn brand requirements into a user-facing content entry that still protects creator trust.
6. Cover And Image Layer
This layer answers: what kind of image should the user make?
Task 12: Single Cover Diagnosis
User sends:
- their cover image
Deliver:
- cover type
- whether it can be understood in one second
- whether the keyword is obvious
- track fit
- whether ordinary users can learn from this cover
- revision direction
Task 13: Reference Image To My Cover
User sends:
- reference image
- own topic
Deliver:
- reference structure
- what to borrow
- what not to copy
- adapted cover copy
- image-generation or revision direction
Task 14: No Reference Image, Choose A Cover Type
User sends:
- track
- keyword
- face/no-face
- material availability
Deliver:
- recommended cover type
- not recommended cover type
- main cover title
- visual structure
- if generated output is ugly, diagnose and repair instead of blindly
regenerating
7. Pre-Publish Layer
This layer answers: can this content be posted now?
Task 15: Pre-Publish Gate
User sends:
- title
- cover
- body copy or script
- keywords
Deliver:
- title clickability
- cover recognition
- first 3 lines / first 3 seconds
- natural keyword embedding
- drift risk
- top 1-3 fixes
8. Post-Publish Review Layer
This layer answers: why did this note not run?
Task 16: 24h / 48h / 7d Review
User sends:
- backend data screenshot
- note link
- body copy or script
Lingzao checks:
- 3-second / 5-second data when available
- completion / retention
- likes
- collections
- comments
- click and interaction clues
Deliver:
- likely issue: cover, title, opening, rhythm, content, account-audience fit, or
comment prompt
- next-note fix
- whether to change format: graphic note, spoken video, Vlog, or interaction
post
9. Acquisition And Monetization Layer
This layer answers: is the account just getting attention, or attracting customers?
Task 17: Judge Acquisition Fit
User sends:
- profile link
- product or service
- target customer
- rough customer value if relevant
Deliver:
- who the account currently attracts
- whether they match the target customer
- content that attracts strangers
- content that builds trust
- content that converts
Task 18: Design Acquisition Path
User sends:
- product/service information
- profile link
Deliver:
- profile bio
- pinned notes
- content columns
- comment-reply direction
- DM handoff copy
- viral topics that look lively but are not worth chasing
10. Knowledge Base And Automation Layer
This layer answers: how does one breakdown become reusable operating assets?
Task 19: Save Viral Examples Into A Library
User sends:
- viral note links
- covers
- titles
- comments
- review results
Deliver:
- topic library
- title library
- cover library
- comment-demand library
- benchmark account library
Task 20: Morning Topic, Evening Review
User sends:
- account direction
- recent breakdowns
- published notes
Deliver:
- morning candidate topics
- evening review checklist
- inferred direction from repeated breakdowns
- one narrowed next action
User-Facing Wording
Use task phrasing, not lesson phrasing:
任务 1:把你的主页丢进来,做一次 3 秒诊断 任务 2:找一条你想模仿的爆文,拆它为什么爆 任务 3:把你最近一条笔记丢进来,拆点击 / 看完 / 收藏理由 任务 4:把评论区问题整理成下一轮选题 任务 5:生成未来 7 天选题表 任务 6:发完回来复盘一次
End with one next task, not a course pitch. PK@!X��c662playbooks/xhs-platform-management-risk-baseline.md# Xiaohongshu Platform Management And Risk Baseline
Use this playbook as the management-level baseline for any Xiaohongshu operation, content package, Brand Brief, cover/image generation, commercial copy, profile bio, comment guidance, or post-publish review.
This is broader than a copywriting scan. It tells Lingzao how to manage the account's platform-safe expression before writing, publishing, or advising.
Official Baseline
Treat Xiaohongshu's official rules as the floor, not the ceiling. Keep this official community norm link available as the reference baseline:
- Xiaohongshu Community Norms:
https://agree.xiaohongshu.com/h5/terms/ZXXY20221213003/-1
Search results and official help pages describe "导流行为" as including personal contact details such as phone number or WeChat, and off-platform contact methods such as website links, QR codes, mini-programs, watermarks, and similar paths. Lingzao should be stricter than the user's wording when producing a publishable Xiaohongshu version.
Three Product Principles
1. Public Value First
Every Xiaohongshu-facing output should first answer:
- What useful thing does the reader get inside this note?
- Is the method, checklist, route, story, comparison, or conclusion visible
without leaving the platform?
- If the user removed the product name, would the note still be worth reading?
Good order:
- reader pain, question, scene, or desire
- useful method, route, judgment, checklist, story, or example
- proof, experience, comparison, or visual demonstration
- product/brand/service mention only when it naturally supports the value
Bad order:
- product name first
- selling point stack
- external contact
- ask users to comment or message for the real material
2. Product Name Later
For commercial, product, course, service, and lead-generation content, do not lead with the product name unless the user explicitly asks for a pure brand ad or the product itself is already the search intent.
Default structure:
- title/cover: user benefit, pain, result, scene, or curiosity
- opening: why the reader should care
- middle: method, experience, comparison, or checklist
- product mention: after value is established, written as support, tool,
example, material, route, or "我用到的其中一个方法"
- ending: low-risk public next step, not private contact
Examples:
- Instead of "XX 课程限时招募", write "普通人做账号,先把这 3 件事想清楚".
- Instead of "XX 软件超好用,快来买", write "我用这个流程把封面从 1 张变成 5 个可选方向".
- Instead of "加我了解服务", write the core checklist directly in the note and
keep business contact out of the publishable Xiaohongshu copy.
3. No Diversion Action
Do not create Xiaohongshu copy that asks users to leave the platform, reveal private contact details, or exchange engagement for resources.
Block or rewrite:
- WeChat, VX, V信, phone, email, address, group, QR code, external link,
website, mini-program, private-domain wording, or disguised contact hints
- "评论领取", "扣 1 发你", "关注后私信", "点赞收藏后给资料", "评论区见",
"私信发模板", "进群拿资料"
- watermarked screenshots or images whose purpose is off-platform diversion
Safe default:
- put useful content directly in the note, graphic pages, caption, or series
- use "下一篇继续拆..." only when the next step is a public content plan
- if commercial contact is necessary, ask the user to confirm the
platform-compliant profile/official path outside the publishable copy
Management-Level Risk Checklist
Before producing Xiaohongshu copy or advice, scan these layers:
| Layer | What To Check | Safe Decision |
|---|---|---|
| Account position | Is the account trying to sell before trust exists? | Move sales behind public value. |
| Topic angle | Is the topic a user problem or just a product pitch? | Rewrite from user pain/scene. |
| Title / cover | Does it overpromise or use a banned CTA? | Keep click reason, remove risky action. |
| Page text / caption | Does the real value require leaving the platform? | Put the value inside the note. |
| Keywords | Are tags carrying WeChat/private-domain/contact words? | Remove unless analyzing risk itself. |
| Pinned content | Is it comment-gated or benefit-gated? | Use non-transactional follow-up. |
| Brand Brief | Does the brand require QR/link/group/contact? | Mark as risk and request safe replacement. |
| Image generation | Is risky text being baked into the image? | Fix text before spending image credits. |
Output Contract
When this baseline is triggered, include a concise field in the final output:
小红书风控基线:
- 公开价值:通过 / 需增强
- 产品名位置:通过 / 建议后置
- 导流动作:无 / 已改写 / 不建议发布
- 互动引导:低风险 / 需改写
If risk exists, continue to xhs-content-compliance-risk-gate.md and provide the exact replacement copy.
Human Tone
Do not make the user feel punished. Use a practical tone:
这不是不能卖,而是不能一上来就卖。小红书这条先把公开价值讲完整,产品名往后放,不做加微信、二维码、评论领取这类动作。这样用户更愿意看,平台风险也更低。
Boundaries
- This playbook is not legal advice.
- Do not guarantee platform approval.
- Do not invent an official rule beyond the available public baseline.
- If the user's category is medical, health, finance, education, parenting,
income, employment, legal, or other sensitive commercial field, use stricter wording and recommend manual review. PK@!X�GU�#playbooks/xhs-profile-bio-design.md# Xiaohongshu Profile Bio Design
Use this playbook when the user asks for a Xiaohongshu personal intro, 100-character bio, profile description, homepage introduction, nickname/bio package, or asks whether their current profile intro is clear.
This is not a slogan-writing task. Treat the bio as homepage conversion copy: it should help a stranger decide whether this account is for them and whether to follow after opening the homepage.
When To Trigger
Trigger on wording such as:
- 小红书 100 字介绍
- 个人介绍 / 个人简介 / 主页简介
- bio / 简介怎么写
- 账号介绍 / 自我介绍
- 帮我设计主页文案
- 我的主页介绍要不要改
- 昵称、头像、简介怎么搭
Also trigger after beginner account setup, own-account diagnosis, comparable account adaptation, keyword-to-content packages, and audience persona checks when the user needs a clearer homepage landing point.
If the target audience is unclear, first use audience-persona-fit-check.md. If the account has too few public notes, do not over-package the identity; use the beginner/startup version.
Core Judgment
A good 100-character Xiaohongshu bio answers five questions:
- Who is this account?
- Who is it for?
- What will it keep sharing?
- Why should someone follow it?
- Is there a light product, service, city, or contact path?
It does not need to answer all five with equal weight. Choose the clearest 2-4 based on the user's stage. The default length should be around 80-100 Chinese characters, and shorter is better if the account is still starting.
Minimum Inputs
If the user has not provided context, ask only for the smallest useful material:
- 你想让什么人点进来之后觉得“这是给我看的”?
- 你接下来最想持续发什么内容?
- 你希望别人记住你哪一点?
- 如果你做本地生活:你在哪个城市/片区?
- 如果你想变现:后面是接广告、卖资料/课、咨询、社群、产品,还是暂时不考虑?
If the user already sent homepage links, drafts, reference accounts, city, or content direction, infer first and avoid asking again.
Bio Formulas
Beginner / Exploration
Use when the user has few notes, no stable column, or is still testing.
Formula:
身份/阶段 + 给谁看 + 记录/分享什么 + 更新承诺
Example patterns:
- 30+普通女生,记录从迷茫到稳定的自我成长。分享职场、生活和普通人能执行的小改变。
- 南宁打工人,周末慢慢探索本地好吃好逛的地方。先从真实体验和避坑开始更新。
- 不露脸做图文,从女性成长、职场卡点和生活自洽里找普通人能照着做的方法。
Clear Niche / Useful Account
Use when the user already has a track and a target audience.
Formula:
目标用户 + 核心问题 + 持续内容 + 关注理由
Example patterns:
- 写给想重新开始的女生:职场转型、情绪自救、生活秩序和行动清单。陪你把迷茫拆小一点。
- 给新手妈妈看的育儿图文:亲子陪伴、绘本、儿童好物和家庭教育,尽量讲真实可执行的方法。
- 给文科生看的 AI 工具笔记:做图、写作、效率和自媒体实操,不讲太虚的概念。
Personal IP / Trust Builder
Use when the user has a meaningful contrast, experience, credential, result, or story that others want to learn from.
Formula:
身份反差/经历 + 结果/可信点 + 分享范围 + 适合谁
Example patterns:
- 从大专到研究生,再到深圳工作。分享普通女生的学历逆袭、职场选择和长期自我建设。
- 从小镇到海外生活,记录普通人如何一点点打开世界。写成长、选择、自由职业和真实生活。
- 35+职场人,记录主业、副业和自我更新。分享不焦虑但要有准备的职场方法。
Commercial / Product Conversion
Use only when the user already has a real product, service, course, consulting, store, or lead path. Do not fake commercial authority for beginners.
Formula:
服务谁 + 解决什么 + 产品/服务形态 + 轻联系路径
Example patterns:
- 帮新手博主做小红书内容诊断:账号定位、选题、标题、封面和发布复盘。合作/咨询看置顶。
- AI 图文实操教练,帮个人 IP 做封面、图文结构和内容资产库。资料和课程在置顶。
- 上海本地生活探店,主打打工人平价美食和周末路线。合作可私信,体验真实再推荐。
Audience And Keyword Fit
The bio should carry the account's most important keywords, but naturally:
- Female-oriented accounts should use female/life-stage words when relevant:
女生、30+、妈妈、职场女性、普通女生、女性成长.
- Student or early-career accounts should not use 35+、生小孩、一人公司创业
unless this is their real audience.
- Local-life accounts must include the city or area: 南宁、上海、成都、香港,
or a more specific district when that is the memory anchor.
- AI/tool accounts should name the scene: AI 做图、AI 写作、AI 办公、文科生 AI,
老师 AI 工具, not only "AI工具".
- Good-product accounts should name category and scene: 母婴好物、旅行好物、
浴室收纳、平价彩妆、通勤包, not only "好物分享".
If the bio keywords do not match the title/cover/opening keywords of the first 3-7 notes, say so. The homepage should not look like a different account from the content.
Output Structure
Default output should be compact and decisive:
- 一句话判断:现在简介最该解决什么问题。
- 推荐版:1 条最推荐的 100 字左右简介, with approximate character count.
- 备选 1:更有人味/更生活化的版本。
- 备选 2:更清晰/更工具化/更商业承接的版本.
- 为什么这么写:explain audience, memory point, keyword, follow reason.
- 主页搭配建议:nickname keyword, first 3 or pinned notes, and what should
not be stuffed into the bio.
- 下一步:offer to continue into nickname, avatar direction, pinned-note
package, first 7 notes, or title/keyword check.
Do not output 10 bios by default. The user needs 3 usable choices, not a pile of similar sentences.
If User Sends Current Bio
Diagnose before rewriting:
- Is it too vague?
- Does it say who the account is for?
- Does it say what will be updated long-term?
- Does it have a memory point?
- Does it match current notes and titles?
- Is it over-commercial for the current stage?
- Does it miss city/track/life-stage keywords?
Then output 3 rewrites.
If User Sends Homepage Link
Use public homepage clues when available:
- nickname
- existing bio
- visible note themes
- title keywords
- cover style
- number of public notes
- whether the account looks like self, benchmark, or commercial account
If there are fewer than 3 visible notes, do not pretend the positioning is already clear. Give a starter bio and say it should be retested after the first 3-7 notes.
If the user is writing a bio for a benchmark account or imitation target, first ask whose bio is being written: their own account or the reference account.
What To Avoid
- Generic slogans: "热爱生活,记录美好", "做更好的自己".
- Empty identity stacks: "博主/创业者/妈妈/设计师/成长型人格" without a user
reason to follow.
- Guaranteed claims: "带你月入过万", "保证涨粉".
- Too many tracks in one bio.
- Commercial CTA without a real product/service path.
- Cityless local-life bios.
- A bio that sounds mature while the account has almost no content.
Good Continuation Prompts
- 你把现在的昵称、简介和最近 3 条笔记标题发我,我可以帮你做一版主页三件套。
- 如果你还没发内容,我可以继续帮你把这个简介拆成前 7 条笔记选题。
- 你如果想做得更商业一点,我可以再帮你判断简介里要不要放课程、咨询、合作或资料入口。
PK@!Xb�a��#playbooks/xhs-title-design-check.md# Lingzao Xiaohongshu Title Design Check
Use this playbook when the user sends a topic, draft, title, cover copy, reference note, or content package and asks for:
- 小红书标题
- 帮我起标题
- 标题怎么写
- 标题优化
- 封面标题
- 标题有没有点击
- 根据内容给标题
- 这几个标题哪个好
This is a publishing judgment layer. It is different from a formula library or a title-pool generator.
Core Principle
Do not give ordinary users 10 titles and then recommend 3.
Default output is only 3 strongest titles. Let the user choose from the best three, not from a noisy pool.
The title's job is:
- make the right reader want to click
- carry the big keyword anchor when possible
- match the cover and content promise
- stay short enough for Xiaohongshu, usually within 20 Chinese characters
including punctuation and emoji
When the user explicitly asks for a title library, title bank, or many alternatives, you may give more options, but first explain that the default publishing decision should still settle on 3 strongest titles.
Required Inputs
Proceed directly if the user provides any useful input:
- draft or body copy
- graphic-note page text
- spoken script
- Vlog theme or storyboard
- title they already wrote
- cover copy
- keyword or track
- target audience
- benchmark title or reference note
If the input is too thin, ask only for the missing minimum:
你把正文/脚本、想打的关键词,或者你想模仿的标题发我就行。我先只帮你挑 3 个最值得点的标题,不做一大堆标题池。
Do not ask a long form.
Audience Gate
Before writing the 3 strongest titles, identify who is supposed to click.
Use audience-persona-fit-check.md if the audience is unclear. A title that is strong for one group can be wrong for another:
- If the content is female-oriented, use female-related topic and keyword
anchors rather than pretending it is for everyone.
- If the content is for university students or young beginners, do not force
35+, one-person company, childbirth, marriage, or midlife-crisis words unless the content truly discusses those life stages.
- If the content is local life, include the city/area in title or cover when
possible, and make sure the keyword field and location signal match the city.
If the user does not know their audience, ask for 3-5 liked, saved, searched, or benchmark notes and reverse-infer the likely audience before writing titles.
Title Judgment
Judge every title by these questions.
1. Is There A Big Keyword Anchor?
Prefer concrete search or season anchors over broad concepts.
Good anchors:
- 高考志愿
- 新疆旅游
- 35岁职场
- 女性成长
- 小红书起号
- AI工具
- 好物分享
- 本地生活探店
- 减肥
- 穿搭
Bad broad words when used alone:
- 好好学习
- 成长
- 努力
- 生活
- 变好
- 分享
Example:
- Weak: 如何好好学习
- Stronger: 高考志愿怎么填
The strong version names the user's real search moment.
2. What Is The Click Point?
At least one click point should be obvious.
Common click points:
- 反差: small-town to New York, junior college to graduate school, ordinary
person to visible result.
- 好奇: 怎么没人早点告诉我, 这到底是什么, 为什么会这样.
- 数字: 2分钟, 10天9夜, 3000块, 50天.
- 时间: 一年后, 50天重启, 一天这样拆开用.
- 结果: 看这一篇就够了, 我这样走出来了, 直接能用.
- 身份: 普通女生, 宝妈, 文科生, 职场新人, 35岁女生.
- 反问: 真的可以吗, 为什么没人说, 你是不是也这样.
Examples:
- 我是如何从小镇青年到纽约的
- 一年时间人怎么能变得这么争气
- 怎么没人早点告诉我这个
- 2分钟带你看完这个工具
- 十天九夜新疆游,看这一篇就够了
- 带3000块旅行全球真的可以吗
3. Does The Title Match The Content?
The title can be sharp, but it cannot promise something the content cannot deliver.
Check:
- If the title says "看这一篇就够了", the content must be a complete guide.
- If the title says "我从小镇到纽约", the content must include the path or
turning points.
- If the title says "高考志愿", the content must actually help with志愿/专业/
城市/院校选择, not only general study advice.
- If the title says "好物", the note must reveal a specific product or scene.
4. Can It Fit The Cover?
Xiaohongshu cover titles need to be read in one second.
Prefer:
- one main line
- one concrete keyword
- one strong hook
- no stacked slogans
If the title is too long, split:
- title field carries the keyword + hook
- cover copy carries the shorter visual hook
- first 3 lines carry the context and promise
Output Structure
Use this order.
- 一句话判断
- Say the current strongest title direction.
- 首推 3 个标题
| 标题 | 为什么会被点 | 关键词锚点 | 适合什么情况 |
|---|---|---|---|
| ... | ... | ... | ... |
- 不建议的标题方向
- Show 1-3 weak directions only if useful.
- Explain why they are too broad, too long, too slogan-like, or not matched
to the content.
- 封面标题建议
- If the title is for a graphic note or cover, give 1 short cover version.
- If the title itself can go on cover, say so.
- 关键词衔接
- Name the top 3 keywords that should appear across title, cover, first 3
lines, or keyword field.
- If the content is local life, include the city/area keyword.
- If the user asks for final publishing keywords, route to
publishing-keyword-design-check.md.
- One follow-up
Use one of:
- 你选其中一个标题后,我可以继续帮你配 10 个发布关键词,并检查标题、封面和正文前 3 行有没有自然埋进去。
- 你把封面文案也发我,我可以继续判断标题和封面是不是在说同一件事。
- 如果你想做图文,我可以把这个标题继续拆成封面和 4 页/7 页图文结构。
Do not output a long title pool unless the user explicitly asks.
If User Already Has Titles
Do not only rewrite.
First diagnose:
- 哪个有关键词锚点
- 哪个有点击理由
- 哪个太泛
- 哪个标题和正文不匹配
- 哪个适合放标题栏,哪个适合放封面
Then output only the best 3 revised versions.
If User Sends A Draft
Extract the real hook before writing titles:
- What is the most concrete event, result, method, or contrast?
- What is the reader searching for?
- What will the reader get after clicking?
- Is this better as fear, curiosity, guide, transformation, or identity title?
Avoid making a title from the most beautiful sentence if that sentence has no search keyword or click reason.
If User Sends A Keyword Only
Do not make the keyword too broad.
Split likely intent first:
- 女性成长: career, relationship, marriage/family, self-consistency, identity
transformation, learning, side business.
- 35岁职场: pre-35 anxiety, after-35 survival, layoffs, AI office efficiency,
second curve, side income.
- 好物分享: mother/baby, home, travel goods, electronics, beauty, clothing,
tools, product scene.
- AI工具: workplace, teacher, content creation, image/video, agents, coding,
screen-record tutorials.
- 本地生活: city, district, budget, old stores, tourism, food, shop exploration.
Then write titles around the narrowed intent.
Do Not
- Do not default to 10 titles plus top 3.
- Do not use guaranteed-growth language such as 必爆, 稳爆, 一发就火.
- Do not use a hot keyword if the content does not actually discuss it.
- Do not write only clever titles with no keyword anchor.
- Do not make every title sound like a formula.
- Do not let "标题优化" become a full account diagnosis unless the user asks.
PK@!X���$$*playbooks/zero-beginner-onboarding-gate.md# Zero Beginner Onboarding Gate
Use this playbook before normal topic search or benchmark discovery when the user says they know nothing about self-media or Xiaohongshu operation.
Trigger phrases:
- 我什么都不会
- 我想做自媒体但不知道从哪开始
- 我想做小红书但不知道发什么
- 我想赚钱但不知道做什么账号
- 我适合做小红书吗
- 我没有账号 / 0 基础 / 刚开始
- 我不知道自己能发什么
- 新手怎么用灵造做账号
Core Belief
Do not treat beginners as people who need a course first.
Treat them as people who need their first executable task.
User-facing belief:
你不是“什么都不会”,而是还没有把自己的生活、工作、兴趣、收藏夹和消费经验拆成可以发的内容。我们先不急着定赛道,也不急着搜对标账号,先帮你找一个能连续发 7 条的小方向。
The goal is to make the user start one small creator action, not to make them understand all creator theory.
What To Avoid
Do not start with:
- long intake forms
- generic course-style explanations
- "你先学账号定位"
- "你先找 10 个对标账号"
- "你适合做女性成长/AI/本地生活" without evidence
- paid public-content search before the user has a direction
Do not send a beginner directly into benchmark search unless the user already gave a specific direction or examples. First mine their life signals.
First Response Shape
When the user has no direction, answer in this order:
- Reassure with the core belief.
- Explain the lowest Xiaohongshu cognition in 3-5 short points.
- Ask one compact intake question with five signals.
- Promise the first deliverable: 3 possible directions, one recommended test
direction, and a first 7-note plan.
Use this compact intake:
你简单告诉我 5 件事就行: 1. 你现在大概是什么状态:上班、带娃、上学、自由职业、待业? 2. 你平时最爱刷/收藏哪类小红书内容? 3. 你愿不愿意露脸或口播? 4. 你每天大概能花多少时间做内容? 5. 你做账号更想要:涨粉、接广告、卖产品、获客,还是先练起来?
If the user only answers part of this, continue with the available signals and state assumptions. Do not force the user to fill everything.
Minimum Cognition To Give Beginners
Keep it short. These are not lessons; they are guardrails before the first task.
1. Xiaohongshu Is Not Moments
陌生人不会因为“你发了生活”就看你。A note needs at least one of:
- click reason
- save reason
- comment reason
- follow reason
If a user posts like a personal feed, diagnose it plainly:
如果你像发朋友圈一样发,别人为什么要看你的生活?你要给陌生人一个点开、看完、收藏或关注的理由。
2. Do Not Choose The Most Profitable Track First
Beginners should first find a direction they can publish for 7 days.
Commercial potential matters, but the first filter is:
- do they have material?
- do they have a viewpoint?
- can they repeat it weekly?
- can strangers understand the value quickly?
3. Do Not Learn From Mature Big Accounts First
For beginners, prefer:
- low-follower recent viral notes
- same-stage active accounts
- notes whose cover/title/page structure is learnable
- accounts with clear but not impossible production resources
Large mature accounts can be used as aspiration references, but not as the first copy target.
4. No-Face Is A Format Choice, Not A Blocker
If the user resists face or spoken video, route them to:
- graphic notes
- lists
- knowledge cards
- tutorial screenshots
- product tests
- learning records
- before/after workflow notes
Do not make spoken video the default beginner answer.
5. The First Stage Is Validation
Beginner success is not immediate monetization.
First validate:
- will people click?
- will they finish reading/watching?
- will they save?
- will they ask questions?
- will they understand what this account is about?
Only after the validation signal is visible should Lingzao expand into ads, courses, community, consulting, products, stores, or lead generation.
Direction Mining From Life Signals
After the user answers, map their signals into 3 possible directions.
Each direction must include:
- why it may fit
- what material it uses
- recommended format
- difficulty
- monetization possibility
- biggest warning
Common mappings:
| User signal | Possible direction | Safer beginner format |
|---|---|---|
| works in an industry | career experience, industry notes, workplace tools | graphic note, story + method, checklist |
| takes care of children | parenting, family education, child products, mom growth | list, real routine, product choice, mistake review |
| loves buying/comparing | good-product sharing, product tests, consumption decisions | comparison card, review note, avoid/buy list |
| loves AI/tools | AI tools, workflow, ordinary-person efficiency | task solved, before/after, tutorial screenshot |
| loves local food/travel | local life, food, city guide, weekend plan | city keyword, 3-place list, local map note |
| loves beauty/fashion | no-face outfit, skincare, ordinary-person beauty | visual card, routine, formula, no-face shooting |
| collects self-growth | female growth, 30+/35+, emotional stability | concrete scene, habit, decision, not empty inspiration |
First Deliverable
For a beginner answer, output:
- 一句话判断
Example: 你现在不是没有方向,而是还没有把生活经验拆成可发内容。
- 3 个可能方向
Use a table: direction, why it fits, beginner format, difficulty, monetization possibility, warning.
- 首推 1 个方向
Explain why this is the safest first 7-day test.
- 第一周 7 条选题
Include title direction, cover words, format, and what material the user needs.
- 第一条最小可发内容
Give 3 titles, cover copy, 4-7 page graphic-note outline or a 600-character spoken script, 300-character Xiaohongshu body copy, and 10 keywords.
- Next small action
Ask the user to choose one direction, send a favorite account/note, or send their first draft/cover.
First 7-Day Plan Template
Use this shape:
| Day | Topic | Format | Cover words | User material |
|---|---|---|---|---|
| 1 | ordinary-person starting point | graphic note / spoken | one clear promise | user story or checklist |
| 2 | mistake / pitfall | graphic note | "别一上来就..." | one real confusion |
| 3 | useful list | list card | "我先整理这 5 个" | favorites/search history |
| 4 | comparison | before/after | "以前 vs 现在" | tool/product/behavior contrast |
| 5 | reference breakdown | graphic note | "我为什么学这条" | one note/account link |
| 6 | user question | interaction post | "你们也会这样吗" | one common confusion |
| 7 | review | short report | "我试了 7 天" | data/feeling/comments |
Adjust the actual topics to the user's direction.
When To Use Paid Lingzao Search
Do not use paid search in the first message for a no-direction beginner.
Use free judgment first.
Only after the user chooses a direction, offer:
如果你想看参考,我可以按这个方向先找【3 个】低粉近期爆款或同阶段账号,不一上来找 10 个。方向对了再扩到 5 个。
Then route to copy-paste-prompt-scope-boundary.md and benchmark-account-discovery-quality-gate.md.
Objection Handling
"I Have No Specialty"
Say:
你不一定要先有“特长”才能开始。我们先看你喜欢什么、收藏什么、生活里经常解决什么问题。你的方向可能藏在收藏夹和日常经验里。
Ask for:
- 3-5 favorite creator links
- 3 saved notes
- categories the user repeatedly searches
Then compare common points.
"I Do Not Want To Show My Face"
Say:
可以。不露脸不是问题,没风格、没结构、没点击理由才是问题。
Route to graphic notes, lists, knowledge cards, product tests, tutorials, learning records, or no-face visual formats.
"I Only Have One Hour A Day"
Say:
可以,但内容要做小。1 小时适合轻量图文、清单、AI 辅助图片、资料整理、短口播提纲,不适合一上来重拍摄重剪辑。
Give a daily small-action workflow.
"I Posted 10 Notes With No Traffic"
Say:
10 条没流量很正常。现在要判断的是:你是在运营一个账号,还是像朋友圈一样发生活。
Ask for the profile link or one note to diagnose title, cover, topic, structure, and account memory anchor.
Handoff To Other Playbooks
After the onboarding gate:
- use
beginner-account-start-and-topic-radar.mdfor deeper direction mining
and keyword trees;
- use
xhs-profile-bio-design.mdif the user wants nickname/bio/pinned notes; - use
keyword-to-publishable-content-package.mdonce the user picks one
direction and wants a first note;
- use
benchmark-account-discovery-quality-gate.mdonly after the user chooses
a direction or sends examples;
- use
visual-generation-and-cover-workflow.mdwhen the first content package
needs cover/image routing. PK@!Xb�scripts/check_version.py#!/usr/bin/env python3 from pathlib import Path
def main() -> int: root = Path(__file__).resolve().parents[1] version = (root / "VERSION").read_text(encoding="utf-8").strip() print(version) return 0
if __name__ == "__main__": raise SystemExit(main()) PK@!X���_��scripts/configure.py#!/usr/bin/env python3 import argparse import json import os from pathlib import Path
CONFIG_DIR = Path.home() / ".lingzao" CONFIG_FILE = CONFIG_DIR / "config.json" DEFAULT_BASE_URL = "http://localhost:3080"
def main() -> int: parser = argparse.ArgumentParser(description="Configure Lingzao API credentials.") parser.add_argument("--api-key", help="Lingzao API key, starts with lgz_") parser.add_argument("--base-url", default=None, help="Lingzao API base URL") parser.add_argument("--show", action="store_true", help="Show current config without revealing the full key") parser.add_argument("--reset", action="store_true", help="Remove saved config") args = parser.parse_args()
if args.reset: if CONFIG_FILE.exists(): CONFIG_FILE.unlink() print("Lingzao config removed.") return 0
if args.show: config = load_config() print(json.dumps(mask_config(config), ensure_ascii=False, indent=2)) return 0
api_key = args.api_key or os.environ.get("LINGZAO_API_KEY") base_url = args.base_url or os.environ.get("LINGZAO_BASE_URL") or os.environ.get("LINGZAO_API_BASE_URL")
if not api_key: api_key = input("Lingzao API Key: ").strip() if not base_url: entered = input(f"Lingzao Base URL [{DEFAULT_BASE_URL}]: ").strip() base_url = entered or DEFAULT_BASE_URL
config = validate_config({"api_key": api_key, "base_url": base_url}) save_config(config) print(f"Lingzao config saved to {CONFIG_FILE}") print(json.dumps(mask_config(config), ensure_ascii=False, indent=2)) return 0
def load_config() -> dict: if not CONFIG_FILE.exists(): return {} with CONFIG_FILE.open("r", encoding="utf-8") as handle: return json.load(handle)
def save_config(config: dict) -> None: CONFIG_DIR.mkdir(mode=0o700, parents=True, exist_ok=True) with CONFIG_FILE.open("w", encoding="utf-8") as handle: json.dump(config, handle, ensure_ascii=False, indent=2) handle.write("\n") CONFIG_FILE.chmod(0o600)
def validate_config(config: dict) -> dict: api_key = str(config.get("api_key", "")).strip() base_url = str(config.get("base_url", "")).strip().rstrip("/")
if not api_key.startswith("lgz_"): raise SystemExit("Invalid Lingzao API key. It should start with lgz_.") if not base_url.startswith(("http://", "https://")): raise SystemExit("Invalid Lingzao base URL. It should start with http:// or https://.")
return {"api_key": api_key, "base_url": base_url}
def mask_config(config: dict) -> dict: api_key = str(config.get("api_key", "")) return { "api_key": mask_key(api_key) if api_key else None, "base_url": config.get("base_url"), "config_file": str(CONFIG_FILE), }
def mask_key(value: str) -> str: if len(value) <= 12: return value[:4] + "..." return value[:12] + "..." + value[-4:]
if __name__ == "__main__": raise SystemExit(main()) PK@!X_�.�W�Wscripts/lingzao_client.py#!/usr/bin/env python3 from __future__ import annotations
import argparse import base64 import json import mimetypes import os import socket import sys import time import urllib.error import urllib.parse import urllib.request import uuid from pathlib import Path from typing import Any, Dict, List, Optional, TextIO
CONFIG_FILE = Path.home() / ".lingzao" / "config.json" DEFAULT_TIMEOUT = 180 GENERATE_IMAGE_POLL_TIMEOUT = 300 GENERATE_IMAGE_DOWNLOAD_TIMEOUT_BUFFER = 60 SKILL_ROOT = Path(__file__).resolve().parents[1] VERSION_FILE = SKILL_ROOT / "VERSION" DEFAULT_SKILL_BASE_URL = "https://assets-tian.midao.site/skills/lingzao" LEGACY_WINDOWS_ENCODINGS = {"gbk", "gb2312", "cp936", "mbcs"} FIXED_TIME_SAVED_MINUTES = { "search-notes": 20, "search-users": 20, "get-user-info": 5, "get-user-posted-notes": 15, "get-note-detail": 8, "get-note-comments": 12, "get-article-detail": 8, "get-article-stats": 5, "get-related-articles": 15, "generate-image": 40, } PUBLIC_SERVICE_ERROR_LABELS = { "NOTE_NOT_FOUND_OR_INACCESSIBLE": "目标内容未读取到或不可访问", "CREATOR_NOT_FOUND_OR_RESTRICTED": "目标频道未读取到或不可访问", "CONTENT_NOT_FOUND_OR_RESTRICTED": "目标视频未读取到或不可访问", "COMMENTS_UNAVAILABLE": "该视频的公开评论不可用", "YOUTUBE_CONTENT_TYPE_REQUIRED": "请指定 YouTube 视频类型", "YOUTUBE_CONTENT_TYPE_MISMATCH": "YouTube 视频类型与 URL 不一致", "UNSUPPORTED_CONTENT_TYPE_HINT": "当前平台不接受该视频类型参数", "PROVIDER_UNAVAILABLE": "灵造服务暂时不可用", "PROVIDER_TIMEOUT": "灵造服务响应超时", }
def configure_standard_streams() -> None: configure_text_stream(sys.stdout) configure_text_stream(sys.stderr)
def configure_text_stream(stream: TextIO) -> None: reconfigure = getattr(stream, "reconfigure", None) if not callable(reconfigure): return
options = {"errors": "replace"} if should_force_utf8(stream): options["encoding"] = "utf-8"
try: reconfigure(**options) except (OSError, TypeError, ValueError): pass
def should_force_utf8(stream: TextIO) -> bool: encoding = normalize_encoding(getattr(stream, "encoding", None)) return os.name == "nt" or encoding in LEGACY_WINDOWS_ENCODINGS
def normalize_encoding(value: Optional[str]) -> str: return (value or "").strip().lower().replace("_", "-")
def safe_print(value: object = "", *, file: Optional[TextIO] = None) -> None: stream = file or sys.stdout text = str(value) try: print(text, file=stream) except UnicodeEncodeError: write_text_safely(stream, text + "\n")
def write_text_safely(stream: TextIO, text: str) -> None: encoding = getattr(stream, "encoding", None) or "utf-8" try: safe_text = text.encode(encoding, errors="replace").decode(encoding, errors="replace") stream.write(safe_text) stream.flush() return except (OSError, UnicodeError, ValueError): pass
buffer = getattr(stream, "buffer", None) if buffer is None: return
try: buffer.write(text.encode("utf-8", errors="replace")) buffer.flush() except OSError: pass
def main() -> int: configure_standard_streams()
parser = argparse.ArgumentParser(description="Lingzao API client for agent skills.") parser.add_argument("--base-url", help="Override Lingzao API base URL") parser.add_argument("--api-key", help="Override Lingzao API key") parser.add_argument("--timeout", type=int, default=DEFAULT_TIMEOUT) parser.add_argument( "--skill-base-url", default=os.environ.get("LINGZAO_SKILL_BASE_URL", DEFAULT_SKILL_BASE_URL), help="Lingzao Skill package base URL for version checks", )
subparsers = parser.add_subparsers(dest="command", required=True)
check_version_parser = subparsers.add_parser("check-version", help="Check whether the Lingzao skill has an update") check_version_parser.add_argument("--format", choices=["markdown", "json"], default="markdown")
doctor_parser = subparsers.add_parser("doctor", help="Validate config and API key without billing") doctor_parser.add_argument("--format", choices=["markdown", "json"], default="markdown")
search_notes_parser = subparsers.add_parser("search-notes", help="Search public content notes") search_notes_parser.add_argument("--platform", required=True) search_notes_parser.add_argument("--keyword", required=True) search_notes_parser.add_argument("--limit", type=int, default=20) search_notes_parser.add_argument("--cursor") search_notes_parser.add_argument( "--sort", choices=["general", "most_liked", "popularity_descending", "comment_descending", "collect_descending"], default="general", ) search_notes_parser.add_argument("--note-type", choices=["不限", "视频笔记", "图文笔记", "直播笔记"], default="不限") search_notes_parser.add_argument("--time-filter", choices=["不限", "一天内", "一周内", "半年内"], default="不限") search_notes_parser.add_argument("--format", choices=["markdown", "json"], default="markdown")
search_users_parser = subparsers.add_parser("search-users", help="Search public creators") search_users_parser.add_argument("--platform", required=True) search_users_parser.add_argument("--keyword", required=True) search_users_parser.add_argument("--limit", type=int, default=20) search_users_parser.add_argument("--cursor") search_users_parser.add_argument("--format", choices=["markdown", "json"], default="markdown")
user_info_parser = subparsers.add_parser("get-user-info", help="Get public creator profile info") user_info_parser.add_argument("--platform") user_info_parser.add_argument("--url") user_info_parser.add_argument("--user-id") user_info_parser.add_argument("--format", choices=["markdown", "json"], default="markdown")
user_notes_parser = subparsers.add_parser( "get-user-posted-notes", help="Get recent public notes from a creator profile", ) user_notes_parser.add_argument("--platform") user_notes_parser.add_argument("--url") user_notes_parser.add_argument("--user-id") user_notes_parser.add_argument("--limit", type=int, default=20) user_notes_parser.add_argument("--cursor") user_notes_parser.add_argument("--format", choices=["markdown", "json"], default="markdown")
analyze_user_profile_parser = subparsers.add_parser( "analyze-user-profile", help="Get deeper creator profile post data", ) analyze_user_profile_parser.add_argument("--platform") analyze_user_profile_parser.add_argument("--url") analyze_user_profile_parser.add_argument("--user-id") analyze_user_profile_parser.add_argument("--limit", type=int, default=20) analyze_user_profile_parser.add_argument("--force-new", action="store_true") analyze_user_profile_parser.add_argument("--format", choices=["markdown", "json"], default="markdown")
note_detail_parser = subparsers.add_parser("get-note-detail", help="Get one public note detail") note_detail_parser.add_argument("--platform") note_detail_parser.add_argument("--url") note_detail_parser.add_argument("--note-id") note_detail_parser.add_argument("--xhs-note-type", choices=["image", "video"]) note_detail_parser.add_argument("--content-type", choices=["video", "short"]) note_detail_parser.add_argument("--format", choices=["markdown", "json"], default="markdown")
note_comments_parser = subparsers.add_parser("get-note-comments", help="Get top-level comments for one public note") note_comments_parser.add_argument("--platform") note_comments_parser.add_argument("--url") note_comments_parser.add_argument("--note-id") note_comments_parser.add_argument("--cursor") note_comments_parser.add_argument("--limit", type=int, default=20) note_comments_parser.add_argument("--sort", choices=["latest", "most_liked"], default="latest") note_comments_parser.add_argument("--format", choices=["markdown", "json"], default="markdown")
article_detail_parser = subparsers.add_parser( "get-article-detail", help="Get one public WeChat official-account article detail", ) article_detail_parser.add_argument("--platform") article_detail_parser.add_argument("--url", required=True) article_detail_parser.add_argument("--output", help="Optional path to write the full article Markdown file") article_detail_parser.add_argument("--format", choices=["markdown", "json"], default="markdown")
article_stats_parser = subparsers.add_parser( "get-article-stats", help="Get public metrics for one WeChat official-account article", ) article_stats_parser.add_argument("--platform") article_stats_parser.add_argument("--url", required=True) article_stats_parser.add_argument("--format", choices=["markdown", "json"], default="markdown")
related_articles_parser = subparsers.add_parser( "get-related-articles", help="Get related public WeChat official-account articles", ) related_articles_parser.add_argument("--platform") related_articles_parser.add_argument("--url", required=True) related_articles_parser.add_argument("--format", choices=["markdown", "json"], default="markdown")
extract_video_copy_parser = subparsers.add_parser( "extract-video-copy", help="Extract spoken copy/transcript from short video links", ) extract_video_copy_parser.add_argument("--url", action="append", required=True) extract_video_copy_parser.add_argument("--format", choices=["markdown", "json"], default="markdown")
generate_image_parser = subparsers.add_parser( "generate-image", help="Generate creator image assets from a prompt", ) generate_image_parser.add_argument("--prompt", help="Image generation prompt text") generate_image_parser.add_argument( "--prompt-file", help="Read the image generation prompt from a UTF-8 text file. Useful for long or multiline prompts.", ) generate_image_parser.add_argument( "--prompt-stdin", action="store_true", help="Read the image generation prompt from stdin. Useful when shell quoting is unreliable.", ) generate_image_parser.add_argument( "--size", default="1024x1024", help="Image size, for example auto, 1024x1024, 1024x1536, 1536x2048, or 9:16.", ) generate_image_parser.add_argument("--count", type=int, default=1, help="Number of images to create, 1-5.") generate_image_parser.add_argument("--output-format", choices=["png", "jpeg", "webp"], default="png") generate_image_parser.add_argument( "--image", action="append", help="Optional reference image path. Repeat for multiple reference images.", ) generate_image_parser.add_argument("--output", help="Optional path to write the generated image file") generate_image_parser.add_argument("--format", choices=["markdown", "json"], default="markdown")
args = parser.parse_args()
if args.command == "check-version": payload = check_skill_version(args.skill_base_url, timeout=args.timeout) if args.format == "json": safe_print(json.dumps(payload, ensure_ascii=False, indent=2)) else: safe_print(render_version_check(payload)) return 0
validation_error = validate_args(args) if validation_error: safe_print(validation_error, file=sys.stderr) return 2
config = resolve_config(args)
try: if args.command == "doctor": payload = request_json(config, "GET", "/api/v1/me", timeout=args.timeout) elif args.command == "search-notes": payload = request_json( config, "POST", "/api/v1/research/search-notes", compact({ "platform": args.platform, "query": args.keyword, "limit": args.limit, "cursor": args.cursor, "sort": args.sort, "note_type": args.note_type, "time_filter": args.time_filter, }), timeout=args.timeout, ) elif args.command == "search-users": payload = request_json( config, "POST", "/api/v1/research/search-users", compact({ "platform": args.platform, "query": args.keyword, "limit": args.limit, "cursor": args.cursor, }), timeout=args.timeout, ) elif args.command == "get-user-info": payload = request_json( config, "POST", "/api/v1/research/get-user-info", compact({"platform": args.platform, "url": args.url, "user_id": args.user_id}), timeout=args.timeout, ) elif args.command == "get-user-posted-notes": payload = request_json( config, "POST", "/api/v1/research/get-user-posted-notes", compact({ "platform": getattr(args, "platform", None), "url": args.url, "user_id": getattr(args, "user_id", None), "limit": args.limit, "cursor": getattr(args, "cursor", None), }), timeout=args.timeout, ) elif args.command == "analyze-user-profile": payload = request_json( config, "POST", "/api/v1/research/analyze-user-profile", compact({ "platform": getattr(args, "platform", None), "url": args.url, "user_id": getattr(args, "user_id", None), "limit": args.limit, "force_new": args.force_new, }), timeout=args.timeout, ) elif args.command == "get-note-detail": payload = request_json( config, "POST", "/api/v1/research/get-note-detail", compact({ "platform": getattr(args, "platform", None), "url": args.url, "note_id": getattr(args, "note_id", None), "xhs_note_type": getattr(args, "xhs_note_type", None), "content_type": getattr(args, "content_type", None), }), timeout=args.timeout, ) elif args.command == "get-note-comments": payload = request_json( config, "POST", "/api/v1/research/get-note-comments", compact({ "platform": getattr(args, "platform", None), "url": args.url, "note_id": getattr(args, "note_id", None), "cursor": getattr(args, "cursor", None), "limit": getattr(args, "limit", 20), "sort": getattr(args, "sort", None), }), timeout=args.timeout, ) elif args.command == "get-article-detail": payload = request_json( config, "POST", "/api/v1/research/get-article-detail", compact({"platform": getattr(args, "platform", None), "url": args.url}), timeout=args.timeout, ) elif args.command == "get-article-stats": payload = request_json( config, "POST", "/api/v1/research/get-article-stats", compact({"platform": getattr(args, "platform", None), "url": args.url}), timeout=args.timeout, ) elif args.command == "get-related-articles": payload = request_json( config, "POST", "/api/v1/research/get-related-articles", compact({"platform": getattr(args, "platform", None), "url": args.url}), timeout=args.timeout, ) elif args.command == "extract-video-copy": urls = [url for url in (getattr(args, "url", None) or []) if url] body = {"url": urls[0]} if len(urls) == 1 else {"urls": urls} payload = request_json( config, "POST", "/api/v1/research/extract-video-copy", body, timeout=args.timeout, ) elif args.command == "generate-image": prompt = resolve_generate_image_prompt(args) body = { "prompt": prompt, "size": args.size, "output_format": args.output_format, "count": args.count, } image_paths = getattr(args, "image", None) or [] try: if image_paths: payload = request_multipart( config, "POST", "/api/v1/research/generate-image", body, image_paths, timeout=args.timeout, ) else: payload = request_json( config, "POST", "/api/v1/research/generate-image", body, timeout=args.timeout, ) except LingzaoApiError as error: payload = active_generate_image_batch_payload_from_error(error, requested_count=args.count) if not payload: raise data = as_dict(payload.get("data")) safe_print(f"检测到已有图片生成批次,继续轮询:{data.get('batch_id')}", file=sys.stderr) safe_print( "提示:这可能是重复提交恢复或已有任务保护;请继续轮询该 Batch。" "同提示词多张图请一次使用 --count N,不要循环重复 --count 1。", file=sys.stderr, ) payload = wait_for_generate_image_batch(config, payload, timeout=args.timeout) ensure_generate_image_success(payload) else: raise RuntimeError(f"Unsupported command: {args.command}") except LingzaoError as error: safe_print(str(error), file=sys.stderr) return 1
local_outputs: List[str] = [] local_article_output: Optional[str] = None try: if args.command == "generate-image" and getattr(args, "output", None): local_outputs = write_generated_images(payload, args.output) elif args.command == "get-article-detail" and getattr(args, "output", None): local_article_output = write_article_markdown(payload, args.output) except LingzaoError as error: safe_print(str(error), file=sys.stderr) return 1
if args.format == "json": safe_print(json.dumps(payload, ensure_ascii=False, indent=2)) else: if local_outputs: payload = {payload, "_local_output": local_outputs[0], "_local_outputs": local_outputs} if local_article_output: payload = {payload, "_local_article_output": local_article_output} safe_print(to_markdown(args.command, payload)) return 0
class LingzaoError(Exception): pass
class LingzaoApiError(LingzaoError): def __init__( self, message: str, *, status_code: Optional[int] = None, code: Optional[str] = None, error_id: Optional[str] = None, payload: Optional[dict] = None, ): super().__init__(message) self.status_code = status_code self.code = code self.error_id = error_id self.payload = payload or {}
def classify_youtube_detail_input(args: argparse.Namespace, url: str) -> str: if getattr(args, "note_id", None): return "video" if not url: return "invalid"
try: parsed = urllib.parse.urlparse(url) except ValueError: return "invalid"
hostname = (parsed.hostname or "").lower() path = parsed.path.rstrip("/") if hostname == "youtu.be" or hostname.endswith(".youtu.be"): return "video" if path.strip("/") else "invalid" if hostname != "youtube.com" and not hostname.endswith(".youtube.com"): return "invalid" if path == "/watch" and urllib.parse.parse_qs(parsed.query).get("v"): return "video" if path.startswith("/shorts/") and path[len("/shorts/") :]: return "short" if path.startswith(("/channel/", "/@", "/c/", "/user/")): return "profile" return "invalid"
def validate_args(args: argparse.Namespace) -> Optional[str]: platform = (getattr(args, "platform", None) or "").strip().lower() raw_url = getattr(args, "url", None) if isinstance(raw_url, list): url = " ".join(str(value) for value in raw_url).strip().lower() else: url = str(raw_url or "").strip().lower() is_youtube = platform in {"youtube", "yt"} or "youtube.com" in url or "youtu.be" in url is_tiktok = platform in {"tiktok", "tt"} or "tiktok.com" in url is_instagram = platform in {"instagram", "ig", "ins"} or "instagram.com" in url
if args.command in {"search-notes", "search-users"} and is_youtube and args.limit > 20: return f"YouTube {args.command} supports --limit 20 at most."
if args.command == "search-notes" and is_youtube: if args.sort != "general": return "YouTube search-notes supports only --sort general." if args.note_type not in {"不限", "视频笔记"}: return "YouTube search-notes supports only --note-type 不限 or 视频笔记." if args.time_filter not in {"不限", "一天内", "一周内"}: return "YouTube search-notes supports only --time-filter 不限, 一天内, or 一周内."
if args.command == "get-user-posted-notes" and is_youtube and args.limit > 20: return "YouTube get-user-posted-notes supports --limit 20 at most."
if args.command == "get-note-detail": content_type = getattr(args, "content_type", None) if is_youtube: input_kind = classify_youtube_detail_input(args, url) if input_kind == "profile": return ( "YouTube channel URLs are not content-detail inputs. " "Use get-user-info or get-user-posted-notes; use search-users first for @handle, /c/, or /user/ URLs." ) if input_kind == "invalid": return ( "YouTube get-note-detail accepts a video ID, watch?v= URL, youtu.be URL, or /shorts/ URL." ) if input_kind == "short" and content_type == "video": return "YouTube /shorts/ URLs only accept --content-type short." if input_kind == "video" and not content_type: return ( "YouTube video IDs, watch?v= URLs, and youtu.be URLs require " "--content-type video or --content-type short." ) elif content_type: return "--content-type is supported for YouTube get-note-detail only."
if args.command == "get-note-comments" and (args.limit < 1 or args.limit > 20): return "get-note-comments --limit must be between 1 and 20." if args.command == "get-note-comments" and not (is_tiktok or is_instagram or is_youtube) and args.limit != 20: return "Custom get-note-comments --limit is currently supported for TikTok, Instagram, or YouTube only."
if args.command == "generate-image": prompt_arg = getattr(args, "prompt", None) prompt_sources = sum([ prompt_arg is not None, bool(getattr(args, "prompt_file", None)), bool(getattr(args, "prompt_stdin", False)), ]) if prompt_sources == 0: return "generate-image requires one prompt source: --prompt, --prompt-file, or --prompt-stdin." if prompt_sources > 1: return "generate-image accepts only one prompt source. Use one of --prompt, --prompt-file, or --prompt-stdin." if prompt_arg is not None and not prompt_arg.strip(): return "generate-image prompt cannot be empty." count = getattr(args, "count", 1) if count < 1 or count > 5: return "generate-image --count must be between 1 and 5." if getattr(args, "format", "markdown") == "markdown" and not getattr(args, "output", None): return ( "generate-image markdown output requires --output so generated images are saved. " "Use --format json for structured automation data." )
if args.command == "get-article-detail" and getattr(args, "output", None): try: preflight_article_output_path(args.output) except LingzaoError as error: return str(error)
if args.command == "get-note-comments" and getattr(args, "sort", None) == "most_liked": if platform in {"douyin", "dy"} or "douyin.com" in url or "iesdouyin.com" in url: return ( "Douyin get-note-comments supports only --sort latest. " "Do not pass --sort most_liked for Douyin comments." ) if platform in {"tiktok", "tt"} or "tiktok.com" in url: return ( "TikTok get-note-comments supports only --sort latest (service-default order). " "Do not pass --sort most_liked for TikTok comments." ) if platform in {"instagram", "ig", "ins"} or "instagram.com" in url: return ( "Instagram get-note-comments supports only --sort latest. " "Do not pass --sort most_liked for Instagram comments." )
platform = (getattr(args, "platform", None) or "").strip().lower() raw_url = getattr(args, "url", None) url = raw_url.strip().lower() if isinstance(raw_url, str) else "" if platform in {"tiktok", "tt"} or "tiktok.com" in url: if args.command == "analyze-user-profile": return "TikTok analyze-user-profile is not available in V1; compose get-user-info and get-user-posted-notes." if args.command in {"search-notes", "search-users", "get-user-posted-notes", "get-note-comments"}: limit = getattr(args, "limit", 20) if limit < 1 or limit > 20: return f"TikTok {args.command} --limit must be between 1 and 20." if args.command == "search-notes": if getattr(args, "note_type", "不限") == "直播笔记": return "TikTok search-notes does not support --note-type 直播笔记." if getattr(args, "sort", "general") in {"comment_descending", "collect_descending"}: return "TikTok search-notes supports only general, most_liked, or popularity_descending sorting."
if platform in {"instagram", "ig", "ins"} or "instagram.com" in url: if args.command == "analyze-user-profile": return "Instagram analyze-user-profile is not available in V1; compose get-user-info and get-user-posted-notes only when both are needed." if args.command in {"search-notes", "search-users", "get-user-posted-notes", "get-note-comments"}: limit = getattr(args, "limit", 20) if limit < 1 or limit > 20: return f"Instagram {args.command} --limit must be between 1 and 20." if args.command == "search-notes": if getattr(args, "sort", "general") != "general": return "Instagram search-notes supports only --sort general." if getattr(args, "note_type", "不限") != "不限": return "Instagram search-notes supports only --note-type 不限." if getattr(args, "time_filter", "不限") != "不限": return "Instagram search-notes supports only --time-filter 不限." if args.command == "get-note-comments": note_id = str(getattr(args, "note_id", "") or "") if note_id.isdigit(): return "Instagram get-note-comments --note-id must be a public shortcode, not a decimal media ID; otherwise pass the canonical content URL."
return None
def resolve_generate_image_prompt(args: argparse.Namespace) -> str: if getattr(args, "prompt_file", None): path = Path(str(args.prompt_file)).expanduser() try: prompt = path.read_text(encoding="utf-8") except UnicodeDecodeError as error: raise LingzaoError("generate-image --prompt-file must be a UTF-8 text file.") from error except OSError as error: raise LingzaoError(f"generate-image --prompt-file could not be read: {path}") from error elif getattr(args, "prompt_stdin", False): try: prompt = sys.stdin.buffer.read().decode("utf-8") except UnicodeDecodeError as error: raise LingzaoError("generate-image --prompt-stdin must be UTF-8 text.") from error else: prompt = str(getattr(args, "prompt", "") or "")
if not prompt.strip(): raise LingzaoError("generate-image prompt cannot be empty.") return prompt
def check_skill_version(skill_base_url: str, timeout: int = DEFAULT_TIMEOUT) -> dict: local_version = read_local_version() remote_version = None error = None base_url = str(skill_base_url or DEFAULT_SKILL_BASE_URL).strip().rstrip("/") version_url = f"{base_url}/VERSION"
try: request = urllib.request.Request( version_url, headers={ "accept": "text/plain", "user-agent": "LingzaoSkill/1.0", }, method="GET", ) with urllib.request.urlopen(request, timeout=timeout) as response: remote_version = response.read().decode("utf-8").strip() except (OSError, UnicodeDecodeError, TimeoutError) as exc: error = str(exc)
update_available = ( bool(local_version and remote_version) and compare_versions(remote_version, local_version) > 0 ) return { "ok": error is None, "local_version": local_version, "remote_version": remote_version, "update_available": update_available, "version_url": version_url, "error": error, }
def read_local_version() -> str: try: return VERSION_FILE.read_text(encoding="utf-8").strip() except OSError: return "unknown"
def compare_versions(left: str, right: str) -> int: left_parts = version_parts(left) right_parts = version_parts(right) width = max(len(left_parts), len(right_parts)) left_parts.extend([0] (width - len(left_parts))) right_parts.extend([0] (width - len(right_parts))) if left_parts > right_parts: return 1 if left_parts < right_parts: return -1 return 0
def version_parts(value: str) -> List[int]: parts: List[int] = [] for raw_part in value.strip().lstrip("v").split("."): number = "" for char in raw_part: if char.isdigit(): number += char else: break parts.append(int(number or "0")) return parts
def resolve_config(args: argparse.Namespace) -> dict: saved = load_config() api_key = args.api_key or os.environ.get("LINGZAO_API_KEY") or saved.get("api_key") base_url = ( args.base_url or os.environ.get("LINGZAO_BASE_URL") or os.environ.get("LINGZAO_API_BASE_URL") or saved.get("base_url") )
if not api_key: raise LingzaoError( "Missing Lingzao API key. Lingzao Skill can be installed for free, " "but public-content lookup, deep research, and image generation require credits " "and an API key. " "Open https://lingzao.atian.vip for tutorials on setup, Agent usage, and " "self-media workflows; when you need lookup access, recharge/get your API key, " "then run setup or set LINGZAO_API_KEY." ) if not base_url: raise LingzaoError( "Missing Lingzao base URL. Open https://lingzao.atian.vip for the current " "web dashboard, tutorials, and API setup instructions, then run setup or " "set LINGZAO_BASE_URL." )
return {"api_key": str(api_key).strip(), "base_url": str(base_url).strip().rstrip("/")}
def load_config() -> dict: if not CONFIG_FILE.exists(): return {} try: with CONFIG_FILE.open("r", encoding="utf-8") as handle: return json.load(handle) except (OSError, json.JSONDecodeError): return {}
def request_json( config: dict, method: str, path: str, body: Optional[Dict[str, Any]] = None, timeout: int = DEFAULT_TIMEOUT, ) -> Dict[str, Any]: url = config["base_url"] + path data = None headers = { "accept": "application/json", "authorization": f"Bearer {config['api_key']}", } if body is not None: data = json.dumps(body, ensure_ascii=False).encode("utf-8") headers["content-type"] = "application/json"
request = urllib.request.Request(url, data=data, headers=headers, method=method) try: record_timeout_probe(method, path, timeout) with urllib.request.urlopen(request, timeout=timeout) as response: return parse_json_response(response.read()) except urllib.error.HTTPError as error: payload = parse_json_response(error.read()) raise build_lingzao_api_error(error.code, payload) from error except urllib.error.URLError as error: raise LingzaoError(f"Lingzao API network error: {error.reason}") from error except (TimeoutError, socket.timeout) as error: raise LingzaoError("Lingzao API request timed out.") from error
def request_multipart( config: dict, method: str, path: str, fields: Dict[str, Any], image_paths: List[str], timeout: int = DEFAULT_TIMEOUT, ) -> Dict[str, Any]: boundary = f"----LingzaoSkill{uuid.uuid4().hex}" data = encode_multipart_body(boundary, fields, image_paths) headers = { "accept": "application/json", "authorization": f"Bearer {config['api_key']}", "content-type": f"multipart/form-data; boundary={boundary}", } request = urllib.request.Request(config["base_url"] + path, data=data, headers=headers, method=method) try: record_timeout_probe(method, path, timeout) with urllib.request.urlopen(request, timeout=timeout) as response: return parse_json_response(response.read()) except urllib.error.HTTPError as error: payload = parse_json_response(error.read()) raise build_lingzao_api_error(error.code, payload) from error except urllib.error.URLError as error: raise LingzaoError(f"Lingzao API network error: {error.reason}") from error except (TimeoutError, socket.timeout) as error: raise LingzaoError("Lingzao API request timed out.") from error
def wait_for_generate_image_batch(config: dict, payload: dict, timeout: int = DEFAULT_TIMEOUT) -> dict: data = as_dict(payload.get("data")) batch_id = data.get("batch_id") if not isinstance(batch_id, str) or not batch_id: return payload
per_image_timeout = max(generate_image_poll_timeout(), timeout) batch_get_timeout = generate_image_batch_get_timeout(per_image_timeout) requested_count = max(1, generate_image_progress_signature(data)[0]) total_timeout = generate_image_total_poll_timeout(per_image_timeout, requested_count) deadline = time.time() + total_timeout current = payload last_progress: Optional[tuple[int, int, int, int]] = None while True: current_data = as_dict(current.get("data")) status = str(current_data.get("status") or "").lower() pending_count = to_positive_int(current_data.get("pending_count")) or 0 if status in {"completed", "failed"} or (status == "partial" and pending_count == 0): return current
blocked_codes = non_retryable_generate_image_pending_errors(current_data) if blocked_codes: if first_generated_image(current): return current raise LingzaoError(f"Image generation cannot continue: {', '.join(blocked_codes)}.")
progress = generate_image_progress_signature(current_data) if progress != last_progress: safe_print(format_generate_image_progress(progress), file=sys.stderr) last_progress = progress
remaining = deadline - time.time() if remaining <= 0: if first_generated_image(current): return current raise LingzaoError(generate_image_timeout_message(batch_id, total_timeout, current_data)) time.sleep(min(1.0, max(0.2, remaining))) remaining = deadline - time.time() if remaining <= 0: if first_generated_image(current): return current raise LingzaoError(generate_image_timeout_message(batch_id, total_timeout, current_data)) try: current = request_json( config, "GET", f"/api/v1/research/generate-image/batches/{batch_id}", timeout=batch_get_timeout, ) except LingzaoError as error: if is_lingzao_request_timeout(error) and first_generated_image(current): return current raise
def generate_image_poll_timeout() -> int: override = os.environ.get("LINGZAO_TEST_GENERATE_IMAGE_POLL_TIMEOUT") if override: try: parsed = int(override) if parsed > 0: return parsed except ValueError: pass return GENERATE_IMAGE_POLL_TIMEOUT
def generate_image_batch_get_timeout(per_image_timeout: int) -> int: return per_image_timeout + generate_image_download_timeout_buffer()
def generate_image_total_poll_timeout(per_image_timeout: int, requested_count: int) -> int: per_image_worker_timeout = per_image_timeout + generate_image_download_timeout_buffer() return per_image_worker_timeout * max(1, requested_count)
def generate_image_download_timeout_buffer() -> int: override = os.environ.get("LINGZAO_TEST_GENERATE_IMAGE_DOWNLOAD_TIMEOUT_BUFFER") if override is not None: try: parsed = int(override) if parsed >= 0: return parsed except ValueError: pass return GENERATE_IMAGE_DOWNLOAD_TIMEOUT_BUFFER
def active_generate_image_batch_payload_from_error(error: LingzaoApiError, requested_count: int) -> Optional[dict]: if error.code != "GENERATION_IN_PROGRESS": return None
error_payload = as_dict(as_dict(error.payload).get("error")) batch_id = first_non_empty_str(error_payload.get("active_batch_id"), error_payload.get("batch_id")) if not batch_id: return None
status = first_non_empty_str(error_payload.get("status")) or "queued" poll_url = first_non_empty_str(error_payload.get("poll_url")) or f"/api/v1/research/generate-image/batches/{batch_id}" poll_interval = to_positive_int(error_payload.get("recommended_poll_interval_seconds")) expires_at = first_non_empty_str(error_payload.get("expires_at")) active_count = to_positive_int(error_payload.get("requested_count")) or requested_count count = max(1, active_count)
return { "ok": True, "request_id": batch_id, "cost_credits": 0, "data": compact({ "type": "generate-image", "mode": "async", "batch_id": batch_id, "poll_url": poll_url, "recommended_poll_interval_seconds": poll_interval, "status": status, "expires_at": expires_at, "requested_count": count, "succeeded_count": 0, "failed_count": 0, "pending_count": count, "images": [{"index": index, "status": status} for index in range(count)], }), }
def is_lingzao_request_timeout(error: LingzaoError) -> bool: return str(error) == "Lingzao API request timed out."
def generate_image_timeout_message(batch_id: str, total_timeout: int, data: dict) -> str: errors = generate_image_item_error_summaries(data) suffix = f" ({', '.join(errors)})" if errors else "" return f"Image batch {batch_id} did not finish within {total_timeout} seconds{suffix}."
def public_error_label(code: Any) -> str: if not isinstance(code, str) or not code: return "" return PUBLIC_SERVICE_ERROR_LABELS.get(code, code)
def public_error_message(code: Optional[str], message: str) -> str: if code in PUBLIC_SERVICE_ERROR_LABELS: return PUBLIC_SERVICE_ERROR_LABELS[code] return message
def record_timeout_probe(method: str, path: str, timeout: int) -> None: probe_path = os.environ.get("LINGZAO_TEST_TIMEOUT_PROBE") if not probe_path: return try: with open(probe_path, "a", encoding="utf-8") as handle: handle.write(json.dumps({"method": method, "path": path, "timeout": timeout}, ensure_ascii=False) + "\n") except OSError: pass
def ensure_generate_image_success(payload: dict) -> None: data = as_dict(payload.get("data")) if data.get("type") != "generate-image" or first_generated_image(payload): return
status = str(data.get("status") or "").strip().lower() pending = to_non_negative_int(data.get("pending_count")) terminal = status in {"completed", "failed"} or (status == "partial" and pending == 0) if not terminal: return
errors = generate_image_item_error_summaries(data) suffix = f" ({', '.join(errors)})" if errors else "" raise LingzaoError(f"Image generation failed: no successful image was produced{suffix}.")
def non_retryable_generate_image_pending_errors(data: dict) -> List[str]: codes: List[str] = [] for item in as_list(data.get("images")): record = as_dict(item) status = str(record.get("status") or "").strip().lower() error_code = record.get("error_code") if status not in {"queued", "running"} or error_code != "INSUFFICIENT_CREDITS": continue if error_code not in codes: codes.append(error_code) return codes
def generate_image_item_error_summaries(data: dict) -> List[str]: errors: List[str] = [] for item in as_list(data.get("images")): record = as_dict(item) error_code = record.get("error_code") error_id = record.get("error_id") parts: List[str] = [] if isinstance(error_code, str) and error_code: parts.append(public_error_label(error_code)) if isinstance(error_id, str) and error_id: parts.append(f"error_id={error_id}") if not parts: continue summary = " ".join(parts) if summary not in errors: errors.append(summary) return errors
def generate_image_progress_signature(data: dict) -> tuple[int, int, int, int]: requested = to_non_negative_int(data.get("requested_count")) succeeded = to_non_negative_int(data.get("succeeded_count")) failed = to_non_negative_int(data.get("failed_count")) pending = to_non_negative_int(data.get("pending_count")) if requested <= 0: requested = max(1, succeeded + failed + pending) return (requested, succeeded, failed, pending)
def format_generate_image_progress(progress: tuple[int, int, int, int]) -> str: requested, succeeded, failed, pending = progress message = f"正在等待图片生成:{succeeded}/{requested} 已完成,{pending} 张仍在生成中" if failed > 0: message += f",{failed} 张失败" return message + "..."
def encode_multipart_body(boundary: str, fields: Dict[str, Any], image_paths: List[str]) -> bytes: chunks: List[bytes] = [] for key, value in fields.items(): chunks.extend( [ f"--{boundary}\r\n".encode("utf-8"), f'Content-Disposition: form-data; name="{key}"\r\n\r\n'.encode("utf-8"), f"{value}\r\n".encode("utf-8"), ] )
for image_path in image_paths: path = Path(image_path).expanduser() if not path.is_file(): raise LingzaoError(f"Reference image not found: {path}") mime_type = mimetypes.guess_type(path.name)[0] or "application/octet-stream" if mime_type not in {"image/png", "image/jpeg", "image/webp"}: raise LingzaoError("Reference images must be png, jpeg, or webp files.") image_bytes = path.read_bytes() chunks.extend( [ f"--{boundary}\r\n".encode("utf-8"), ( 'Content-Disposition: form-data; name="image"; ' f'filename="{escape_multipart_header(path.name)}"\r\n' ).encode("utf-8"), f"Content-Type: {mime_type}\r\n\r\n".encode("utf-8"), image_bytes, b"\r\n", ] )
chunks.append(f"--{boundary}--\r\n".encode("utf-8")) return b"".join(chunks)
def escape_multipart_header(value: str) -> str: return value.replace("\\", "\\\\").replace('"', '\\"').replace("\r", "").replace("\n", "")
def parse_json_response(raw: bytes) -> dict: if not raw: return {} try: value = json.loads(raw.decode("utf-8")) except json.JSONDecodeError as error: raise LingzaoError("Lingzao API returned invalid JSON.") from error if not isinstance(value, dict): raise LingzaoError("Lingzao API returned unexpected JSON.") return value
def extract_error_message(payload: dict) -> Optional[str]: error = payload.get("error") if isinstance(error, dict) and isinstance(error.get("message"), str): return error["message"] if isinstance(payload.get("message"), str): return payload["message"] return None
def extract_error_code(payload: dict) -> Optional[str]: error = payload.get("error") if isinstance(error, dict) and isinstance(error.get("code"), str): return error["code"] if isinstance(payload.get("code"), str): return payload["code"] return None
def extract_error_id(payload: dict) -> Optional[str]: error = payload.get("error") if isinstance(error, dict) and isinstance(error.get("error_id"), str): return error["error_id"] if isinstance(payload.get("error_id"), str): return payload["error_id"] return None
def extract_error_object(payload: dict) -> dict: error = payload.get("error") return error if isinstance(error, dict) else {}
def format_error_value(value: Any) -> Optional[str]: if isinstance(value, str) and value: return value if isinstance(value, bool): return "true" if value else "false" if isinstance(value, (int, float)): return str(value) if isinstance(value, list): items = [item for item in value if isinstance(item, str) and item] return ",".join(items) if items else None return None
def compact_error_json(value: Any, max_length: int = 180) -> Optional[str]: if not isinstance(value, (dict, list, str, int, float, bool)): return None text = json.dumps(value, ensure_ascii=False, separators=(",", ":")) return text if len(text) <= max_length else f"{text[:max_length]}..."
def first_error_example(error: dict, key: str) -> Optional[str]: examples = error.get("examples") if not isinstance(examples, dict): return None values = examples.get(key) if not isinstance(values, list) or not values: return None first = values[0] if not isinstance(first, dict): return compact_error_json(first) description = first.get("description") request = first.get("request") shape = first.get("shape") parts = [] if isinstance(description, str) and description: parts.append(description) compact_request = compact_error_json(request or shape) if compact_request: parts.append(compact_request) return " ".join(parts) if parts else None
def build_error_guidance(error: dict) -> str: fields = [ ("agent_action", error.get("agent_action")), ("detected_input", error.get("detected_input")), ("expected_input", error.get("expected_input")), ("suggested_capabilities", error.get("suggested_capabilities")), ("retryable", error.get("retryable")), ("billing_effect", error.get("billing_effect")), ] parts = [] for label, value in fields: formatted = format_error_value(value) if formatted: parts.append(f"{label}={formatted}") valid_example = first_error_example(error, "valid_inputs") if valid_example: parts.append(f"valid_example={valid_example}") invalid_example = first_error_example(error, "invalid_inputs") if invalid_example: parts.append(f"invalid_example={invalid_example}") return f" ({'; '.join(parts)})" if parts else ""
def build_lingzao_api_error(status_code: int, payload: dict) -> LingzaoApiError: code = extract_error_code(payload) message = public_error_message(code, extract_error_message(payload) or f"HTTP {status_code}") code_label = f" [{public_error_label(code)}]" if code and code not in PUBLIC_SERVICE_ERROR_LABELS else "" error_id = extract_error_id(payload) error_id_label = f" error_id={error_id}" if error_id else "" guidance = build_error_guidance(extract_error_object(payload)) return LingzaoApiError( f"Lingzao API error{code_label}{error_id_label}: {message}{guidance}", status_code=status_code, code=code, error_id=error_id, payload=payload, )
def first_non_empty_str(*values: Any) -> Optional[str]: for value in values: if isinstance(value, str) and value: return value return None
def compact(value: Dict[str, Any]) -> Dict[str, Any]: return {key: item for key, item in value.items() if item is not None}
def preflight_article_output_path(output_path: str) -> None: target = Path(output_path).expanduser() try: target.parent.mkdir(parents=True, exist_ok=True) except OSError as error: raise LingzaoError(f"Failed to prepare article output path: {target.parent}: {error}") from error
if target.exists() and target.is_dir(): raise LingzaoError(f"Article output path points to a directory: {target}")
try: with target.open("ab"): pass except OSError as error: raise LingzaoError(f"Article output path is not writable: {target}: {error}") from error
def write_article_markdown(payload: dict, output_path: str) -> str: document = article_markdown_document(payload) target = Path(output_path).expanduser() try: target.parent.mkdir(parents=True, exist_ok=True) except OSError as error: raise LingzaoError(f"Failed to prepare article output path: {target.parent}: {error}") from error
try: target.write_text(document, encoding="utf-8") except OSError as error: raise LingzaoError(f"Failed to write article output: {target}: {error}") from error return str(target.resolve())
def article_markdown_document(payload: dict) -> str: data = as_dict(payload.get("data")) article = as_dict(data.get("article")) title = str(article.get("title") or "未命名文章") content = str(article.get("content_text") or "").strip() lines = [ f"# {title}", "", f"- 链接: {article.get('url') or '-'}", f"- 公众号: {article.get('account_name') or '-'}", f"- 作者: {article.get('author') or '-'}", f"- 发布时间: {article.get('published_at') or '-'}", f"- 封面: {article.get('cover_url') or '-'}", f"- 摘要: {article.get('digest') or '-'}", "", "## 正文", "", content or "未返回正文文本。", ] return "\n".join(lines).strip() + "\n"
def write_generated_images(payload: dict, output_path: str) -> List[str]: records = generated_image_records(payload) if not records: raise LingzaoError("Lingzao API returned no generated image data.")
target = Path(output_path).expanduser() try: target.parent.mkdir(parents=True, exist_ok=True) except OSError as error: raise LingzaoError(f"Failed to prepare generated image output path: {target.parent}: {error}") from error
written_paths: List[str] = [] for record in records: image = as_dict(record.get("image")) image_bytes = decode_generated_image(image) image_target = generated_image_output_path( target, image, to_non_negative_int(record.get("index")), max(1, to_non_negative_int(record.get("total"))), ) try: image_target.write_bytes(image_bytes) except OSError as error: raise LingzaoError(f"Failed to write generated image output: {image_target}: {error}") from error written_paths.append(str(image_target)) return written_paths
def write_generated_image(payload: dict, output_path: str) -> str: paths = write_generated_images(payload, output_path) if not paths: raise LingzaoError("Lingzao API returned no generated image data.") return paths[0]
def decode_generated_image(image: dict) -> bytes: b64_json = image.get("b64_json") if not isinstance(b64_json, str) or not b64_json.strip(): raise LingzaoError("Lingzao API returned no generated image data.")
try: return base64.b64decode(b64_json, validate=True) except ValueError as error: raise LingzaoError("Lingzao API returned invalid image base64.") from error
def generated_image_output_path(target: Path, image: dict, index: int, total: int) -> Path: if total == 1: return target suffix = target.suffix or generated_image_extension(image) stem = target.stem if target.suffix else target.name return target.with_name(f"{stem}-{index + 1}{suffix}")
def generated_image_extension(image: dict) -> str: mime_type = image.get("mime_type") if isinstance(mime_type, str): if mime_type == "image/jpeg": return ".jpg" extension = mimetypes.guess_extension(mime_type) if extension: return extension return ".png"
def generated_images(payload: dict) -> List[dict]: return [as_dict(record.get("image")) for record in generated_image_records(payload)]
def generated_image_records(payload: dict) -> List[dict]: data = as_dict(payload.get("data")) items = as_list(data.get("images")) requested_count = to_non_negative_int(data.get("requested_count")) total = max(requested_count, len(items), 1) records: List[dict] = [] for fallback_index, item in enumerate(items): record = as_dict(item) image = as_dict(record.get("image")) if image: item_index = to_optional_non_negative_int(record.get("index")) records.append({ "image": image, "index": item_index if item_index is not None else fallback_index, "total": total, }) if records: return records
image = as_dict(data.get("image")) if image: return [{"image": image, "index": 0, "total": max(requested_count, 1)}] return []
def first_generated_image(payload: dict) -> dict: data = as_dict(payload.get("data")) image = as_dict(data.get("image")) if image: return image for item in as_list(data.get("images")): record = as_dict(item) image = as_dict(record.get("image")) if image: return image return {}
def to_markdown(command: str, payload: dict) -> str: if command == "doctor": return render_doctor(payload) rendered = None if command == "search-notes": rendered = render_search_notes(payload) elif command == "search-users": rendered = render_search_users(payload) elif command == "get-user-info": rendered = render_user_info(payload) elif command == "get-user-posted-notes": rendered = render_user_posted_notes(payload) elif command == "analyze-user-profile": rendered = render_analyze_user_profile(payload) elif command == "get-note-detail": rendered = render_note(payload) elif command == "get-note-comments": rendered = render_note_comments(payload) elif command == "get-article-detail": rendered = render_article_detail(payload) elif command == "get-article-stats": rendered = render_article_stats(payload) elif command == "get-related-articles": rendered = render_related_articles(payload) elif command == "extract-video-copy": rendered = render_extract_video_copy(payload) elif command == "generate-image": rendered = render_generate_image(payload) else: return "``json\n" + json.dumps(payload, ensure_ascii=False, indent=2) + "\n``"
footer = render_time_saved_footer(command, payload) if footer: return f"{rendered}\n\n{footer}" return rendered
def render_time_saved_footer(command: str, payload: dict) -> Optional[str]: if payload.get("ok") is not True: return None
minutes = estimate_time_saved_minutes(command, payload) if minutes is None or minutes <= 0: return None return f"本次灵造调用预计节省约 {minutes} 分钟手动搜索与整理时间。"
def estimate_time_saved_minutes(command: str, payload: dict) -> Optional[int]: if command in FIXED_TIME_SAVED_MINUTES: return FIXED_TIME_SAVED_MINUTES[command] if command == "analyze-user-profile": data = as_dict(payload.get("data")) page = as_dict(data.get("page")) limit = to_positive_int(page.get("limit")) if limit is None: limit = to_positive_int(page.get("returned_count")) if limit is None: limit = len(as_list(data.get("items"))) or 20 return 60 if limit <= 20 else 100 if command == "extract-video-copy": data = as_dict(payload.get("data")) total = 0 for item in as_list(data.get("items")): record = as_dict(item) status = str(record.get("status") or "").strip().lower() if status and status != "success": continue if not status and not record.get("content"): continue seconds = to_positive_int(record.get("duration_seconds")) or 0 video_minutes = (seconds + 59) // 60 total += max(8, video_minutes * 6) return total or None return None
def to_positive_int(value: Any) -> Optional[int]: if isinstance(value, bool): return None if isinstance(value, int) and value > 0: return value if isinstance(value, float) and value > 0: return int(value) if isinstance(value, str): try: parsed = int(float(value)) except ValueError: return None return parsed if parsed > 0 else None return None
def to_non_negative_int(value: Any) -> int: if isinstance(value, bool): return 0 if isinstance(value, int): return max(0, value) if isinstance(value, float): return max(0, int(value)) if isinstance(value, str): try: return max(0, int(float(value))) except ValueError: return 0 return 0
def to_optional_non_negative_int(value: Any) -> Optional[int]: if isinstance(value, bool): return None if isinstance(value, int): return value if value >= 0 else None if isinstance(value, float): parsed = int(value) return parsed if parsed >= 0 else None if isinstance(value, str): try: parsed = int(float(value)) except ValueError: return None return parsed if parsed >= 0 else None return None
def render_doctor(payload: dict) -> str: user = as_dict(payload.get("user")) api_key = as_dict(payload.get("api_key")) return "\n".join( [ "# Lingzao 连接检查", "", f"- 状态: {'正常' if payload.get('ok') else '异常'}", f"- API Key: {api_key.get('key_prefix', '-')}", f"- 用户: {render_user_identity(user)}", ] )
def render_search_notes(payload: dict) -> str: data = as_dict(payload.get("data")) items = as_list(data.get("items")) page = as_dict(data.get("page")) lines = [ f"# {platform_label(data)}关键词线索:{data.get('query') or '-'}", "", f"- 下一页 Cursor: {page.get('next_cursor') or '-'}", "", ] for index, item in enumerate(items, start=1): note = as_dict(item) lines.extend(render_note_item(index, note)) if not items: lines.append("未返回公开内容线索。") lines.extend(render_opaque_page(data)) return "\n".join(lines).strip()
def render_search_users(payload: dict) -> str: data = as_dict(payload.get("data")) users = as_list(data.get("users")) page = as_dict(data.get("page")) platform = str(data.get("platform") or "").lower() lines = [ f"# {platform_label(data)}创作者搜索:{data.get('query') or '-'}", "", f"- 下一页 Cursor: {page.get('next_cursor') or '-'}", "", ] for index, item in enumerate(users, start=1): profile = as_dict(item) stats = as_dict(profile.get("stats")) red_id = profile.get("red_id") or profile.get("redId") handle = profile.get("handle") bio = profile.get("bio") or profile.get("bio_preview") item_lines = [ f"### {index}. {profile.get('name') or profile.get('id') or '-'}", f"- 用户ID: {profile.get('id') or '-'}", f"- 主页链接: {profile_public_url(platform, profile)}", ] if red_id: item_lines.append(f"- RED ID: {red_id}") if handle: item_lines.append(f"- Handle: {handle}") item_lines.extend([ f"- 简介: {bio or '-'}", f"- 粉丝: {value_or_dash(stats.get('fans'))}", f"- 获赞: {value_or_dash(stats.get('liked'))}", ]) lines.extend(item_lines) lines.append("") if not users: lines.append("未返回公开创作者候选。") lines.extend(render_opaque_page(data)) return "\n".join(lines).strip()
def render_user_info(payload: dict) -> str: data = as_dict(payload.get("data")) profile = as_dict(data.get("profile")) stats = as_dict(profile.get("stats")) platform = str(data.get("platform") or "").lower() bio = profile.get("bio") or profile.get("bio_preview") lines = [ f"# {platform_label(data)}主页资料:{profile.get('name') or profile.get('id') or '-'}", "", f"- 主页链接: {profile_public_url(platform, profile)}", f"- 简介: {bio or '-'}", f"- 粉丝: {value_or_dash(stats.get('fans'))}", f"- 获赞: {value_or_dash(stats.get('liked'))}", f"- 收藏: {value_or_dash(stats.get('collected'))}", ] return "\n".join(lines).strip()
def render_user_posted_notes(payload: dict) -> str: data = as_dict(payload.get("data")) notes = as_list(data.get("items")) page = as_dict(data.get("page")) lines = [ f"# {platform_label(data)}主页近期公开内容", "", f"- 下一页 Cursor: {page.get('next_cursor') or '-'}", "", "## 近期笔记", ] for index, item in enumerate(notes, start=1): lines.extend(render_note_item(index, as_dict(item))) if not notes: lines.append("未返回近期公开笔记。") lines.extend(render_opaque_page(data)) platform = str(data.get("platform") or "").lower() if platform == "douyin": followup = ( "如需继续查看主页作品结构、商业信号、内容热词和相似创作者,可继续请求 analyze-user-profile;" "如需抖音单条视频口播文案,使用 extract-video-copy;我不会自动调用。" ) elif platform == "youtube": followup = "YouTube V1 不支持 analyze-user-profile;如需查看某条公开视频详情或评论,显式调用对应单条工具;我不会自动调用。" elif platform == "tiktok": followup = "TikTok V1 仅支持基础主页资料和近期公开内容;如需完整主页资料,可继续请求 get-user-info;我不会自动调用。" else: followup = "如需继续查看主页作品正文、中文字幕、封面和商单/商品信号,可继续请求 analyze-user-profile;我不会自动调用。" lines.extend( [ "", "基础主页分析通常不需要再调用 get-user-info;只有用户明确需要简介、粉丝数、关注数、总获赞、总收藏或总笔记数时才补充调用。", followup, ] ) return "\n".join(lines).strip()
def render_note_comments(payload: dict) -> str: data = as_dict(payload.get("data")) comments = as_list(data.get("comments")) page = as_dict(data.get("page")) lines = [ f"# {platform_label(data)}内容评论:{data.get('note_id') or '-'}", "", f"- 排序: {data.get('sort') or 'latest'}", f"- 返回: {page.get('returned_count', len(comments))}", f"- 总数: {page.get('total') if page.get('total') is not None else '-'}", f"- 还有下一页: {page.get('has_more', False)}", f"- 下一页 Cursor: {page.get('next_cursor') or '-'}", "", ] for index, item in enumerate(comments, start=1): comment = as_dict(item) author = as_dict(comment.get("author")) lines.extend( [ f"### {index}. {author.get('name') or author.get('id') or '-'}", f"- 评论: {comment.get('text') or '-'}", f"- 点赞: {comment.get('liked_count', '-')}", f"- 回复数: {comment.get('reply_count', '-')}", f"- 时间: {comment.get('created_at') or '-'}", "", ] ) if not comments: lines.append("未返回公开评论。") return "\n".join(lines).strip()
def render_analyze_user_profile(payload: dict) -> str: data = as_dict(payload.get("data")) user = as_dict(data.get("user")) page = as_dict(data.get("page")) items = as_list(data.get("items")) artifacts = as_dict(data.get("artifacts")) subtitle_markdown = as_dict(artifacts.get("subtitle_markdown")) lines = [ f"# {platform_label(data)}深度主页数据:{user.get('nickname') or user.get('id') or '-'}", "", f"- 主页链接: {profile_public_url(str(data.get('platform') or '').lower(), user)}", f"- 返回: {page.get('returned_count', len(items))} / {page.get('limit', '-')}", f"- 下一页 Cursor: {page.get('next_cursor') or '-'}", "", ] lines.extend(render_success_notice(payload)) lines.extend(render_data_warnings(data)) if subtitle_markdown.get("status") == "ready" and subtitle_markdown.get("url"): url = str(subtitle_markdown.get("url")) lines.extend( [ "## 完整字幕 Markdown", "", "- 字段路径: data.artifacts.subtitle_markdown.url", "- 注意: 这是整个 analyze-user-profile 的顶层 artifact,不是 items[] 里的单条字幕链接。", f"- URL: {url}", "- 下载到临时文件后再做深度分析:", "", "``bash", f"curl -L {shell_quote(url)} -o /tmp/lingzao-profile-subtitles.md", "``", "", ] ) elif subtitle_markdown.get("status") == "unsupported": lines.extend( [ "## 主页字幕", "", "- 状态: unsupported", "- 当前平台主页解析不提取字幕;如需口播文案,请对具体视频使用 extract-video-copy。", "", ] ) elif subtitle_markdown: lines.extend( [ "## 完整字幕 Markdown", "", f"- 状态: {subtitle_markdown.get('status') or '-'}", "", ] ) lines.extend(render_profile_insights(data)) for index, item in enumerate(items, start=1): note = as_dict(item) metrics = as_dict(note.get("metrics")) media = as_dict(note.get("media")) text = as_dict(note.get("text")) subtitle = as_dict(text.get("subtitle")) monetization = as_dict(note.get("monetization")) collaboration = as_dict(monetization.get("collaboration")) commerce_note = as_dict(monetization.get("commerce_note")) plain_text = str(subtitle.get("plain_text_preview") or subtitle.get("plain_text") or "") preview = plain_text[:240] + ("..." if len(plain_text) > 240 else "") item_lines = [ f"### {index}. {note.get('title') or note.get('id') or '未命名笔记'}", f"- 链接: {note.get('url') or '-'}", f"- 类型: {note.get('type') or '-'}", f"- 详情参数: xhs_note_type={note.get('xhs_note_type')}" if note.get("xhs_note_type") else "- 详情参数: -", f"- 指标: 点赞 {metrics.get('liked', 0)} / 收藏 {metrics.get('collected', 0)} / 评论 {metrics.get('commented', 0)} / 分享 {metrics.get('shared', 0)}", f"- 封面: {media.get('cover_large_url') or '-'}", f"- 时长: {media.get('video_duration_seconds') or '-'} 秒", ] if str(data.get("platform") or "").lower() == "douyin": item_lines.append("- 商业信号: 当前平台未提供") else: item_lines.append( f"- 商单: {collaboration.get('likely_collaboration', False)} / 商品笔记: {commerce_note.get('likely_goods_note', False)}" ) item_lines.extend( [ f"- 字幕: {subtitle.get('status') or '-'} / {subtitle.get('language') or '-'} / truncated={subtitle.get('truncated', False)}", f"- 摘要: {text.get('desc') or '-'}", f"- 字幕预览: {preview or '-'}", "", ] ) lines.extend(item_lines) if not items: lines.append("未返回深度主页数据。") return "\n".join(lines).strip()
def render_success_notice(payload: dict) -> List[str]: message = str(payload.get("message") or "").strip() if not message and payload.get("deduped") is True: message = "已复用近期同参结果,本次未扣费;如需重新分析,请使用 --force-new。" if not message: return [] message = message.replace("请传 force_new=true", "请使用 --force-new") return [f"> {message}", ""]
def render_data_warnings(data: dict) -> List[str]: warnings = as_list(data.get("warnings")) partial_data = data.get("partial_data") is True messages: List[str] = [] for item in warnings: warning = as_dict(item) message = str(warning.get("message") or "").strip() if message: messages.append(message) if not messages and partial_data: messages.append("部分主页洞察暂不可用;不要把缺失洞察解读为没有数据。") if not messages: return []
lines = ["## 数据提示", ""] for message in messages: lines.append(f"- {message}") lines.append("") return lines
def render_profile_insights(data: dict) -> List[str]: insights = as_dict(data.get("profile_insights")) if not insights: return []
hot_keywords = as_dict(insights.get("content_hot_keywords")) hot_keyword_items = as_list(hot_keywords.get("items")) similar_creators = as_dict(insights.get("similar_creators")) similar_creator_items = as_list(similar_creators.get("items")) if not hot_keywords and not similar_creators: return []
lines = ["## 主页洞察", ""] if hot_keywords: hot_keyword_status = str(hot_keywords.get("status") or "-") lines.append(f"- 内容热词: {hot_keyword_status} / {len(hot_keyword_items)}") if hot_keyword_status == "unavailable": lines.append(" - 暂不可用;主页作品数据仍可使用,不要解读为没有热词数据。") for item in hot_keyword_items[:8]: keyword = as_dict(item) details = [ f"score={value_or_dash(keyword.get('score'))}", f"rank={value_or_dash(keyword.get('rank'))}", f"category={value_or_dash(keyword.get('category'))}", ] lines.append(f" - {keyword.get('text') or '-'} ({', '.join(details)})") lines.append("")
if similar_creators: similar_creator_status = str(similar_creators.get("status") or "-") lines.append(f"- 相似创作者: {similar_creator_status} / {len(similar_creator_items)}") if similar_creator_status == "unavailable": lines.append(" - 暂不可用;主页作品数据仍可使用,不要解读为没有相似创作者。") for item in similar_creator_items[:5]: creator = as_dict(item) tags = as_list(creator.get("tags")) reasons = as_list(creator.get("recommend_reasons")) lines.append( " - " + f"{creator.get('name') or creator.get('id') or '-'}" + f" / 粉丝 {value_or_dash(creator.get('fans'))}" + f" / 预期播放 {value_or_dash(creator.get('expected_play_count'))}" + f" / 相似度 {value_or_dash(creator.get('similarity'))}" + f" / 标签 {', '.join(str(tag) for tag in tags) if tags else '-'}" + f" / 推荐原因 {', '.join(str(reason) for reason in reasons) if reasons else '-'}" ) lines.append("")
return lines
def value_or_dash(value: Any) -> str: if value is None or value == "": return "-" return str(value)
def shell_quote(value: str) -> str: return "'" + value.replace("'", "'\"'\"'") + "'"
def render_note(payload: dict) -> str: data = as_dict(payload.get("data")) note = as_dict(data.get("item")) lines = [ f"# {platform_label(data)}内容:{note.get('title') or note.get('id') or '-'}", "", ] lines.extend(render_note_item(1, note, include_index=False)) return "\n".join(lines).strip()
def render_article_detail(payload: dict) -> str: data = as_dict(payload.get("data")) article = as_dict(data.get("article")) title = article.get("title") or "未命名文章" local_article_output = payload.get("_local_article_output") if isinstance(local_article_output, str) and local_article_output: summary = article.get("digest") or article_text_preview(str(article.get("content_text") or ""), limit=240) lines = [ f"# {platform_label(data)}文章:{title}", "", f"- 文件: {local_article_output}", f"- 摘要: {summary or '-'}", ] return "\n".join(lines).strip()
lines = [ f"# {platform_label(data)}文章:{title}", "", f"- 链接: {article.get('url') or '-'}", f"- 公众号: {article.get('account_name') or '-'}", f"- 作者: {article.get('author') or '-'}", f"- 发布时间: {article.get('published_at') or '-'}", f"- 封面: {article.get('cover_url') or '-'}", f"- 摘要: {article.get('digest') or '-'}", "", "## 正文预览", "", article_text_preview(str(article.get("content_text") or "")), ] return "\n".join(lines).strip()
def render_article_stats(payload: dict) -> str: data = as_dict(payload.get("data")) metrics = as_dict(data.get("metrics")) lines = [ f"# {platform_label(data)}文章数据", "", f"- 链接: {data.get('article_url') or '-'}", f"- 阅读: {metrics.get('read_count', '-')}", f"- 点赞: {metrics.get('like_count', '-')}", f"- 在看: {metrics.get('wow_count', '-')}", f"- 分享: {metrics.get('share_count', '-')}", f"- 收藏: {metrics.get('collect_count', '-')}", f"- 评论: {metrics.get('comment_count', '-')}", f"- 星标: {metrics.get('star_count', '-')}", ] return "\n".join(lines).strip()
def render_related_articles(payload: dict) -> str: data = as_dict(payload.get("data")) page = as_dict(data.get("page")) articles = as_list(data.get("articles")) lines = [ f"# {platform_label(data)}相关文章", "", f"- 原文链接: {data.get('article_url') or '-'}", f"- 返回: {page.get('returned_count', len(articles))}", f"- 总数: {page.get('total') if page.get('total') is not None else '-'}", "", ] for index, item in enumerate(articles, start=1): article = as_dict(item) lines.extend( [ f"### {index}. {article.get('title') or '未命名文章'}", f"- 链接: {article.get('url') or '-'}", f"- 公众号: {article.get('account_name') or '-'}", f"- 发布时间: {article.get('published_at') or '-'}", f"- 摘要: {article.get('digest') or '-'}", "", ] ) if not articles: lines.append("未返回相关文章。") return "\n".join(lines).strip()
def article_text_preview(value: str, limit: int = 1200) -> str: text = " ".join(value.split()) if not text: return "未返回正文文本。" if len(text) <= limit: return text return text[:limit].rstrip() + "..."
def render_extract_video_copy(payload: dict) -> str: data = as_dict(payload.get("data")) batch = as_dict(data.get("batch")) items = as_list(data.get("items")) lines = [ "# 短视频文案提取", "", f"- Batch ID: {batch.get('batch_id', '-')}", f"- 成功: {batch.get('success_count', 0)} / {batch.get('total_count', len(items))}", "", ] for index, item in enumerate(items, start=1): record = as_dict(item) error_code = record.get("error_code") error_code_label = public_error_label(error_code) or "-" error_message = public_error_message(error_code if isinstance(error_code, str) else None, str(record.get("message") or "-")) lines.extend( [ f"### {index}. {record.get('title') or record.get('origin_url') or '-'}", f"- 平台: {record.get('platform') or '-'}", f"- 链接: {record.get('origin_url') or record.get('input_url') or '-'}", f"- 状态: {record.get('status') or '-'}", f"- 错误: {error_code_label} / {error_message}", f"- 时长: {record.get('duration_seconds') or '-'} 秒", "", str(record.get("content") or "未返回文案。"), "", ] ) if not items: lines.append("未返回文案提取结果。") return "\n".join(lines).strip()
def render_generate_image(payload: dict) -> str: data = as_dict(payload.get("data")) image = first_generated_image(payload) local_output = payload.get("_local_output") local_outputs = [item for item in as_list(payload.get("_local_outputs")) if isinstance(item, str) and item] blocked_codes = non_retryable_generate_image_pending_errors(data) item_errors = generate_image_item_error_summaries(data) lines = [ "# 图片生成结果", "", f"- Batch: {data.get('batch_id') or '-'}", f"- 状态: {data.get('status') or '-'}", f"- 数量: {data.get('succeeded_count', 0)} 成功 / {data.get('requested_count', 1)} 请求", f"- 尺寸: {data.get('size') or '-'}", f"- 格式: {data.get('output_format') or '-'}", f"- 参考图: {data.get('reference_image_count') if data.get('reference_image_count') is not None else 0}", f"- MIME: {image.get('mime_type') or '-'}", f"- SHA256: {image.get('sha256') or '-'}", ] if len(local_outputs) > 1: lines.append("- 文件:") lines.extend(f" - {path}" for path in local_outputs) elif local_outputs: lines.append(f"- 文件: {local_outputs[0]}") elif local_output: lines.append(f"- 文件: {local_output}") else: lines.append("- 文件: 未保存;下次可加 --output /tmp/lingzao-image.png") if blocked_codes: lines.append(f"- 未完成: {', '.join(blocked_codes)}") if item_errors: lines.append(f"- 错误: {', '.join(item_errors)}") lines.extend( [ "", "## Agent 提示", "", "- 短时间重复提交完全相同的请求会返回同一个 Batch;完全相同包括 prompt/size/output_format/count 以及参考图。看到同一个 Batch 时请继续轮询,不要再次 POST 同一请求。", "- 同提示词需要多张图时,一次调用 generate-image --count N(N=2..5),不要循环多次 --count 1;需要不同概念时请改写 prompt。", ] ) lines.append("") return "\n".join(lines).strip()
def render_version_check(payload: dict) -> str: local_version = payload.get("local_version") or "unknown" remote_version = payload.get("remote_version") or "unknown" if payload.get("update_available"): return "\n".join( [ "# Lingzao Skill 更新可用", "", f"- 当前版本: {local_version}", f"- 最新版本: {remote_version}", "", "必须先更新到最新版本,再继续处理用户的灵造搜索、主页分析、字幕或文案提取请求。", "请告诉用户:灵造技能有新版本,我需要先更新后再继续。", "", "更新时执行:", "", "``bash", "npx skills add https://assets-tian.midao.site/skills/lingzao --skill lingzao -g --copy", "``", "", "更新会保留 ~/.lingzao/config.json 里的 API 配置,通常不需要重新设置 API key。", "", "如果更新后 ~/.lingzao/bin/lingzao 不存在或命令入口失效,再运行 setup.sh --skip-doctor 修复命令入口。", ] ) if payload.get("ok"): return "\n".join( [ "# Lingzao Skill 已是最新", "", f"- 当前版本: {local_version}", ] ) return "\n".join( [ "# Lingzao Skill 版本检查未完成", "", f"- 当前版本: {local_version}", "- 可以继续使用灵造技能。", ] )
def platform_label(data: dict) -> str: platform = str(data.get("platform") or "xhs").lower() if platform == "xhs": return "小红书" if platform == "douyin": return "抖音" if platform == "youtube": return "YouTube" if platform == "tiktok": return "TikTok" if platform == "wechat_mp": return "微信公众号" return platform
def render_note_item(index: int, note: dict, include_index: bool = True) -> List[str]: metrics = as_dict(note.get("metrics")) author = as_dict(note.get("author")) title_prefix = f"{index}. " if include_index else "" tags = as_list(note.get("tags")) lines = [ f"### {title_prefix}{note.get('title') or note.get('id') or '未命名笔记'}", f"- 链接: {note.get('url') or '-'}", f"- 作者: {author.get('name') or author.get('id') or '-'}", f"- 类型: {note.get('content_type') or note.get('type') or '-'}", ] if note.get("xhs_note_type"): lines.append(f"- 详情参数: xhs_note_type={note.get('xhs_note_type')}") lines.extend( [ f"- 指标: 点赞 {metrics.get('liked', 0)} / 收藏 {metrics.get('collected', 0)} / 评论 {metrics.get('commented', 0)} / 分享 {metrics.get('shared', 0)}", f"- 标签: {', '.join(str(tag) for tag in tags) if tags else '-'}", f"- 摘要: {note.get('summary') or '-'}", "", ] ) return lines
def render_user_identity(user: dict) -> str: if user.get("name"): return str(user["name"]) if user.get("email"): return mask_email(str(user["email"])) if user.get("id"): return str(user["id"]) return "-"
def profile_public_url(platform: str, profile: dict) -> str: for key in ("url", "profile_url", "homepage_url", "share_url", "link"): value = profile.get(key) if not value: continue text = str(value) if text.startswith(("https://", "http://")): return text profile_id = profile.get("id") or profile.get("user_id") or profile.get("userid") if platform in {"xhs", "xiaohongshu", ""} and profile_id: return f"https://www.xiaohongshu.com/user/profile/{quote_path_segment(str(profile_id))}" if platform in {"douyin", "dy"} and profile_id: return f"https://www.douyin.com/user/{quote_path_segment(str(profile_id))}" if platform in {"youtube", "yt"} and profile_id: return f"https://www.youtube.com/channel/{quote_path_segment(str(profile_id))}" return "-"
def render_opaque_page(data: dict) -> List[str]: page = as_dict(data.get("page")) if not page: return [] return [ "", f"- 返回: {page.get('returned_count', '-')}", f"- 还有下一页: {page.get('has_more', False)}", f"- 下一页 Cursor: {page.get('next_cursor') or '-'}", ]
def quote_path_segment(value: str) -> str: return urllib.parse.quote(value, safe="")
def mask_email(value: str) -> str: if "@" not in value: return value[:2] + "" if len(value) > 2 else "" local, domain = value.split("@", 1) if not local: return "@" + domain return local[:1] + "@" + domain
def as_dict(value: Any) -> dict: return value if isinstance(value, dict) else {}
def as_list(value: Any) -> list: return value if isinstance(value, list) else []
if __name__ == "__main__": raise SystemExit(main()) PK@!X2Ir scripts/setup.sh#!/usr/bin/env bash set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" ROOT_DIR="$(cd "$SCRIPT_DIR/.." && pwd)" PYTHON_BIN="${PYTHON_BIN:-python3}" WRAPPER_PATH="$HOME/.lingzao/bin/lingzao" API_KEY="" BASE_URL="" SKIP_DOCTOR="false"
while [[ $# -gt 0 ]]; do case "$1" in --api-key) API_KEY="${2:-}" shift 2 ;; --base-url) BASE_URL="${2:-}" shift 2 ;; --skip-doctor) SKIP_DOCTOR="true" shift ;; -h|--help) cat <<'EOF' Usage: bash scripts/setup.sh [--api-key lgz_xxx] [--base-url https://your-domain] [--skip-doctor]
Config is saved to ~/.lingzao/config.json with 0600 permissions. Environment variables LINGZAO_API_KEY and LINGZAO_BASE_URL override saved config. The command wrapper is installed to ~/.lingzao/bin/lingzao. EOF exit 0 ;; *) echo "Unknown option: $1" >&2 exit 1 ;; esac done
"$PYTHON_BIN" - <<'PY' import sys
if sys.version_info < (3, 8): raise SystemExit("Lingzao skill requires Python 3.8 or newer.") PY
CONFIG_ARGS=() if [[ -n "$API_KEY" ]]; then CONFIG_ARGS+=(--api-key "$API_KEY") fi if [[ -n "$BASE_URL" ]]; then CONFIG_ARGS+=(--base-url "$BASE_URL") fi
if [[ ${#CONFIG_ARGS[@]} -gt 0 ]]; then "$PYTHON_BIN" "$ROOT_DIR/scripts/configure.py" "${CONFIG_ARGS[@]}" else "$PYTHON_BIN" "$ROOT_DIR/scripts/configure.py" fi
mkdir -p "$(dirname "$WRAPPER_PATH")" ROOT_DIR_ESCAPED="$(printf '%q' "$ROOT_DIR")" cat > "$WRAPPER_PATH" <<EOF #!/usr/bin/env bash set -euo pipefail
ROOT_DIR=$ROOT_DIR_ESCAPED PYTHON_BIN="\${PYTHON_BIN:-python3}" exec "\$PYTHON_BIN" "\$ROOT_DIR/scripts/lingzao_client.py" "\$@" EOF chmod +x "$WRAPPER_PATH" echo "Lingzao command installed to $WRAPPER_PATH"
if [[ "$SKIP_DOCTOR" != "true" ]]; then "$WRAPPER_PATH" doctor fi PK@!Xj����SKILL.md--- name: lingzao description: 灵造是给 WorkBuddy、OpenClaw、Codex 等 Agent 使用的小红书、抖音、TikTok、Instagram 与 YouTube 创作者研究及自媒体运营 Skill。安装免费,可先做选题、标题、封面、账号诊断、发布检查和复盘;查询公开内容、评论、短视频文案、公众号文章数据或生成图片时需要灵造积分和 API Key。 ---
灵造:跨平台创作者研究与自媒体运营 Skill
灵造是一个主 Skill,不需要拆成标题、封面、账号诊断、图片生成等多个 Skill。 安装后,WorkBuddy、OpenClaw、Codex 等 Agent 会先把你的问题路由到合适的 创作者运营 playbook;只有当你需要查询公开内容、读取评论、提取短视频文案、 查看公众号文章数据或生成图片时,才需要灵造积分和 API Key。
从这里开始
| 你现在想做 | 可以直接这样问 Agent |
|---|---|
| 找内容方向 | “用灵造帮我围绕这个关键词做小红书、抖音、TikTok、Instagram 或 YouTube 选题,给我 10 个可发方向。” |
| 找对标账号 | “帮我找这个赛道值得学习的对标账号,并说明每个账号适合学什么。” |
| 拆一条笔记或视频 | “分析这条内容为什么有效,拆成标题、封面、结构、评论需求和可复用模板。” |
| 改标题和封面 | “基于我的草稿,给我 3 个最强标题和 5 个小红书封面方向。” |
| 做发布前检查 | “发布前帮我检查标题、封面、前 3 行、关键词和用户点击理由。” |
| 做发布后复盘 | “根据这条内容的数据和评论,帮我判断下次要调整什么。” |
| 做每周内容包 | “用灵造把我这一周的素材整理成 5 个母题,并分发成小红书、公众号、播客和短口播。” |
| 做图片素材 | “先帮我设计封面/配图方向;如果需要生成图片,再确认积分后调用图片生成。” |
| 保存长结果 | “把这份分析整理成 Word、网页预览或知识库 Markdown 版本。” |
免费能做什么
不配置 API Key 时,灵造仍然可以作为创作者运营路由和 playbook 使用。适合:
- 判断账号定位、赛道难度、内容主线和商业路径。
- 设计小红书标题、封面方向、发布关键词和图文结构。
- 改写草稿、拆解用户已经提供的内容材料、做发布前检查。
- 根据用户提供的数据截图或复盘信息,输出下一步实验建议。
- 把用户提供的一周素材整理成 5 个母题,并规划小红书、公众号、播客、
短口播、社群和知识库分发。
- 把长分析整理成 Word、网页预览或知识库 Markdown 结构。
什么时候需要 API Key 和积分
当 Agent 需要让灵造服务实际查询或生成内容时,需要到 <https://lingzao.atian.vip> 配置积分和 API Key,包括:
- 搜索小红书、抖音、TikTok、Instagram 或 YouTube 公开内容和公开创作者;用结果辅助关键词/选题扩展。
- 查看创作者主页、近期公开内容、主页深度分析和对标账号证据。
- 打开小红书、抖音、TikTok、Instagram 或 YouTube 单条公开内容详情,读取一级公开评论。
- 打开公众号公开文章详情,查看公开文章数据,扩展相关文章。
- 提取公开短视频口播文案、字幕或 transcript。
- 根据提示词和参考图生成创作者封面、配图或海报素材。
每次付费查询前,先确认任务范围和预计积分消耗。默认首轮控制在 5 次以内的付费 查询,或不超过 100 credits;如果预计超过 100 credits,先列出查询计划和积分 估算再让用户确认。没有用户明确确认时,不要跨过 200 credits,不要把多个深度 查询、评论翻页、批量账号分析或图片生成静默合并成一次请求。
调用公开数据工具前
- 小红书、抖音、TikTok、Instagram 或 YouTube 内容链接:看内容用详情工具,看评论用评论工具,不要当主页链接。
- 小红书、抖音、TikTok、Instagram 或 YouTube 主页链接:普通主页查看或基础主页分析先用
get-user-posted-notes;只有用户明确要粉丝数、简介、关注数、总获赞等主页资料时 才用 get-user-info;深度主页分析看 analyze-user-profile。
- 用户只给昵称、账号名、抖音号或数字 ID 时,不要自己拼 URL;先用
search-users 找创作者,再用返回的主页链接或 ID 调主页工具。
- 抖音主页工具需要可用的主页 URL 或
search-users返回的MS4w...形式 ID;
视频短链适合 extract-video-copy,不适合主页分析。
- YouTube 主页工具只接受
search-users返回的 channel ID 或/channel/UC...
URL;不要把 @handle、/c/ 或 /user/ 直接传给主页工具,也不要自动解析。
- TikTok 主页工具接受 canonical
https://www.tiktok.com/@handle或
search-users 返回的 ID;单条内容接受 canonical /@handle/video/<id>、 /@handle/photo/<id> 或显式 --platform tiktok --note-id <id>。不要传 vm.tiktok.com/vt.tiktok.com 短链或裸 @handle。
- TikTok V1 不支持
analyze-user-profile。需要主页资料和近期内容时,按需分别调用
get-user-info 与 get-user-posted-notes,不要隐藏组合调用。
- Instagram 主页工具接受 canonical
https://www.instagram.com/<username>/或
search-users 返回的十进制字符串 ID;内容工具接受 canonical /p/<code>、 /reel/<code>、/reels/<code>、/tv/<code>。评论命令的裸 --note-id 是 shortcode,不是十进制 media ID。Instagram V1 不支持 analyze-user-profile, 不要把主页资料与近期内容隐藏组合调用。
- 如果 API 返回
agent_action、suggested_capabilities或expected_input,
先按这些字段改调工具;仍不确定时问用户要主页链接或笔记/视频链接。
常见问题
我没有 API Key,还能用吗? 可以。先用灵造做选题判断、标题封面、账号诊断、草稿修改、发布检查和复盘。 等需要查公开内容、评论、短视频文案、公众号文章数据或生成图片时,再配置 API Key。
为什么 SkillHub 里显示需要 API Key? 因为灵造包含付费公开内容查询和图片生成能力。安装主 Skill 免费,但深度查询和 生成动作需要积分,这是为了让 Agent 明确付费边界。
WorkBuddy 用户应该怎么用? 优先安装这一个 lingzao 主 Skill。装好后直接把任务说给 WorkBuddy,例如 “帮我找对标账号”“帮我拆这条笔记”“帮我做发布前检查”。需要查公开数据时, 再按灵造网页教程配置 API Key。
灵造能保证爆款、涨粉或变现吗? 不能。灵造只做公开内容研究、运营判断和工作流辅助。输出用于帮助你做判断和 复盘,不是保证结果,也不能用于复制他人内容。
网络或服务失败怎么办? 先保留当前问题和链接,不要重复扩大查询范围。检查 doctor、API Key、余额和 网络状态;图片生成或短视频文案提取这类异步任务可能需要等待轮询完成。 如果灵造返回服务暂时不可用或响应超时,只用固定话术告诉用户:“灵造服务暂时 不可用,请稍后重试。”如果返回了 error_id,可以附上 error_id,方便后续排查。 不要额外展开。
Agent Playbooks
For higher-level creator strategy tasks, use the playbooks in <skill_root>/playbooks/ before answering. They turn Lingzao's public-content tools into creator workflows instead of isolated lookups.
Use these playbooks when relevant:
lingzao-progressive-interaction-map.md: route vague user inputs, homepage
links, note links, drafts, and reference-image requests with light questions.
search-credit-notice.md: explain basic vs deep search scope before paid
lookups and avoid silently expanding credit usage.
copy-paste-prompt-scope-boundary.md: when users ask how to prompt Lingzao,
or paste broad requests such as finding benchmark accounts, one-stop content, cover/image generation, post-publish review, Brief/sponsored content, or cross-platform distribution, rewrite the request into a scoped copy-paste prompt with quantity, time range, quality gate, depth boundary, stop condition, and next step.
atian-creator-judgment-framework.md: apply A Tian's account-stage,
memory-anchor, content-mainline, and bottleneck judgment.
creator-case-general-analysis-framework.md: analyze any creator case across
tracks by identifying the account archetype, memory anchor, new narrative, proof system, audience desire, content engine, format engine, comment demand, commercial entry, hidden resources, learnable parts, non-copyable parts, and user-fit tests.
account-report-evidence-visual-contract.md: apply this evidence and
deliverable contract to formal own-account diagnosis, comparable-account breakdown, same-stage peer diagnosis, and creator distillation reports. It requires one-screen conclusions, public-data/sample boundaries, direct account/note links, real cover audit, viral asset reuse, account-evolution evidence, no fake backend metrics, and Word/HTML/Feishu/knowledge-base packaging when the user asks for a formal report.
zero-beginner-onboarding-gate.md: use before normal topic search or
benchmark discovery when a user says they know nothing about self-media, wants to start Xiaohongshu from zero, or does not know what to post. Give the minimum Xiaohongshu cognition, ask one compact five-signal intake question, then deliver 3 possible directions, 1 recommended 7-day test, and the first minimum publishable note instead of sending them to a course.
beginner-account-start-and-topic-radar.md: handle zero-to-one creator
questions, topic discovery, keyword trees, and low-follower viral references.
keyword-insight-report-template.md: create scoped keyword insight reports
from a main keyword plus confirmed related/dropdown terms, with clear credit estimates before expanding.
keyword-to-publishable-content-package.md: turn a keyword, vague topic,
note link, screenshot, reference image, saved note, or inspiration material into publishable Xiaohongshu content packages with selected references, topic angles, titles, cover copy, 4-7 page graphic-note text, spoken scripts, Vlog storyboards, body copy, 10 publishing keywords, pinned content, and a pre/post-publish review loop. When users say "一条龙", "直接出内容", "把这个拆成 内容给我发", or "从灵感素材到选题到稿子", produce a minimum usable package first instead of stopping at clarification.
brand-brief-to-content-workflow.md: turn an advertising, brand cooperation,
campaign, product, or content Brief into creator content. Use it when users say "拆 Brief", "品牌 Brief 发来了", "这个商单怎么写", or "Brief 进去后帮我出 选题/标题/封面/正文". It extracts brand goals, required points, forbidden claims, audience, creator fit, and deliverables, then searches recent public references when confirmed, chooses content angles, produces Xiaohongshu graphic-note/spoken/Vlog packages, and checks brand-delivery/compliance risk.
mother-content-cross-platform-distribution.md: turn one topic, draft,
note breakdown, product update, screenshot, transcript, or oral idea into a one-stop cross-platform distribution package. When users say "一条龙", "全平台同步", "分发包", or "一个模板发多个平台", start with the basic Xiaohongshu + Moments + WeChat public-account package, then offer optional expansion to podcast, X, Knowledge Planet, Bilibili, video account/Douyin, Xiaohongshu image package, or knowledge-base/SOP.
weekly-content-motherpack-distributor.md: turn one week of creator
materials into a weekly content update package. When users say "每周内容更新包", "周更内容包", "下周发什么", "整理这一周素材", or "帮我做 5 个母题", first compress the week into 5 mother topics, park weak ideas in a debt pool, then distribute the strongest topics to Xiaohongshu, WeChat public account, podcast/short scripts, community posts, and knowledge-base packaging with delivery statuses, image readiness, review gates, and folder/Word/HTML packaging options.
pre-publish-readiness-check.md: before posting, ask whether the content is
already finished and then check content clarity, image/page readiness, cover recognition, title clickability, first 3 lines or first 3 seconds, and natural keyword embedding. It should call the Xiaohongshu compliance risk gate before final publishable copy is returned.
xhs-platform-management-risk-baseline.md: apply the management-level
Xiaohongshu baseline before content operations, commercial copy, Brand Briefs, cover/image generation, pinned content, and post-publish advice. The default principle is public value first, product name later, and no diversion action; use Xiaohongshu's official community norms as the floor for contact, link, QR-code, and off-platform diversion risks.
xhs-content-compliance-risk-gate.md: before producing Xiaohongshu-facing
copy, scan and rewrite risky wording around off-platform diversion, WeChat or private-contact guidance, incentivized comment interaction, exaggerated guarantees, and sensitive category claims. Use it for titles, cover copy, body/caption, page text, scripts, pinned comments, keywords, Briefs, one-stop packages, and Xiaohongshu sections of cross-platform packages.
audience-persona-fit-check.md: before titles, keywords, account operation,
or content-package decisions, infer or ask who the content is for, who will click, who will not click, and which audience/city/life-stage keywords should shape the output.
xhs-title-design-check.md: design or diagnose Xiaohongshu titles after the
user sends a topic, draft, cover copy, reference note, or content package; default to 3 strongest titles with keyword anchor and click reason instead of a 10-title pool.
xhs-profile-bio-design.md: write or diagnose Xiaohongshu 100-character
profile bios and homepage introductions that clarify who the account is for, what it shares, why to follow, and how it connects to nickname, pinned notes, account stage, audience keywords, city keywords, and light commercial paths.
benchmark-account-discovery-quality-gate.md: find or judge benchmark
accounts with a default quality gate: still updating, recent high-performing works, track/audience fit, stage fit, account-level proof, follower-range fit, and clear learnable parts; stale accounts should be marked as historical references, not main benchmarks. Accounts with only around 100 followers and a few hundred total likes should not be called benchmark accounts for ordinary users; label them as single-note samples or reject them unless the user explicitly asks for seed-account observation. User-facing results should show direct creator profile links and the specific recent high-interaction works. Keep the returned users[].id available for follow-up profile commands, but do not derive Xiaohongshu IDs from RED ID bios. The first discovery round should return up to 3 strong starter accounts, not 10-20 accounts; expand to 5 or more only after the user confirms follower range, stage, city, audience, format, or asks for more. Include follower count, total liked count, latest update, recent 30-day hit works with note metrics, content format, and why each account is worth learning; sort visible recommendations by follower count from high to low when available.
self-account-peer-horizontal-diagnosis.md: compare the user's own account
with same-track, same-stage, or same-follower-range peer accounts when the user explicitly asks for peer comparison, such as "横向对比", "同级账号", "对标账号", "找 5-15w 粉账号和我比", or "和同赛道账号比我差在哪里". Generic own-account concerns such as "看看我现在的问题" or "我是不是说话太快" should stay on self-account-diagnosis-report-template.md unless the user also asks to compare against peers. It combines own-account diagnosis, active benchmark selection, peer-account tables, title/cover/opening/speech/content-system comparison, real cover audit, viral asset reuse comparison, top gaps, 30-day adjustment plans, evidence links, and a human next-step loop.
single-note-breakdown-workflow.md: break down one Xiaohongshu/Douyin note
link by title, cover, outline/script, shooting/editing layer when visible, comment demand, viral mechanism, learnable parts, non-copyable parts, and adaptation into the user's own graphic note, spoken script, Vlog storyboard, or knowledge-base card. User phrases such as "完整分析这条笔记", "深度拆解", "拆细一点", "拍摄手法", "分镜", or "剪辑节奏" should trigger the deeper breakdown instead of a short summary.
publishing-keyword-design-check.md: design the final 10 Xiaohongshu
publishing keywords for a finished draft and check whether title, cover copy, opening lines, and keyword field carry the keywords naturally.
track-difficulty-judgment-library.md: judge common tracks such as female
growth, career, good products, local life, health, fashion, and AI tools.
monetization-path-judgment-library.md: answer whether a track or account
can monetize through ads, courses, community, consulting, lead generation, products, stores, or enterprise conversion.
self-account-diagnosis-report-template.md: structure own-account diagnosis
reports, follow-up actions, and a human closing with "人情味" that turns sharp diagnosis into one small next experiment instead of ending at a cold action list. Own-account diagnosis should also include a share-worthy conclusion card, action advice, psychological reassurance, public sample boundaries, real cover audit, viral asset reuse, and direct evidence links in formal reports.
comparable-account-breakdown-report-template.md: decide whether another
account is worth learning from, what can be learned, what cannot be copied, which real cover/title/content assets are repeatable, and how to adapt them into the user's own version without copying the creator's identity or assets.
draft-rewrite-and-benchmark-workflow.md: rewrite drafts, adapt viral
formulas, extract benchmark-copy templates into structure/style/slot frameworks, fill the user's own content into those frameworks, and review multiple content ideas without only polishing sentences.
reference-image-graphic-note-workflow.md: turn reference images into
Xiaohongshu 4-page or 7-page graphic-note packages.
visual-generation-and-cover-workflow.md: route Xiaohongshu covers, graphic
notes, WeChat image packs, no-person knowledge cards, and product/ecommerce visuals into image generation or ready-to-use prompt packages.
travel-handdrawn-map-visual-workflow.md: create Xiaohongshu handdrawn
travel maps, food maps, city-walk maps, illustrated route maps, and check-in order images. Use it when users want a city/destination route image such as "长沙美食地图", "贵州旅游地图", "一天从早吃到晚", "5 天游路线", or "打卡路线图".
image-generation-execution-workflow.md: when image generation is available,
turn the visual route into actual images, run a visual-director quality gate, and repair ugly/crowded/generic generations instead of leaving ordinary users with prompt-only drafts.
image-generation-agent-integration-guide.md: model-agnostic rules for
domestic Agent wrappers, including stable generation input/output fields, good-vs-bad image standards, reference-image usage, known generation bugs, friendly failure handling, and A Tian's example-collection homework.
visual-reference-style-library.md: classify A Tian's curated visual
reference groups into travel/food covers, WeChat article images, AI-person infographics, Lingzao no-person knowledge cards, product conversion images, face-led keyword video covers, interaction prompt covers, text-dense screenshot graphic notes, room-as-identity lifestyle covers, and handdrawn travel/food route maps.
post-publish-data-review-workflow.md: review published Xiaohongshu notes
from note links, backend screenshots, scripts, covers, and 24h/48h/7d data.
content-knowledge-base-workflow.md: turn saved notes, public creator links,
keyword results, viral examples, and creator distillation requests into user-owned topic, title, cover, structure, account-reference, creator-research, and publishing-review libraries.
retention-and-follow-up-loop.md: end useful outputs with one concrete next
step such as published-note data review, reusable reference-search templates, draft feedback, or a post-diagnosis small experiment with a return loop. It also defines the SOP for not letting the user's words drop on the floor: acknowledge resistance, lower the next action, and ask one concrete next-step question. Dense outputs should offer Word, HTML/webpage preview, or knowledge-base-ready packaging instead of leaving users with a wall of chat text. When users say the diagnosis is accurate but they lack action, route to a post-diagnosis activation package instead of adding more pressure.
product-judgment-and-feedback-loop.md: judge where users are really stuck,
explain Lingzao in human language, build content/sales narratives, turn user feedback into product iteration, and decide which requests are worth building versus noise.
xhs-operation-task-tree.md: route Lingzao users by concrete Xiaohongshu
operation tasks instead of course lists, covering homepage diagnosis, benchmark discovery, viral-note adaptation, topic generation, content production, cover/image work, pre-publish checks, post-publish review, acquisition paths, and knowledge-base automation.
Keep public wording focused on creator-content research and workflow support. Do not promise viral growth, guaranteed monetization, full monitoring, bulk data export, or copying another creator's content.
Before Returning Xiaohongshu Copy
Before returning any final Xiaohongshu-facing title, cover copy, page text, body/caption, publishing keywords, pinned comment, comment guidance, spoken script, Vlog storyboard, Brand Brief deliverable, one-stop package, or Xiaohongshu section of a cross-platform package, run playbooks/xhs-platform-management-risk-baseline.md first, then playbooks/xhs-content-compliance-risk-gate.md.
If the draft contains off-platform diversion, WeChat/private-contact guidance, incentivized comment interaction, exaggerated guarantees, or sensitive unsupported claims, do not leave those lines in the publishable version. Show a short risk note and rewrite them into a safer Xiaohongshu version. Never promise platform approval; say the rewrite lowers risk.
For commercial or product-related Xiaohongshu outputs, keep the order:
- public value first
- product or brand name after the reader benefit is clear
- no off-platform diversion action in the publishable Xiaohongshu copy
Install And Paid Capability Entry
Lingzao is installed as one free main Skill. Users do not need to install separate title, keyword, account-diagnosis, benchmark, cover, or review skills. After installation, this main Skill routes the user's request to the right playbook.
There are two user acquisition paths:
- Community/course users:
- They may already have A Tian's course, install link, payment steps, and
API Key setup instructions.
- Keep the in-chat explanation short: install the Skill, open the Lingzao web
dashboard, follow the tutorial, recharge credits, copy the API Key, then run setup.
- Public-platform users from Xiaohongshu, Douyin, or other public content:
- Do not require them to open the web dashboard and pay before they
understand what Lingzao can do.
- Let them install the free main Skill first.
- Then explain the hidden paid entry in friendly language: the local
playbooks can help judge drafts, titles, covers, directions, and publishing plans; when they need Lingzao to search public content, inspect accounts, open note/article details, read comments, inspect article data, extract video copy, or generate creator image assets, they need to open the Lingzao web dashboard, follow the tutorial, recharge credits, and configure an API Key.
The web dashboard is not only a payment page. Present it as the user's learning and setup hub:
- learn how to install and configure Lingzao
- learn how to ask Agent better questions instead of waiting in a group chat
- learn how to use Skill workflows for self-media operation
- learn account diagnosis, benchmark breakdown, title/keyword, pre-publish, and
post-publish review workflows
- recharge credits and get the API Key when they need public-content lookup or
image generation
Use this wording when a user has installed the Skill but has not configured an API Key yet:
你已经装好灵造 Skill 了。安装本身是免费的,它会先帮你判断你现在是在找方向、拆账号、写内容、做封面、配关键词,还是复盘数据。 如果你要继续查小红书、抖音、TikTok、Instagram、YouTube 或公众号公开内容、找对标账号、看账号主页、打开内容或文章详情、看评论区、查看公众号文章数据、提取短视频文案或生成创作者图片素材,就需要到灵造网页版开通积分并配置 API Key。 你可以打开 https://lingzao.atian.vip 看安装教程和使用教程,里面也会教你怎么用 Agent 做自媒体运营、怎么问问题、怎么用这些 Skill。需要查公开内容或生成图片的时候,再在网页里充值/获取 API Key,配置好以后回来继续问,我会接着刚才的问题往下做。
Do not frame payment as a penalty. Frame it as:
- free install = get the workflow brain and routing layer
- web dashboard = tutorial, usage examples, self-media operation lessons, and
API Key setup
- paid credits = unlock public-content lookup, image generation, and deeper
research actions
Knowledge sync handoff:
- After a useful Lingzao research result or diagnosis report, do not sync it
automatically. Ask first: 要不要把这份结果同步到你的知识库?可以选择 ima / Obsidian / 飞书 / 暂不同步。
- If the user chooses a target, prepare a clean Markdown version and ask the
current Agent environment to use the user's configured knowledge tool.
- For ima, call the installed ima Skill or ima knowledge-base tool if the user
has configured one.
- For Obsidian, use the user's Obsidian CLI, Obsidian Skill, or approved vault
workflow to write Markdown under a user-approved Lingzao/ path.
- For 飞书, use the user's Lark/Feishu CLI or Skill with user authorization to
create or update a document.
- Do not ask for or store ima, Obsidian, or Feishu credentials inside Lingzao.
Synchronized content should contain only the user-approved report, public links, and useful conclusions; leave out credentials and details the user does not need.
Profile workflow:
- If the user asks for a creator homepage or a basic homepage analysis, use
get-user-posted-notesby default. It returns recent posts and enough author/post data for a basic read. - If the user sends a Xiaohongshu short link such as
xhslink.com/m/..., or a
copied share sentence such as @... 查看Ta的主页>> https://xhslink.com/m/..., extract the short link, normalize bare links to https://..., and read the surrounding words before choosing a command. Do not classify the short link by path alone. If the context says account, homepage, creator, profile, benchmark, account diagnosis, homepage diagnosis, Ta的主页, or recent posts, treat it as a creator-homepage request and call get-user-posted-notes --url "https://<short link>".
- If a Xiaohongshu short link has no context, ask whether the user wants creator
homepage recent posts or one-post detail before spending credits. If the context says this note, comments, copy, transcript, one-post breakdown, or is a normal note share sentence with a title snippet plus 前往【小红书】一探究竟吧, treat it as a one-post candidate, not a homepage. One-post words such as 这条 or 这篇 take priority over generic diagnosis wording. Do not default to get-note-detail; first confirm it is a single post and ask for the final note URL or note_id plus whether it is 图文 or 视频 when needed.
- Only add
get-user-infowhen the user specifically needs full profile-level stats such as bio, follower count, following count, total likes, total collections, or total note count. - Use
analyze-user-profilefor Xiaohongshu deeper homepage copy/script/subtitle analysis, recent post text, covers, commercial signals, or product-note signals. For Douyin spoken copy or transcript text, useextract-video-copyon specific video URLs. - YouTube V1 does not support
analyze-user-profile. Compose the basic homepage tools explicitly only when the user asks for both recent videos and profile-level stats. - Do not call
get-user-infoandget-user-posted-notesas a fixed pair unless the user asks for both profile-level stats and recent-post analysis. - Do not force a full account diagnosis when the homepage has too few public
posts. Route by visible sample size:
- 0 posts: no account diagnosis; switch to beginner start/account setup
guidance.
- 1-2 posts: homepage first impression plus single-post feedback only.
- 3-5 posts: starter-account mini diagnosis.
- 6-9 posts: light account analysis.
- 10+ posts: standard account analysis can be offered.
- 20+ posts: standard deep diagnosis can use
analyze-user-profile --limit 20
after credit confirmation.
- 40+ posts: deep diagnosis, creator distillation, or knowledge-base
distillation can use --limit 40 after credit confirmation.
Post drill-down workflow:
- Xiaohongshu list-style commands (
search-notes,get-user-posted-notes,
analyze-user-profile) return xhs_note_type on each note item when Lingzao can identify whether it is 图文 or 视频.
- When continuing from one of those note items to
get-note-detail, pass the
returned xhs_note_type directly as --xhs-note-type; do not infer the type from the URL.
- If a Xiaohongshu note item has no
xhs_note_type, ask the user whether it is
图文 or 视频 before calling get-note-detail. get-note-comments can still be called without this type.
- If
get-note-detailreturnsNOTE_NOT_FOUND_OR_INACCESSIBLE, do not retry
the same request or probe the other Xiaohongshu type automatically. Go back to the source list/homepage result and reuse its xhs_note_type, or ask the user for the correct type or a public URL.
Setup
Resolve this SKILL.md directory as <skill_root>, then run setup once:
bash "<skill_root>/scripts/setup.sh" --base-url "https://your-lingzao-domain.com"
Environment variables override saved config:
export LINGZAO_API_KEY="lgz_xxx"
export LINGZAO_BASE_URL="https://your-lingzao-domain.com"
Check the connection:
~/.lingzao/bin/lingzao doctor
Before using Lingzao commands, check whether the skill has an update:
~/.lingzao/bin/lingzao check-version
If an update is available, stop the current Lingzao operation and update the skill first. Do not continue using an outdated Lingzao Skill for search, profile, subtitle, or extraction work.
To update the skill, rerun the installer. For npx skills, try:
npx skills add https://assets-tian.midao.site/skills/lingzao --skill lingzao -g --copy
Updating keeps the saved API config in ~/.lingzao/config.json; no API key setup is needed again.
If ~/.lingzao/bin/lingzao is missing or points to the wrong directory, repair the command wrapper:
bash ~/.agents/skills/lingzao/scripts/setup.sh --skip-doctor
If ~/.agents/skills/lingzao does not exist, find the directory that contains lingzao's SKILL.md, then run scripts/setup.sh --skip-doctor from that directory.
Before Calling
Before running a command with meaningful filters, ask the user for the relevant parameters if they did not already specify them.
- Track the paid commands you run for the current user request. Stop before the
cumulative scope exceeds the confirmed plan, 5 paid lookups, or 100 credits. Ask for explicit confirmation before continuing.
- If a planned search, benchmark, keyword report, comment review, transcript
extraction, profile analysis, or image-generation task may exceed 200 credits, show the exact planned actions and estimated credits first. Do not start until the user confirms that larger budget.
- For broad creator or benchmark-account searches (
search-users, "找对标账号",
"找参考博主", "找同赛道账号"), do not start with a wide search. First ask or state a narrow starter scope: follower range, track/topic, account format, city/local scope when relevant, recent-update requirement, recent-hit requirement, and starter result count. Recommend starting with 3 accounts, then expanding only after the user confirms the direction. This protects the user's credits and avoids returning 100-follower seed accounts or huge mature accounts when the user asked for a specific stage.
- If the user asks how to write prompts for Lingzao or gives a broad copy-paste
request, use copy-paste-prompt-scope-boundary.md first. Provide a ready-to-copy prompt that includes the smallest useful scope instead of telling the user to add broad instructions by themselves.
- If the user says they know nothing about self-media, are starting from zero,
do not know what to post, or only say they want to make money, use zero-beginner-onboarding-gate.md before any search. Do not call paid lookup first. Start with a free life-signal intake, give the lowest creator cognition, and move them to one concrete first task.
- For
search-notes, ask for sorting, note type, and time range before calling:
sort can be general, most_liked, popularity_descending, comment_descending, or collect_descending; note type can be 不限, 视频笔记, 图文笔记, or 直播笔记; time range can be 不限, 一天内, 一周内, or 半年内.
- Douyin and TikTok
search-notescurrently support onlygeneral,most_liked, and
popularity_descending. Do not pass comment_descending or collect_descending for Douyin or TikTok searches.
- Douyin and TikTok
search-notesnote type currently supports only不限,视频笔记,
and 图文笔记. Do not pass 直播笔记 for Douyin or TikTok searches.
- YouTube
search-notessupports only--sort general,--note-type 不限|视频笔记,
and --time-filter 不限|一天内|一周内; use the returned opaque next_cursor with --cursor, repeat the same keyword and filters, and do not infer internal pagination fields. Changing a filter invalidates the cursor without charge.
- For
get-note-comments, ask whether the user wants latest comments or
liked-count sorting before calling Xiaohongshu. Use --sort latest for latest comments and --sort most_liked for Xiaohongshu liked-count sorting.
- Douyin, TikTok, and Instagram comments currently support only
latest;
TikTok uses the service default order. Do not ask for or pass --sort most_liked on these platforms.
- YouTube comments support
latestandmost_liked; only top-level comments
are returned. Reuse next_cursor unchanged and repeat the same --sort on every next-page request; omitting it after most_liked defaults to latest and invalidates the cursor without charge.
- Instagram
search-notessupports only--sort general,--note-type 不限,
and --time-filter 不限. Do not silently drop unsupported filters.
- Instagram profile, posted-note, and detail results may include public avatar,
cover, carousel-image, and video URLs from the current response. Current search-notes evidence supports image/reel identity, canonical URL, author identity, and author avatar only, so do not expect it to supplement text, metrics, or content media. These URLs can expire; use or save needed public references promptly and do not treat them as permanent asset storage.
- For TikTok and Instagram
search-notes,search-users,
get-user-posted-notes, and get-note-comments, pass the returned data.page.next_cursor unchanged with --cursor to fetch one next page. Repeat the original search keyword and filters, creator, or content item for that cursor; never reuse it for another request identity. Never parse the opaque cursor or hide multi-page fanout. TikTok cursors created before Skill 0.1.92 and Instagram cursors created before Skill 0.1.93 are invalid: discard them and restart from the first page. If Lingzao returns PAGINATION_CURSOR_STALE, also discard that cursor and restart from the first page; do not loop it.
- Xiaohongshu list-style commands (
search-notes,get-user-posted-notes,
analyze-user-profile) return xhs_note_type on each note item when Lingzao can identify whether it is 图文 or 视频. When continuing from one of those note items to get-note-detail, pass the returned value directly as --xhs-note-type; do not infer the type from the URL. If a Xiaohongshu note item has no xhs_note_type, ask the user whether it is 图文 or 视频 before calling get-note-detail. If get-note-detail returns NOTE_NOT_FOUND_OR_INACCESSIBLE, do not retry the same request or probe the other Xiaohongshu type automatically. get-note-comments can still be called without this type.
- If the user explicitly says to use defaults, proceed with the documented
defaults instead of asking again.
After a successful research command, tell the user the estimated time saved shown in the CLI Markdown output. If you called multiple Lingzao research commands for one user request, summarize the total once. Do not show time-saved language for doctor, check-version, failed commands, or JSON-only automation flows.
Commands
Search Notes
~/.lingzao/bin/lingzao search-notes --platform xhs --keyword "AI写作"
~/.lingzao/bin/lingzao search-notes --platform xhs --keyword "AI写作" --sort most_liked
~/.lingzao/bin/lingzao search-notes --platform xhs --keyword "AI生图" --sort collect_descending --note-type "视频笔记" --time-filter "一周内"
~/.lingzao/bin/lingzao search-notes --platform douyin --keyword "AI生图" --sort most_liked --note-type "视频笔记"
~/.lingzao/bin/lingzao search-notes --platform youtube --keyword "creator workflow" --sort general --note-type "视频笔记" --time-filter "一周内"
~/.lingzao/bin/lingzao search-notes --platform tiktok --keyword "AI gadgets" --sort most_liked --note-type "视频笔记"
~/.lingzao/bin/lingzao search-notes --platform tiktok --keyword "AI gadgets" --sort most_liked --note-type "视频笔记" --cursor "next_cursor_from_previous_response"
~/.lingzao/bin/lingzao search-notes --platform instagram --keyword "creative coding"
Use this when the user wants public notes around a topic. Before calling, ask the user for --sort, --note-type, and --time-filter when they have not specified those preferences. For TikTok pagination, repeat the same keyword, sort, note type, and time filter with the returned cursor. search-suggestions has been retired. For keyword expansion or topic discovery, use search-notes for content ideas or search-users for creator discovery.
Search Creators
~/.lingzao/bin/lingzao search-users --platform xhs --keyword "母婴博主"
~/.lingzao/bin/lingzao search-users --platform douyin --keyword "AI生图"
~/.lingzao/bin/lingzao search-users --platform youtube --keyword "creator workflow"
~/.lingzao/bin/lingzao search-users --platform tiktok --keyword "tech.bytes"
~/.lingzao/bin/lingzao search-users --platform instagram --keyword "creative coding"
Use this when the user wants creators in a topic or niche. For TikTok pagination, repeat the same keyword with the returned cursor. When continuing from search-users to profile verification, pass the returned users[].id with --platform xhs --user-id ..., --platform douyin --user-id ..., --platform tiktok --user-id ..., or --platform instagram --user-id .... For YouTube, the returned ID is a canonical channel ID; reuse it with --platform youtube --user-id ... and treat handle as display metadata only. The output may include RED ID and follower count for screening, but RED ID is display metadata only. Do not extract Xiaohongshu RED ID values from bios or build /user/profile/<RED ID> URLs.
Get Creator Profile
~/.lingzao/bin/lingzao get-user-info --url "https://www.xiaohongshu.com/user/profile/..."
~/.lingzao/bin/lingzao get-user-info --platform xhs --user-id "63c21e0f000000002801a1bb"
~/.lingzao/bin/lingzao get-user-info --platform douyin --user-id "MS4wLjABAAAA..."
~/.lingzao/bin/lingzao get-user-info --platform youtube --user-id "UC..."
~/.lingzao/bin/lingzao get-user-info --url "https://www.tiktok.com/@creator"
~/.lingzao/bin/lingzao get-user-info --url "https://www.instagram.com/creator/"
Use this when the user provides a creator profile URL or platform user ID and needs full profile-level stats. For Douyin bare user IDs, use the profile sec_user_id. For YouTube, use a channel ID or /channel/UC... URL; if the user only has a handle, call search-users first. For basic homepage analysis, prefer get-user-posted-notes and avoid calling both commands by default.
Get Creator Recent Posts
~/.lingzao/bin/lingzao get-user-posted-notes --url "https://www.xiaohongshu.com/user/profile/..."
~/.lingzao/bin/lingzao get-user-posted-notes --platform xhs --user-id "63c21e0f000000002801a1bb"
~/.lingzao/bin/lingzao get-user-posted-notes --platform douyin --user-id "MS4wLjABAAAA..." --limit 20
~/.lingzao/bin/lingzao get-user-posted-notes --platform youtube --user-id "UC..." --limit 20
~/.lingzao/bin/lingzao get-user-posted-notes --platform tiktok --user-id "<search-users returned id>" --limit 20
~/.lingzao/bin/lingzao get-user-posted-notes --platform tiktok --user-id "<search-users returned id>" --cursor "next_cursor_from_previous_response"
~/.lingzao/bin/lingzao get-user-posted-notes --platform instagram --user-id "<search-users returned id>" --limit 20
~/.lingzao/bin/lingzao get-user-posted-notes --platform instagram --user-id "<search-users returned id>" --cursor "next_cursor_from_previous_response"
Use this when the user wants to understand what a creator has posted recently. Use this by default for basic creator homepage analysis. Douyin, TikTok, Instagram, and YouTube support --limit 20 at most per public call. YouTube reads the Videos list only and does not add a separate Shorts request. If the response has next_cursor, reuse it with --cursor; for TikTok or Instagram, repeat the same creator URL or ID. If the user asks for full profile-level stats, add get-user-info; if the user asks for Xiaohongshu post copy, scripts, captions, or transcript text across recent posts, use analyze-user-profile instead. For Douyin transcript text, use extract-video-copy on selected video URLs. TikTok, Instagram, and YouTube V1 do not support analyze-user-profile.
Analyze Creator Profile
~/.lingzao/bin/lingzao analyze-user-profile --url "https://www.xiaohongshu.com/user/profile/..." --limit 20
~/.lingzao/bin/lingzao analyze-user-profile --platform xhs --user-id "63c21e0f000000002801a1bb" --limit 40
~/.lingzao/bin/lingzao analyze-user-profile --platform douyin --user-id "MS4wLjABAAAA..." --limit 20
Use this when the user wants deeper creator profile data, including post text, covers, commercial signals, and profile-level content signals. For Xiaohongshu, it also includes subtitle/script previews. For Douyin, it does not extract homepage subtitles or transcript text; use extract-video-copy on selected video URLs when the user needs spoken copy. Use --limit 20 by default. The default Markdown output shows readable subtitle previews when the platform provides them. Short-window repeats with the same request parameters may reuse the recent successful result without spending credits again; the CLI output will show a no-charge reuse notice. Use --force-new only when the user explicitly needs a fresh paid run, and do not loop it: repeated forced refreshes in the short protection window may be rejected with no charge. If Douyin profile insight sections are temporarily unavailable, the API and CLI can show partial_data, warnings, or unavailable_sections. Explain that homepage works data still returned successfully, and do not treat the missing insight section as proof that there is no data.
Important for Xiaohongshu: the complete profile subtitle/copy Markdown artifact is a top-level response field, not a per-note subtitle URL. Always check:
data.artifacts.subtitle_markdown.status data.artifacts.subtitle_markdown.url
Do not search only inside items[]. If data.artifacts.subtitle_markdown.status == "ready" and url exists, download it before deep script or subtitle analysis:
curl -L "$subtitle_markdown_url" -o /tmp/lingzao-profile-subtitles.md
Use the downloaded Markdown file for complete subtitle/copy analysis. Use --format json when the user needs the structured fields. JSON includes data.artifacts.subtitle_markdown.url for the complete Markdown file when available, and inline items[].text.subtitle.content/plain_text are preview-sized to keep the response readable. If the artifact is unavailable, use the inline subtitle fields. For Douyin, expect data.artifacts.subtitle_markdown.status == "unsupported" and use the returned profile insights plus selected-video extraction instead.
Get Post Detail
~/.lingzao/bin/lingzao get-note-detail --url "https://www.xiaohongshu.com/explore/..." --xhs-note-type image
~/.lingzao/bin/lingzao get-note-detail --platform xhs --note-id "69690331000000001a02266a" --xhs-note-type video
~/.lingzao/bin/lingzao get-note-detail --platform douyin --note-id "7372484715782352169"
~/.lingzao/bin/lingzao get-note-detail --url "https://www.youtube.com/watch?v=..." --content-type video
~/.lingzao/bin/lingzao get-note-detail --platform youtube --note-id "..." --content-type short
~/.lingzao/bin/lingzao get-note-detail --url "https://www.youtube.com/shorts/..."
~/.lingzao/bin/lingzao get-note-detail --url "https://www.tiktok.com/@creator/video/7349541381817355521"
~/.lingzao/bin/lingzao get-note-detail --url "https://www.instagram.com/reel/<code>/"
~/.lingzao/bin/lingzao get-note-detail --platform instagram --note-id "<decimal media id>"
The /shorts/ URL form preserves Short type automatically. For a bare ID, watch?v= URL, or youtu.be/ URL, pass the content_type returned by search as --content-type video|short; Lingzao does not guess type from duration. YouTube channel/profile URLs are not content-detail inputs. Use get-user-info or get-user-posted-notes; for @handle, /c/, or /user/ URLs, use search-users first to obtain the canonical channel ID.
Use this when the user asks to analyze one public post. For Xiaohongshu details, pass --xhs-note-type image for 图文 and --xhs-note-type video for 视频. If the note came from search-notes, get-user-posted-notes, or analyze-user-profile, reuse that item's xhs_note_type value. If detail returns NOTE_NOT_FOUND_OR_INACCESSIBLE, do not switch --xhs-note-type and retry automatically; confirm the source item type or ask the user.
Get Post Comments
~/.lingzao/bin/lingzao get-note-comments --url "https://www.xiaohongshu.com/explore/..."
~/.lingzao/bin/lingzao get-note-comments --url "https://www.xiaohongshu.com/explore/..." --sort most_liked
~/.lingzao/bin/lingzao get-note-comments --platform xhs --note-id "69690331000000001a02266a"
~/.lingzao/bin/lingzao get-note-comments --platform douyin --note-id "7372484715782352169"
~/.lingzao/bin/lingzao get-note-comments --platform tiktok --note-id "7349541381817355521" --limit 20
~/.lingzao/bin/lingzao get-note-comments --url "https://www.instagram.com/p/<code>/" --limit 20
~/.lingzao/bin/lingzao get-note-comments --platform instagram --note-id "<shortcode>" --cursor "next_cursor_from_previous_response"
~/.lingzao/bin/lingzao get-note-comments --url "https://www.douyin.com/jingxuan?modal_id=..." --cursor "next_cursor_from_previous_response"
~/.lingzao/bin/lingzao get-note-comments --url "https://youtu.be/..." --sort most_liked --limit 20
Use this when the user asks for public comments on one post. The first version returns top-level comments only. Use --sort most_liked for Xiaohongshu or YouTube liked-count sorting; Douyin, TikTok, and Instagram support only latest, with TikTok using service-default order. If the response has data.page.next_cursor, pass that opaque value unchanged with --cursor to fetch one next page. For TikTok or Instagram, repeat the same content URL or ID; for YouTube, repeat the same --sort with every cursor request. Before calling Xiaohongshu comments, ask whether the user wants latest comments or liked-count sorting. For Douyin, TikTok, and Instagram comments, use only --sort latest; do not pass --sort most_liked.
Get WeChat Official-Account Articles
~/.lingzao/bin/lingzao get-article-detail --url "https://mp.weixin.qq.com/s/..."
~/.lingzao/bin/lingzao get-article-detail --url "https://mp.weixin.qq.com/s/..." --output /tmp/article.md
~/.lingzao/bin/lingzao get-article-stats --url "https://mp.weixin.qq.com/s/..."
~/.lingzao/bin/lingzao get-related-articles --url "https://mp.weixin.qq.com/s/..."
Use these when the user provides a public WeChat official-account article URL and asks to analyze the article, inspect public engagement metrics, or expand from that article to related public articles. The first version is URL-only and costs 20 credits per call. An empty related-articles list is a valid response. Do not use these commands for account article history, account listing, or multi-page fanout unless Lingzao adds a separate capability.
For full article analysis, prefer get-article-detail --output /tmp/article.md. The command saves the complete article text as a local Markdown file and prints only the file path plus a short summary in chat. Read the saved Markdown file for detailed analysis instead of asking the CLI to paste the full article body into the conversation.
Extract Short-Video Copy
~/.lingzao/bin/lingzao extract-video-copy --url "https://www.xiaohongshu.com/explore/..."
~/.lingzao/bin/lingzao extract-video-copy --url "https://v.douyin.com/..."
Use this when the user asks for short-video spoken copy, transcript, subtitles, or口播文案.
Generate Image
~/.lingzao/bin/lingzao generate-image --prompt "一张小红书封面图,主题是 AI 生图新手避坑,干净明亮,中文大标题留白" --output /tmp/lingzao-image.png
~/.lingzao/bin/lingzao generate-image --prompt "极简产品海报,白底,柔和阴影" --size 1024x1536 --output /tmp/poster.png
~/.lingzao/bin/lingzao generate-image --prompt "参考两张图,保留人物风格,把产品界面换成灵造首页截图" --size 1536x2048 --image /tmp/style.png --image /tmp/product.png --output /tmp/poster.png
~/.lingzao/bin/lingzao generate-image --prompt "批量生成 3 张封面草稿" --count 3 --size 1024x1536 --output /tmp/poster.png
~/.lingzao/bin/lingzao generate-image --prompt-file /tmp/lingzao-prompt.txt --output /tmp/poster.png
Use this only when the user asks to generate a creator image asset. For normal research, do not call image generation automatically.
When the user wants N images from the same prompt, call generate-image once with --count N for N=2..5. Do not loop the same prompt as multiple --count 1 calls: Lingzao treats short-window identical requests, including same-count retries, as duplicate POST recovery and returns the same batch instead of creating new images. If the user wants distinct concepts, vary the prompt for each concept or use one counted batch for same-prompt variants.
Before calling generate-image, run the minimal intake gate. If the user only says something like "给我做一张某某海报图" or provides only a broad topic, do not spend credits immediately. Ask for the two visual anchors first:
- 你有没有参考图?可以发 1-3 张你喜欢的封面/海报/图文截图。
- 你有没有想要的配色?比如明亮白底、绿色清爽、黑金高级、蓝色科技感。
If those are still unclear, ask at most one extra route-changing question, such as the publishing platform/size, exact on-image text, or whether the user wants people/no people. Only proceed directly without asking when the user already provided enough constraints: topic + platform/format + visual style/reference or color + on-image text/material. Use --image for local reference images; repeat it for multiple images. The Skill uploads those files directly to Lingzao for the current request, so the user does not need to upload them elsewhere first. Supported reference image formats are png, jpeg, and webp. For long, Chinese, or multiline prompts, prefer writing the prompt to a UTF-8 text file and passing --prompt-file /path/to/prompt.txt, or pipe the prompt with --prompt-stdin, to avoid shell quoting or command-line encoding issues.
Reference Image Handling
For Codex, WorkBuddy, and other agent runtimes:
--imageaccepts local filesystem paths only. If the user provides a
reference image through a chat attachment, pasted image, screenshot, or input box, first materialize that image as a local file before calling the CLI. Preserve the original supported image format when saving the file.
- Use a per-run temporary directory for runtime-provided images, for example
/tmp/lingzao-image-inputs/<run-id>/ref-1.png and /tmp/lingzao-image-inputs/<run-id>/ref-2.png. Use absolute paths in the CLI call.
- If the user already provided a stable local path, such as a file under
/Users/..., you may pass that path directly. If the runtime-provided image lives in a temporary attachment path, copy it into the per-run temp directory first.
- Do not proactively convert image formats. If the input image is already png,
jpeg, or webp and its file size is reasonable, pass it as-is. Do not convert png to webp or jpeg just because an example path uses a different extension.
- Only when a reference image is larger than 2 MB, create a smaller copy in the
temp directory and pass that copy with --image. Keep the file extension and actual image bytes consistent. If resizing or compression fails, use the original supported image file instead of trying another format.
- Do not overwrite the user's original image file. Do not store reference
images in the repo. If the runtime cannot save an uploaded or pasted image to a local path, ask the user to save the image locally and provide the path.
- In the prompt, state what should be borrowed from the reference images, such
as layout, color palette, product shape, character style, or composition. Do not say only "reference this image" when a more specific instruction is possible.
Example with a runtime-provided reference image:
mkdir -p /tmp/lingzao-image-inputs/run-001 /tmp/lingzao-image-outputs/run-001
~/.lingzao/bin/lingzao generate-image \
--prompt "参考这张图的排版和明亮色彩,生成一张小红书封面图,主题是 AI 生图新手避坑,中文大标题留白" \
--size 1024x1024 \
--image /tmp/lingzao-image-inputs/run-001/ref-1.png \
--output /tmp/lingzao-image-outputs/run-001/result.png
The command creates a Lingzao async batch and automatically polls the returned status URL until the background job finishes or the command timeout is reached. Image generation can take several minutes; --timeout can extend waiting for large or slow batches, but does not shorten the built-in per-image polling window. For one image, --output writes the result to the exact path you provide. For --count greater than 1, --output /tmp/poster.png writes every successful image as numbered files such as /tmp/poster-1.png, /tmp/poster-2.png, and so on. Default Markdown output requires --output so paid generated images are saved locally. If a direct API caller receives GENERATION_IN_PROGRESS with a returned poll_url, use it to poll the active batch instead of POSTing again. If no poll_url is returned, wait briefly and retry. Use --format json only when you need structured automation data.
Usage Notes
- For profile and post URLs, pass the URL directly when possible.
- For direct IDs, include
--platform. For Xiaohongshu follow-up profile checks,
prefer the 24-character users[].id returned by search-users; RED ID is display metadata only.
- Omit
--limitunless the user asks for a specific count. - Search notes default to comprehensive sorting, all note types, and all time; use
--sort,--note-type, and--time-filterwhen the user asks for ranked or filtered note search. - Use
--format jsononly when another tool needs structured output. - Default output is Markdown for agents to read and summarize.
- If the API key or account needs attention, ask the user to open the Lingzao dashboard.
PK@!X�VERSION0.1.93 PK@!Xh ##�agents/openai.yamlPK@!X����33�Sagents/openclaw.yamlPK@!XhzM�t�t��assets/lingzao-logo.pngPK@!XD�4z&z&4���playbooks/account-report-evidence-visual-contract.mdPK@!X@��H��-�e�playbooks/atian-creator-judgment-framework.mdPK@!X6��CC'���playbooks/audience-persona-fit-check.mdPK@!X����bb3�!�playbooks/beginner-account-start-and-topic-radar.mdPK@!X!ɹJ]J]5��Oplaybooks/benchmark-account-discovery-quality-gate.mdPK@!X�m��2.2.,�.�playbooks/brand-brief-to-content-workflow.mdPK@!X��6�?�?9���playbooks/comparable-account-breakdown-report-template.mdPK@!X\v�k�k,��playbooks/content-knowledge-base-workflow.mdPK@!X։ +'+'-���playbooks/copy-paste-prompt-scope-boundary.mdPK@!X-tc�7�74�k�playbooks/creator-case-general-analysis-framework.mdPK@!X�GI 5 51�y�playbooks/draft-rewrite-and-benchmark-workflow.mdPK@!X9��<hOhO5��playbooks/image-generation-agent-integration-guide.mdPK@!XR���.�.0��lplaybooks/image-generation-execution-workflow.mdPK@!X�آ��-�-,���playbooks/keyword-insight-report-template.mdPK@!X��Xy�y�3���playbooks/keyword-to-publishable-content-package.mdPK@!X�,���0��mplaybooks/lingzao-progressive-interaction-map.mdPK@!X�J��zz/� playbooks/monetization-path-judgment-library.mdPK@!X�j��7��A playbooks/mother-content-cross-platform-distribution.mdPK@!X�a�2�2.�� playbooks/post-publish-data-review-workflow.mdPK@!Xt��++(��� playbooks/pre-publish-readiness-check.mdPK@!Xm�Ю)")"/�(� playbooks/product-judgment-and-feedback-loop.mdPK@!X�~%%,��� playbooks/publishing-keyword-design-check.mdPK@!XC�����2�� playbooks/reference-image-graphic-note-workflow.mdPK@!X���(2(2)� playbooks/retention-and-follow-up-loop.mdPK@!XQa]h�9�9!�q? playbooks/search-credit-notice.mdPK@!Xz���l�l3�Jy playbooks/self-account-diagnosis-report-template.mdPK@!X��u��3�33��� playbooks/self-account-peer-horizontal-diagnosis.mdPK@!X9�+�OO+��playbooks/single-note-breakdown-workflow.mdPK@!X�h]��/�/.�+jplaybooks/track-difficulty-judgment-library.mdPK@!XK=J 1�C�playbooks/travel-handdrawn-map-visual-workflow.mdPK@!XK6��+�+1���playbooks/visual-generation-and-cover-workflow.mdPK@!X�6N�]]+���playbooks/visual-reference-style-library.mdPK@!X�&��$�$2�Aplaybooks/weekly-content-motherpack-distributor.mdPK@!X��K��-�Cfplaybooks/xhs-content-compliance-risk-gate.mdPK@!XpGm�1�1$��}playbooks/xhs-operation-task-tree.mdPK@!X��c662���playbooks/xhs-platform-management-risk-baseline.mdPK@!X�GU�#�#�playbooks/xhs-profile-bio-design.mdPK@!Xb�a��#�|�playbooks/xhs-title-design-check.mdPK@!X���$$�N playbooks/zero-beginner-onboarding-gate.mdPK@!Xb���( scripts/check_version.pyPK@!X���_����) scripts/configure.pyPK@!X_�.�W�W��5 scripts/lingzao_client.pyPK@!X2Ir ���scripts/setup.shPK@!Xj������SKILL.mdPK@!X`���wVERSIONPK00L�w





