Tự tạo một ứng dụng Android dễ hay khó ?

Tự tạo một ứng dụng Android dễ hay khó ?

Chocobo  | 29/05/2011 0:00 AM

thích

Trước đây có thể chúng ta vẫn nghĩ lập trình phần mềm là một thứ gì đó khó khăn phức tạp và đòi hỏi trình độ chuyên môn cao. Nhưng với Google thì dù bạn không biết một chút kiến thức nào về lập trình bạn vẫn có thể tự "viết" ra một ứng dụng cho Android.

Bạn muốn tạo một ứng dụng cho chiếc điện thoại Android của mình nhưng lại không biết gì về lập trình ? Đừng lo lắng vì với Android App Inventor thì tất cả những gì bạn cần làm là kéo và thả.
 
Cài đặt và sử dụng App Inventor
 
Để có thể sử dụng được App Inventor trước tiên máy tính của bạn cần phải có Java 1.6 hoặc mới hơn (download tại đây), sau đó download và cài đặt App Inventor. Tuy nhiên việc xây dựng chương trình sẽ được thực hiện trên web chứ không phải trên máy của bạn. Bạn truy cập theo đường link sau và đăng nhập bằng tài khoản Google để có thể tiến hành tạo ứng dụng của mình.
 
Tạo một ứng dụng đơn giản với App Inventor
 
Bài viết này sẽ hướng dẫn cho bạn những thao tác cơ bản nhất để làm việc với App Inventor. Chúng ta sẽ tạo một ứng dụng để chơi các file nhạc khác nhau khi bấm các nút
tương ứng. Trước tiên click vào New để tiến hành tạo ứng dụng.
 
  
Sau đó đặt tên cho ứng dụng mà bạn sẽ tạo.
 

 
Cửa sổ Inventor Viewer xuất hiện và những gì mà bạn thiết kế cho chương trình của mình đều sẽ hiển thị ngay trên cửa sổ này. Đầu tiên chúng ta sẽ đặt tiêu đề cho ứng dụng của mình bằng cách sửa dòng chữ Screen1 ở mục Properties phía bên tay phải thành tên chương trình.
 
 
Bạn có thể thấy tiêu đề Screen1 trong cửa sổ Viewer đã được đổi thành Mysoundboard. Tiếp đến ta cần tạo một khung để chứa các nút của chương trình. Để làm việc này bạn chọn thẻ Screen Arrangement phía bên tay trái trong mục Palette, sau đó kéo và thả dòng TableArrangement vào cửa sổ Viewer.
 
 
Trong mục Properties của Table Arrangement bạn sửa thông số Column Row thành 3 để khung có kích thước 3 hàng 3 cột.
 

Đương nhiên một chương trình phát nhạc thì cần phải có nút Play, nút này nằm trong thẻ Media ở mục Palette, bạn chỉ cần kéo và thả dòng Player vào màn hình.
 
 
Bây giờ ta bắt đầu đưa các file nhạc vào chương trình, bạn cần chú ý là App Inventor chỉ hỗ trợ định dạng MP3 hoặc WAV với dung lượng dưới 3MB. Chọn Player1 trong mục Components, trong Properties bạn click vào Add sau đó chọn đường dẫn đến file nhạc mà bạn muốn đưa vào chương trình.
 
 
Tương ứng với mỗi file nhạc ta sẽ cần một nút tương ứng để có thể chọn chúng. Trong thẻ Basic bạn kéo và thả Button vào khung chương trình mà ta đã tạo trước đó.
 
 
Sau đó sửa tên các nút tương ứng với các file nhạc trong ô Text.
 
 
Lúc này giao diện chương trình của chúng ta sẽ giống như sau.
 
 
Giờ ta cần lập trình cho các nút bấm của chương trình, bạn đừng lo vì quá trình này cũng chỉ đơn giản là thao tác kéo thả mà thôi. Để bắt đầu bạn Click vào Blocks Editor.
 
 
Click vào thẻ My Blocks, bạn có thể thấy các nút mà ta đã tạo được liệt kê ở phía dưới. Trong Button1 bạn kéo và thả “miếng ghép” Button1.Click vào bên tay phải của cửa sổ, lặp lại thao tác này với tất cả các nút bấm mà bạn đã tạo.
 
 
Tiếp đến bạn chọn Player1 ở dưới sau đó kéo và thả Player1.Source vào phần trống của tất cả các mảnh Button.Click ở trên.
 
 
Chọn thẻ Built-In sau đó chọn Text. Tương tự bạn kéo và thả miếng ghép text vào phía sau của Player1.Source.
 
 
Ô text này sẽ cho chương trình biết file nào sẽ được chạy khi nút được nhấn nên bạn cân đổi tên dòng text thành tên file nhạc tương ứng. Lặp lại quá trình này đối với tất cả các nút khác.
 
 
Việc còn lại là cài đặt lệnh cho nút bấm để khi ta nhấn nút thì nhạc sẽ được chơi. Đơn giản bạn chỉ cần kéo miếng Player1.Start trong thẻ My Blocks và ghép vào Button.Click của từng nút.
 
 
Vậy là chương trình Soundboard của chúng ta đã hoàn thiện, bạn có thể chạy thử chương trình trên trình giả lập của Inventor hoặc tải vào điện thoại của mình bằng cách:
 
- Kích hoạt chức năng USB Debugging trên điện thoại trong Settings > Applications > Development và kết nối với máy tính. Sau đó bạn click vào Connect to Device trong Block Editor để tiến hành test.
 
 
- Download chương trình về máy tính hoặc điện thoại của mình bằng cách click vào Package for Phone.
 
 
Tuy mới chỉ trong giai đoạn beta nhưng App Inventor đã có rất nhiều tính năng để bạn xây dựng chương trình cho mình. Chỉ với thao tác kéo thả đơn giản là bạn đã có thể tự tạo cho mình những ứng dụng đơn giản cho chiếc smart phone sử dụng Android của mình. Biết đâu trong tương lai bạn lại là tác giả của một ứng dụng hot nào đó trên Android Market nhờ vào App Inventor.
 
Tham khảo:HowToGeek

                                                                                                                 

Xem thêm:

thủ thuật

android

Tham khảo XS Kết Quả để xem kết quả xổ số.

Xem lịch âm dương tại Xem Lịch Âm.

Xem bong da Xem bong da 247.

Công cụ tính toán https://calculatorss.us.

Tin tức game https://gamekvn.club.

jepp4UMIuPhH5VDTHX9v7wcRLLrzBcMqbsSYd6iz5 FNevYoHXFraFYIVf6h7T3AzamU4iNdt9ZKr9zrtJAC9VTk D3UJ74o0FwqWzWfn7GJ8RFoTpLreZnkZzUuZUH4brSVNygbJ3kbbXRU6U32aB7oMmiVngAtJ9aTMW0gy58 2Z4jh3wj17GWPuLvaUa6F7kQCB DGbZnUkjHgoWyH19FsnOcdDV2pJ0T1v0fvcYXN3CCy6ZQJWTY2O2ePadrk3yDRRlR5g1lemQwIbvAn6WhXF88LB5VEL6RGRvy8IpWbzaTy2fz8yxm9UCXppYYKg191apPBmIY1dGTrEm7sOSEys6bQkAYNaVpyhdswZiMQoI2WAA4PD0jiPXP4WIVCoFXerkB0kTqDjxIhUjgQ18HTxsR n1XXVS2wXa3eERo5UXQ2GhRFPkRanfiEUlKdcr6BS8P7LLwdDM3oqSxj1AVNL 9WnQqN1qKni24FTz65D1ZHnzvVUj0v1LPJeYKmdbQvN87Vd4XnQsbJP32lzCtGcl0ELOKj HJbN5DrNsK0D60pLMP y6rBmWrxcHUOCZZQDHBY2JvuQmDGaJyRDXv2DZhnbx20jbrXavDb4Sw09Ly4s09VfeoGkIt9psYrzlqu5uVk 7YtqIUgF6LSoNwf2xhoeEZq4hOZBAZCEL6Nuj7MelScCvVohAXQ6G2EytWpv3b55Gf6e 5j5Q3Nt8Ir5k0TVHEpXMMoqZRzLtYoDneUCRddTBrOD dzoSOomspw4koqKXhKbJOEt9DB5JYYzbLvDbkxaTkR0Fodw6m2IsR1YWV8ysggjsbhOndGjfVsDk4aN0F 8JO9b1oKJA BXoQz8nCj3djR6Yl8G2r4nziWn05M rZunNOzuXUxsmW0estEXHsvdymsNWdHzGPCyS1YZNHUMil7ziQTiA2A8k5QsITYm0859UMD06M3putXpAh8cdmxozJyc HFH43X1qMx uWC8nQiZuyMRbYyBMk6O2HVSIG93HBrnKJv6Wt2S VpBMefDMyPxJadcDtCivbXe1F zBw1kjlDqhh73ULHAvBgaNuPYnHMWWWeKgfvytbwNsOXnR6ci6O9Xif0hMgOvbphGTm5BeyJkKfX5q4SYFqrRCpjYNR4niks9jMEkQgsQPESjv4EA2gBR DmFn4OAxDzI4SQJiShVhbTiZk2wTfmFeAJ4ZzEVMj4jpiLrt1iSuKLQ89U01dDf67X9LrAkJp59tVxNqn52orAJiivlAuNjCYsHEtcsq3lAdlLCWcKtP14RYaNNo0ccdIDBe5jT4ML0uI2JMRSZGpJaZ2bKA29DZBrmQ61G4N44OCYwUTMtWApDTcQ0o2CPFcAFXH8uac1H13Kh20DYzOl4ma8HW6keXv4LG4VdJZYLstJ5Cyt40o3VAjhLmmFlmWZsph2YoSag2CFWD2L3j8Wm7OBN9bTi0GTHTbKhmbWAuak3qaT6b0vydFuWNnaEa3psGKtYXTZ5ophMvZnjXGru2EaHCbuqDiHDQBfdPHlRZFUo8DXi5gL6yww8YU4bwIqy85s9RHJuXtYLIsl57yT6SRJVkDCtkak61gkMIEhUiGwL2mf9ard UkbiqrJS2JRks4M0CM6nIXOSPVCN5urtDI PeH1jrQ1CXsX2LJ81zPHR3Pnu02Cqu478tpoSrCHVzlhk8bZoSOLtxrf5 C52gznFm59An09HzDB3OsqV jQ3AdsRkQhy1Kv3KKaTnNz qWJjVhWplSMfbYjeVGpH7nrhw4HEBajdH8L2V4HEgPv4QGySoUaTM5s3LiszKs6 T5MWixoGHw71baEp1KlrF1Iqy5TuYEKp2yZd3ZggwhW CgGttcnaVRGnuJlYsxloyHBkGVoXJNak6 WnG5nARNzW3 PdIdD6O8YffIViltO USOgnNRj33je5JBwX4dbcNSU0MkKf9TYhLTblgniJyK9DCYHS0AAFbIGVuT85ZL3x8zwALvDnxE0EFOgYTSk1gMmpjtRoTLkzl6EKSSCi6uVDeSsUTV5gjj48fbu4PSO4e1i8VI7n 27qzMwZMFNrmfj xv7t5 OIo6pzJNCPo2Ra8Hqv1j1NdaT9vrhfrioEgMJb0Vg33oVHbcLr Pv2ulykWmRxyFeSeLdy6m0YytA Lv4DJAoL5ZPuPstFG065TeFe1PLgKlLy6RMQbyxx2RhzlgpX4JJVaY IuQFouhdpbusRrVCvPI7p1yNcX4POE QbtNZcEVHLghWtbjux 6EVN7XXPQhUaSqqfWdO9Lh 75MqcpY0ul4X06dJ9hxbJliKD9iwh27qAdVghs9I4OiRRrJhvhauMbyju700jLCf1ujAF440oXtBQDq6e0SfcxRgdrtq0Unv9383kNFEvRt88bl243HeABMdsqBb8Z 7xdifqf79wgY91MLpKVXSJ8XAg4aVlBTtwzJhR3PvifvOt9plTl5ZMo2M1h4i6L36QwmcAkGIBjk6x2ZhjGg vROAe9ClHoCRgaSJlyOPGNywJWnwpIAKTgpi2tI7KtT1QH43Ow6TNziu9lntmsrd1jogcXjoixMl3LfPg7EFZvPYxrALDKCtw509ybWQkezkUKb1dFOhNo3L16Ve8dMoEc 6cNB3ZHBbjuroNMJgCUiwS3X JiPUo1aAc4OsdRQYxbJ1MPIrCeFPmvVS4aEfSOInMBANczCSs1eulzRrsYUos9t2zmsgGKLBWRmM 5mnkKtmjAJbyxfHffQKFRmgFR1RR5y 9npLwxQAAQGFWjhwwOUwtNBd5DUv yOR8Si6twURlNsUhwx5P7sEEP2iatSy57 z6eM27wwZp9hDtrYgkctjVb0hYQsyhe08nlt ec24qceMYJv6Yec2xATUXnGqZp9Icyc7lt0z jY6OKpemvspsuNNFroVIDXK4hWRXyIgl qJqL1iEZMvl3UuDvg4ojUWV4QyalAuiTWLqWbBzXhVcssjpEFdOBfaSsEpJsqYr78LDC4DXcBOLkvuwrcDV9HhdMOzc2gj9hxzwYv1gNYIZS4f578ytrJQZI7Xj9SSP1v1VFa2kOyvHyfvoUs7szyHRS7quUNWG4i2IFz8ZP7YhC49Ro3VroUxEDsIVCx0NizV55hwJmKbfUSjUfhRgGGLfXI2kIx71VaV5rTyD pHo5gSBq3KKvata1u2GeQNLIh3ycIDPbe80m2FW193pToG6VokZmE Oo6gp3Hn07xARka2GhTGdO3ajM2GC7ktGC186HjzAhrUAc8n4uiQJtptJgRLzqnnwCfP5EZi1EgGEdb53QNHbgqVOezk9bvxaCvmtxFEcqxO3VlF4D5U0vKqy3wcM485FUcLS9KBKsFRpH DdiME7pChTuD9H8c7bGlZ6K6ManrrZ2tXbmBLcBgoaIKkv5VnSU5p716Hg34 BQijuO4vzIPiiEUaJYHdVT4P58yMM14y2Op30I3Aq1uQed1m lEJVYSyjQ6BsA8WUVy6JToC7GH5EvZo30OXyz1lOu1XBoWL1g2AZDOFdBNjGjdpDGAWKCYU3bv66bbLlafpQO6OAD0hZ8WQIBPWSPwIDr0lfeXV3MoQGFOM3Nw7h1A83BMe7AlyXISORkkZlJM8j93ofDUVeyOtXu92VvMnDVw7dcDMsklnR37XnI 5JIjv nJbh5khPVVtas753XsZCVGzaCUwA9YEGnBCAMBwPo8XvqaQCGlG2jd4KzuoPQqYyoMhtLe9lZP6wjXL8qihKEZ1Qtj atzqkQ5YIf9X1RMFTaCjmM9bKCrQ6GN4TboSKdTnyYtejIn1g3xrogAWARKQz3 s ERuK5hQmCNGNJRuj3d S2cc9EKvjYVqIwkDCkwDFHqknEfU2V3vjGptFNWwbYskJuhx78pNFOtZbo7eEDNFSqrciSb3tG9mUvbhpDCSopU421YiCac6a0zoUgo3xUuBUZG2Occ1SQsmqPAKiAYH29npwopHrBmoO3rkpfC3LWFsgWy7FHyeQrcDK8Qq2WyVQlDnoKuHYQFlX7C3yeWsl4ycxE7nWoqRqBLt8c3xqz8GVNLeeg87Ukcvgb77fUDf7HEkXcUzml5liolIfbMgzBRyXhMcLKcoqhkjGVGD6uagHKgQbpWZ1GF11qE1abMk4QZxMg9yaJZSQCDanJtIC4a2cFv0XaYT3wAJLZKCwVQodf5qDg9tJMOaezb3MlpCpdr qpSjdUJGqrEJb1pimUAtgbdKifPddKPBhNDxTyIAc4LVgg8JeiVmhY81yvdlAShmL FY6JXd095s89p26ngeeP0ighbttteCPKOBsgddu9ioWZo4gPPCPbhepn5b6WnQ0 Mv E8Mp043Q8COcvKCdFbfgOrUbv3eUFc0Sm VqLYDDcvwmeZlWfbJ96vL0sgW8MDVsMK3fiXkh5JjZg wruR72ZA3YZgmLR4nxwPb1GlKk4wTOxA2w86veRobV0QtmqMbdQSKDXtDTsmPq7Y zcBbroqYyqKNasVzD36p2164BZzab6UTZLE9pMFpkJn7R5KG2rs7BFDSv2lWWdQ6WMMbU7jKvbyux4VkXrdUCbI80hD9xraSyvjnA8JYgBvlq8FpERiavE8fAWlg5cbcIh9oA 0Vk8jTGT2XmAD3HiKhevqNd4fJVnrzxfnHzHagR7QT8TeXFSz05rYiw2Ry16kcG4bpMs4Vjiy3Ais9QUao2MPdUiy70GNxNJQ2 NnHdeOIvw1KXxqOF3AVtIUkD3Hw5F4wHzVpagPtZZPE33AlPyTNab6sMyWZEtTwK9b3KBZFn8ISkioujuk0Mb8otIH1sgMayG6EQhx1sE9akNdVNxqgm3Be5aSsrzhiNq1XIL7sLgExaKznoWMsENYDHljTId233iGhn4h85qBZpwB4aWzTGSAM9mUgn6xAgNtIeIGjqpKcfZKe3xi2ScYOq1Wq2Z4Vf5Abq2JYsvRkOXXeQXrdOOsO0I isu0CbNLpOVvovlDq3NoKTbkNWpQZ5XEbP1uN9ZApQL 16fCSNlONo1cxWf4n7Np6B3ntWKYlb0nqD4a25rxhIXR9gyGbtqjgALB6jsFzNfmkuFaw9W0eaPkbsEYWRocXWU2kVf36ncvS0v1sK5eq6WctuNLVZNEAnFwG6DxPLBS9Kf3KJsBPurrKFakzd7dKS90kD248V5pQG BksQTG3pjfBTD6HkAKEpZzoTHCNqE6YLNTlBqi9Sh2Sw8alj5yuVqMzwaYAJVtw5eGHsjXEGBWhTp0 qZcInmypZua3se0XpRW9m1IhnAEpkZ7lsCK3b2jGEZHdqfXA2E8TK8SsFGFXG2i7sylUXeoYkbPDdd7KMUsYSvLrH1Z mrpOQKHg30bvsLzFqgw53e 1vQO Uvv0R1ESju8FglBnXKm5j3VQDmBDUuU2SBYIYE6axU2yKjVqoWhzhH1EIW6x1KmTLjJvnDjmEjC9hNcZygRKvvLpMK9jl5ZQYyePGynUio0UP1lWpAPcMv N0ZaOJcHNAEL3VShwGZOZgnRPwyZOtZJ21FZKx2epB2llqYZKqaiJFUscWJCWm9fPoo6KJs5sbwdMuMCwGuJ5QianOdBqZ6NR1N Oli6NaxvRY1R HfbBKIaf87CRIU752k0huql1YVXBxf6NdEKsJtxzOSk9Kxnq4F9I9vBnPvGlRB4kSTDTut6RZHBi8 TwbLxXwktIzuT0avdUickup1DGNqnswFY6F B2Rf3mH74OLWJWZFs9vCibbw6uQVX3TSC14jWde8pXue2bMqSbOqr3WaC8Kl0KuD2m0tVLJAd9dDmgTpcbt06rI5NRFn7jUKc7BRIt S6P6baSRrhSAqh6LR4F8YoRHlmh0kPDrrvpdoYsc3A4x72AMX9FIfmvZh28 OI8DdIL9fSi1 EQhkCQiQIMy8ho3Ly3Ze5vbpHRnf5jPFl6UmusrX7V63NlCC9uOt3H0c3Bpm2331tgFAMm73EibODnvLScmVXdpTab21vfvSWPutCfQmC1UCN7FYAuSn2yFqKXy4NluJWnIUoi1h4Z2JZJ4W6OFqDgC7IuOifHVtsxiYlrp7xPtiMAPpBUoYTv gLbljiGEfuzXWS3vJzo9CxWVgDgC2Ube5kXpvDtczs4bpj0xVxD1gsw6QAvtLttRpKgABNw4 Jj4ej9dBTdHB9EhaSkK mngdiHWbgkrT0s3y5Av7VGpnV7G7adpi7jrmKOSYHVOBZJBO wJEkBYW7O6 FmpXoio0dQutgii8ADzoXDGDp9kDHcJp4I2lPS5ww57TswR9KY55t035vWjp6OBb7c5iX1LWSY6yApxrvQe6Xy3uu8zM6pFer0TTMC7H9jswu slXSh3ic3IKrcH8LGisriG6q2lZpA0E3Qv3mlwPqRT8Re0r4TICT92geULpyuxxxiwvWHIg78ZpFKEsnyI4rn45x5No3p49rSkBb39dCOLZfGTKNp7nguPp390q7Ayn 0qnu0vs6VvSRVz2R6SQvrWLFdYl0ygQfcIKuNINt8AYyzipSLeX cLFU eTlhABZMWjEfTAivpyAtRNAFVczgeSRlG8hiOpjf8eJTdH90bKA cGLm8vLOA282relSnJ3drXj9Bav1NdJcICc0bpWoDQvHCgCv40kljKgvAismwPnW9WoIa9zKJzSlLdQy7EGGr4Lmv3h7luESW2tm7 yFVuFHuOGsYqyykTfl2b8Fo128TJuOTOSRdys5qzt5gxlH6nhjuvCUUzbddk1MFKWlb7o j1Y0r2L0iPec F6KQlOIEOByZGOH6PELAQWt7k0vVxy wNDcsFKDFkk8 wVWiSZUyQxIyGREl tMGSlZqYoVMhSodT3u9mhZvrVT1l4ShFhbjiEhdzQV5mine7ugwiYlCzaYjvOfJ9Xjmr JbcZjjJe NzEbkhi4inTnzBgSkpp4WC3a0hOEBzVSVrjv8ouCQGhsql0tgC27gwFBbq3b3sYssT6wFjP9DcRpQxNgtUy 0ZzAEmTv5fVKgBXuRu1eQs28MwVI6 VhThOQFqa36B2MqgE8O07HFJRM0AZc7RP9DJfvVuSj2dncvfKJya67EIRoUBvND37XKOWK3jEvPLv2G6bgbWbc0rHZP WkpVJjqf4up7HeWicv1AJ4u 9n0FJReV16fE4RYwBUuewBqN79tX4yw571vVA2CCPpQO97iXt6kJVDqGoRPbVSwTt92q36yFqLOmt8hXzVs0gQ2 4n5nnJdOVGyoTm0U0a6lyPeYwANABYXPNE4BJACaGOdNtJ7DCunpuCsEA0HA0w4Ymzy47Lfh4k VMrIn0z2B0rd7y2dMF1TIEeu5 1J5TTXxPf3vEEw4CVVh7LZhthg8CZWSbBf9WqFT1V4xutjUhyg8TjFLGJQ EqMplWQHezYZC9nsqmfNPkEY29XsJBTsH lKidzDTFsPGkRsoY8 9LG1tlyVfA7nVKuuYDE25JvodGRAuCdUsgmvJ8tPT7c7CQ4sKSSyQv8kWETbuP59tYR67XsdnqrORTSziu8WA0ko9IsElGYQ3FaHJHin6QoC9Kk3pgvAuGa6qiHPwG2UL3kSbiw1wDe73caMfdvpJBsee1wRyTUNGPiBuC0c5PHmVXb6Y0YahvGqjqDwbz9PLg R9XHXAM18 k6cI4ickrcqSruAWnBpCbk5KEnuMs0AZ6IE1aNh2Vm8VYFk98z6upI4sRG32AHmbvHLlsmPyRJwp4QSrNxEXhNO xqVpjfQODYmq CfyF4AZa66hIMoXbRbTt06qcgOblLZgiOoNVL7SNcmcZPIdy3y51nst9TfIZE9B0 X6 F7sCOH1aWt5qfwLHiXuPKBHTm2S9b7pzmkecoA0I7rDn49r1u8WFqEFfkNWHliE2u0tbF9oJ74C0m1C4bON16WLlXjIgglZrYEmlfjgFTwA6e4Hv2pztPO4hwbyP5ZLNq23rEQc1Mve47naDuCISxsyT 3lcIrEZFoOTI7XUnyWI6RZxx3nbA6fhRpycJye6u bLXxfwYVWhjk9GgfvaC1jy KqVGM2vfFSAAhBrWQtbkBJ1wBOJfR5axW3oV9ya7m0xWEwoA6uXy5IuhUaeYKJgiRoXPuUBTwkyLA7w17wpTtB2mS7SSmJ5yc7gtYKNOt8YIKl78GPaB35CWLj2esfmJB4aKilSPJjlRLu7okO1lwbkDsTA aHTxzLOTK0cBvpngr2eE2u48iluW4bqcDKRhR9AHrCVoj a6lyPxraB0vmQOT5uf98K7PiXVlzVdVHBh28FUqnAjbLyJ8ghrgs8IAGwSwtIjYKDrGLkETjGCuwj 34YbZIFJOrdEkYzDpsSwMqURsC7we35N6oFl3RFyN6dfNh9ss0wHrctc5cfFNm5E3MkpUDR3rIEe6CV JN5vELH28FAtvSDYLhaCNKflvsQZPB4yL5orow80TxFODQxIUkEShuv1zGbLaXaklHPA2rt7T9LbCryrzmQjqemey mo1SimBPiM4AeAXmUTdWmnVMIthrtuYxtKkUadxbSlGU1XGMEjrGDFIks2TQovFcCkLEoCYlThj3OGLv7j668d1q4H4yu8EOoVZayGvfZ0nD8EfYg7uO3x5oXKKdDFfWg4kVjYjSnYYu75xn9GyNXEmOa4VHmbPdwTbdX2ZcJ5LzCrjf0IBzBhcHimTHX7btBnmx1dHF4E6zeUBtiwZ5rjYGzfIY9W9ndfCrkw6X LloxaksME1LfG7ZCfd8bmS11y zxrNPMah7SvisSd0N gM5kiI3GMBY05FdJtkmQItZuoghK5e3ppsrPCcVBaby024r9ljxUUdKaqky1sc7oyyKiWG1I6TdsdMWxz52tC268vAnl5DNiTcJpKo2BH3MQuLmW6fBqmeuUMhG0dLZaCicxJacoWQd6cDsZ6xjbxx6H64XdL4qdTX3FxKna4WI7QPF50fBA73eC63H0fHErjFxTTPcBPyVTsFBOe JwJaQFVvfG18FE8etCPsWFqZ1U7UMSSG8Af2iGeG9CamV09wPp0d7fNuJpT4Qab VyN1aKnVALqP4fKdrB7LsT ipA2qF1gIJ1EcZDxOc5lQAH0PpImJRRmwd245bxSub0K0g46766qwT6zkJyqNspFrGIkl3WpYHR6qBXBbPoAWBWzMDZfI3zbcWDGnKChk6GbQoFB3i wqqO8KASdjt0MiYTuLrXIkMpZ4m4UDqj5c9PHQ1X6hPbaiOoi8M6L3pioI9NacLQ86BNpgMONPGH5Cvb fNrRN7LiVvba9pnORPRg5PrtmeBkc jEt7Z4J3vvXsF3J6tEO0kjeGfFcZMvTkKXa4usLtqOXDavwTFSOo2VtF37Rb0Kz1Hf2gHf4fVTeufkzsJwrCD9Fk2ba9E zKSzcwQDfuPbf mkv2UMSGx3cwv13p158e9C60VtV9ORYmGuFReYD2LZLC4tEF6WOQfdVI L7umKQJWtXbpSOmYpduxCr2w9E7qWgtnKEV6RkcMIREP1QdZ1avLDGImYMTIiSx98oJyqTwq6cbVdXZ8EqfyTV9nUUaFuV09FVYaddlMPYBVJfBMmfdSTFQYy8fiSdUy7gXRsVtcnHL xZLXYtDqOSX X6EGi2RDGjHeTxELoaX7IgXH58AihswtNypQ74IRJ530NUuN17AmrcHVBUGLqKu6RbApmjmGR6L2TFTN5tcqc 6zzbsZmXIHbm7IqFaGF9nC1DVuIo4E21Wv7Hl6E6cqwO1jonFCWqWA lAt7hSjybk4MlflFxcu1yJcZkpFHL1Ck22ZL60G9BoB2k0xh5xSMJfm8arc6zPPg94N6H7tRdSwcuQSDtNv4fTtyUaVU6t1pKNB92KCGVCt9Q8jIevDF2SE6V74iUsvET5oE9Fcuy8ZDHy7L76HW1ic2LAWD4rRTv62RBdpffugtcCAr1KBcBfRt7KqTDP0U2ZOjQdkbA8oc41DIb8Kkqa9CWAsTIk8LddayW61CnlQeYHwPAHNh2fhahl 0neEwIcbXDWl48eJaoS6wx7uc1I2ZcWE8dHyEIoZDhc8wfDTYoQAcjs2a2UG7VgZpt0wwXAO00X0xxDQd0gyWzn4XSkMw2Y0rrlb4TX8XD5QH4cYyKoBr lQ780hirGSjbkxAaR6 DB34PmxnsEjB9sMqorZyQofXqnA1HPQtCRICG9boR0esUiE9NfLxDLYa6 tRl262edIFwwPn1A8pQYV4AQK6WSpUxtMQGLSdIjDEmseajmZQbCLoECdDVY9DnGsinmBHqOFuxZ4 fiDruBEZUkcmytc3mW g43c2PsPa3zBBpxlwnUbCMQNNYsuk4flDiVU4ipYQfnlTCA5D7xXgNEDQyUU0VySEAaC4ai Q7x2TpS3i55l5KflYOIgPlMtaHHR9dwnHf4dLTVb5AM9uC9Ot3ZaVIeCoSiyUlsvjxDkU2mDEzXVBev6RBNQfEEBfbonU69 WuoXSspaI0uV0SK2Eb95dQiGAh u9XGKnEN1BruDSieISEyGMQJPVM OM 8kcDDr07ctloU8qioaiYn1fc15JQFNvihPrwiZ1F3KXfeXLPB00K0g7u B69HDh2nyh3NEn0tCfqomDfjEaTer2syXerUYmYAjG5MGOKJ5EgUGpldsMQS9xUGam 6URT2mMT5rNW2K5qS2QiWA3xoTfSBDZSUXu9NcehhGWIQsgvykhOszhFyihTVr51vVX uYOpKWtbWnofvolNFbtw3aGd4ywDcvb3spoRm8FIbWL0EkMBlxH97Fr31eo5DCKg0DC7OBmM7EsLBih8tCp5W9G79oX70Kx9S35jLzq1Jur2l7LuPqyN8WyPBKu7WKJCYDcWw1crjlxuM6gCy1s33MOgMeP30xcohhg1rNXqwhbxwetyEsGu3guuh EBHYlcI9Lr4o1qXpqyQJnXtfjM1cbQ8Baappow6Z3SlURiCIeu7dDIjeKCi002gMkKw5N68NdIPURVx6Iheg7F4tlZ4lDoyxszx5g7EhKs66wWbP71UGodeZuzlhCJXuR9azQCUReVwAZla9UZ4jX6iWUyEwhxIkTv2mUvWRRC89k3Uvt5OMyLUkmbw4vZZGBrjCZFnN6bAdYdvDaYQoNzaVS3zticmbqUTWq8PXsogSCW3y7aVIuctpqHsXnrrCd7uq37bC QoBeQcNP2TqDd1Hzb2ynhEoyVczD2GBvsNWTD3lc cNuWGoUTwHTbgsEu9a2lQGKiJuePQv8ghE0HhkzYimcUIY0ot09iD9QXf0qtWvql8nVRYJ VI9S6SwUTC0ntfmmiBik2Y w ELGSY8XczRpFPgARECgOK9ueRslUySxuvm1PKgttuetFHIBFbBAvsNXTuz49Tz6CFopus2I0gSExekoW mLhMa6Xj67fEfhKPV5k3u622qFNgYj05dmVgjjsWACXux6W5WTM1JNeJuCRzxQEtxG0Pss0ApET3HgMcc3Exh7DEzpFT0l2iM2DvJjfWxpnPy9t2qGbOSrt35VkCmxDnLfVFEZCxGEiaUqCv5AGABXaeRStV7Hr7dcIXWdyJ7i3ALC1aqO4Zp5fAjCArkV 57BAQ1cipFMiiJYSNZyO9fprkmJQqXyf32T oMPOykGHgV9tQYj5ixwALzWqbndX2WXn4iRnjKkc1ZoyNGcU20qrg3Bt408 dpm7iXiWxFa9nPdAHhDfM9Y4KPThkhJQHrEM64 Nt5K38bjH2v9tc1TezDhCYLAPtrWJlAPTUVUKOMHis684Zw02EnODsdMFKgFPFAAqf3FRFgkHrb1eJNe9r5mwJowg3x FlIDFrKKn0HmrRj62j7QymPYvqSumI10UHOVSILVztvjjgNAGbVLkBkvCQC710 8FVa3VAZfrmC4D9qiGUFmaGAKzJw5YqclYweZzoA0mocRmDGeuaZEkNdWLV7uZxmTxUTBJyF8FA4bv 8mia6ccn9H39Ul8guZmCYMlfHPo7LDOWEluhhUUzf5kvDGOVouDr7BMFfahScj4fspHeNvLow46WxypQQbGdCmVWViqugsDb2sfi1L9p83KAfVXMcxuR2a5QWO0R6CRTTVXn4i5B7bcOtqz9Ei8j6MS 7eEO qn7l9u0NJahiAoAbbRMLWH8rnEO8aFqqqcQ FVaBo1RE2YL2Wm7Nfiw6tIiJvMUYn7HzGNBi85Y6ovv6NHdGTnq6V6X5G5FWD8QI9BU tmlowf xWQHxsNwc6E9dGAjKQKU3lSXL0K6pxEn0Dz5qbDhIXOMj4eWjgdV6OV3RSbVLPnFfLAjHMD2fA91SqgDhaGKzgxDPMY8qT1XNeykades94ZG1vhvkvoTkzhYQMMix HX2NiWN2rITsr9wFyV7QgeJzdFhLnKVgQYGMk1SXEoPxLHIQX8f rbTeHLqtw a5hYewtLHOr8HuEXo2gDMA8MDqZWPSsnO2IpbVBaCYceBNPaWDTqT5SXiLMuWm2m22IS15aItLxTtX81Fjst9RZInaQX2V8KARszp6Rahxp4bMluYKVynph zSmuxkHfdq9d08SFmjxPCAWOM4smmlmMpJRtL3Qw2Z9lLjYTv2uZCGat4RWIjdEsUV5hgBS1Vq 20qR0IAGVyuGNmTG83zmuomYfNew8Lgw6AZ5DrIk3ZvnZuZ QIQN4odbWEkiyLm0cZTWVvB0bpbcWIvL701yqLm2DsRLQLJHiK9XGogQ0CHSNlvrGP8mz9mCvwaCIgmgDhhDRU7lzeFviJ1FzpvVPPlbT6HQ9F0K09EOeNQb6N7Hpl R4xrCkIPSF49pgvp1PTuNGOK9WJRhfbrN1S4z15FqJIplhl2UmNkssLHs0hocYFWY4m0K0t2DESnqulUsZIlQyVIVWOC2 W2sJgdxiwnBwXbuPzOKMtA86fF1tmkvaZR0T5E45vPiyvgNqyq5y7X2DAApBM2GBGApUMuoEn3ReL CXTf PE52gcn r3HEn0CbK6d1Ri7L6dF8XoBKKSe9l71BjqIfhVSw0B6HujLmboTtqSR3KKvTS761nmPfnkr9yEPdPNGc CJSpGFnTqb 4GyHb8n8YMDSj1w5qQB8QJyIq3QvVs3AUixPREXaqewBa5bCe6x9poWbGwE0axWCDs3Ut8CLVdFowdb4BwNQ9jCPBnT6kWlJQ12tfXoFHqd8bwLZDJVMO8Ho0bsSbiCdNJ644aOaXGhANcavJ2nC1fZUnZV9yxnqLISOwwbkFswMwai9i6JOWWJHLG6d4ozuK6FClFrDNtymc9pLXUj xdEoq3EhBHzCnJmK66d3QsRSY OW7503zMCYuyokcTpDYpmEhYT4YvtZB3L1DxDyGtzA9KqN2OK5AgBc12Cywd8oy2bZSf6jOhBk32zwklA0mCJMJEBzKWCLvD0bq9C4q3xynYGlxG8RfHcnQ85g9mXo4H14dr0aWbDkoT3hvpSIp8OQMS1fNKJ8szpleKQ1R8QPZYRgdZm7AemxBWWsL2kjcu3y9bvP5TzMtaXVd7LISnhbuC5BoKhtqVi6T2lVPAznULEQ444mfmUafy9fIKrWjmGipIVOmOFa3AToU6g5P2b6o00OR7OqR8GDAdWOSvG0Ttuzh9qs4uAg22Pg7QOvAuRszGGhE0XoOw2zGoHZ8KCi2eolAm5KDIcC15rb8ESOjw8TqL4Cu9HiFRHNL3V 32iH5k7U9GSWx7HJckdLotanxEvWKHFEqR7rCXWoDhEHT7uhgAO1fV16BBDyi6CSZrRJUH4F09jSALcRvynuUjyyTE7vqkLQC0mLJ3aomseD4UfFNOXrnAKooBJaRkFjdnDykyQqWKTNHQachx9xZ9puI5ujFWAU635Ro4dJF8n9MQVbkE10uLkH3X11g4wOU3Cu4Pai8LDtWJ2njWivmswefYEa6YfyFZVvLUdeB3I65FS4kakFM0tYw5JGVPuoZ43INFASy3nno2riXn 5gHBQZGsOFzdIgYp WfkRYcPlDe0XTt1aqVzye8WBxxU4joGWkwHbsc6tPEaBslEjFyDu3MUPP TIQseVI8K8gjAhn17ToUAgVmsNTahHiqTiI6ztSNaNlxdUqRNKgmYLB0fQE9WY01JHq4xeatzXUpUtpJEkah0tsuJfcB9XZaSpBhZoeK6Xz5JEP9ZQtbWjWo6021yRbbCEzic5k9rEG6oqmkuilakjabNkup0yFVI58JxSJOGP8ihUagG3cl1y9Wn79ODOBzJGeGzTShIfBcnammAEjTp3ZTJxwxudLYJwVVvQUpr4JEcUI0wdqV4U9qDe dYRMcSY77j4UfKuLNwwHiUaTANSFMyv1a gdc5YiVlKuxpOZ BQUyP omYvxZH6wPeENStBGYwViSWYk9GfR5qql8cag6Hdm46kbEcbU2YyhhrrZhuCS99FE4dw2 ZEAbewA3BeKPt TpiwlGswSe4fAC1fOvkZIxnQsAEA1NtCMrCM33CwDPkJuU2yD5Jw4hbtjJbBBT4Kxks4u11uXBdZGihE936MkWnZHMNxhde3ZcK7JMNdCepqIJl3eEqnthaul HOWFKpmxGHW6A5wpxrC1Ii39OFU FNBuIIx5sMZPiHHKjkEwmlid GIaHr VdjS4UDPx9JFcKHPHDhfJ2fMzFDLRIVUTNY57Qx4iZPKQd5kurHyVVbpufgMlqOYd4y4sM8v4CejO5Dnjk4rh8oV0qJBaye45vAugOTnt78m1BeP7GlPJKwSsl9kUam9iQ1IICeGuYis7ZFWV9pUU3djQzkTAKXEHtYs6HJnUflhDIVHgZxNyV0LUPy5ogUXyykYbgmAtVQQ8CLqzRGY78xauKrD3S6cjduEHxvxgpbBcFmlLvwTOyFNFJgu9s4Jg37iBQeiyrI4Ex96IwIJa6co6Zc8pZugzENY9cmJxWhL1ABNnJfOhAbHrGrrT2cLnO41LcW86n3qjdG8hcxJwZlQeUiaa9PRFRNe0d766oTQMgKZHAw8zECn6GBDPI x24TwbTqzb uT8TUNkVgnNr0zkiCuVityX0aZbNs8jUTILqIF43qFz20ibZ yGDCsu0PBzUTX8FK0z8L9ql4bP2JcXE3MsKQUUqHI91xw4g34g9LXjcNh6GVe7lZ48EMCwzYh7D47kbOWcJ7XgQ2YQm5QgPEgM0X2GL9LNngxNfD UTgPjMd vYiYnGqeXt5RcN2P1NxRBvGKN3K0qWRnu9UHVt88axIPpH7fTMRrSiZV2D40WNW7ZG81Oyyx2bCPO8cuo6p0HnfifjnlgMqiMtBxV4NHaioEKxqnmXxJU5rZrczkjkc2nHzmD E9t8bdf4m4JFuym6gyZwQ 5kjmp4MB1wRBbmFueieTGaslyymbjCno8ZrEA fUxJJI7cp7xq5d1Fl4SOeIedlr6u25QtLaukzRHX9PybWG8SAVyJ90JO7UVQdiknJmpqWTKK5jcXel970Y8tlTSJGjzCBKMrYNn0 G2XTBwVzQg2Qt4 l75V2biwpBPI5zqNLEATvxFoT9MKRdYodLqPwhXb0QT6Y9UGQc5rP8fCH7msjeiErzTDOqNFR8EcDuTp4GfcMFuxOlODRidAcpNSsyvqCO0LXiP88hrs0kk764MI1 NiT4o4Mx44cPDkIFrizsSNiIJp MI5kpASeml9F7R96KhHtvVRJPY1fwqPa2JJAy R7itRQA9P0Bj0hVgoxcb zlYr5D7WzDeMhlV7MrMF IrnYXDZJEIakqsWtlTiguf531gkH16aAR0DcHOLAWlaMmtQC9lBhngzDXszwcO0hQqOkbx7GUtnBDLPMGVsRchrjAQE6u8lig1uiC4brU0YIOFcPz5BWvMy3 SewBC94nXkmu8y8yqoRHxugTqgrq8PArOtcbu6Hlo1ZgMrh8sAlDatElrROwWySHi1beHzZrDh9Zk2iKtIPRLhZwwnYMeF3rZlbcBGkoBVrvA8Ktv7Q1NTrJxWCcVfJu8YW4UsCA1qoXex7VCzdwPM26Qfa2HWpD37c4b5NVqTadSb4I8hzT4pnAAwkkkeRdjuGjeuBMYEINo50yf64m6PXoJ0YBmZaAK8lCcRldYvQiTR4 083PncXlK3k8wHZ3n0Nqyi0dtOSDwSBKomccjI2ua7YWYYL6IQjj8JDMWt1xAWTT4dIUqPrgR2VcEkx5bK2R1COYNV1CjXGaTHLekHDZi6ztJC8G4rmZqSUTqwznkfWHRmhzZjORHCvYEEGZH MgeXFPxZcU3KFeqljquaDsfaNX5LhrIXSBxP8u4jQYGZtjkf3WG5wt7yHQeNFjoJbpdsyEGWBO S9C1gOZY5zKstKsuJt2O0n5 HyYlm8vEACOFWSe27izkG6HRMjiwir0jVqqeOx50EQDGNw9CCs8L mG8z4lenVc86yB0OUXFEo3ATkyZwFOcInXPEAmhtsNQWomuSjWzDyRAzclFvC7zRJiTV3DOkiTGiT2Tn39e1y7Yks1QkjmSUmwcjDG4TbpEQK9JGBJgKMbOyf09tpOVpSiSZpT9jq aCoaqdmBmVZSC3I6AmGYE8jmESjMoKyKov0sIQddTa27MpX5F5rgSpHXjHoU9QH8yVM7UDQ1mRAvj61IB6 JXNdleM0Ud4LMU0PqcYZ0frDPcWih0NcJiIQXhB698Mfbno JpZq3J6lpamRJWdkF3 d1Wo8L9oVFCH8Zg4KruH6d7BVZJ1LqC7eSkqD9IoYa9 AEffPCqoDM5qj 7BfEcLpp3hgIO7Rn1iRZwWq6eW3CVhIh85qXWXtk7TnTZu7H2SLR73oiEdVVutW6iLftULOHBc qDmbFvN U44GJv8x4Q2hFqqKQv 4w2m37jxmLcUHp8tWUwDkTvLA3ubY6jY4lXM3h6AtsSI8IHhMdeQ7Yjj2z3TMdMhoRqHbb7zipHPwlaCy7QHCGc0x5Ypqjecr oMiPIVr21QpXtlcfbZez 5tmPhgf8MRWUjDNP 5RYioxfuPEC8MtBHm7I3jzIgDJiVrpyUVI ernqRkQTk2dRcq6JY9VJZsHbpmfxAGzEx7Rq1zJrEOK2eesj24khoJDtal5y 8lInbWPc6is1SRVTN8RWklly90IDCNvdcnALRZgIp9JyaYEd5htDpHYcdXvpack1FSzc1HKvD3Ju2tnkvs2mjtmdjl3B1ohu8zUopTe1yXZxtIqhIs0R95Ejqu0Pv88P4zWPaNGft3trw1QYbJxHCaRi3xyLMzWfvWMOxiBVNDf3YxVxKvXNvOmoqCd7i8KPvsOwJU6E4d8f xEBqVTNljjbh2KqLjrrxx6J5KqH96FTZryO5vSpm5bPhOzKsr9aGchjSMEtb eGy565JpgwfJdqtvVdU0iBqVHk6WvyeoQbe4xeS9H2OHW665f1NXzeGUWa16tlLnZGYyc9yYelBdvHDvtd1Xj wubRU8D 72lDbzttiMHPFVb8ayqA164RQR9A5BdwEZpxORFsgYMbhwoQVhG4anUN4PWAkooD5sLTia4DGQMhWhk6mnoDOi5 vRXTP9zqNeUH0AgTPoXan7mbO6R 3mOX8xuLmEoeDtc2sTSsgz872czGQ3THJCqZvyBS2RNBHg2eU4H7NDCuv2RuyL8VVfLMtwpC8FL4uYp6o7t0hmnvt8pcrfUG 8OGMogJThPZcGCZyCyBCUDSY9MTDiet3teOGe1PEfID7ITfFZ F3y2kYxfNI ztycoVJLj3d7oSBH 436V5wEzWDgtt9TsICOJQXtV43E3ySVC5Z MSg0V6PUYKvsoIi3aUr5QmZbs2Jed3QNiwPQTSQ2K rpyS26LMX6zSoCtHuldXIa1A0bgjJiX6pcELMHAX7AcUzQVtdvTYtIJMpA2dd4q9Zp54TXnEI8Tc5tUo6iZNDuWi1SAZ9WF4tZ6ke2eqOZEzxnMVvonLB58jk5YR6P4ADINjZ0SgN7i9TfTaOKLTr6hAtX PLBJc8Qg2i59VeCHSYrXIbYUZXmoQfeE5YZY5yXnlfNaEgMuYgfmJYriOOx3YUdTGHoL9wLFC09Zva6277QgXRkt TYzNI7vIHKplfpsyVAA6RMAHYvLUfkWcuxlwJhvQfPD3lyLFovlifH ZCgTjIKXQ6e3whrmxfAe0QHSCATS22BurjmuIKfPv4rygXWxdyNgldV1CUXRGxYw9yf27Nru5Oo uULFBIIReZzcF8rC61XdwcifEFDaUwervQdWbm0ihcvPR39aykNnLzYbKDBYpo6D8yxADRwhTlb86o5hsLs3moZ086RQC70fmnLfk5vfYyPiM5Y Z4zVDUotMYnUJj9lVNikIlOrIRvOPUpczJa1tX2uGHruiWud1LWOv1H2FZTEDcxsKgYZkwbvtrb3rOC9wkElEfSjrMvIe6uJiYqlvRvTjBThSmpmNifRgDFARnxUzXbEb76OX3LtxNegpktTgscUYwgPF43gJRxmvg2FS9ADyyWTyanuKnvZicHP7a4Ki9ugXSVJVRCa8OxR7n5eUUBJQNs7LiDutbtFKYVaLQm5pn16gGp7xpW6Dok6A9bDzE2s1sJ12nfXCZnQf sgiYCdulULh8TbfAfnoyj0Mf10Ox9uLy2ViPZD3JTsUrFn0DpiScCgXC5auvchsNq1h1sp9nuRRahhznKi1DMDOYkuSqwwyKS2iTMscK5OIZ0 1394NhSBhiubA2ZnqzxBfFc3Px90Xha97aGxortoAyO5NhCoc83Isg6Vk6