1
00:00:04,710 --> 00:00:06,600
‫Merhaba ve tekrar hoş geldiniz.

2
00:00:06,630 --> 00:00:09,660
‫Şimdi kullanıcı girdisini işlemeye başlamaya hazırız.

3
00:00:09,780 --> 00:00:15,000
‫Bu, klavye tuşlarına basmak, fareyi hareket ettirmek ve fareye tıklamak ve tankımızın bu girdiye tepki verdiğini görmek

4
00:00:15,000 --> 00:00:16,650
‫istediğimiz anlamına gelir.

5
00:00:16,770 --> 00:00:22,260
‫Şimdi, bunu yapmak için öncelikle bu girdiyi gerçekten almamız gerekiyor ve bunu ilk olarak eksen eşlemelerini

6
00:00:22,260 --> 00:00:24,450
‫kullanarak yapmaya başlayacağız.

7
00:00:24,450 --> 00:00:25,980
‫Bu konu hakkında konuşalım.

8
00:00:26,100 --> 00:00:30,600
‫Şimdi burada projede, düzenle ve proje ayarlarına gidelim.

9
00:00:30,780 --> 00:00:35,340
‫Ve aşağı kaydırıp girişi seçersek, burada bağlarımızı görürüz.

10
00:00:35,340 --> 00:00:39,600
‫Bağlamaların altında eylem eşlemeleri ve eksen eşlemeleri vardır.

11
00:00:39,630 --> 00:00:42,300
‫İlk olarak eksen eşlemelerine gireceğiz.

12
00:00:42,350 --> 00:00:47,370
‫Şimdi bunlarla ilgili biraz deneyiminiz olabilir, ancak bunların ne yaptığı ve nasıl çalıştığı konusunda

13
00:00:47,370 --> 00:00:49,700
‫biraz daha derinlemesine bir dalış yapacağız.

14
00:00:49,710 --> 00:00:51,150
‫Yani üç tane var.

15
00:00:51,240 --> 00:00:58,800
‫Açılır oka tıklarsam, burada W ve SW tuşlarını göreceğim ve bunlar klavyedeki W ve SW tuşlarından

16
00:00:58,800 --> 00:01:00,780
‫bahsediyor.

17
00:01:00,810 --> 00:01:06,960
‫Bunlar, İleriye Taşı adı verilen bu özel eksen eşlemesine atanır.

18
00:01:06,960 --> 00:01:09,870
‫Şimdi bu eksen eşlemesinin nasıl çalıştığını tartışalım.

19
00:01:09,870 --> 00:01:17,280
‫Unreal Editor'de Move Forward adında bir eksen eşlememiz olduğunu ve bu eksen eşlemesine

20
00:01:17,280 --> 00:01:20,820
‫W ve SCS atandığını gördük.

21
00:01:20,820 --> 00:01:22,950
‫Peki bu tam olarak ne anlama geliyor?

22
00:01:23,730 --> 00:01:27,870
‫Unreal Engine'de eksen eşleme denen bir şey var.

23
00:01:27,870 --> 00:01:32,970
‫Ve eksen eşleme, oyunun her karesinde işlenen bir şeydir.

24
00:01:33,000 --> 00:01:35,700
‫Bir eksen eşlemesine tuşlar atarsınız.

25
00:01:35,700 --> 00:01:38,460
‫Bizim durumumuzda, W ve S'yi atadık.

26
00:01:38,490 --> 00:01:41,370
‫Şimdi burada W tuşunun yanına bir göz atın.

27
00:01:41,370 --> 00:01:45,060
‫Sağdaki küçük ekran görüntüsü örneğimde ölçek yazıyor.

28
00:01:45,060 --> 00:01:48,180
‫Ve ölçeğin yanında bir numara var. 0.

29
00:01:48,300 --> 00:01:53,160
‫Ve SQ'nun yanındaki ölçeğin -1 olduğunu fark etmiş olabilirsiniz. 0.

30
00:01:53,160 --> 00:01:58,650
‫Yani bunlar o girdi bilgisini etkileyecek değerlerdir.

31
00:01:58,650 --> 00:02:01,080
‫Bir eksen eşlemesinin nasıl çalıştığı aşağıda açıklanmıştır.

32
00:02:01,320 --> 00:02:08,580
‫İleriye doğru hareket eden eksen eşlememiz C++'da bir fonksiyonla ilişkilendirilebilme özelliğine sahiptir.

33
00:02:08,700 --> 00:02:15,060
‫Şimdi, Eksen eşlemeleri söz konusu olduğunda, bir işlevi bir Eksen eşlemesiyle ilişkilendirirsek, float

34
00:02:15,060 --> 00:02:22,410
‫türünde bir giriş parametresi alması gerekir, böylece havuzumuzda bir float alan MOVE adlı bir işlev oluşturabiliriz.

35
00:02:22,410 --> 00:02:24,870
‫Bu giriş parametresi değerini sadece arayacağız.

36
00:02:24,930 --> 00:02:30,570
‫Şimdi bu işlevi almanın ve ileri hareket ekseni eşlememizle ilişkilendirmenin bir yolu var.

37
00:02:30,570 --> 00:02:34,980
‫Taşıma işlevini eksen eşlemesine bağladığımızı söyledi.

38
00:02:34,980 --> 00:02:41,430
‫Yani oyunun her karesinde Unreal Engine'in giriş sistemi W tuşuna mı yoksa tuşa mı bastığımızı

39
00:02:41,430 --> 00:02:43,680
‫kontrol edecek.

40
00:02:43,680 --> 00:02:51,600
‫Ve bu tuşlara basıp basmadığımıza ve her bir kareye bağlı olarak bir eksen değeri hesaplayacaktır.

41
00:02:51,600 --> 00:02:58,080
‫İlerlemek için bağladığımız bu fonksiyonu çağıracak ve eksen değerini içeri aktaracaktır.

42
00:02:58,080 --> 00:03:03,810
‫Bu fonksiyonun içinde ne olacağı C++ geliştiricisi olarak bize bağlıdır.

43
00:03:03,840 --> 00:03:05,310
‫Şimdi nasıl çalıştığını anlatayım.

44
00:03:05,310 --> 00:03:10,860
‫W veya Tuşlarına basmıyorsak, bu eksen değeri sıfır değerine sahiptir.

45
00:03:10,860 --> 00:03:16,890
‫Dolayısıyla, ileri hareket ekseni eşlemesine bağlı olan hareket işlevi her bir karede çağrılır

46
00:03:16,890 --> 00:03:19,620
‫ve aktarılan float değeri sıfırdır.

47
00:03:19,620 --> 00:03:22,380
‫Şimdi diyelim ki W tuşuna basıyoruz.

48
00:03:22,620 --> 00:03:26,820
‫W tuşunun ölçeği 1 olarak ayarlanmıştır. 0.

49
00:03:26,850 --> 00:03:33,870
‫Bu, eksen değerimizin 1 olacağı anlamına gelir. 0 ve MOV işlevine aktarılan şey budur.

50
00:03:33,870 --> 00:03:39,090
‫Böylece her bir karede move işlevi 1 değeriyle çağrılır. 0 geçti.

51
00:03:39,120 --> 00:03:44,910
‫Şimdi diyelim ki bunun yerine ölçek değeri -1 olan SRC'ye basıyoruz. 0.

52
00:03:44,940 --> 00:03:51,720
‫Bu, her bir karede move fonksiyonunun çağrılacağı ve -1 olacağı anlamına gelir. 0 içeri aktarılacaktır.

53
00:03:51,720 --> 00:03:58,260
‫Şimdi hem W hem de S'ye bastığımız durumda, bu değerlerin her ikisi de toplanır.

54
00:03:58,260 --> 00:04:05,040
‫Yani 1'i alıyoruz. W tuşuna basarak 0 ve -1 elde ederiz. SRC'ye basmaktan 0.

55
00:04:05,070 --> 00:04:07,200
‫Şimdi bunların ikisi de birbirini iptal ediyor.

56
00:04:07,320 --> 00:04:13,350
‫Dolayısıyla, her ikisine de aynı anda basarsak, move işlevi sıfır geçilmiş olarak çağrılacaktır.

57
00:04:13,710 --> 00:04:19,020
‫Böylece hangi tuş kombinasyonuna bastığımıza bağlı olarak, MOVE fonksiyonumuza farklı bir değer

58
00:04:19,020 --> 00:04:25,230
‫aktaracağız ve bu değerle istediğimiz şeyi yapabiliriz, örneğin piyonu hareket ettirmek için kullanabiliriz.

59
00:04:25,230 --> 00:04:28,500
‫Piyonu hareket ettirme konusunu yakında konuşacağız.

60
00:04:28,500 --> 00:04:34,620
‫Şimdilik, Axis haritalama sisteminden gelen bu bilgileri kullanabilmemiz için kendimizi gerçekten

61
00:04:34,620 --> 00:04:36,390
‫ayarlamaya çalışalım.

62
00:04:36,930 --> 00:04:43,260
‫Tamam, artık Eksen eşlemesinin nasıl çalıştığını bildiğimize göre, ileri hareket ekseni eşlemesine bağlayabileceğimiz

63
00:04:43,260 --> 00:04:46,620
‫bir geri arama işlevi oluşturmanın zamanı geldi.

64
00:04:46,620 --> 00:04:50,370
‫Bu yüzden proje ayarlarını kapatacağım ve VS koduna geri döneceğim.

65
00:04:50,370 --> 00:04:58,470
‫Burada VS kodunda, ileri hareket ekseni eşlemesine bağlayabileceğimiz bir fonksiyon oluşturmak istiyoruz.

66
00:04:58,470 --> 00:05:02,640
‫Yani burada H tankında özel bir fonksiyon oluşturabiliriz.

67
00:05:02,640 --> 00:05:03,810
‫Şimdi olacak.

68
00:05:03,880 --> 00:05:07,180
‫Void dönüş tipi ve bu hareketi çağırmak istiyorum.

69
00:05:07,210 --> 00:05:11,950
‫Şimdi bir float giriş parametresine sahip olması gerekiyor ve biz bu değeri çağıracağız.

70
00:05:12,010 --> 00:05:16,750
‫Şimdi move fonksiyonumuzu alalım ve burada Tank içinde tanımlayalım.

71
00:05:16,970 --> 00:05:25,450
‫CP Bunu buraya, yapıcının hemen altına yerleştireceğim ve fonksiyon adından önce kapsam çözümleme operatörüne sahip bir

72
00:05:25,450 --> 00:05:27,310
‫tanka ihtiyacımız var.

73
00:05:27,460 --> 00:05:33,550
‫Böylece bu hareket fonksiyonuna sahibiz ve onu ileri hareket ekseni eşlememize bağlamaya hazırız.

74
00:05:33,670 --> 00:05:39,340
‫Ve bu, oyuncu giriş bileşeni kurulumu adı verilen bir işlevin içinde yapılır.

75
00:05:39,370 --> 00:05:40,630
‫Bu tanıdık gelecektir.

76
00:05:40,630 --> 00:05:48,130
‫Aslında, gezginimizi açıp Base Pont H'ye geri dönersek, aşağı kaydırabilir ve genel bölümde işlev

77
00:05:48,130 --> 00:05:51,910
‫kurulum oyuncu giriş bileşenini görebiliriz.

78
00:05:51,910 --> 00:05:56,380
‫Bunun miras alınan bir sanal fonksiyonun geçersiz kılınması olduğunu göreceğiz.

79
00:05:56,950 --> 00:06:03,430
‫Şimdi temel spawn sınıfının herhangi bir girdi ayarlamasına gerek yoktur ve bu işlev bir oyuncudan

80
00:06:03,430 --> 00:06:06,010
‫gelen girdiyi işlemek içindir.

81
00:06:06,040 --> 00:06:10,810
‫Şimdi, temel bağ sınıfımızın girdi işlemesine gerek yoktur, ancak tank sınıfımızın vardır.

82
00:06:10,810 --> 00:06:18,160
‫Yapabileceğimiz şey bu fonksiyonu base pond h'den çıkarmak ama ben onu kopyalayacağım çünkü ona tankta ihtiyacımız

83
00:06:18,160 --> 00:06:19,240
‫var.

84
00:06:19,930 --> 00:06:27,190
‫Bu işlevi kopyalayarak Tank H'ye geleceğim ve burada genel bölüme yapıştıracağım.

85
00:06:27,190 --> 00:06:32,800
‫Ve temel havuzda buna ihtiyacımız olmadığı için, bunu temel havuz sınıfından kaldıracağım.

86
00:06:32,800 --> 00:06:38,090
‫Ve aslında temel havuz CP'sine gireceğim ve onu buradan da kaldıracağım.

87
00:06:38,110 --> 00:06:42,250
‫Şimdi devam edelim ve Base Pond'dan setup player input bileşenini silelim.

88
00:06:42,460 --> 00:06:46,540
‫CP Ve artık temel havuz sınıfında değil.

89
00:06:46,540 --> 00:06:52,120
‫Şimdi devam edip değişikliklerimizi kaydedelim ve Base Pond H ve CP'yi kapatalım.

90
00:06:52,150 --> 00:06:59,410
‫Ve şimdi Tank H'de bildirilen oyuncu giriş bileşenini kurduk, ancak onu ve tankı da tanımlamak istiyoruz.

91
00:06:59,620 --> 00:07:01,540
‫CP Yani burada Tank'ta.

92
00:07:01,720 --> 00:07:06,340
‫CP Tanımı move fonksiyonunun hemen üstüne ekleyeceğim.

93
00:07:06,430 --> 00:07:12,880
‫Yani burası void ve bu bir tank kurulumu oyuncu giriş bileşeni.

94
00:07:13,510 --> 00:07:18,000
‫Şimdi Tank H'ye geri dönelim ve giriş parametresi türünün ne olduğunu görelim.

95
00:07:18,010 --> 00:07:21,880
‫Burada parantezlerin içinde ileri bildirim yapıldığını göreceksiniz.

96
00:07:21,880 --> 00:07:27,070
‫Bu, bir başlık dosyasında bir sınıf türünü iletmek, bildirmek istiyorsanız yapabileceğiniz bir şeydir.

97
00:07:27,070 --> 00:07:33,370
‫Bu yüzden burada ileriye doğru bildirilir ve bu size giriş bileşeni işaretçi tipine ihtiyacımız vardır ve parametreye

98
00:07:33,370 --> 00:07:34,990
‫oyuncu giriş bileşeni denir.

99
00:07:34,990 --> 00:07:37,450
‫Bu yüzden tankta bu giriş parametresine ihtiyacımız var.

100
00:07:37,600 --> 00:07:44,980
‫CP Bu nedenle, kurulum oyuncu giriş bileşeni için parantez içinde, bir işaretçi olan ve oyuncu giriş bileşeni

101
00:07:45,040 --> 00:07:50,080
‫olarak adlandırılan bir U giriş bileşenine sahip olacağız.

102
00:07:50,320 --> 00:07:55,300
‫Artık işlev imzası işlev bildirimindekiyle eşleşir.

103
00:07:55,450 --> 00:08:02,050
‫Şimdi CP dosyasına geri dönelim, bu fonksiyona bir fonksiyon gövdesi verelim ve bu fonksiyonun üzerine

104
00:08:02,050 --> 00:08:07,450
‫yazıyoruz ve super set up player input bileşenini çağırmak iyi bir fikirdir.

105
00:08:07,480 --> 00:08:13,030
‫Şimdi, setup player input bileşeninin üst sürümünü çağırdığımız için, you input bileşeni

106
00:08:13,030 --> 00:08:15,460
‫türünde bir girdi aktarmamız gerekir.

107
00:08:15,460 --> 00:08:19,900
‫Burada bu fonksiyona girdi parametresi aktaracağız.

108
00:08:19,900 --> 00:08:23,430
‫Bu şekilde ana sınĳOsÚ_*!Q7aɄ6h)r=+A]JS%eP}EE/@q\_|K(iOX9dL=jJ6˾yGli.Zбh
;9wS_ǜ\ӣBDU&;7o}+̠\X?laf1,U5\=0qa*(.(O76=b 8!mX;=n{S<NbjQ0!,3HsNC5c^|>˞/j	ٍ4uS@6y_ȸA
+G3Xc{_e1xL
sI\?.@5AUxhZKyi`O4έ>Mp[mU׃GahQǱe Z6l&m. 0J]jO"V6fN[ (0i*{8mcge[l>ڈGK`=Ζv#eX ?5A7`8`>{:bpé\l&,9ʭ?v3NƑxעx @2HZ-T΃"tό5@ʾ1)Zl	ݏN˲Jujx6 \|AO?4ieoSX0O^OA/O@G\rJmR1z7A%4ˋy
/F{Hպb-ɓ3:hIj F	@Ni$ˍ+2)j4ｈ
6	.TOƴ316T='
pV#noǟدF
Hz>ʠo|ho`-q h'ӝ1M~ h<_3_=jP[S+m4,aqCs,9ժWi.Օl޸$SofLf`.@P$ITݹt"ECAƗD7ՏOxfPtaWh?fČ"R3
iJ՚!E^C[rZgn2]DVݨbz2U2lzuԉ9/5;J.P>fLLfh,Ga. V.M죚,.;}--S~J/یAk5c3_JJbrUs~QX]@qvD{@覘ih"RJZ'j&On2FamSL5Jzqkᱷ*'5+ޕ_zJ((SВzr%mdC1b4}XŒH#U<..>k;94Y=ܠ{)u\ǯ0+z]?ڣGo5wIl[G湃Ex>CUl*.eX"8YL)sL fRO.fۤ1}\gϺ{?GdЁ+WzyGnAu)FBi\\SZBſH<v٫zmzlZT
EٿI̓Ը>e㇈D~g.t6E]nXMJq GOC#Me+겆{I>g\f_Kl|,2xHg4j)2!~ Z젆rMg]qj%Rbs"U
%FY#GOvՉzO90_Go.CL1B*2UcTN9Bmo;N0||3o[9Dƅr̜(om3Ӂ"J'	pNvc-2G{.(`Я Sb:58ǒVkC\h؞i-PabO{܊0aCz *-lf#*kXWӫ?ZLcǑ/r㉊#d2p+Cl! ڜm@@/M;ar0U▯/Pyp_tN;ms[TֻA$g
Pc3~E.牺8yϯ1e6jrb(7iz+,DO#
+lYkBDCB<TNOC8{Y*ujl-:Gb4"Q36_c E,>MZ:_-q{WbhYEOw]֣ NsFVLpxk
v ]H)Qr ,kIQvӡ-hQ-Q?PUf&Y!(|pWeҪE=2 ᄺ@eU@Ǩ
.< cOUTz{ŪeO=8CjKÓ]@;g^z..!%jO]9EAh*̉Rr/%*	Ͷ9[V!o9nEdX :^lG4^:m7p)J+FCfo&ÅKFj$&֥ˍ}48XL)#"؞ڿݩ-󽀡DLv.p_~-U(D׻هoBBJQ4&TJEbj"ldH@E
KK&@U=]uF<mR\2ĺBQ@ D+>3*~^_k>%jLƉ)nUA&<N	}Kś<4Lxhu5uwhX@Lٜ#O?Iro4vs*V=Kش\ym, ӭh
VZ2#nƚ!%@"/x"a Q 
ͽw}V'(S=	sԶ?ٸ`nfJHF'A
z)E3Eli״D|X8!ar`K5q}'W%wsnI4xfBژ8y
JW#@Ja.839
Ê5-h⥝)b.7@A"thx'8B&m1 "9BM'U~%54e+ݹ誩9RDܺY/1PmrQgGKݺdP@_}@n}\2(DewQ)*#Ivm7Xoydق~y=X֫,"ֱ6	nq )TQV$^I7l44J`"Qn,#ӻS)NUƆZŃ|}O̎%߂%$|jO"W M3z.`#u^f;kj!TP\-Yv	
cAͅ.ϐ,Ut>dAf6>GAM~>.LQզəuG3EQ ̆( Y!]3 7k6SW	0k-#gAab{
q⤶P52UUNw{8*~Wj!EҫόQj2Aތ-0^6>mqbE#nR
-\:e)쏁c7xŀo*x̜5"_<qqk#caTs	w2];ḿ)j<BwHcr$OC~$я_>jL`"~iH 
6|>x`7bzd|n{ǩL#=ewMSbsSQMB֭
`)Npc}*]6D]<$o YlҡK,E${%NGeMՁ"Vjx_;E#4rL%a쳱gz{kLU>PwD>bHf2dql8rV_)
4C1h Սz=/ZmP90upCCT7[~5MGcj/;b>dA8Zc_01ZYj{oGmas-hf =*E#7B0DX78V/U/kQ\aN'~+4AZv˅pZ@=AsNef}"s$z,G<YV;^@"ՅwTм웋V<C6JOES;dT/RvFOHj>*)]Rמ8^7.	\}EoDG!k3} :(+(B96rLxᔖմE"sOA53e1y;
sKAF!$4M/WVbr`$%V]-{Ap_Eua&1p$^xпmX`~N081<iϏJ"e!qyݩm(lhH.+<bф$بTRg/Ԍrh+}?6y pb=H4Q=[+Hv_8aD1pv.⣶ŗkeɧ2DhNahzɉJ SY,cMw4~v`b:BOrhoX0B9U,ɸm@XT{ ¾hC# 	,czDT8~ ﬨ.~Q\`XeAY-p75	Ƽb?ϾdwjB\>m©sZ%vF1WJgFuP;}|܂t,\"C7%2/Zg65J<@Y
%ye}H}:^i,hOW$}	X+!ug#)e[f<lhj~x4seNēk#}&Od5Yr/&+F3n̘ǇV]]{ ^lSw(.Eh)zBdXMRw`V]%K$jfPC̬kq-BŮ5l˺-Z7llB^쟧c̙ᙀqz^/	NZ\2@Ѻ}%?f2m2:+HF:"DPe(?He&ZibRc9[Cvv.a8Gfc>˵WNevtcpK1,HPF6P.VOXKPN݅T%TvpvGR NimK1m,OI# hH˳5(b =)&e"|Hqn%LʭU1Ƀu6鄂d2[{4]Y8#CX7JJ7jadh"<شWuTpCbI3}mXkf<͔K%c-5W'%6/@
iD=8N`|ndٶtKrJ4J70VFj"6k=؏茶E	HvR蠧%]H:?JZL5HP?	8ߋsK~a~0a%yJN1iݑa\#c{0܍NBnmΦc.iwD}pnTȆOJ]Nl3M3*:lVɥV@3Ǿ& oNi-XC$Ϻ731$/< +d`*ɐh`9q(̎@$.2Zkl0vp9%6SsQἝǹ	Gf$X%qآU-vlh\Y]\34R];sP@SE<c8SpCqPSj8^o7zJ&\sdӭP	 3@'E|77yL_ˑV"07sI *?,H[WΒv8SB3j=%ȞI6Id6deEMώM;˭t#EsZ:-~I
d6p?IXnU"X]	rU=Lj"\[|gӎ Qc?!z7PYlsHLWvٿ*%1&ޖGh?!=@Qtb&8cո]X?AIƹV Ƹ߹WTR4=sZe-z#>{9QYos\bz;.;	I@)NeLv.	AGEX>mNƘ
3U<}8vzj~8D%tve6pO\=UdEA`f҅3çh܂XJ݂R#+*::^ٙZ'eҾ
&zx%\rnrZ<:}ppUƮD$ӟ[52WS.~ng՞*G LyoGϞ̵u*Z4+p{gCαQ\ͱo<ś9C3<+͇(q׮QS{&*O@ߊ?wU8oV4C7Cսҵ69$K"7_E\Y˧ZCqRܯI)mHY9T
k;29z|67{/bMdh)h1_K<+;>21޿OW.8,y&oNov}!IfW|jl;bI;Zj[ГsYLYzgTt;ϱ to̓#I业-6nzõ00䰸.S	@%ݦ+6AށhekF;0c;AŤA381)lF,3*+:!r:AXthyd IiYH7bCyu!Jjjig3&g%M#"s 4s3|-^B~'GK߿lr8},<%aǓ8;Pc2Qy=eٴONRtn1-Di
x鳮5ug>8|lnPPUSQu}TdUG9@H7P	cce;=oCa[:g^+WpAKwg}ti"k
XJjC!+_ݛ~HMI%tbTN{=,|y6F-.;kcVHM.&^=-:)qnui[Зu#xgcs8sjDÄ7F'* 
-⪧V>L.;
cL" Gy͌䱪 VE3]U?He'Cͯ+M[*Z#3BWS㲄mj9!6,dۆU^ֿj6G0PO2i$c6_Rȑ+5%KKhE# QHa.m"fԯ֑ҿ̚]PA\ϙ>Prڋ`4,+2+	UIؓ7=N#<,GT|*qEqWhf*}֝2BMAi5z {H/u֪ęGnǿ	f]4lSwUuRpp &qx|Eke(Oi}ZJ8\fK"PbhvI N;mtO+rP	-ìS}'M
"\uyܝ׏n&zM;2^wCTUd;_ۘ ޳r#k&˄|Q8p~ ݃D`Y1Ћk[JjA2synXg=	8%TSCҦqxMkV.2?.eM!Fn}{x %Mˣ$(cȻTmwE0'>C,믛,}fCW%\28~3I A7!b%ܔnm߰4J=A_Ibl0,v-$࡟7<
Dݗ@TCF\ؚIHY 0f!V~_ƲD28ËbGdDy)T1y!- ҲeoɪN3$̃ߤqWd8T<Hh[h~?|sJC?EG@^qˠv[{zK]JXVy2|R>[)S@ܺGe꿏[m5f׌'ې?Z-E`Gw_BK3-"z)`C$GI4e;`Q{G|VlݱX`  \Xu&s4&._v 2o}@hք[e$@"V([G}7<'d6=zSsgqhjPC iJeX_I7X]IQ:[hc@RwYt([K50s(9:1;96x42¥	],!*{>`UDAc7Z-se9P^_z=){Ѯ"B#Kd∂@RrmZv0ҡ=L3is!pg:NKiГyDihWGq{t<"Ng)Bv96jO,~W0@U