From 68a0125dc6008ae091ae15cd5cb7a9ef6c9fb3c6 Mon Sep 17 00:00:00 2001 From: MistEO Date: Sun, 31 Oct 2021 19:40:53 +0800 Subject: [PATCH] =?UTF-8?q?feat.=E5=A2=9E=E5=8A=A0=E5=AF=B9=E4=BC=9A?= =?UTF-8?q?=E5=AE=A2=E5=AE=A4=E7=BA=BF=E7=B4=A2=E7=A9=BA=E4=BD=8D=E7=9A=84?= =?UTF-8?q?=E8=AF=86=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resource/tasks.json | 95 +++++++++++++++ resource/template/Clue.png | Bin 0 -> 6166 bytes resource/template/ClueVacancyNo1.png | Bin 0 -> 6197 bytes resource/template/ClueVacancyNo2.png | Bin 0 -> 9802 bytes resource/template/ClueVacancyNo3.png | Bin 0 -> 11267 bytes resource/template/ClueVacancyNo4.png | Bin 0 -> 6601 bytes resource/template/ClueVacancyNo5.png | Bin 0 -> 10212 bytes resource/template/ClueVacancyNo6.png | Bin 0 -> 7979 bytes resource/template/ClueVacancyNo7.png | Bin 0 -> 9986 bytes src/MeoAssistance/Assistance.cpp | 3 +- src/MeoAssistance/AsstDef.h | 2 +- .../InfrastClueImageAnalyzer.cpp | 38 ++++++ src/MeoAssistance/InfrastClueImageAnalyzer.h | 23 ++++ .../InfrastClueVacancyImageAnalyzer.cpp | 28 +++++ .../InfrastClueVacancyImageAnalyzer.h | 34 ++++++ src/MeoAssistance/InfrastReceptionTask.cpp | 65 ++++++++++ src/MeoAssistance/InfrastReceptionTask.h | 14 +++ src/MeoAssistance/MeoAssistance.vcxproj | 6 + .../MeoAssistance.vcxproj.filters | 112 +++++++++++------- src/MeoAssistance/MultiMatchImageAnalyzer.cpp | 7 ++ 20 files changed, 381 insertions(+), 46 deletions(-) create mode 100644 resource/template/Clue.png create mode 100644 resource/template/ClueVacancyNo1.png create mode 100644 resource/template/ClueVacancyNo2.png create mode 100644 resource/template/ClueVacancyNo3.png create mode 100644 resource/template/ClueVacancyNo4.png create mode 100644 resource/template/ClueVacancyNo5.png create mode 100644 resource/template/ClueVacancyNo6.png create mode 100644 resource/template/ClueVacancyNo7.png create mode 100644 src/MeoAssistance/InfrastClueImageAnalyzer.cpp create mode 100644 src/MeoAssistance/InfrastClueImageAnalyzer.h create mode 100644 src/MeoAssistance/InfrastClueVacancyImageAnalyzer.cpp create mode 100644 src/MeoAssistance/InfrastClueVacancyImageAnalyzer.h create mode 100644 src/MeoAssistance/InfrastReceptionTask.cpp create mode 100644 src/MeoAssistance/InfrastReceptionTask.h diff --git a/resource/tasks.json b/resource/tasks.json index 37630ab9b5..2c2018635f 100644 --- a/resource/tasks.json +++ b/resource/tasks.json @@ -1263,5 +1263,100 @@ 70, 50 ] + }, + "InfrastClueVacancyNo1": { + "template": "ClueVacancyNo1.png", + "cache": false, + "maskRange": [ + 250, + 255 + ], + "templThreshold": 0.95 + }, + "InfrastClueVacancyNo2": { + "template": "ClueVacancyNo2.png", + "cache": false, + "maskRange": [ + 250, + 255 + ], + "templThreshold": 0.95 + }, + "InfrastClueVacancyNo3": { + "template": "ClueVacancyNo3.png", + "cache": false, + "maskRange": [ + 250, + 255 + ], + "templThreshold": 0.95 + }, + "InfrastClueVacancyNo4": { + "template": "ClueVacancyNo4.png", + "cache": false, + "maskRange": [ + 250, + 255 + ], + "templThreshold": 0.95 + }, + "InfrastClueVacancyNo5": { + "template": "ClueVacancyNo5.png", + "cache": false, + "maskRange": [ + 250, + 255 + ], + "templThreshold": 0.95 + }, + "InfrastClueVacancyNo6": { + "template": "ClueVacancyNo6.png", + "cache": false, + "maskRange": [ + 250, + 255 + ], + "templThreshold": 0.95 + }, + "InfrastClueVacancyNo7": { + "template": "ClueVacancyNo7.png", + "cache": false, + "maskRange": [ + 250, + 255 + ], + "templThreshold": 0.95 + }, + "InfrastClue": { + "template": "Clue.png", + "cache": false, + "maskRange": [ + 1, + 255 + ] + }, + "InfrastClueOnTheRightSwipeBegin": { + "algorithm": "justReturn", + "action": "clickRect", + "specificRect": [ + 900, + 600, + 300, + 100 + ], + "preDelay": 1000, + "rearDelay": 1000, + "maxTimes": 1, + "Doc": "这里的preDelay作为滑动duration使用,rearDelay作为滑动额外延时使用,maxTimes作为重复次数使用" + }, + "InfrastClueOnTheRightSwipeEnd": { + "algorithm": "justReturn", + "action": "clickRect", + "specificRect": [ + 900, + 200, + 300, + 100 + ] } } \ No newline at end of file diff --git a/resource/template/Clue.png b/resource/template/Clue.png new file mode 100644 index 0000000000000000000000000000000000000000..c01d72c9d7c3ff57eee605c342bffc25ff0b0685 GIT binary patch literal 6166 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 T)Y3mO00000NkvXXu0mjfENa@n literal 0 HcmV?d00001 diff --git a/resource/template/ClueVacancyNo2.png b/resource/template/ClueVacancyNo2.png new file mode 100644 index 0000000000000000000000000000000000000000..d6f02c3512e76d0ae17d9ee9e812077cbd563a40 GIT binary patch literal 9802 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 literal 0 HcmV?d00001 diff --git a/resource/template/ClueVacancyNo3.png b/resource/template/ClueVacancyNo3.png new file mode 100644 index 0000000000000000000000000000000000000000..f88d268d4b7ffaab0c2280f4fb758889d63dbe50 GIT binary patch literal 11267 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 literal 0 HcmV?d00001 diff --git a/resource/template/ClueVacancyNo4.png b/resource/template/ClueVacancyNo4.png new file mode 100644 index 0000000000000000000000000000000000000000..17922e3e66831e435adc94556f28b1f7a7db0413 GIT binary patch literal 6601 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 Hu0mjf^-o38 literal 0 HcmV?d00001 diff --git a/resource/template/ClueVacancyNo5.png b/resource/template/ClueVacancyNo5.png new file mode 100644 index 0000000000000000000000000000000000000000..d2b21f802299d86b26eaa79df8f62d21b8daf513 GIT binary patch literal 10212 zcmV1n2*0;B07z@kBmL(Z;vdv+P12bTA$Q5H|n3~CDs*+#Bbt+X!RW9;3auuLp zsyIwYL6XS?b1-1bl24L_Wy_YWt^K|4TAhpTr`P&K4gP@Q@K&kz*52QK554;E^wZtz zmH+S`|C80afrtPAAc9&7AOeBl#EBDVt--9LwFXgzssaGa3<80w!e9^)SU2?E<5Ys) z8%n9zY%11u^>c{8dPnOWfItLjt)bL{gUtrp?SkGKAOgV9dz{-00zitQtqrOg*XS_o z5K)+Qlu~hUu)%g&{F&mOx*1dzy*C&D7;t!ai0yU@GxLA(IiAzZZ)06oz<{;2_-yxU zw}!Pf)KV)#f)E8n6j~IeREP+)xX@YyRN*%Ofr*_zc3e`s>X$of)eosXw4tE z^%WxGpBD|mD*!<$1=c%61-%2Ms4tEgOa)a7Q2pF(T_K{75UNV`#g&3u4BPE-$kI~i zBI*kwe!sO=tm^_ZLpLt2K%g+Od?sH|gcAAUTldAODw+=jK|GXSuof4x!Blk{ak{0;u{qsa?JIysEp1(69JgRYfyH5%*_Mfr$X!s2qS9 zq$tpVS_*nRF_qDMEW%aPA*|jZC0vwQxE$NjUQt1B?jzkzg)*T-x}?7?rDAO>tQ)F8 zLC;6afB{-0Z`e&N%pc|&C_|7cnh#^v-RweAMN6!pK*Q&yD}lQR9vXp6nuK+@5Ul&E zqbNlEdQJT^2HQD@o3FVkHvmdg4wa#j2>rQWT_=~L0_&23r3JVlNoZ(?3c>>2tyPZ@ z>T0j*{)T=igkR*1=3GjJ*#b1T0RLNe1cC^TB7kUWr3Wndp0;$GZU z)mrP0;6&V?i58UNrtLSj$p@gnY28mOswgSf;bT1N7dPQpLJ5uOy~hm`O7(;@T69O4 zy*G%I^phSzd-}8raZ3o3bj=z@~&#DkvzqI8`Lz&VXH|6rlT}lu{r8qx?1- z>gM1eO|+EijaycuMzMA4A2Dzps4$EGoS{vtF`0;>qgVTTOfm?1yDGy4L49X z6}`DnOrbS@zSbKo7G$##v?i#nISw-s7*?n%*44iXI%HGPT2GKoAgWr@jNFH`{J%xi zbtmPTSq>CyYv{eB^@cQVvjoa+as_R5kZYlJv;ZEZmIVG>I7-xgtYNdMXx7nNcW4IN zu@vhbmFlKq-L|}ci@%|pGc%xftm_&8-O$!Gfw@~LpnVcj?;X80^loS^B5U}bga8)i z8z8)>Moco-mJrUkhy>7$o3uV2i252g*Be1R@*%Xi|3&~{_qi6|k898!^nfEKuF=;0 zx(KknYcT_zWIzhvNtt-uv^0AoUIy~Hdp9WYR$jm+t&4xi&$uJ@$V`Ys9EV)(^eeTD zU)X?51pL%=I(3h}0f!>!5O`-6wX*;&5C*hv<01?gh|GjRgc`(Kq02}VK`ji6X{{%e z5kxlUDPY7Aj{(&Km`5dM4Vg<%=GVfB*Et&q&5=@kRhiEQ&^BMCABxa|6~pPPq(GS}st68Gp2VqBe>NUi3);G(Wy(c&Fd>n| znufKlnY){V&(v%!8Vluqj+xI0JmS7@UGdtr*KqUbD9-O`WG;GWnb1{H#MaS8Lco!i zgCKpFe`{-6bA<> z3aK6pNU0rcHh&mNz0)ygH5h)7VV<#|#b@Wkl_owH=IjB{wU!@J5mc(}0OT&z)*IA3 zDJ6O*|CoM4NCNa^dg#~>0-ye|4+gRw9sod(G&Ws=IJ?Bepsnk0V`{-}VaJarEvM?H zt;K@~0@{cQs#MfkBRMZ1MOL(gR_+R)G#Y<*c;fJnBe~lSEhT{Y&?1R+cBGSK%9bRE zivooKk;Pc>l!Q^eYr-)As5MUF+N3G0x^cfL;TN>jjOxkiB*qMggprdT{)w1&2^Zz@ zok%3Sd_>|>3YK+63FaMuGeVI?Ih3md26Y9nPKk%0cI!X`wymMm>T0h}CBY1}ZqTix zEnBoUa&iDzZH0&v1g$p|EqRk%h(GqRt}E810a(+F*L4kUQnA@oEX$HS>AJ3&DGkOP zgF&CT%5_=&8v$x>9f$owV-6v~mTy^+_0 zKGH?Mg{&Vz1qBKz3R`Tl$cP6v3S(6whZT4sM{rv@Bmk@jv%)+Y;fN*kU%CeB{641r z>b2MKqaXi-J{)F-!^1=OYmqgK9Nm&BXGy@!vb@W~jIO0Ri_}{r8InTE{6{_Gk|1b$ z>p_xCB!(J_7Bs9GxikHR2dv&ZRDu)~naTpm_QZ`bb)0=91&f)i+#9BulbnxAkaSoBf(IS2}gR?qar{&ll#gkiU;1-BIr&DIQ&U07~C5Zdr|e` z`La43f@4Rg{sl#%!$RR~NZiojo>|RyyUltu;~<+0JUS|@0VLX!SO~RqgcfypN7ytW z?+EGcubIyXfIev@FbZ7AT6GZCVi5CtX|1Ca#j>*YBSH2Kq1U9&#MQMVJzt~HV<<(l zPT|G)sMFB*2vC?Z0(%7-09cjq@bt@~9E21qU*yJkK@=$09h2z)HdG zfwBP8Lh*c>

ESH#m2&*cN~SU2u4y=@V)4m6b+v+@(yHp-(C6spku&mPi=^s^p~qu3?Dx<*MN`-lX~cJ=QwKbFA@GAj4XO|ip-*Af{FeZCHJVexFA5r}nfcCrzF2HWE~Nrq#wo$Cyk7mQb2w|6q}fd-6c8k{6czr~{W$Lk&jAbt^b zh)nK7>QD@A03-JlB_mkvL!oWATRw}gDu`AXc7jNqQZxGF6gh>X3hOQDy*YRa&nOW@ zrR2|9cgMOW8%{hs;UK?1>yvBYBE>za`n`|TZ^DX!9oOa^1xiy9mPVuIVWR@+nzmoC zIX>PF;oIOcbuz;wo2N3!NLfd70Rsfhn%3duv;S?Hdq6t2xmffp6)ig@U+ZH*{Ti-d zGpv*8o|PAO<|ja^0UFV+M5_mkRQ&Llssq3dNMYFQ;UkZakLj&4^WY6Lho3tnR5aa) zMpxYUydx%35Durv&p`kjA9Y)-OngQS{C5BDrqi^p5a$T1&4=w z_{e4Px_3MeK`#M1Wn}pCDqv7Z-o@(Q*G(P%Bm7jtlUPKFPB!{F5!o-;EDLI>`8Tyv zwJi_s@ zH^G-$aM!6*xa;&?xa&QqaBy&dO|8lDEbEG+qa(ci_D#Hg{SCZ+{S6%7Iu1c2+FOu? zen7CP-dDM{#hV2DW`_&0QC{uVv25K;wJ4TliIS|Ln=}8*vW&pmTplf1AVZ~-@@9Yy zdbDVC>p&Up#z1uT12Ai;)+X^Fp&709y@Jirtz(=#c>*8&!25Cj+*zDFdEy=ahKHHq z+H0@l`4?Wo#Y-<>8xPc@UIZWucT5F&3<%@ha@ltjiqKnn8}#msc{G8bHP4=wwnqPw z0PqH@x~>hSSk$k30Mm{tHOb2{?lH_F@CHU3vt$rE*aQAN^3aEH`t)5pL1o`VL~zgD zr*Y5Sr}5aMAH&a|xqzSi^ydkw5@bX2|G>bGo>oqQQWYW{fJQcF!7+Fx(ekfHsiK3z z%|f7?0#}Y51PRyTLJkRR%*F(cV+RT`gunaSC-LC> z&h6&X`2Zn=K5#F6Im! zur5QAB7J1{-;;ZwSqp^hZlaZ}DRn?wYf;N}thTProoooJt)rV2Alh;gq49Ig!D`>r ztbgCf+56An@y~oJvG9%yArBdC&OoH7Y|59>SVgXrDW!imqJF1;^k!HuEl_1S_tIL+ znG+yPo&7JcTpYHlkZ$^IdVX4Kc=N_vxOVL|yn5|*y!qx0+&Vt~9YhJ7KYIordE~IMHZYqNo#WGKV(jc8pRg5Gz6Am3e5k0Y*CZ z*4uC6<;z!a_Wm=!_CasnJi?_HUc{9vS8@H#H$6oaFKx8mu&xa!4i9kOz3;`D`|icr z`_E*pW#8kmM?Z#_UcQ3sZ@dA-d`}{fATWg4TDT@F=H|_~;2(C4EkVw3s-cbXI{DB4 z<-eLnf?rGZR=ybQq<}qbb4G~M3%Rn>KMSrg`qo=-;}_39hnFv3 zPP(3lV>Zpe754}jaN@)v{`_N)yyF7heq8E z`3gSy*rRyh{8_B6;io_SIi7j;xn$mR#mBk=wRnkO>ijS>93LO!yWjf(KJ9-uK>(yWVprE?>Et=ORut5o}@%uC43TuEIL^=r&uH#ZgQKDF58DE`R}*PLrd) z>$;+A3{G}8@#A$naj5Q;3r3-xy+RVv469R6M@L8a-uHiiv(Mj;n@6|s){VEkE;2DM z9Mj0fK}kd~6AkoNzj)>X*4FUEr$4oqAOYZ`A9)xrU%nFO84VDy4%CtDupW~Pcw}`> zpzIEMa$E!vq?Hq&tZl;vR`ecee{Kd9@A7wGPW5h62Q1+P8*-s|yz3)s*IUOIAKRmhb69twKDv5)U_ac*l zJ}_)7>cFm~`#b*MQ$NPrH*fAGND;yN9ymAhZkx&((S(qT2+rq(!ZdH!p{9CoQw&#O zSc-PzA2f{42Fr%awzga$z!GP1(tr!Ft_>W1>b*s2(~`2E$%EF1pP47FFbf!ifH2}X z8*pP;SN!P5Pw%aj_n)~BIi(dnKMAy_dtrY$1+MD56!1P^EK|fVD$lpG;(a_=pB{*s z(SuH7KXnhPghGG~RcDCIG;=B*S+miLh%rSrN})(MLhVFmT9yxg;kir6NWIf>?|bha zLBgCK^9Aau?aqTDEs8DAg+EU#pH(uRZ%$q2$no71mAXo3?YS? zjX4_%gL_Y8-GUiTj2iRjUb02b*{}teCCaS%gt$2XB(P-A`FsC99u6^Fj@!r&v#1|A z#PS5oaP76%_7>!+Q+ML}_3QcY#E3aEIQd~wfkJ&OIrL?1V`vNTVLm?!>ar{&Gl5}Q z7i?k}z7{VWv3jPHv(Ks6(5xP_)1x3Hnd1`h_vV31LbGqD+qeMhx}vv17O;mC;!HSO z@BrYg8#neAWFg}NL?yt_y)Fw{K)JcbPvMqQuq<1r57%`Em@_!l)?6sLYf4~15yfgN z>bfL`jEo9eiq9*!_L##NePGTxyPW`?6% z`;!~F`A6I*5eQ@~BKI2tMlgj%;Ax|7!+1bpN9(h*-;%0c(b+PL(YY@+ZJr_Uuj)O8 z>71Jcq2Wa(g=TG@vXfD$?a-*O_S(H7Zwk& zQ>XVJ%w%IE1r}_OFR&|$(s_D0c}$rS6FR=+gK%)XrEr$$o5}f;@PmXa?x1@Lai*q- zM;i%)ZfJc?KGY1;4EBHzD{PFRqp>PkpwK{Fr0hdkk+k%=D} zES<4FIJrOn>G2@f8#?ih8IcXC@dW9N+%jR_xv1r(hSp+&iM09XNTn$d8rW^Hh7^?b zhK>OVXsX0}u#svG*f6pQu#DP=);gI&A7#_mx#6oPq}k_q>+QFPRfy!i6dKQ%U3hWs z*1e&?nXVqwUqis_+VVN-WN7Hoi4gp8{sCKsJ4UC2isWujy@xN6*iZw=mX;QNtxg!V zM8hW?JjeK??Dhf??C$o3_)TE*g)lA1C?)f7mLolEM#aR zXL-CyqLl1{%|=s*qD|0p7{XWen@ z7|}~?M>r+1#g_p0?@9C?A0K18T@u445}0-f^i@Szj4yISK(!jvvM`_vYK@UW1EHcf z<8N5kRqlbti2!%VrTC^wb!w?Y-c0tUL8iVPI%{g3K%yNcgaPhT!PGpu;8ajh2Q;w} z2zgC|mtfDIJG+-4U%7fU79f6L-hgjr-p^?UX$=8TVAfG&169Y!2-u_|*lxE`CTh}H*VYj*>ei(;9!F#a_F4X ziL`arv{EY8zU~kd&bq{+fO}eWJo4~|_m0{xy>uDtI@<66L+hS&5Nyw2JZBKYLRxGh z3a~I3lwl~0T7>>}S@Ofliez5vq(u+LW?fe&LM=GVC<49j{5kylfA??kp$~o_&M|FD z)R_$oxX}apIJ_W1Jc3zLc&wu*Eb_*y$3F4sUP1(b=bn2m{UYG&k^$7lobBz9~A{_2Z3I5==& zcFR2(Q&6EBJIEnwATtOj4?qs^p$~r;AN%M>_7WlhJoTfWyf{z)*3h`wq)r4?! z7XhyA*inX?ddh%53M5$8sQGF%mNr{+nt{Q?cv1j=`4^wW`Sa&~WhY3c0K2eOnFdBWCO&g=Ei zs1t`L@V8(7n~{J1n&bTsK8W`}_#j?*;YIxP>8Ek=;w3Cm!p-Q+jE1EOGn~BR4m|wu zLwM{HkM8Xgc|8BZ3%Gdk(%>6sgY7-XjAv5XKR3g%UFAwLMHR*>fcT!1laC7jA=6l~ z6aZ@!i$;e90GvO64)1>VyMLpHd*Ffdc;JEa=)L2YzkC(1UV9a1&4fAt&pM5-$8yYF7y zci+9gm7spz(R;_Yzw=!jA0Ov_Zgd%hF`Uccb6WMSJefpr^E(O5+ynqTF(H9*aB$$A z7KnX+*ib)DPSsjtVqZ|C2$H{Qa3|LWK9;)^dr#CJx?mKT$aG~kV^f+4jA|jg z0hcTo=eSA4IF5`OOYePWP-u?YW50)y3C!QCIBe+F@qhm5pYY6uXYsiwp1?;w^2lBh z{dYZn_OqYke|+zM=GG2L0t2obw-InGra73No~aENVAJ!01WTB)YDrDP4r@s(n15i)p;BJypg=9#mc!k zhzW|)tYg)~C9oFmllOkUYp-6zSHJdkeEU1!#h-utDmgE*+cw(qVpn-;^zG(+e0+=_{^%+E-+%sRlu~g1{CS)?b06+LeHTujK8;hS zPW_9*JvutV_3PJh`IT32`SKOK_~MHI1Z{0@mKfI>i#w`=gVml~lz)2XI&;RxS~?4V z2p)A=ys6X&Tl*MR(&8I&`eL$Sa#CqbZ~Tx^K5ebV7>EU-GDrwB0~x|mC>xo@_IQhD zFI>Qd3m4MIsQUH|hlhu_Mh@oyBYKpOOCU&hY zHa?nT0mopt0Ekv^&M6W;Y2iM>Ju^OPaOD&OF!F6gG~-RMpbjhP$a{~OnqVRX?7%2# zQah2dF|`WD+lCMUU|AfdEX$Hx57NAb@?C`>000M{NklsuZH0mE*-SfV=>(@y&{0a?7T_7G>F15 z>+!w@&6}PZ_1&zT%<-tNn77m#^^+;^&88{Ci1~t!nH7Qzm%`0XifX<_fPSy*n4slu zQw8HKAqJ-v710-2qp`Gy+p2sc(+X=XcXFxQWpQM$inV*I3j22)%$L-v?BFuR(zcoT z)ViUa0T`RUWsWN9s~32UQxYqXQw$V#DF-<;l?5{M1@hAx%!>QwM&^ihp_q!$9=k|c zbPe~hz`=P602D<*MY|2Or{)J&yF`Nk{ifN#l?+F!(@OJU;w(v6(@fJ*N6^uoo9n6O zWRmCI4yby`PE#o3S0nN&CW3i-nOQgVzB)0N2EE*u~FZHQ{NGEI_TcBBbL7h1|^q;FBy?~V7XwT zNty)s^ZhmeDf5t2u1DTsJ}_>FLsN98w%G`hs$(q17gI8N=bo00?cQYTW3Nr?P*(rk zJc1c7n()VrebvL)v2l+l;|%i*d*<%3`2q6xBkblv3{Ayt?m@95t=kV?#>NMJ_39y9 z0l3Q)KbNT_aNB+vw+|3RS}2l3T|9@*3^8jaAZ`rJ$c~3JZwu8Q&YkdxtDLWwx=oTv z9Arb*AP`szwrRz8|JL$8=A%#WCDajfNfndWoO@KXX@-(p^zan4oGgd9B-7d`SeX#N z0wecy*C*kV7%h>em|Uf>STxvU%X$a3VMJXBcAPk`$qh&5C{4|o4RWVEW;RSSewxj# zW;+Ch%D4x2GnSElyu-{}apqQLLO~)0?<^@p2AI2i{az}UV1Az#D~1khkiePnh#L^` zZ^uLN0d)9BaUo0HT@++`X*-+Laka@>=O%G*6X!S!8ErOpZ^JJL^&eg%Vg1#tr7FhXf=vm{|&y!tcF|K~iJ3HXIY1yU0@(Am`Po z7@iikgn&JIf!Io2ozV1t=~_3~Zs)hbc}6o{J2EsM0j&MAWB29R*R50I(c!^?xA;Yc zurVtLw;}-gx?;0AaB^TW^O?}#=Q%{GrFipGAPZG5k?KZb<4kU?h#UYgFu?#e2M1Vk zerWc^UbV=K$;6j6b?O z5P_^`6M+F(ThAmw6C@L0mSKuvU<39{IW1S#Fm3rIG8*rv!vAm!1DU52pFnw9g3Bue zGJ*~@$xkuuxYtJ{Pg1wHL9nxJ)w`Lkm=BtAn zppTv)v(V0b2aIK_o=ebqLT;4>jBRnK6%tuPLY;WfeBVOn__GCUb8B*>FkwL>w(Xe$ zlhNY67%ohY4V zoz2qZ)Il4#N16C??*Q&xm(WT!v|3<4;#D`-p-W6mO(6Ly;gM%pfiBYgz=* z$PKjVXK{YdpAjX6pzKz}wG_Y<#6rE)46p#S6reAXj2jNA6Qs^BrKE|G5z%Q8a<^p+ zUnYS?=}U9d4q`y2h>_E#<9CJ5>y_BQ-0#<2MKhZ;oOpF)XzV!S8$;)qz;trnAG6eW zm8*;`&E^CqVIY92D$y)C@R{dAqrW@rF>w<5DrzCSvLuMwd=YqjK;r${EP1-3x*4~C zL)Hg?XUm-nL1Roq2Js5OCZAZi)efh3!#B}yCLxm9kiQ#yJg*DARA02#IPE29)`32t z9bH~)E#AlO_fxrFZ4JLhUs>xWb{H+`yTBDRZ|QS@?0={6KuirKY|@>y=4QYPmff9~ zqn8MEXkIDRUyl+Gzp0zyRzl;~fGNzx9Da;I2gG zJ7!HGVdYDDM!O&Hjlt2UEo$}$LCx2DAa0000y{VRJi4o^PMya-kE(Hh{_~#|08|wK;Jt@)4$e7@Mk6@qFdmN) zLI40XO#|g^2#^W(W1R?_4AFtuPqtOUm*CB)eRn6Z4fQZ03ho)&DB2d-bPt!EH zU*{a!wnYdbKht}k@8LYW_h{P|UDxHl*{2|8iY#cNRVTr;%?Y;K7_H%w_`{6Zw9*Jf9mOCxMEw}SCJ4UJ#=gM4Ks;2a;paDWv z=F^zianm$eOsp7?yErM!4XWC^k8OxU>;h3AlEdvp0c1j1{Za~1uBXduqJ$7;j8PHC zxY)G*mdk6x61i9o<`}8QIF1kk;2bo4$9Zy&)9Dml7XTr?EoKIqo$77s1a|WkQoyxl3dynJeV@xI!ym;{f z&!0cZhlhu`KihvT_VvGd zObI>3c{&H@0H-eDRjN9N5QtZO;Nai@+uPgt;fEi3V;+KWb`I7_01&xSfu^B;PuIp?5hOrG zp^9X<6xl2efqN3wq5}IpU(d7Zb^_Mu)XjU3>({SiV`HNS^#7Z7?%X-tx^)XLU%teH z2M_S{>C?HA!S^+^>yOmsKh8No0YzjSfdJ6t9XPaf(Q2$|31^K7b(Ph@we_}(FpopY z$*ZfY`0&FIar*S>pM{upJ9X+5e)qfI;mMOHxOeX!rqk(+du+!?y-M}uokNgFG!X$* zAxZ2LwLpT?hP2jr)FNN&ODh^fK-~6K6A_qI6Ysq94u12S-waOh=WcJk^%l;bKaab2 z@8ZRa7c*nz`0BA*q!XLV#8&U4UUd%Q;%mUc*Wzfs8a}iq5?TTpwK3!MbO?r!1G)Of zjT^Xi>(>7ZLD^PTR`AC^{t>_U#V=-je2&ke9;*UW0p~pca%e(P(DNFCC5XNFQ%cZ=QZRoT5yN!(v+_-V$=b+OYx29?Ehd=xQfBDN_aCCH(5f8mMB9}N` z51&NedwQ7-KscoVzG=`ppWzh%wDgvM*?@x;Z$8vUf8v7+fons@K5biHU;kMMI!`Yy z(!TrdJ4~n3nJ^|Badgvoc<*|cdNgX2s#Js!^{sb+wj*>QKqR0Q5gZ>M11Rjz2MrmV zA)ME?ZRTbR=s9_+kF#gb;=T9Ydt)LT930^L@4v^hXV38R<;%=ns*07B6|AnV;?ku{ zSX)~=v9Bjjo?vThE02ww8G__ksrAz6WqIe(O{dY&0Z>uEA$y0a3JHRsQXrMpf7Vr{ zn`b%0T7NqT{-vs@9fS`*{BSN#9BO-edwB5R0rvOzdt>B+hY)aZaF8+S%E}6^U%!rb z-g#$ke}Dh`-}787{0pJ$8KquOTLiw1R^B-W3DK)kiGdGln<_>K|@g~ z>snd^C?a_8z4vhD%$bFVDI)mCKmLL5zWc66O#3`*9NAvHc!4jz_yXJ8+xY0Ck9sie z;NSqCefC+8IqI0Nou7?PG0@_?i^eJhNRY(IT_$LDwQE<>20&_q!~xh2?C177>+dfw zFJoh4Vi0GF29UV2 zaB|c5Ok@W{ZWRF(C7ogo7JdC1xRX#rjzSHq>>}N~d2=DL7ZH5&$tU>fr=RlsA>s{r zWi>Z0n2k);js*RlnGha_GRfX`oq!tyCi-8ER@=Ptk>;$Y~ zA~vlZ0;?M8L7qN+8td!pClV9@wzjsgzrR1|4ztgpR=b+~OhmA?wS`x&Ud?=86SYL^n+RyF$nx@U_K_#Y9awt=zk(>c6ICFq#FBESAse+VI_Kad)&O|t z(1lRaDbzvMf-`_!2b7r#;oxl?fLKpeap}^f6A20cUw{4eOg3~#ItcN&z(djcI&Q&x ztnO#CaFPA;n#p7`lMbS%#r{Hi-%Y2OCS>8AgRhGm_h@kM6$lA zEwm-Hh+u7PZLVnAwzIR-dvA4gtpe<8yYMw}YmO}Qo&C%j>OyP>5!aiKr3IWr<2?k3 zdNn^UrdGTiARlU>6F;}PeM`XFK=Jxt{_>Y65)_E~)K2^lXQa0H)^OCiu{LzX(^hZR1$H%T14@0FYD)em z70`%41aPfG*8$E6ob&J=fI|fT)(}}^WeH}ZRzpz4uJoduN-Ss%;yiEX^y$-BUS7@; zqpCPQKE~0}Q7_0|bG@q0ESwc_-e+UTmdK;gC|0H%Q56e2SA$&`YR@Gi;kU{7e`3IV&1w=5JOdug(GMy$zphM^aL={~( zg^0#<3dMqA&Q+`xyPddQWln&iGaipmB+S(dE{q)lr-`>tG8>eKDWB@ig?+pTQDTR_BR-{0s1gXifwtCsV zwj#p!Lk>c{A7EZ%`OVVO67Jl&^Rp7vwzFr?;`Z&^SXo&a9M@1hIU8M{R2{8<1gC}T z$zU4mRRN&!zF(nYLunQflstI99@RF!U$nri>pHBgtl-X_I}4+Q|FkVHFXQ*W|NY>C zTjOiz=A45{!thpo#LRSjALG?U3R1n5ul1(Yt3&Rig;{Jv*zly*Gz~uf_~ZXdf4)gO zefl(R-MZDASM4QQMeMM*ym%4k&!2yzI)clWFJpauJx9js6t#s{w*JAH%_81= zc;^A190@qEG@YJTYdN!ys#~K~V^lks+H+Z?%_D}0;NSoLHy%HJj90H-%`6%KJbU&G zJ3Bk@-s9@ktGIUU+QP(r|NZx|ySv+CBCE2j*X5}a5b5Td22KK;_wX7ktJ_fQHd2gpl^8Qq#umlbWvc#How8rL{h-i9o`?38(Jt?BJ`fzRJ&eT{fY{#rAuv zrna}Y7kaiWyR_25_ifWeD-Tn~qzTKX*MQ5QKe1r+|Az=y2T5v3ReN4`()5&0YA;^A zz?WZsIjA@7d+Y7Iu9}9gcXoDWIDV*|J9n;^a<(?aN?i>%6|r2ByHv{fQ&k{RftuA{ zHIaLY8?z#6tv?4eO?x|E*A5R4b4YHeUp~L~)9cq9KmSgrQyd%|ocR3Z<>g)lxt*^K zGFjE&T*Ra?mdaZHALJ&P{5&tF2^@-ygB*+&Rs-K)o1tPwS$bG9Hg{cz8I&kp%yipjLu7ks&*vstY?H-us@du(Yt4 z87@YuBIlOv=qw5r=^IpE<5C+ysYT3IaM($(aX^a_b#-;Mhb-)**k29X?CW`|VNp)4 zrJ*LQrfa-QJESsUB@>#>h6jD!IR|BlYhi{}6LsUDof1#lWp*o5jbLnfDCgvo#aBdF1&w}{q-0=*R3v0A)>PmGw=uI|&PPx0=%@4j|&XV0F+>gp<< zKY!lqFCS@C5p2kSTH-D*FE4Z;!@BHX4uNQYDUx#Jc}fy)zn(0GAG? z89K15j_MCh#I7j6w;9--ot+bj3dDRBH{lK$A)r(c1@@LY+ySFscTqKLz&tj+3V`RcCrBSKK+y0xpU|6!3Q7A{eEbic45z) zIfKp3%@dyk#C(_?FaPD#iAmEGBW+ZZK|hR6sip%I8TzZiwH0r|C+4kYayi;RyrotR zP17u#JGy%HDt`5=U-j@IFnhkMC9-o4XU?3##~**ZP@4MHt5r zT;g;{V$AuwG!_~*yWy9uCa@K8KB%6s6@Sa&YzG$D^va zc<~}`-@d&t;J<(W{tU*pkg;Ym=AL*RGgI7{7Kt2psxTDT0>e?ET4xe60e!eJ=P;E2pYAK?%i)snVPI+F4bz^I{wNAs(G9vlUs*0yipCW{SU;p~oZ_IUX z(n1Khckdo{cXwyD_yDH*+xyU3eac-z@Ln3N96te5O-f6$Fek#_FbzR8JlTZ4sAEXs=Y_uxg6SIlDp8*j5 zbIw99m-RBQzkXne*OA?RWZmGLcqg^5ApEfLjcI`tUaTE^P@o`v8_6g ztVcC*ZVT=};pgS-)Cjc5?Y(oUGSLvD*+bB%6lX=k0j}r5*=QBd#0NB8OD-_kPgVTu zU;o1P_BO6vyM}Amt}VRP$F}3+V{C74m`o;F{qQ-p(JaRyIe1^(QD<;?o>ziT z$^*Wnl%hutXF-Jmf+GICl~RpL+2~VpR|BMn04cNxm%NIQ#3wreFa`lAQF4boXrx24 zkB^UW|NebEc<=xhFJ8ni*Vgch^XF%>19@>n!1L$NvA4H}-Q8X6?d|mz-$K6HIk9t! zT<3dp=VFs1y$8Br91rghrYVotH1NsAb*c2Htkw3&H-H);1jgj`|(Ho@WT(82u%}r6vpS2L%XNb=}Z8}&cOytYKO+Q=w5QM z>YagctWJyQ$8-K1RDdqb7UadFJ`>y2IJ6L$90fE@sxvYJ$-o%#0BmwW7C!(Qq9T_Z zs1VbyWP)-mmhd8zRG(GGm}8;l`XOduvo)pm`$+UIiM8akG`B`(4)*DcKe3C_4@dI; zRzxBu%PTXRe=iYzMF^4QX^ct$CW?iV{_bYgKs1%JjT|VgE4cxP(R4A9_;M6SMrje&dsZ8AzO;@N46Zc#GZT3m8u zMihX|q)2@BG)m^1rRzMV&8H&ROw6Qnv*k>$on z5Qom5qZO}BAU<(zJ_`l*_@t<^pe1J&vjg0@k~Kpiyg#i6BViM27#Oh1P7j zDcUNEwr$ex428NPdL%eE&o-ff1Rj^7e1D1! zS5j5W5g(~^kY_J9K5?aU=^mE|D(DjC(?rxrtf=_2KBede;==x-x~43WXh6`Ao|T9% z3T==B8c5z7b4eLS`SPO>R8NWQQH=zFhlfMRemoEtjOtktH>O2IQB+oTRYO8EN$Q+R zJV22P9rZ_-f*ycxd`Z{Rx)FkOQCLH^iskpAqN5~W@RqCHs7L2Y#xjCxj}RndPcCfe zy2SA*2$HU)NJ>%>A-lx!$6ZV;Hrh!ulK1B@>@^eB`Tbd-rrT9h{ zLiC^r4TDXBCVSL0WpAp*d&FN}eX_o#TG)9HkC2tJYCwY~=jc1St)h^09UOW@jGU7u z(WR9Zmvw8?XkHxgnju`&Wf9tG(q%lqv}8OJE=|vEeH%l6$qDHvE@MGNu@htTKQ?%uCl+Ld5wkoXhx-+yVfjb`(2xE)g<`7E&5PlemHBH;1Cvl47?QhUwrE zXDGN)(_rBo8sEVCcn&FCJU~1Cyhb#h+0-W8M$GCQlW{I{V&fZ>P)-Dwk`_i(;GKte z3JLV?(lbDH6xADJ9;#)rymL^OemsE=l8gGf_0Ay#$$1*zG;uI$s)&=3@QhkH57A^f zeW^ZuJzv*^-NFY~vX6lohG!+{{Ej}!B)`GFhqmum8uxai4oNf0ldT9i~; z(s`5;8^s44Byd4|*0nkAK-3a-MNDi$;ME~`1*F^;UDhU^^vhpZkO|W&9>GPt*0!Uv zRa-*j$`nV<=?7O*Dr(}4aU97HHy+ujZR4-vNzk~*T;c`=QAa$)U^Hqm z$v<$IghJz@_~b&yt?~_yk0%kgCJzqE{ZVm&V%4-cf=+=Dy6ip1Eba&rB>VY2$#Zds zwNH?Y$B~(k9D~m$m<&yLFmWBUcqqw8IJoFh(aL808Rez8vc5McLaz`cPue@~-zquz z-lDmH5KPr|vOaW4>8{32yQ37IQv@jv3k_0QQZS7k(r!L}<`NF?x{y;&NI{@r3>8sG z(==#fD(5sm41p?FyI@Hpk3xd>cs{5T3w>aKJ$XOgq=iCsR02YeK%~QT+C_&)T}AX#YRN_AoE=hq zDx*R%uVlkl9#EwU;OP;PtUTZnx0V<%faI`{@X`1YZ#Pg4=sFtNxbPup hhIB+AP(YmE{{Y6lNyncw#U%g$002ovPDHLkV1oS{xW51Z literal 0 HcmV?d00001 diff --git a/resource/template/ClueVacancyNo7.png b/resource/template/ClueVacancyNo7.png new file mode 100644 index 0000000000000000000000000000000000000000..57d94e3a00f25a80ef6ca165c77ddb712fe2f633 GIT binary patch literal 9986 zcmV+dC;ixoP)}e{*L3)%XwCGvEneB6tLrz=)BN!It{oU6nZ> zGFN7u7Vd7o!4Zvg`<}CR?X0ZKl`9`d{@Z{5A1ifSF;8frr}-Yi+E(;=|5=d0p!^C$4M3+#sTGcZ|G_yJ5~7=A3xCo?=}h zFn7QmW(HM-n?c9GoD=K1aIFP1gPFneeQpNiGq1g2dqYI9&2U{8riegAFjA-hFz3w2 zmJ+&Z+{hhJ6^IH{6hjBL@A!LBK;r@T-Vg`?hls?2-663HwHf>q!nE1|9SXkO9b=66 z%oxBn3?1>XFbHC!A%Gwrj)IQsE8Jqk9I>`BM{S~+K}CRE3jpYxv6j65xlZKIE&})1 zRuzHgwLGsoA%ZbNurmcrZ37J3Lcr7>3JD(CLLuzEVQ$cTkfEX7BFJlbE)`H6a2N!N zWec}?EA84IvKL5c{1}5DZGpfcE*Ls7hQcf~FHV%=suM&#@f4gx=L8(kF@W5NyG=~Z z1Z6Qs2tMDp&49gYGX@nSf1Yz1z<>I**)%ZM*AdeSMiwrG|h;VKeJ zBvQ7M@3XxD+UKrJtC4?{qo?5QANY+wE2!-`vZSa%V*p zVvgG_?3ryV8@PSvd*T5pkkBdsyY+EzYE4{c?_CQQ2n=y==P^pV>gHJM3av`>19yah zFw8mfVJ#lktZcA5Fy@GRTG;Nrxn>C^@V4pHUY=HS$2JS|f%ZWsM6AX^T>W!8fSD!5ptD%jyQ}Y3Z*0C&MC1j$rG6UQko+gUgQQ8aCv8^>b1py3? zqrPR=W)2OcpvvdyJw7okg{|o{>v{5?R2Bvbs1+U8<26+=X}I~JyEkx0&ETU!cid!P z9Ebtlwr9*4>PrR4o#bjXp--JQcsezKc-V6~6*>TEi-|F23I-Jw0S>o*+EK7AwGRDk zjbJ)xpdjhcW;&$~YDPIZxI-u(YB*2<1~tDt2P2rim6z6lFh{gDf}ip8Cg`JEk~<#6 z;iZk#8k`TFHZa20#J7CF)b_IHejpe+&_ny&9p-l2gTV>X+??jk?tZ3upyD`>`=Q0h z!__(@Pv4j`0+7!uc8fNmrcoG^zlcB}j(lj+!0mRs3p5-k$YW;Ep~p$^5X8Ajdu#S1s6D%8>T9- zZRIiDLN&(W@LU{wFWep;YPZJFe7^y3h=%!i>x*yU&1Y}4Bg|tfhx|gz!sgx{ZUNGF zYTF^u3cKOB-EJ_8bqEneZU%!G9V5Ise;0SpK*PeM4K0lNyH7re`|#AI6F(guFGWmm z`94B6vxvO*TD3`2$G~mg0CXg#LnFe;P;DNep!zoOsc|_)%DP+YEgrJXL zAz%!>ei9b}lq-zZG45>ZpZja319nv?9r$6phbk~<1sg;wPTadUZns-7fzq~rUTeV} zcfWM_5lI=`!friX5%!H8zl$(7@Z(;)!soGf+T*{B*IEl#as&KB8gkxl*vaLtJn}Sy zM$_TI-U~Ye5+bY#1cAKwPJFl1Of_g;+c7+O2LLPWok-eDgoZl+sT=wqf094L*Iw%` z;wm90{PZNhi4tswf3c(;hbm~|1z}bk3B}sE;PB#px06WLtZt5=`G$@lSzb6!{}BrL zb9{-0V(Si#~9 zvFTsZ>-pm&e(=K|wqVewk4Qk2%$QY>V;M;jU(bxljKsYJVKh696QI38f8bd25cnLk zz}Ok5BFF(#geo80UAwa*%JZ7tM*^UA*2`M(^`B{+)OJ3Sa!< z7hft^cgGKZ@B=(OJrya#=+SIfM17}`DLg_~a|6ta2C(D#LJ=on$^o=PaNy+mHCAThBK{WnTZ+2 zSI@bzcS2fGxH{&uhlgbD1Fzj~w@Q~2axle%G#kNgMdU`Us?b?UTsN7*#Y1Nb&5z$U zOLd#`&Y5z9D!ZB+6H#Kv{m6}Y|2yA#r8&5+3qStJ|3#&ZATYH;0iMBwr&FRTs3_zn z5h7cFFSlmisQs!^!Nz?4_=vf8*;GeFVGj=v;n+yMWoWD(kmRxjktp7TSQ4#XcDxi?wJBt!JIejy$Xj*s{EI~^d)@jz4u-!SOECPfBZlA z?6XfX$HZDuYhjk@Brw;83TvYV!NRP0SK3@zsl&R8y&@`IYhz`!H@WS5FSzGXAKVo$ zJ4#z)W^if55V^JsOgcs~H*QMucTs6MguJNGN#Vzx?%I z>m)VTtdFjN1BaZZ#r_&1rv%|NfVk+75%123Z zlSs1pkKo#p!2z!rE^-%74isEilIW*D;{)-(xq(Ptnd{(do0XOUz*}#90pI=ZcV8-4 z0Qk|5euQgXeZA7gbJL{kf4GTO95YX@nLflT+?B+}KxCqgTn)Ta+GpOWs%dybG;<#X zczMCZn&EU<{n%P~dhGj{>gm;)=}#?b7RFNB*f$? zEi>rNco9wP-Q4cEK@dRigMuzgvTf-}kLr>nH1=Ly!o=t^~)BQ1?j#j!}1e*gR5d#PXn;1|F61wQ-iv%9~O57O7S0I{n)mQU6-0AW>)*?nSK6C@pFjbO!B4s2Xv$!n5Fb_>1WuR#GZpnM7>k z7}}tU)6v{+6YszO{!0Z506+iv&m-U&dI*)7;pPZP)@Ytolg=LJM=FStV5q$X58y?C;7l`K@}FsDuN{ShYgvwY!XSN7Q6v=C1Bol9ljKv!YF7l2GVqGJp5pd+*`dvxk=o_WASY_~kEuS*P(dJCP3@RVM~_?5yz(gwjG( zkLsJ1sU9G4E`nsb)&}5M*UIZznNAIYrj2%c^8>`^!?N;(YOO;{EAE^H8n^P8fgvys z1aZ`Howm(WgIQSJ*^MBQ{`0rL{ZhdKz)yervna%4jc)qL7op@{3wwvDDzkWm*_vTK z;aEGaDDYVP>~WDT?$O3?WstVa`uZ}z6BWtapyzPY51L|m9)RK z-^W3&&%XQayHSAhlGpRcM|}9JUzJTiKhLPK5(MN&9K~JSRV)&lr|I7ZVcw2D-ar6= z4F9zrKv~`%bqg%9Bw#)vQSp{3j5A|Fkw_v4QkUmKqgh3Y=m>##Wuazd6ie84qzhTXgdf3_!Aqoj2mKjOgNEe%xy} zPYockZPxaTSe6OBsQA`&f}`$1%_g+!-RKkH^tp_X-0{vk@8IF#<+gV3jSqkQs|u0X zQ=xKSXWQ`MsF*)|feLeG=$bP$LrA$0y2Zy6f~GmrNGo>+fb<^i&dD>JC}t$J7)RR+ zJC2N?9O$g6cM-D)V241f&Wiy;nUg-wWU9XXtykOH4?p}BuIs9wJ0w3qzOH##T!&F1$uL+)WHKQ=Ew>g9?vmmeZXu3erPsM&Eo3YfQ#?U9FKb~Nx`!s zQPNBuW{%SCUr^p@zrOm_ui#5xdO0}*03UqtL2L>!DleYO$|#iBcVt2l0ECSt7FF=u zH+<)5w%w*HH+!crsV(6YTS?~}vlw_)Mp3Apb4OJ=R>MYd3{uU0JksG|TVhq;Fw&bI zsHE_5RZ%u7D4QXHi@*IE2;mQZ_ya!u?9)&TO}~*VVQGG&mLU8MvDtvbMC*N8C@P_w zwnJYmK|r;m6%GbAFb1|8=I!AYO?j!k)LiDSG;J0&GHAB^9T9}kOa#~;tiH*I?(75# z4mIu!RhD#QQIj8LfpxmK+YR6R<~Ls{+<*S)qpX5g$Std5^W=;%>tOJ{B1g8@46N3! zC^I8UDj7?h>e-y@%!n@A7si};5W#%@{CTkL*=Kw6$V7OuJTwUlz_nKN`&NgHL2iK< zwpj~$hqu?!ZAErez)S^PV?62QCfyz@%t3jjX+;6q$lgRs^=Y>i?&A-+iTEKl$Vn zJb(UK1q|dcatHH&aqYbwBg^uuJ%CV?Z+D0JhFU65ri9!)GrgJRb%U5BcM^9iv?Ov5 z@To7&ekJJ7j3?RmxCp)MQN5iK^ZGZpL0-56TKgNymc14chy!mtdjnto@|RyJ+~54> zqdP7@Rqi&78dbqjtvr2<_C1@1>_CZd?!K$(h3t)WP~=r{Bh6>_LwkzkJ~%M6Ln^11 zkd1b-KIunrkk=*FB7EzfhR?qoz`O6h^Gd-2z;8bK&E3z^qRh}e@i&fB6N?HZu*R(= zeBoxGT6Zh0mFS@x7PTtY3Fox!5hIjQ_AR)Bksvxl;)FR&($S6*QjL+B0zu6?=tjMg zayjkeZ%d-x$O63c&Z~v{>8GFK(|`Z8o`WZik(Q?NR91z=Qfl5^cRLt)W}#ie%m6x! zP^~(I&M0%+!ugoW1+${c`l{d-@=58D75EyEP*w~XB5ux0Lpywi3X&E;` zA&ZBHXZXr%n1ql2Y$auQkR-?5j#9=V_{P`2{z}0D zQ9*NOy`)bVN~|dDZQ-CoZ2sNxb~xCL>D3`gS+&!YqA~EQO6GWf+~YhL?duEF|nR z$qtOfm(pn&m{-Gd*stD6f_6rG zG)%lN$FXRe3kM^wjkPz12t)&x-5ze(YeR4_eJrX$Y|QKiwg?V_aEO-sfrxA<@X3(? zN+*@Ug9-#ktypUMnJU*I>B#h8!S1)`*y<{BG{}u zO$}X2`;wugD4vO8k@ygS2}$VC^pz1=^lUZffa5a|RIM881m6CuSBJX*@View!PC># zR75(l#TwfeUS=WG+n88u-Hjmt(tMB^OQ#Z{@2*tNTD#V|v$Xc<>FMrT>$)&)8+9*d}^NE3{o`0iTu3p5_&czi>`+Okrm9M-Sf&sw4 z{oB9CHO-6gfjfM6O&5bO+IoSPqSO-kJdEhvAud_P$^J4c0w?ThK)1c9v2mT91uoh^ zJ}dYR)h6gB>_F}!Cx~!|c`>)_-39LXPcYVNk1odp)q64$x!rDf^UXJ3DcI|}@c8%$ zk}-GWdin+&Ld~00x`|DU{qvbs!ClQlaoU8E-qq%39*zI)?$98_y##SqxmfLDkjG{Y z%8N&!j*)xv5V2jIdn3!VD-^B6>aDOed+bJHbB4M{Tp&@Xzrm zoFqHW;cvNlMheL9w7#;&@i!4f5KuR{@!~ED;LM7WMI!sd|^s7qm`TF$J z&)WXuUOQ9H0MNBy=$~0@;NHPTIskC~ndN*&uWQ5=LT0N@9(f4fFv_+Zvzvpx+JQEL z7!PNatx42~gS0MtmD=ax03xARc8I3J1C3A;&fi5y)lV++`ojI}(>o58LZpyFkny9I zJw`@t6n88}5VP8d2uSpgF@WppQ)lc*3I$thmw@*XA_E@d2FVQ!w0&{!BciiyPVH2J z?RFlA;4|b@a6lS42!5s`DTdh&4pkGp{r2k#_v!Ho9CXy(ih`k%o6KME)!14x-9LpB zoZ@#AQl$88N=0ezj;!*^p&!6?tu7yMrpg%gAqEJowZg-T;NjsJM6#H7?XtyWnD*K+ z9xDs#w(g^Nx&s|lK8L=H=DHT9^R6{0DGHUHO+ zp=niSO7dkbm?(4vPK0C<&<@t0N|vE>BsAlnH{N*TwFCAH^#sw1WP-*(-ykqz#W>5bWAas zZnpzVjT|$DDOvh18BkaZ{0*ij7HRG=7AuADI`|f;5bXCVBJU1vwS6T{mlscjG}54l zXJE85(47Om{_5QZ5zYL z_*(&M+Y7Fp#SrTjqAnHz?j{PQ=Dqpm>uK&&1`j+9jLdlPyZZoDF;lmu6Bh|*Cz^@W zEFMqSK82V@l;I72d)OoIg1H0W)*1piNZ@qo^_^I` zsvq+MEMeMfm*bynFAVf#;%r zX%0Cyz;;*xHlfcVD$?ujY zwjUW5_amvk_r|O;Nnw-{Ij*%=HB|HAA)LP7#UY(L>NJr9nH@k0J#uXcxFwD)Yj(N7 zIcGzlSG>0E8mj!_V)l5QJ0>JM01tKv=Z56MQh-Y^_TaP_#!fNGr zPn|KRmoTXU5m{boKgJ`ig|mn#~}00fQf(<{X=-yRA8438_xbL=+`B zeqBScfkjgF@6UpgxsM{ei?g;xs(Mc|LUTwBWFyS!v`kZvoIl|1z?cbXh~zWWtw=3# zWNzf^BqU3?JBcMirA+&m_)dWnha$(s9QS>ZV5e$3kS7dfMjSmh8w3KzR8_QCk=``3 z{+@`+zsu40n)OpJGGXw5C&g)cI5kNC-4W@A`|-5~=|#z46%fzfgNNJ8`yI|#*gbBN zDxDjeRWOjWb7Xx0oS3Qw%xo5{lIW56-Fh5G)38t{+{ z%OqoDR9En~>JS55IgT%~6Zk40lC!^xo0S0z!)dd0NiGmQM~H4)&_*#o2djt z!KpXQOt3UG&K$Vq65fK>dPWxo0{XWeKpV_*XqHBGFI@jr z)DtVD-Rp3%V{xXA+8&09sljL7-rU?V{{*u@UV#ty`Bw-VBH5UT!|5^NY9VW$|8QcS z{6RvzRC6bHohXPXgrE-@6USBe8Qzb8U!(-I7`$CpMv5k#gG^T$D!Vru|96-HQqY_}L)+PuVc0&{ACplBPKyofhw5jFC=2E7eRS< z0p0IrkW3N7v)+M!&kp$W&&c|!zyJIHg@5>m|6R#SLbb?JL_^HH-D-kets$LLZe3j0 zIw5+7zvnCFsAV&Cag->03l_g*G^wuH)}Vk1<`i7l1woVpa6?2Q7ML{x0O4JAWJH$Q zs3OPLZ%Nvhk<6A<6vxjBP{S!$R0r@2>U!w=$m!7hJAp=5l&2sEzrO-?P1fol1CJtQ zyo*0T`jJ|8C~kda4UmH<;=c6m)~Cg4ck1D4;uNmf;y0xa(_#n>ac%`4meb$NcXV&0opf$I$XZNYIl}s(Ol4A zA;Vh0u}v#F>(T-%0r5dKpPBa8_O1fOf|?$u_}UQ`bAa27Cbl@bCn_K*5+nD#h#JBY zl0BLXJ{&d2(8LpEj5t}2iVK^Zv3>$cP7wX{3ic2l{6L5}NPMB6&%m+@dyp!fEGCv`nr!zr8w4VOK z8ZQPE48JQnMIr@<_x7HNG--8 zAR2ld$2jVIK>mqcO)8KZBxgld+>?1RF~HQI9#K<$0VhyeLT5>MN4b?2wN7+s3x`{V zyQNSp#*+-3vRUS6sb#qqlL;b%bzKEh_gWQv2?WbFhZ8r3l>@5*yh*lBWiJ=#;5d>> z70%X92B6IJLMrqvK~h`JQ;=F51Ah@;Ubo}lBRe+b5C)HO+Zid1m4t7wP=Wgm1fZVX zIdQViN=;6@UdzgfG7{Z;XGIQAtsR3d+P*XT>#s@7XvEAAU)mHxXX=}iLq5M)I+t(+ z^%aPzWo%R_;}1ZxP62MnJ;B_J-tNb5$sBj1R!RHanK5lRCICD=cAYh$_IYiH`2g$N z7)ta0XPp9o>WkxX=Sab(D%nPr8Id&iJ=7T$R;w)4}=m^-#er1H(e!D&WgPVCCor4&L)=1vhL>oTG#y1yv7 z7ubA><%rkbaB8LJW^&$S59%PSvt3^{chrJ$egaT+2OVBYPlnFl3nB{R!Whwb!jqZ_ zHu}5MXo@O@1h)V4A`D=qa1q;F`p%xmQ0Ua`)#W1I~WoNg94cTNRi7o#3Rt=O6L z@DlCx5Mby$dM7OVDgfj#b(fsmkcQtlZC%~uavz1Od5t1d8G^w8kJsjg7VpHoxv7*7Bumkli;GBe z@l)bwz({db63pC zxIJe$Y{xWUOMFH6ImW=G8=gf3Y9k}5jGn5DDiuKlay?<~Xn$g0QQzyv5Lh~=Xl7;G z`Q^&A&4A~yi!fib?-Lb>2(A^i0EP|cmj50k581T{EIBr=k>x~Ln zx-TA$Eiqk>c-YGppRH9q!I1dkzR9_`6r$w-9YJH?$v^`gE?PxjqjFUe2p^6dnCW3Q z7zGL$C*ydRNcZr%;b}J%3M+{PN?;is2d*(sl4un$sk7PX&Kh;UB{o@h}#l>Zsdq43XY|w zC@6#7(5LK{2!{Hd!!uu)v&ovZHzwF>6@iP2Vy&>n(c>F&boX8WUYZ(_ota^I)J1^W zl?{#bDTd1&9^eU3rBkN?lw0! zOoVgt>>c12(y@%bqp%HtUv$w-TYP(7y!BcO`t($GY^Ujn4Fn+U6GOL@9+RT0`6abo zq1g|2&z11BkvgSk@2(`ndTf(J{(xpEzNIBjImsF!mEw&|*s$~e0VsA)hWx4o+yDRo M07*qoM6N<$f?k*|`v3p{ literal 0 HcmV?d00001 diff --git a/src/MeoAssistance/Assistance.cpp b/src/MeoAssistance/Assistance.cpp index 2af1e1633b..d2614aabce 100644 --- a/src/MeoAssistance/Assistance.cpp +++ b/src/MeoAssistance/Assistance.cpp @@ -21,6 +21,7 @@ #include "InfrastPowerTask.h" #include "InfrastOfficeTask.h" #include "InfrastInfoTask.h" +#include "InfrastReceptionTask.h" using namespace asst; @@ -228,7 +229,7 @@ bool Assistance::start_debug_task() { constexpr static const char* DebugTaskChain = "Debug"; - auto shift_task_ptr = std::make_shared(task_callback, (void*)this); + auto shift_task_ptr = std::make_shared(task_callback, (void*)this); //shift_task_ptr->set_facility("Mfg"); //shift_task_ptr->set_product("CombatRecord"); shift_task_ptr->set_task_chain(DebugTaskChain); diff --git a/src/MeoAssistance/AsstDef.h b/src/MeoAssistance/AsstDef.h index 8da22eb7d4..35db568366 100644 --- a/src/MeoAssistance/AsstDef.h +++ b/src/MeoAssistance/AsstDef.h @@ -65,7 +65,7 @@ namespace asst { && (y + height) >= (rhs.y + rhs.height); } std::string to_string() const { - return "[" + std::to_string(x) + ", " + return "[ " + std::to_string(x) + ", " + std::to_string(y) + ", " + std::to_string(width) + ", " + std::to_string(height) + " ]"; diff --git a/src/MeoAssistance/InfrastClueImageAnalyzer.cpp b/src/MeoAssistance/InfrastClueImageAnalyzer.cpp new file mode 100644 index 0000000000..7f241cabe3 --- /dev/null +++ b/src/MeoAssistance/InfrastClueImageAnalyzer.cpp @@ -0,0 +1,38 @@ +#include "InfrastClueImageAnalyzer.h" + +#include "MultiMatchImageAnalyzer.h" +#include "Resource.h" + +bool asst::InfrastClueImageAnalyzer::analyze() +{ + clue_detect(); + if (m_need_detailed) { + clue_analyze(); + } + + return !m_result.empty(); +} + +bool asst::InfrastClueImageAnalyzer::clue_detect() +{ + MultiMatchImageAnalyzer clue_analyzer(m_image); + const auto task_ptr = std::dynamic_pointer_cast( + resource.task().task_ptr("InfrastClue")); + clue_analyzer.set_task_info(*task_ptr); + clue_analyzer.set_roi(m_roi); // 改任务以外部设置的roi为准 + if (!clue_analyzer.analyze()) { + return false; + } + clue_analyzer.sort_result(); + for (const auto& res : clue_analyzer.get_result()) { + m_result.emplace_back(res.rect, std::string()); + } + + return !m_result.empty(); +} + +bool asst::InfrastClueImageAnalyzer::clue_analyze() +{ + // todo + return false; +} \ No newline at end of file diff --git a/src/MeoAssistance/InfrastClueImageAnalyzer.h b/src/MeoAssistance/InfrastClueImageAnalyzer.h new file mode 100644 index 0000000000..7283d2d0f4 --- /dev/null +++ b/src/MeoAssistance/InfrastClueImageAnalyzer.h @@ -0,0 +1,23 @@ +#pragma once +#include "AbstractImageAnalyzer.h" + +namespace asst { + class InfrastClueImageAnalyzer : public AbstractImageAnalyzer + { + public: + using AbstractImageAnalyzer::AbstractImageAnalyzer; + virtual ~InfrastClueImageAnalyzer() = default; + + virtual bool analyze() override; + + const std::vector>& get_result() const noexcept { + return m_result; + } + protected: + bool clue_detect(); + bool clue_analyze(); + + bool m_need_detailed = false; // 是否需要详细分析(线索号);false时只检测,不识别 + std::vector> m_result; + }; +} diff --git a/src/MeoAssistance/InfrastClueVacancyImageAnalyzer.cpp b/src/MeoAssistance/InfrastClueVacancyImageAnalyzer.cpp new file mode 100644 index 0000000000..b16331d9e8 --- /dev/null +++ b/src/MeoAssistance/InfrastClueVacancyImageAnalyzer.cpp @@ -0,0 +1,28 @@ +#include "InfrastClueVacancyImageAnalyzer.h" + +#include "MatchImageAnalyzer.h" +#include "Resource.h" +#include "AsstUtils.hpp" + +bool asst::InfrastClueVacancyImageAnalyzer::analyze() +{ + const static std::string clue_vacancy = "InfrastClueVacancy"; + + MatchImageAnalyzer analyzer(m_image); + for (const std::string& suffix : m_to_be_analyzed) { + const auto task_ptr = std::dynamic_pointer_cast( + resource.task().task_ptr(clue_vacancy + suffix)); + analyzer.set_task_info(*task_ptr); + if (!analyzer.analyze()) { + continue; + } + Rect rect = analyzer.get_result().rect; +#ifdef LOG_TRACE + cv::rectangle(m_image_draw, utils::make_rect(rect), cv::Scalar(0, 0, 255), 2); + cv::putText(m_image_draw, suffix, cv::Point(rect.x, rect.y + 1), 0, 1, cv::Scalar(0, 0, 255), 2); +#endif + m_clue_vacancy.emplace(suffix, rect); + } + + return !m_clue_vacancy.empty(); +} \ No newline at end of file diff --git a/src/MeoAssistance/InfrastClueVacancyImageAnalyzer.h b/src/MeoAssistance/InfrastClueVacancyImageAnalyzer.h new file mode 100644 index 0000000000..ad21c8683c --- /dev/null +++ b/src/MeoAssistance/InfrastClueVacancyImageAnalyzer.h @@ -0,0 +1,34 @@ +#pragma once +#include "AbstractImageAnalyzer.h" + +namespace asst { + class InfrastClueVacancyImageAnalyzer final : public AbstractImageAnalyzer + { + public: + using AbstractImageAnalyzer::AbstractImageAnalyzer; + virtual ~InfrastClueVacancyImageAnalyzer() = default; + InfrastClueVacancyImageAnalyzer(const cv::Mat& image, const Rect& roi) = delete; + + virtual bool analyze() override; + constexpr static int MaxNumOfClue = 7; + + void set_to_be_analyzed(std::vector to_be_analyzed) noexcept { + m_to_be_analyzed = std::move(to_be_analyzed); + } + + const std::unordered_map& get_vacancy() const noexcept { + return m_clue_vacancy; + } + private: + // 该分析器不支持外部设置ROI + virtual void set_roi(const Rect& roi) noexcept override { + AbstractImageAnalyzer::set_roi(roi); + } + virtual void set_image(const cv::Mat& image, const Rect& roi) { + AbstractImageAnalyzer::set_image(image, roi); + } + + std::vector m_to_be_analyzed; + std::unordered_map m_clue_vacancy; + }; +} diff --git a/src/MeoAssistance/InfrastReceptionTask.cpp b/src/MeoAssistance/InfrastReceptionTask.cpp new file mode 100644 index 0000000000..a8747403a0 --- /dev/null +++ b/src/MeoAssistance/InfrastReceptionTask.cpp @@ -0,0 +1,65 @@ +#include "InfrastReceptionTask.h" + +#include "Controller.h" +#include "Resource.h" +#include "InfrastClueVacancyImageAnalyzer.h" +#include "InfrastClueImageAnalyzer.h" +#include "Logger.hpp" + +bool asst::InfrastReceptionTask::run() +{ + const static std::string clue_vacancy = "InfrastClueVacancy"; + const static std::vector clue_suffix = { + "No1", "No2", "No3", "No4", "No5", "No6", "No7" }; + + cv::Mat image; + for (const std::string& clue : clue_suffix) { + // 先识别线索的空位 + image = ctrler.get_image(); + InfrastClueVacancyImageAnalyzer vacancy_analyzer(image); + vacancy_analyzer.set_to_be_analyzed({ clue }); + if (!vacancy_analyzer.analyze()) { + continue; + } + // 点开线索的空位 + Rect vacancy = vacancy_analyzer.get_vacancy().cbegin()->second; + ctrler.click(vacancy); + int delay = resource.task().task_ptr(clue_vacancy + clue)->rear_delay; + sleep(delay); + + // 识别右边列表中的线索,然后用最底下的那个(一般都是剩余时间最短的) + swipe_to_the_bottom_of_clue_list_on_the_right(); + image = ctrler.get_image(); + InfrastClueImageAnalyzer clue_analyzer(image); + if (!clue_analyzer.analyze()) { + continue; + } + ctrler.click(clue_analyzer.get_result().back().first); + sleep(delay); + } + // 所有的空位分析一次,看看还缺哪些线索 + InfrastClueVacancyImageAnalyzer vacancy_analyzer(image); + vacancy_analyzer.set_to_be_analyzed(clue_suffix); + if (!vacancy_analyzer.analyze()) { + } + for (auto&& [id, _] : vacancy_analyzer.get_vacancy()) { + log.trace("InfrastReceptionTask | Vacancy", id); + } + + return false; +} + +bool asst::InfrastReceptionTask::swipe_to_the_bottom_of_clue_list_on_the_right() +{ + static Rect begin_rect = resource.task().task_ptr("InfrastClueOnTheRightSwipeBegin")->specific_rect; + static Rect end_rect = resource.task().task_ptr("InfrastClueOnTheRightSwipeEnd")->specific_rect; + static int duration = resource.task().task_ptr("InfrastClueOnTheRightSwipeBegin")->pre_delay; + static int extra_delay = resource.task().task_ptr("InfrastClueOnTheRightSwipeBegin")->rear_delay; + static int loop_times = resource.task().task_ptr("InfrastClueOnTheRightSwipeBegin")->max_times; + + for (int i = 0; i != loop_times; ++i) { + ctrler.swipe(begin_rect, end_rect, duration, true, 0, false); + } + sleep(extra_delay); + return false; +} \ No newline at end of file diff --git a/src/MeoAssistance/InfrastReceptionTask.h b/src/MeoAssistance/InfrastReceptionTask.h new file mode 100644 index 0000000000..bb60b2256d --- /dev/null +++ b/src/MeoAssistance/InfrastReceptionTask.h @@ -0,0 +1,14 @@ +#pragma once +#include "InfrastProductionTask.h" + +namespace asst { + class InfrastReceptionTask : public InfrastProductionTask + { + public: + using InfrastProductionTask::InfrastProductionTask; + virtual ~InfrastReceptionTask() = default; + virtual bool run() override; + private: + bool swipe_to_the_bottom_of_clue_list_on_the_right(); + }; +} diff --git a/src/MeoAssistance/MeoAssistance.vcxproj b/src/MeoAssistance/MeoAssistance.vcxproj index e191b516f3..d3026bc49c 100644 --- a/src/MeoAssistance/MeoAssistance.vcxproj +++ b/src/MeoAssistance/MeoAssistance.vcxproj @@ -25,6 +25,7 @@ + @@ -34,6 +35,8 @@ + + @@ -67,6 +70,7 @@ + @@ -76,6 +80,8 @@ + + diff --git a/src/MeoAssistance/MeoAssistance.vcxproj.filters b/src/MeoAssistance/MeoAssistance.vcxproj.filters index 3174df0b99..55b9aee1a6 100644 --- a/src/MeoAssistance/MeoAssistance.vcxproj.filters +++ b/src/MeoAssistance/MeoAssistance.vcxproj.filters @@ -55,6 +55,12 @@ {d173e449-880b-4064-bbab-97007e3d090b} + + {fc8aa302-89bb-4016-924d-10177dc8b334} + + + {9a6160e3-cd35-4dda-ba04-23ede1878740} + @@ -144,9 +150,6 @@ 头文件\ImageAnalyzer - - 头文件\Task - 头文件\ImageAnalyzer\General @@ -168,35 +171,47 @@ 头文件\Resource - - 头文件\Task - 头文件\ImageAnalyzer\Infrast 头文件\ImageAnalyzer\Infrast - - 头文件\Task - - - 头文件\Task - - - 头文件\Task - - - 头文件\Task - - - 头文件\Task - 头文件 + + 头文件\ImageAnalyzer\Infrast + + + 头文件\Task\Infrast + + + 头文件\Task\Infrast + - 头文件\Task + 头文件\Task\Infrast + + + 头文件\Task\Infrast + + + 头文件\Task\Infrast + + + 头文件\Task\Infrast + + + 头文件\Task\Infrast + + + 头文件\Task\Infrast + + + 头文件\Task\Infrast + + + 头文件\ImageAnalyzer\Infrast @@ -269,9 +284,6 @@ 源文件\ImageAnalyzer - - 源文件\Task - 源文件\ImageAnalyzer\Infrast @@ -293,35 +305,47 @@ 源文件\Resource - - 源文件\Task - 源文件\ImageAnalyzer\Infrast 源文件\ImageAnalyzer\Infrast - - 源文件\Task - - - 源文件\Task - - - 源文件\Task - - - 源文件\Task - - - 源文件\Task - 源文件 + + 源文件\Task\Infrast + + + 源文件\Task\Infrast + - 源文件\Task + 源文件\Task\Infrast + + + 源文件\Task\Infrast + + + 源文件\Task\Infrast + + + 源文件\Task\Infrast + + + 源文件\Task\Infrast + + + 源文件\Task\Infrast + + + 源文件\ImageAnalyzer\Infrast + + + 源文件\ImageAnalyzer\Infrast + + + 源文件\Task\Infrast diff --git a/src/MeoAssistance/MultiMatchImageAnalyzer.cpp b/src/MeoAssistance/MultiMatchImageAnalyzer.cpp index 48d9005930..611705fdfb 100644 --- a/src/MeoAssistance/MultiMatchImageAnalyzer.cpp +++ b/src/MeoAssistance/MultiMatchImageAnalyzer.cpp @@ -82,6 +82,13 @@ bool asst::MultiMatchImageAnalyzer::multi_match_templ(const cv::Mat& templ) } } } + std::string log_str = "[ "; + for (const auto& res : m_result) { + log_str += res.rect.to_string() + " : " + std::to_string(res.score) + "; "; + } + log_str += "]"; + log.trace("multi_match_templ | ", m_templ_name, log_str); + if (!m_result.empty()) { return true; }