File size: 236,824 Bytes
fa5803b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "## 🧾 Problem Definition: Garbage Classification V2\n",
    "\n",
    "**Objective:**\n",
    "To develop an automated image classification system that accurately identifies and classifies garbage items into one of twelve predefined waste categories using computer vision and machine learning techniques.\n",
    "\n",
    "**Context:**\n",
    "Proper garbage classification is crucial for effective recycling, waste management, and environmental sustainability. Manual sorting is time-consuming, error-prone, and labor-intensive. An intelligent system capable of automatically recognizing the type of waste in real-world images can significantly improve the efficiency of waste segregation processes, particularly in smart recycling bins and automated waste sorting facilities.\n",
    "\n",
    "**Dataset Description:**\n",
    "The dataset consists of approximately 15,150 RGB images categorized into the following 12 classes:\n",
    "\n",
    "* Cardboard\n",
    "* Paper\n",
    "* Plastic\n",
    "* Metal\n",
    "* Brown Glass\n",
    "* Green Glass\n",
    "* White Glass\n",
    "* Trash (general)\n",
    "* Biological Waste\n",
    "* Batteries\n",
    "* Shoes\n",
    "* Clothes\n",
    "\n",
    "Each image depicts a single garbage item in various lighting conditions, backgrounds, and angles. The images are grouped by class into separate folders, making it suitable for supervised learning.\n",
    "\n",
    "**Problem Type:**\n",
    "\n",
    "* Multi-class Image Classification\n",
    "\n",
    "**Input:**\n",
    "\n",
    "* A color image (e.g., `.jpg` or `.png`) depicting a single waste item.\n",
    "\n",
    "**Output:**\n",
    "\n",
    "* A class label indicating the type of garbage (e.g., \"plastic\", \"paper\", \"metal\", etc.).\n",
    "\n",
    "**Evaluation Metrics:**\n",
    "\n",
    "* **Accuracy**: Overall classification correctness.\n",
    "* **Precision, Recall, and F1-Score** (per class): Especially important to monitor performance on minority classes (e.g., batteries or shoes).\n",
    "* **Confusion Matrix**: To visualize model strengths and weaknesses across classes.\n",
    "\n",
    "**Challenges:**\n",
    "\n",
    "* **Class Imbalance**: Some categories have significantly fewer images than others.\n",
    "* **Intra-class Variability**: Items within the same class (e.g., plastic containers vs. plastic bags) may look very different.\n",
    "* **Inter-class Similarity**: Some categories may appear visually similar (e.g., brown vs. green glass).\n",
    "* **Real-world Noise**: Variations in lighting, background clutter, and image quality.\n",
    "\n",
    "**Goal:**\n",
    "To train a robust deep learning model capable of generalizing well across all 12 classes and deploying it in applications like smart bins, mobile apps for waste sorting guidance, or industrial waste-sorting robotics.\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Main tools"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T15:08:17.506661Z",
     "iopub.status.busy": "2025-06-25T15:08:17.506391Z",
     "iopub.status.idle": "2025-06-25T15:08:17.511862Z",
     "shell.execute_reply": "2025-06-25T15:08:17.511153Z",
     "shell.execute_reply.started": "2025-06-25T15:08:17.506643Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "import os\n",
    "import time\n",
    "import copy\n",
    "from tqdm import tqdm\n",
    "import matplotlib.pyplot as plt\n",
    "from PIL import Image\n",
    "import numpy as np\n",
    "import random\n",
    "import seaborn as sns\n",
    "import requests\n",
    "from io import BytesIO\n",
    "\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "from torchvision import datasets, transforms\n",
    "from torch.utils.data import DataLoader, random_split\n",
    "from torchvision.datasets import ImageFolder\n",
    "from torchvision import models\n",
    "\n",
    "from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, confusion_matrix, classification_report\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Explore The Datasets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:31:34.498671Z",
     "iopub.status.busy": "2025-06-25T14:31:34.497925Z",
     "iopub.status.idle": "2025-06-25T14:31:34.502070Z",
     "shell.execute_reply": "2025-06-25T14:31:34.501370Z",
     "shell.execute_reply.started": "2025-06-25T14:31:34.498643Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "dataset_path = '/kaggle/input/garbage-classification-v2/garbage-dataset'\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:31:42.968391Z",
     "iopub.status.busy": "2025-06-25T14:31:42.967804Z",
     "iopub.status.idle": "2025-06-25T14:31:43.329781Z",
     "shell.execute_reply": "2025-06-25T14:31:43.328933Z",
     "shell.execute_reply.started": "2025-06-25T14:31:42.968368Z"
    },
    "trusted": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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xhtveI0fOXJEpUqVcn6Ojo7WTz/9JDPzWunz66+/el2uatWqkk6vyslc2ZMT119/vd5991298847euSRR/5y3+joaEnS5s2b1bp1a69tmzdvdrZLp1c6ne3Qu3+ymurvvm3vbH799dcst+Evv/wiSc63AFatWlVHjx49r9vvr7Rv314BAQF65513zutk54sXL9bBgwc1a9YsxcTEOONbt2496/516tRRnTp1NHToUC1dulTNmzfXxIkT9eSTT0qS3G632rRpozZt2uiFF17Q008/rccee0yLFi3K9d4BALgYcfgeAADI1wICArKs/pk5c6Z27drlNRYbG6tdu3Y5344nSSdOnNDrr7/utV+jRo1UtWpVPffcczp69GiW33fgwIG/rOfmm29WnTp19NRTT2nZsmVZtqekpOixxx6TJF1xxRWKiorSxIkTlZaW5uzz+eef6+eff1ZcXJwzVrVqVW3atMnr9//www//6NveihQpIul0gJddu3fv1kcffeT8nJycrLfeekv169dXmTJlJEm33HKLli1bpvnz52e5/JEjR5Senn5e9VaoUEG9evXSggUL9PLLL2fZ7vF49Pzzz2vnzp1nvXzm6qUz7y8nT57UhAkTvPZLTk7OUmOdOnXkdrudeTp06FCW689cvXXmXAIAgPPHSikAAJCvdezYUSNHjlT37t3VrFkzbdiwQdOmTVOVKlW89rv33nv1yiuv6NZbb9UDDzygsmXLatq0ac4JxjNX/rjdbk2aNEnt27dX7dq11b17d11yySXatWuXFi1apLCwMH322WfnrCcoKEizZs1S27ZtFRMTo1tuuUXNmzdXUFCQfvzxR02fPl3FixfXU089paCgID377LPq3r27WrZsqVtvvVX79u3TSy+9pEqVKikhIcG53h49euiFF15QbGysevbsqf3792vixImqXbu2cwLwnGrUqJEkacCAAYqNjVVAQIC6du36l5e59NJL1bNnT61atUqlS5fW5MmTtW/fPk2ZMsXZ5+GHH9ann36qjh076u6771ajRo107NgxbdiwQR988IG2bdvmtYotJ55//nn99ttvGjBggGbNmqWOHTuqePHi2r59u2bOnKlNmzads4dmzZqpePHi6tatmwYMGCCXy6W33347S6j51VdfqV+/fvr3v/+tSy+9VOnp6Xr77bcVEBCgzp07S5JGjhypJUuWKC4uTtHR0dq/f78mTJig8uXLq0WLFufVGwAA+BP/ffEfAAAoaKZMmWKSbNWqVc5Yt27drEiRIln2bdmypdWuXTvLeHR0tMXFxTk/nzhxwh588EErW7ashYaGWvPmzW3ZsmXWsmVLa9mypddlf//9d4uLi7PQ0FCLjIy0Bx980D788EOTZMuXL/fad+3atdapUycrWbKkhYSEWHR0tN1yyy325ZdfZqvXw4cP2/Dhw61OnTpWuHBhK1SokF1++eX2yCOP2J49e7z2ff/9961BgwYWEhJiJUqUsNtvv9127tyZ5Trfeecdq1KligUHB1v9+vVt/vz51q1bN4uOjnb22bp1q0my//znP1kuL8lGjBjh/Jyenm79+/e3yMhIc7lc9ndv/TJv+/nz51vdunUtJCTEatasaTNnzsyyb0pKij3yyCNWrVo1Cw4OtlKlSlmzZs3sueees5MnT/5trX8lPT3dJk2aZFdffbWFh4dbUFCQRUdHW/fu3W3t2rXOfpn3t61btzpj3333nTVp0sRCQ0OtXLlyNmjQIJs/f75JskWLFpnZ6ftJjx49rGrVqlaoUCErUaKEtWrVyr744gvner788ku74YYbrFy5chYcHGzlypWzW2+91X755Zcc9QIAAM7NZeaDs2ECAAD4yYsvvqiEhATt3LlTl1xyib/LydcqVaqkyy+/XLNnz/Z3KQAA4CLAOaUAAECBkZqa6vXziRMn9N///lfVq1cnkAIAAMhnOKcUAAAoMDp16qSKFSuqfv36SkpK0jvvvKNNmzZp2rRp/i4NAAAAf0IoBQAACozY2FhNmjRJ06ZNU0ZGhmrVqqX33ntPXbp08XdpAAAA+BPOKQUAAAAAAACf45xSAAAAAAAA8DlCKQAAAAAAAPgc55TKBo/Ho927d6tYsWJyuVz+LgcAAAAAACDfMjOlpKSoXLlycrvPvR6KUCobdu/erQoVKvi7DAAAAAAAgAvGjh07VL58+XNuJ5TKhmLFikk6fWOGhYX5uRoAAAAAAID8Kzk5WRUqVHDylHMhlMqGzEP2wsLCCKUAAAAAAACy4e9OgcSJzgEAAAAAAOBzhFIAAAAAAADwOUIpAAAAAAAA+ByhFAAAAAAAAHyOUAoAAAAAAAA+RygFAAAAAAAAnyOUAgAAAAAAgM8RSgEAAAAAAMDnCKUAAAAAAADgc4RSAAAAAAAA8DlCKQAAAAAAAPgcoRQAAAAAAAB8jlAKAAAAAAAAPkcoBQAAAAAAAJ8jlAIAAAAAAIDPEUoBAAAAAADA5wilAAAAAAAA4HOEUgAAAAAAAPA5QikAAAAAAAD4XKC/CwAAAAAAILtGr030dwkFwpAGpfxdAsBKKQAAAAAAAPgeoRQAAAAAAAB8jlAKAAAAAAAAPkcoBQAAAAAAAJ8jlAIAAAAAAIDPEUoBAAAAAADA5wilAAAAAAAA4HOEUgAAAAAAAPA5QikAAAAAAAD4HKEUAAAAAAAAfI5QCgAAAAAAAD5HKAUAAAAAAACfI5QCAAAAAACAzxFKAQAAAAAAwOcIpQAAAAAAAOBzhFIAAAAAAADwOUIpAAAAAAAA+ByhFAAAAAAAAHyOUAoAAAAAAAA+RygFAAAAAAAAnyOUAgAAAAAAgM/5NZR6/PHH5XK5vP7VrFnT2X7ixAn17dtXJUuWVNGiRdW5c2ft27fP6zq2b9+uuLg4FS5cWFFRUXr44YeVnp7utc/ixYvVsGFDhYSEqFq1apo6daov2gMAAAAAAMA5+H2lVO3atbVnzx7n37fffutsS0hI0GeffaaZM2fq66+/1u7du9WpUydne0ZGhuLi4nTy5EktXbpUb775pqZOnarhw4c7+2zdulVxcXFq1aqV1q1bp/j4eN1zzz2aP3++T/sEAAAAAADA/wT6vYDAQJUpUybLeFJSkt544w1Nnz5drVu3liRNmTJFl112mZYvX64mTZpowYIF+umnn/TFF1+odOnSql+/vkaNGqXBgwfr8ccfV3BwsCZOnKjKlSvr+eeflyRddtll+vbbbzV27FjFxsb6tFcAAAAAAACc5veVUlu2bFG5cuVUpUoV3X777dq+fbskafXq1Tp16pTatm3r7FuzZk1VrFhRy5YtkyQtW7ZMderUUenSpZ19YmNjlZycrB9//NHZ58zryNwn8zoAAAAAAADge35dKXXVVVdp6tSpqlGjhvbs2aMnnnhCV199tTZu3Ki9e/cqODhYERERXpcpXbq09u7dK0nau3evVyCVuT1z21/tk5ycrNTUVIWGhmapKy0tTWlpac7PycnJkqRTp07p1KlTkiS3262AgABlZGTI4/E4+2aOp6eny8yc8YCAALnd7nOOZ15vpsDA01Pz5/NjnWs8KChIHo9HGRkZzpjL5VJgYOA5x89VOz3REz3REz3REz3REz3REz3RU37tSZLcHu8aPa7/H7eM7I27AyUzr3GTS+YOkMwjt3myjLvMI9fZxj0Zcul/NZrLLXO5s4x7XG7prOMBksvl854kcd+jpzzr6c/7nItfQ6n27ds7/1+3bl1dddVVio6O1owZM84aFvnKM888oyeeeCLL+IIFC1S4cGFJUsWKFdWgQQOtX7/eWd0lSTVq1FDNmjW1cuVKHThwwBmvX7++oqOjtWTJEqWkpDjjTZs2VVRUlBYsWOA1aa1atVJoaKjmzp3rVUOHDh2UmpqqRYsWOWOBgYGKi4tTYmKi1wqwYsWKqXXr1tqxY4fWrVvnjEdGRqpZs2basmWLNm/e7IzTEz3REz3REz3REz3REz3REz3l954kt6rt+l4BZ4Qvv5VpoPTAYNXYucKrp83lr1Jg+klV3bvWGctwBeiXCk1U5MQRVTzwkzOeFhSq38s2VMSx/Sp76Ddn/GihCO2Iqq2SSTsVmbzDGT9SJEp7SlZXmcO/K+LYfmf8QFgFJUZUVPnETSp64ogzvqdEVR0pWkaV9/2gkFOpzvj2yFo6Flrc5z1Jpbnv0VOe9eR2Z+/APJedGZPlA40bN1bbtm3Vrl07tWnTRocPH/ZaLRUdHa34+HglJCRo+PDh+vTTT70mbevWrapSpYrWrFmjBg0aKCYmRg0bNtSLL77o7DNlyhTFx8crKSnprDWcbaVUhQoVlJiYqLCwMEkXRjJZENNWeqIneqIneqIneqIneqInerq4exrzwyFWSuVCT4Mblea+R0951lNKSopKliyppKQkJ0c5m3wVSh09elQVK1bU448/rm7duikyMlLvvvuuOnfuLEnavHmzatasqWXLlqlJkyb6/PPP1bFjR+3Zs0dRUVGSpNdee00PP/yw9u/fr5CQEA0ePFhz587Vhg0bnN9z22236dChQ5o3b1626kpOTlZ4ePjf3pgAAAAAgLw1em2iv0soEIY0KOXvElCAZTdH8euJzh966CF9/fXX2rZtm5YuXaqbbrpJAQEBuvXWWxUeHq6ePXtq4MCBWrRokVavXq3u3buradOmatKkiSTp2muvVa1atXTnnXfqhx9+0Pz58zV06FD17dtXISEhkqQ+ffro999/16BBg7Rp0yZNmDBBM2bMUEJCgj9bBwAAAAAAuKj59ZxSO3fu1K233qqDBw8qMjJSLVq00PLlyxUZGSlJGjt2rNxutzp37qy0tDTFxsZqwoQJzuUDAgI0e/Zs3XfffWratKmKFCmibt26aeTIkc4+lStX1pw5c5SQkKCXXnpJ5cuX16RJkxQbG+vzfgEAAAAAAHBavjp8L7/i8D0AAAAAyB84fC93cPge8tIFcfgeAAAAAAAALk6EUgAAAAAAAPA5QikAAAAAAAD4HKEUAAAAAAAAfI5QCgAAAAAAAD5HKAUAAAAAAACfI5QCAAAAAACAzxFKAQAAAAAAwOcIpQAAAAAAAOBzhFIAAAAAAADwOUIpAAAAAAAA+ByhFAAAAAAAAHyOUAoAAAAAAAA+RygFAAAAAAAAnyOUAgAAAAAAgM8RSgEAAAAAAMDnCKUAAAAAAADgc4RSAAAAAAAA8DlCKQAAAAAAAPgcoRQAAAAAAAB8jlAKAAAAAAAAPkcoBQAAAAAAAJ8jlAIAAAAAAIDPEUoBAAAAAADA5wilAAAAAAAA4HOEUgAAAAAAAPA5QikAAAAAAAD4HKEUAAAAAAAAfI5QCgAAAAAAAD5HKAUAAAAAAACfI5QCAAAAAACAzxFKAQAAAAAAwOcIpQAAAAAAAOBzhFIAAAAAAADwOUIpAAAAAAAA+ByhFAAAAAAAAHyOUAoAAAAAAAA+RygFAAAAAAAAnyOUAgAAAAAAgM8RSgEAAAAAAMDnCKUAAAAAAADgc4RSAAAAAAAA8DlCKQAAAAAAAPgcoRQAAAAAAAB8jlAKAAAAAAAAPkcoBQAAAAAAAJ8jlAIAAAAAAIDPEUoBAAAAAADA5wilAAAAAAAA4HOEUgAAAAAAAPA5QikAAAAAAAD4HKEUAAAAAAAAfI5QCgAAAAAAAD5HKAUAAAAAAACfI5QCAAAAAACAzxFKAQAAAAAAwOcIpQAAAAAAAOBzhFIAAAAAAADwOUIpAAAAAAAA+ByhFAAAAAAAAHyOUAoAAAAAAAA+RygFAAAAAAAAnyOUAgAAAAAAgM8RSgEAAAAAAMDnCKUAAAAAAADgc4RSAAAAAAAA8DlCKQAAAAAAAPgcoRQAAAAAAAB8jlAKAAAAAAAAPkcoBQAAAAAAAJ8jlAIAAAAAAIDP5ZtQavTo0XK5XIqPj3fGTpw4ob59+6pkyZIqWrSoOnfurH379nldbvv27YqLi1PhwoUVFRWlhx9+WOnp6V77LF68WA0bNlRISIiqVaumqVOn+qAjAAAAAAAAnEu+CKVWrVql//73v6pbt67XeEJCgj777DPNnDlTX3/9tXbv3q1OnTo52zMyMhQXF6eTJ09q6dKlevPNNzV16lQNHz7c2Wfr1q2Ki4tTq1attG7dOsXHx+uee+7R/PnzfdYfAAAAAAAAvPk9lDp69Khuv/12vf766ypevLgznpSUpDfeeEMvvPCCWrdurUaNGmnKlClaunSpli9fLklasGCBfvrpJ73zzjuqX7++2rdvr1GjRmn8+PE6efKkJGnixImqXLmynn/+eV122WXq16+fbr75Zo0dO9Yv/QIAAAAAACAfhFJ9+/ZVXFyc2rZt6zW+evVqnTp1ymu8Zs2aqlixopYtWyZJWrZsmerUqaPSpUs7+8TGxio5OVk//vijs8+frzs2Nta5DgAAAAAAAPheoD9/+Xvvvac1a9Zo1apVWbbt3btXwcHBioiI8BovXbq09u7d6+xzZiCVuT1z21/tk5ycrNTUVIWGhmb53WlpaUpLS3N+Tk5OliSdOnVKp06dkiS53W4FBAQoIyNDHo/H2TdzPD09XWbmjAcEBMjtdp9zPPN6MwUGnp6aP58f61zjQUFB8ng8ysjIcMZcLpcCAwPPOX6u2umJnuiJnuiJnuiJnuiJnuiJnvJrT5Lk9njX6HH9/7hlZG/cHSiZeY2bXDJ3gGQeuc2TZdxlHrnONu7JkEv/q9FcbpnLnWXc43JLZx0PkFwun/ckifsePeVZT3/e51z8Fkrt2LFDDzzwgBYuXKhChQr5q4yzeuaZZ/TEE09kGV+wYIEKFy4sSapYsaIaNGig9evXa/v27c4+NWrUUM2aNbVy5UodOHDAGa9fv76io6O1ZMkSpaSkOONNmzZVVFSUFixY4DVprVq1UmhoqObOnetVQ4cOHZSamqpFixY5Y4GBgYqLi1NiYqLXCrBixYqpdevW2rFjh9atW+eMR0ZGqlmzZtqyZYs2b97sjNMTPdETPdETPdETPdETPdETPeX3niS3qu36XgFnhC+/lWmg9MBg1di5wqunzeWvUmD6SVXdu9YZy3AF6JcKTVTkxBFVPPCTM54WFKrfyzZUxLH9KnvoN2f8aKEI7YiqrZJJOxWZvMMZP1IkSntKVleZw78r4th+Z/xAWAUlRlRU+cRNKnriiDO+p0RVHSlaRpX3/aCQU6nO+PbIWjoWWtznPUmlue/RU5715HZn78A8l50Zk/nQxx9/rJtuuslJuqXTKa3L5ZLb7db8+fPVtm1bHT582Gu1VHR0tOLj45WQkKDhw4fr008/9Zq0rVu3qkqVKlqzZo0aNGigmJgYNWzYUC+++KKzz5QpUxQfH6+kpKSz1na2lVIVKlRQYmKiwsLCJF0YyWRBTFvpiZ7oiZ7oiZ7oiZ7oiZ7o6eLuacwPh1gplQs9DW5UmvsePeVZTykpKSpZsqSSkpKcHOVs/BZKpaSk6I8//vAa6969u2rWrKnBgwerQoUKioyM1LvvvqvOnTtLkjZv3qyaNWtq2bJlatKkiT7//HN17NhRe/bsUVRUlCTptdde08MPP6z9+/crJCREgwcP1ty5c7Vhwwbn99x22206dOiQ5s2bl61ak5OTFR4e/rc3JgAAAAAgb41em+jvEgqEIQ1K+bsEFGDZzVH8dvhesWLFdPnll3uNFSlSRCVLlnTGe/bsqYEDB6pEiRIKCwtT//791bRpUzVp0kSSdO2116pWrVq68847NWbMGO3du1dDhw5V3759FRISIknq06ePXnnlFQ0aNEg9evTQV199pRkzZmjOnDm+bRgAAAAAAAAOv57o/O+MHTtWbrdbnTt3VlpammJjYzVhwgRne0BAgGbPnq377rtPTZs2VZEiRdStWzeNHDnS2ady5cqaM2eOEhIS9NJLL6l8+fKaNGmSYmNj/dESAAAAAAAA5MfD9y4kHL4HAAAAAPkDh+/lDg7fQ17Kbo6SvdOhAwAAAAAAALmIUAoAAAAAAAA+RygFAAAAAAAAnyOUAgAAAAAAgM8RSgEAAAAAAMDnCKUAAAAAAADgc4RSAAAAAAAA8DlCKQAAAAAAAPgcoRQAAAAAAAB8jlAKAAAAAAAAPkcoBQAAAAAAAJ8jlAIAAAAAAIDPEUoBAAAAAADA5wilAAAAAAAA4HOEUgAAAAAAAPA5QikAAAAAAAD4HKEUAAAAAAAAfI5QCgAAAAAAAD5HKAUAAAAAAACfI5QCAAAAAACAzxFKAQAAAAAAwOcIpQAAAAAAAOBzhFIAAAAAAADwOUIpAAAAAAAA+ByhFAAAAAAAAHyOUAoAAAAAAAA+RygFAAAAAAAAnyOUAgAAAAAAgM8RSgEAAAAAAMDnCKUAAAAAAADgczkOpd58803NmTPH+XnQoEGKiIhQs2bN9Mcff+RqcQAAAAAAACiYchxKPf300woNDZUkLVu2TOPHj9eYMWNUqlQpJSQk5HqBAAAAAAAAKHgCc3qBHTt2qFq1apKkjz/+WJ07d1bv3r3VvHlzXXPNNbldHwAAAAAAAAqgHK+UKlq0qA4ePChJWrBggdq1aydJKlSokFJTU3O3OgAAAAAAABRIOV4p1a5dO91zzz1q0KCBfvnlF3Xo0EGS9OOPP6pSpUq5XR8AAAAAAAAKoByvlBo/fryaNm2qAwcO6MMPP1TJkiUlSatXr9att96a6wUCAAAAAACg4HGZmfm7iPwuOTlZ4eHhSkpKUlhYmL/LAQAAAICL1ui1if4uoUAY0qCUv0tAAZbdHCXHK6Uk6ZtvvtEdd9yhZs2aadeuXZKkt99+W99+++35VQsAAAAAAICLSo5DqQ8//FCxsbEKDQ3VmjVrlJaWJklKSkrS008/nesFAgAAAAAAoODJcSj15JNPauLEiXr99dcVFBTkjDdv3lxr1qzJ1eIAAAAAAABQMOU4lNq8ebNiYmKyjIeHh+vIkSO5URMAAAAAAAAKuByHUmXKlNGvv/6aZfzbb79VlSpVcqUoAAAAAAAAFGw5DqV69eqlBx54QCtWrJDL5dLu3bs1bdo0PfTQQ7rvvvvyokYAAAAAAAAUMIE5vcCQIUPk8XjUpk0bHT9+XDExMQoJCdFDDz2k/v3750WNAAAAAAAAKGByHEq5XC499thjevjhh/Xrr7/q6NGjqlWrlooWLZoX9QEAAAAAAKAAynEolSk4OFi1atXKzVoAAAAAAABwkchxKHXTTTfJ5XJlGXe5XCpUqJCqVaum2267TTVq1MiVAgEAAAAAAFDw5PhE5+Hh4frqq6+0Zs0auVwuuVwurV27Vl999ZXS09P1/vvvq169evruu+/yol4AAAAAAAAUADleKVWmTBnddttteuWVV+R2n860PB6PHnjgARUrVkzvvfee+vTpo8GDB+vbb7/N9YIBAAAAAABw4cvxSqk33nhD8fHxTiAlSW63W/3799drr70ml8ulfv36aePGjblaKAAAAAAAAAqOHIdS6enp2rRpU5bxTZs2KSMjQ5JUqFChs553CgAAAAAAAJDO4/C9O++8Uz179tSjjz6qxo0bS5JWrVqlp59+WnfddZck6euvv1bt2rVzt1IAAAAAAAAUGDkOpcaOHavSpUtrzJgx2rdvnySpdOnSSkhI0ODBgyVJ1157ra677rrcrRQAAAAAAAAFhsvM7HwvnJycLEkKCwvLtYLyo+TkZIWHhyspKanA9woAAAAA+dnotYn+LqFAGNKglL9LQAGW3RwlxyulzkRAAwAAAAAAgPNxXqHUBx98oBkzZmj79u06efKk17Y1a9bkSmEAAAAAAAAouHL87Xvjxo1T9+7dVbp0aa1du1ZXXnmlSpYsqd9//13t27fPixoBAAAAAABQwOQ4lJowYYJee+01vfzyywoODtagQYO0cOFCDRgwQElJSXlRIwAAAAAAAAqYHIdS27dvV7NmzSRJoaGhSklJkSTdeeedevfdd3O3OgAAAAAAABRIOQ6lypQpo0OHDkmSKlasqOXLl0uStm7dqn/wRX4AAAAAAAC4iOQ4lGrdurU+/fRTSVL37t2VkJCgdu3aqUuXLrrppptyvUAAAAAAAAAUPDn+9r3XXntNHo9HktS3b1+VLFlSS5cu1b/+9S/de++9uV4gAAAAAAAACp4ch1Jut1tu9/8WWHXt2lVdu3bN1aIAAAAAAABQsOU4lJKkEydOaP369dq/f7+zairTv/71r1wpDAAAAAAAAAVXjkOpefPm6a677lJiYmKWbS6XSxkZGblSGAAAAAAAAAquHJ/ovH///vr3v/+tPXv2yOPxeP0jkAIAAAAAAEB25DiU2rdvnwYOHKjSpUvnRT0AAAAAAAC4COQ4lLr55pu1ePHiPCgFAAAAAAAAF4scn1PqlVde0b///W998803qlOnjoKCgry2DxgwINeKAwAAAAAAQMGU41Dq3Xff1YIFC1SoUCEtXrxYLpfL2eZyuQilAAAAAAAA8LdyHEo99thjeuKJJzRkyBC53Tk++g8AAAAAAADIeSh18uRJdenSJVcCqVdffVWvvvqqtm3bJkmqXbu2hg8frvbt20uSTpw4oQcffFDvvfee0tLSFBsbqwkTJnidZH379u267777tGjRIhUtWlTdunXTM888o8DA/7W2ePFiDRw4UD/++KMqVKigoUOH6u677/7H9QO5afTaRH+XUCAMaVDK3yUAAAAAALIhx8lSt27d9P777+fKLy9fvrxGjx6t1atX6/vvv1fr1q11ww036Mcff5QkJSQk6LPPPtPMmTP19ddfa/fu3erUqZNz+YyMDMXFxenkyZNaunSp3nzzTU2dOlXDhw939tm6davi4uLUqlUrrVu3TvHx8brnnns0f/78XOkBAAAAAAAAOecyM8vJBQYMGKC33npL9erVU926dbOc6PyFF174RwWVKFFC//nPf3TzzTcrMjJS06dP18033yxJ2rRpky677DItW7ZMTZo00eeff66OHTtq9+7dzuqpiRMnavDgwTpw4ICCg4M1ePBgzZkzRxs3bnR+R9euXXXkyBHNmzcvWzUlJycrPDxcSUlJCgsL+0f9AefCSqncwUopAACAgo33zbmD983IS9nNUXK8UmrDhg1q0KCB3G63Nm7cqLVr1zr/1q1bd94FZ2Rk6L333tOxY8fUtGlTrV69WqdOnVLbtm2dfWrWrKmKFStq2bJlkqRly5apTp06XofzxcbGKjk52VlttWzZMq/ryNwn8zoAAAAAAADgezk+p9SiRYtytYANGzaoadOmOnHihIoWLaqPPvpItWrV0rp16xQcHKyIiAiv/UuXLq29e/dKkvbu3esVSGVuz9z2V/skJycrNTVVoaGhWWpKS0tTWlqa83NycrIk6dSpUzp16pQkye12KyAgQBkZGfJ4PM6+mePp6ek6cxFaQECA3G73OcczrzdT5jmx0tPTszUeFBQkj8ejjIwMZ8zlcikwMPCc4+eqnZ7805PMI7f9r0aTS+YOkMs8cp1t3JMhl/5Xo7ncMpc7y7jH5ZbOOh4guVxye7xr9LgCTt9GlpG9cXegZOY1nlmjX3qSuO/REz3REz3REz3REz0V4J4kFbz3sH54Xy6J+x495VlPf97nXHIcSuW2GjVqaN26dUpKStIHH3ygbt266euvv/ZrTc8884yeeOKJLOMLFixQ4cKFJUkVK1ZUgwYNtH79em3fvt3Zp0aNGqpZs6ZWrlypAwcOOOP169dXdHS0lixZopSUFGe8adOmioqK0oIFC7wmrVWrVgoNDdXcuXO9aujQoYNSU1O9wsHAwEDFxcUpMTHRawVYsWLF1Lp1a+3YscNrFVtkZKSaNWumLVu2aPPmzc44Pfm3p4hj+1X20G/O+NFCEdoRVVslk3YqMnmHM36kSJT2lKyuMod/V8Sx/c74gbAKSoyoqPKJm1T0xBFnfE+JqjpStIwq7/tBIadSnfHtkbV0LLS4qu36XgFnvHD9VqaB0gODVWPnCq+eNpe/SoHpJ1V171pnLMMVoF8qNFGRE0dU8cBPznhaUKh+L9vQLz1Jkdz36Ime6Ime6Ime6ImeCnBPkrvAvYf1x/tyqTT3PXrKs56y++V42T6n1JknGP8rs2bNytZ+59K2bVtVrVpVXbp0UZs2bXT48GGv1VLR0dGKj49XQkKChg8frk8//dRr0rZu3aoqVapozZo1atCggWJiYtSwYUO9+OKLzj5TpkxRfHy8kpKSzlrD2VZKVahQQYmJic6xkBdCMlkQ09aC3NPoNfsvik9k8rqnIQ0jue/REz3REz3REz3REz0V4J7G/HCowL2H9cf78sGNSnPfo6c86yklJUUlS5b823NKZXulVHh4eHZ3/Uc8Ho/S0tLUqFEjBQUF6csvv1Tnzp0lSZs3b9b27dv/Px0/neo99dRT2r9/v6KioiRJCxcuVFhYmGrVquXs8+d0b+HChc51nE1ISIhCQkKyjAcFBWU5sXtAQICzhPRMmZOV3fE/X+/5jLvd7rOmkecaP1ft9OSfnuRyn36h+pPMF7Us4+6AM17Kzn/c4z57rx5XDsZdrnOM+6cn7nv0RE/09Ffj9ERP9ERPfzVOTxdGTwXxPaw/euK+R0/nqjGn43+u/Vy/K0tN2dpLp1cX5bZHHnlE7du3V8WKFZWSkqLp06dr8eLFmj9/vsLDw9WzZ08NHDhQJUqUUFhYmPr376+mTZuqSZMmkqRrr71WtWrV0p133qkxY8Zo7969Gjp0qPr27euESn369NErr7yiQYMGqUePHvrqq680Y8YMzZkzJ9f7AQAAAAAAQPb49ZxS+/fv11133aU9e/YoPDxcdevW1fz589WuXTtJ0tixY+V2u9W5c2elpaUpNjZWEyZMcC4fEBCg2bNn67777lPTpk1VpEgRdevWTSNHjnT2qVy5subMmaOEhAS99NJLKl++vCZNmqTY2Fif9wsAAAAAAIDTsn1OqYtZcnKywsPD//ZYSOCfGL020d8lFAhDGpTydwkAAADIQ7xvzh28b0Zeym6Okr3ToQMAAAAAAAC5iFAKAAAAAAAAPpetUKphw4Y6fPiwJGnkyJE6fvx4nhYFAAAAAACAgi1bodTPP/+sY8eOSZKeeOIJHT16NE+LAgAAAAAAQMGWrW/fq1+/vrp3764WLVrIzPTcc8+paNGiZ913+PDhuVogAAAAAAAACp5shVJTp07ViBEjNHv2bLlcLn3++ecKDMx6UZfLRSgFAAAAAACAv5WtUKpGjRp67733JElut1tffvmloqKi8rQwAAAAAAAAFFzZCqXO5PF48qIOAAAAAAAAXERyHEpJ0m+//aYXX3xRP//8sySpVq1aeuCBB1S1atVcLQ4AAAAAAAAFU7a+fe9M8+fPV61atbRy5UrVrVtXdevW1YoVK1S7dm0tXLgwL2oEAAAAAABAAZPjlVJDhgxRQkKCRo8enWV88ODBateuXa4VBwAAAAAAgIIpxyulfv75Z/Xs2TPLeI8ePfTTTz/lSlEAAAAAAAAo2HIcSkVGRmrdunVZxtetW8c38gEAAAAAACBbcnz4Xq9evdS7d2/9/vvvatasmSTpu+++07PPPquBAwfmeoEAAAAAAAAoeHIcSg0bNkzFihXT888/r0ceeUSSVK5cOT3++OMaMGBArhcIAAAAAACAgifHoZTL5VJCQoISEhKUkpIiSSpWrFiuFwYAAAAAAICCK8eh1JkIowAAAAAAAHA+cnyicwAAAAAAAOCfIpQCAAAAAACAzxFKAQAAAAAAwOdyFEqdOnVKbdq00ZYtW/KqHgAAAAAAAFwEchRKBQUFaf369XlVCwAAAAAAAC4SOT5874477tAbb7yRF7UAAAAAAADgIhGY0wukp6dr8uTJ+uKLL9SoUSMVKVLEa/sLL7yQa8UBAAAAAACgYMpxKLVx40Y1bNhQkvTLL794bXO5XLlTFQAAAAAAAAq0HIdSixYtyos6AAAAAAAAcBHJ8TmlMv3666+aP3++UlNTJUlmlmtFAQAAAAAAoGDLcSh18OBBtWnTRpdeeqk6dOigPXv2SJJ69uypBx98MNcLBAAAAAAAQMGT41AqISFBQUFB2r59uwoXLuyMd+nSRfPmzcvV4gAAAAAAAFAw5ficUgsWLND8+fNVvnx5r/Hq1avrjz/+yLXCAAAAAAAAUHDleKXUsWPHvFZIZTp06JBCQkJypSgAAAAAAAAUbDkOpa6++mq99dZbzs8ul0sej0djxoxRq1atcrU4AAAAAAAAFEw5PnxvzJgxatOmjb7//nudPHlSgwYN0o8//qhDhw7pu+++y4saAQAAAAAAUMDkeKXU5Zdfrl9++UUtWrTQDTfcoGPHjqlTp05au3atqlatmhc1AgAAAAAAoIDJ8UopSQoPD9djjz2W27UAAAAAAADgInFeodThw4f1xhtv6Oeff5Yk1apVS927d1eJEiVytTgAAAAAAAAUTDk+fG/JkiWqVKmSxo0bp8OHD+vw4cMaN26cKleurCVLluRFjQAAAAAAAChgcrxSqm/fvurSpYteffVVBQQESJIyMjJ0//33q2/fvtqwYUOuFwkAAAAAAICCJccrpX799Vc9+OCDTiAlSQEBARo4cKB+/fXXXC0OAAAAAAAABVOOQ6mGDRs655I6088//6x69erlSlEAAAAAAAAo2LJ1+N769eud/x8wYIAeeOAB/frrr2rSpIkkafny5Ro/frxGjx6dN1UCAAAAAACgQMlWKFW/fn25XC6ZmTM2aNCgLPvddttt6tKlS+5VBwAAAAAAgAIpW6HU1q1b87oOAAAAAAAAXESyFUpFR0fndR0AAAAAAAC4iGQrlPqz3bt369tvv9X+/fvl8Xi8tg0YMCBXCgMAAAAAAEDBleNQaurUqbr33nsVHByskiVLyuVyOdtcLhehFAAAAAAAAP5WjkOpYcOGafjw4XrkkUfkdrvzoiYAAAAAAAAUcDlOlY4fP66uXbsSSAEAAAAAAOC85ThZ6tmzp2bOnJkXtQAAAAAAAOAikePD95555hl17NhR8+bNU506dRQUFOS1/YUXXsi14gAAAAAAAFAwnVcoNX/+fNWoUUOSspzoHAAAAAAAAPg7OQ6lnn/+eU2ePFl33313HpQDAAAAAACAi0GOzykVEhKi5s2b50UtAAAAAAAAuEjkOJR64IEH9PLLL+dFLQAAAAAAALhI5PjwvZUrV+qrr77S7NmzVbt27SwnOp81a1auFQcAAAAAAICCKcehVEREhDp16pQXtQAAAAAAAOAikeNQasqUKXlRBwAAAAAAAC4iOT6nFAAAAAAAAPBP5XilVOXKleVyuc65/ffff/9HBQEAAAAAAKDgy3EoFR8f7/XzqVOntHbtWs2bN08PP/xwbtUFAAAAAACAAizHodQDDzxw1vHx48fr+++//8cFAQAAAAAAoODLtXNKtW/fXh9++GFuXR0AAAAAAAAKsFwLpT744AOVKFEit64OAAAAAAAABViOD99r0KCB14nOzUx79+7VgQMHNGHChFwtDgAAAAAAAAVTjkOpG2+80etnt9utyMhIXXPNNapZs2Zu1QUAAAAAAIACLMeh1IgRI/KiDgAAAAAAAFxEcu2cUgAAAAAAAEB2ZXullNvt9jqX1Nm4XC6lp6f/46IAAAAAAABQsGU7lProo4/OuW3ZsmUaN26cPB5PrhQFAAAAAACAgi3bodQNN9yQZWzz5s0aMmSIPvvsM91+++0aOXJkrhYHAAAAAACAgum8zim1e/du9erVS3Xq1FF6errWrVunN998U9HR0bldHwAAAAAAAAqgHIVSSUlJGjx4sKpVq6Yff/xRX375pT777DNdfvnl5/XLn3nmGTVu3FjFihVTVFSUbrzxRm3evNlrnxMnTqhv374qWbKkihYtqs6dO2vfvn1e+2zfvl1xcXEqXLiwoqKi9PDDD2c5t9XixYvVsGFDhYSEqFq1apo6dep51QwAAAAAAIB/Ltuh1JgxY1SlShXNnj1b7777rpYuXaqrr776H/3yr7/+Wn379tXy5cu1cOFCnTp1Stdee62OHTvm7JOQkKDPPvtMM2fO1Ndff63du3erU6dOzvaMjAzFxcXp5MmTWrp0qd58801NnTpVw4cPd/bZunWr4uLi1KpVK61bt07x8fG65557NH/+/H9UPwAAAAAAAM6Py8wsOzu63W6Fhoaqbdu2CggIOOd+s2bNOu9iDhw4oKioKH399deKiYlRUlKSIiMjNX36dN18882SpE2bNumyyy7TsmXL1KRJE33++efq2LGjdu/erdKlS0uSJk6cqMGDB+vAgQMKDg7W4MGDNWfOHG3cuNH5XV27dtWRI0c0b968v60rOTlZ4eHhSkpKUlhY2Hn3B/yV0WsT/V1CgTCkQSl/lwAAAIA8xPvm3MH7ZuSl7OYo2V4pddddd+mWW25RiRIlFB4efs5//0RSUpIkqUSJEpKk1atX69SpU2rbtq2zT82aNVWxYkUtW7ZM0ulv/qtTp44TSElSbGyskpOT9eOPPzr7nHkdmftkXgcAAAAAAAB8K9vfvpfX52DyeDyKj49X8+bNnXNU7d27V8HBwYqIiPDat3Tp0tq7d6+zz5mBVOb2zG1/tU9ycrJSU1MVGhrqtS0tLU1paWnOz8nJyZKkU6dO6dSpU5JOrxwLCAhQRkaGPB6Ps2/meHp6us5chBYQECC3233O8czrzRQYeHpq/nxurHONBwUFyePxKCMjwxlzuVwKDAw85/i5aqcn//Qk88ht/6vR5JK5A+Qyj1xnG/dkyKX/1Wgut8zlzjLucbmls44HSC6X3B7vGj2u0ysh3ZaRvXF3oGTmNZ5Zo196krjv0RM90RM90RM90RM9FeCeJBW897B+eF8uifsePeVZT3/e51yyHUrltb59+2rjxo369ttv/V2KnnnmGT3xxBNZxhcsWKDChQtLkipWrKgGDRpo/fr12r59u7NPjRo1VLNmTa1cuVIHDhxwxuvXr6/o6GgtWbJEKSkpznjTpk0VFRWlBQsWeE1aq1atFBoaqrlz53rV0KFDB6WmpmrRokXOWGBgoOLi4pSYmOi1+qtYsWJq3bq1duzYoXXr1jnjkZGRatasmbZs2eJ1Ynl68m9PEcf2q+yh35zxo4UitCOqtkom7VRk8g5n/EiRKO0pWV1lDv+uiGP7nfEDYRWUGFFR5RM3qeiJI874nhJVdaRoGVXe94NCTqU649sja+lYaHFV2/W9As544fqtTAOlBwarxs4VXj1tLn+VAtNPquretc5YhitAv1RooiInjqjigZ+c8bSgUP1etqFfepIiue/REz3REz3REz3REz0V4J4kd4F7D+uP9+VSae579JRnPbnd2TswL9vnlMpL/fr10yeffKIlS5aocuXKzvhXX32lNm3a6PDhw16rpaKjoxUfH6+EhAQNHz5cn376qdfEbd26VVWqVNGaNWvUoEEDxcTEqGHDhnrxxRedfaZMmaL4+HjnkMEznW2lVIUKFZSYmOgcC3khJJMFMW0tyD2NXrP/ovhEJq97GtIwkvsePdETPdETPdETPdFTAe5pzA+HCtx7WH+8Lx/cqHSuz9PY9Qf92lNBmaeEuiUlXdjPESkpKSpZsuTfnlPKryulzEz9+/fXRx99pMWLF3sFUpLUqFEjBQUF6csvv1Tnzp0lSZs3b9b27dv/PyE/new99dRT2r9/v6KioiRJCxcuVFhYmGrVquXs8+eEb+HChc51/FlISIhCQkKyjAcFBSkoKMhrLCAgwFlCeqbMycru+J+v93zG3W73WdPIc42fq3Z68k9PcrlPPwH+SeaTZZZxd8AZT5HnP+5xn71XjysH4y7XOcb90xP3PXqiJ3r6q3F6oid6oqe/Gj+zRk6onTvOPKF2bs1TQXwP64+ecvvx9OcemKfz6ym7uUN+fi4/1+/KUlO29sojffv21fTp0/XJJ5+oWLFizjmgwsPDFRoaqvDwcPXs2VMDBw5UiRIlFBYWpv79+6tp06Zq0qSJJOnaa69VrVq1dOedd2rMmDHau3evhg4dqr59+zrBUp8+ffTKK69o0KBB6tGjh7766ivNmDFDc+bM8VvvAAAAAAAAF7Nsf/teXnj11VeVlJSka665RmXLlnX+vf/++84+Y8eOVceOHdW5c2fFxMSoTJkymjVrlrM9ICBAs2fPVkBAgJo2bao77rhDd911l0aOHOnsU7lyZc2ZM0cLFy5UvXr19Pzzz2vSpEmKjY31ab8AAAAAAAA4ze+H7/2dQoUKafz48Ro/fvw594mOjs5yeN6fXXPNNVq7du1f7gMAAAAAAADf8OtKKQAAAAAAAFycCKUAAAAAAADgc4RSAAAAAAAA8DlCKQAAAAAAAPgcoRQAAAAAAAB8jlAKAAAAAAAAPkcoBQAAAAAAAJ8jlAIAAAAAAIDPBfq7AAAAAOBiNnptor9LKBCGNCjl7xIAADnESikAAAAAAAD4HKEUAAAAAAAAfI5QCgAAAAAAAD5HKAUAAAAAAACfI5QCAAAAAACAzxFKAQAAAAAAwOcIpQAAAAAAAOBzhFIAAAAAAADwOUIpAAAAAAAA+ByhFAAAAAAAAHyOUAoAAAAAAAA+F+jvAgAAOB+j1yb6u4QCYUiDUv4uAQAAABcpVkoBAAAAAADA5wilAAAAAAAA4HOEUgAAAAAAAPA5QikAAAAAAAD4HKEUAAAAAAAAfI5QCgAAAAAAAD5HKAUAAAAAAACfI5QCAAAAAACAzxFKAQAAAAAAwOcIpQAAAAAAAOBzhFIAAAAAAADwOUIpAAAAAAAA+ByhFAAAAAAAAHyOUAoAAAAAAAA+RygFAAAAAAAAnyOUAgAAAAAAgM8RSgEAAAAAAMDnCKUAAAAAAADgc4RSAAAAAAAA8DlCKQAAAAAAAPgcoRQAAAAAAAB8jlAKAAAAAAAAPkcoBQAAAAAAAJ8jlAIAAAAAAIDPEUoBAAAAAADA5wilAAAAAAAA4HOEUgAAAAAAAPA5QikAAAAAAAD4HKEUAAAAAAAAfI5QCgAAAAAAAD5HKAUAAAAAAACfI5QCAAAAAACAzxFKAQAAAAAAwOcIpQAAAAAAAOBzhFIAAAAAAADwOUIpAAAAAAAA+ByhFAAAAAAAAHyOUAoAAAAAAAA+RygFAAAAAAAAnyOUAgAAAAAAgM8RSgEAAAAAAMDnCKUAAAAAAADgc4RSAAAAAAAA8DlCKQAAAAAAAPgcoRQAAAAAAAB8jlAKAAAAAAAAPkcoBQAAAAAAAJ8jlAIAAAAAAIDPEUoBAAAAAADA5wilAAAAAAAA4HN+DaWWLFmi66+/XuXKlZPL5dLHH3/std3MNHz4cJUtW1ahoaFq27attmzZ4rXPoUOHdPvttyssLEwRERHq2bOnjh496rXP+vXrdfXVV6tQoUKqUKGCxowZk9etAQAAAAAA4C/4NZQ6duyY6tWrp/Hjx591+5gxYzRu3DhNnDhRK1asUJEiRRQbG6sTJ044+9x+++368ccftXDhQs2ePVtLlixR7969ne3Jycm69tprFR0drdWrV+s///mPHn/8cb322mt53h8AAAAAAADOLtCfv7x9+/Zq3779WbeZmV588UUNHTpUN9xwgyTprbfeUunSpfXxxx+ra9eu+vnnnzVv3jytWrVKV1xxhSTp5ZdfVocOHfTcc8+pXLlymjZtmk6ePKnJkycrODhYtWvX1rp16/TCCy94hVcAAAAAAADwHb+GUn9l69at2rt3r9q2beuMhYeH66qrrtKyZcvUtWtXLVu2TBEREU4gJUlt27aV2+3WihUrdNNNN2nZsmWKiYlRcHCws09sbKyeffZZHT58WMWLF/dpX/nB6LWJ/i6hQBjSoJS/SwAAAAAA4IKVb0OpvXv3SpJKly7tNV66dGln2969exUVFeW1PTAwUCVKlPDap3LlylmuI3Pb2UKptLQ0paWlOT8nJydLkk6dOqVTp05JktxutwICApSRkSGPx+Psmzmenp4uM3PGAwIC5Ha7zzmeeb1n9iFJ6enp2RoPCgqSx+NRRkaGM+ZyuRQYGJh13JMhcwfIZR657H+1m1ynxz0Zcul/NZrLLXO5s4x7XG7prOMBksslt8e7Ro8r4PRtZBnZG3cHSmZe45k1yjxyn612H/Z06tSpXJ2n/NCTM64LeJ4k3z6e/n/8XM8FF+RzxAXSk6T8dd+7UB9PHg/3PXqiJz/3lO3njvz2mpvPnvfyYp7cnvQL47k8n8/TqVOncvXxJOXgccM8nbMnSbn+vJfZQ36573mNX0DzlPk85O/Xp3/ymnvW9+5nkW9DKX965pln9MQTT2QZX7BggQoXLixJqlixoho0aKD169dr+/btzj41atRQzZo1tXLlSh04cMAZr1+/vqKjo7VkyRKlpKQ4402bNlVUVJQWLFjgNWmtWrVSaGio5s6d61VDhw4dlJqaqkWLFjljgYGBiouLU2JiopYtW+aMFytWTK1bt9aOHTu0bt06Z7x8oQjtiKqtkkk7FZm8wxk/UiRKe0pWV5nDvyvi2H5n/EBYBSVGVFT5xE0qeuKIM76nRFUdKVpGlff9oJBTqc749shaOhZaXNV2fa+AMx5ov5VpoPTAYNXYucKrp83lr1Jg+klV3bvWGctwBeiXCk1U5MQRVTzwkzOeFhSq38s2VMSx/Sp76Ddn/Kgfepq7M3fnKT/0JF348yRF5snjyenp6N6z9lTqyPaz9lT24Jaz9lRh/49n7anKnjVnnadLdyz/5/OUevjs8+TjnnLreU/lrspX970L9fG0o1T+eX2KjIxUs2bNtGXLFm3evNkZv5Bfc+mJnrLTU35+jriQnvfyYp5q+LmngjJPc3fm7uNJcvu9J+nCnyepdK4/79Xwc08FZZ7m7jw97u/Xp3/ymut2Z+8U5i47MybzI5fLpY8++kg33nijJOn3339X1apVtXbtWtWvX9/Zr2XLlqpfv75eeuklTZ48WQ8++KAOHz7sbE9PT1ehQoU0c+ZM3XTTTbrrrruUnJzs9c1+ixYtUuvWrXXo0KFsr5SqUKGCEhMTFRYWJunCSCbP9WngC+sPFZgEOUvtPuwpoW7JXJ2n0Wv2+70nZ1wX7jwNaRiZ64+nsesP5qv7njOuC2ueEuqWlJR7z3vPb0zye0//G79w5+mhBlH55vXpQv40kJ7o6Z/09J81+7zG89NzxIX0vPdw3eK5Pk9j1x+8IJ7L8/s8JdQtmauPpzE/HPJ7T17jF+g8DW5UOtef98auP+jXngrKPGW+b/b369M/ec1NSUlRyZIllZSU5OQoZ5NvV0pVrlxZZcqU0ZdffumEUsnJyVqxYoXuu+8+SadTvSNHjmj16tVq1KiRJOmrr76Sx+PRVVdd5ezz2GOP6dSpUwoKCpIkLVy4UDVq1Djn+aRCQkIUEhKSZTwoKMi5jkwBAQHOEtIzZU5Wdsf/fL3nM+52u8+aRv553Nyn6818EP6ZuQPOeOid/7jHffZePa4cjLtc5xh3n36y+HMtPuzpzDnIjXnKDz15jV/A85Tbjyev24h5Ou+e/nw758Y8+bunP7sQ5ynzfp4fXp8yneu19UJ8zc1ET/R0rhqlHD538Lx3zp7yYp7O7C8/P5f/3bi/5+nM2zS35snfPXmNX8DzlNvPe3/ugXk6v56ymzvk59fcc/2uLJfL1l555OjRo1q3bp2zfHrr1q1at26dtm/fLpfLpfj4eD355JP69NNPtWHDBt11110qV66cs5rqsssu03XXXadevXpp5cqV+u6779SvXz917dpV5cqVkyTddtttCg4OVs+ePfXjjz/q/fff10svvaSBAwf6qWsAAAAAAAD4daXU999/r1atWjk/ZwZF3bp109SpUzVo0CAdO3ZMvXv31pEjR9SiRQvNmzdPhQoVci4zbdo09evXT23atJHb7Vbnzp01btw4Z3t4eLgWLFigvn37qlGjRipVqpSGDx+u3r17+65RAAAuInzLa+7I7W95ZV5yD9/ACwBA7vBrKHXNNdfor05p5XK5NHLkSI0cOfKc+5QoUULTp0//y99Tt25dffPNN+ddJwAAAAAAAHKXXw/fAwAAAAAAwMWJUAoAAAAAAAA+RygFAAAAAAAAnyOUAgAAAAAAgM8RSgEAAAAAAMDnCKUAAAAAAADgc4RSAAAAAAAA8DlCKQAAAAAAAPgcoRQAAAAAAAB8jlAKAAAAAAAAPkcoBQAAAAAAAJ8jlAIAAAAAAIDPEUoBAAAAAADA5wilAAAAAAAA4HOEUgAAAAAAAPA5QikAAAAAAAD4HKEUAAAAAAAAfI5QCgAAAAAAAD5HKAUAAAAAAACfI5QCAAAAAACAzxFKAQAAAAAAwOcIpQAAAAAAAOBzhFIAAAAAAADwOUIpAAAAAAAA+ByhFAAAAAAAAHyOUAoAAAAAAAA+RygFAAAAAAAAnyOUAgAAAAAAgM8RSgEAAAAAAMDnCKUAAAAAAADgc4RSAAAAAAAA8DlCKQAAAAAAAPgcoRQAAAAAAAB8jlAKAAAAAAAAPkcoBQAAAAAAAJ8jlAIAAAAAAIDPEUoBAAAAAADA5wilAAAAAAAA4HOEUgAAAAAAAPA5QikAAAAAAAD4HKEUAAAAAAAAfI5QCgAAAAAAAD5HKAUAAAAAAACfI5QCAAAAAACAzxFKAQAAAAAAwOcIpQAAAAAAAOBzhFIAAAAAAADwOUIpAAAAAAAA+ByhFAAAAAAAAHyOUAoAAAAAAAA+RygFAAAAAAAAnyOUAgAAAAAAgM8RSgEAAAAAAMDnCKUAAAAAAADgc4RSAAAAAAAA8DlCKQAAAAAAAPgcoRQAAAAAAAB8jlAKAAAAAAAAPkcoBQAAAAAAAJ8jlAIAAAAAAIDPEUoBAAAAAADA5wilAAAAAAAA4HOEUgAAAAAAAPA5QikAAAAAAAD4HKEUAAAAAAAAfI5QCgAAAAAAAD5HKAUAAAAAAACfI5QCAAAAAACAzxFKAQAAAAAAwOcIpQAAAAAAAOBzhFIAAAAAAADwuYsqlBo/frwqVaqkQoUK6aqrrtLKlSv9XRIAAAAAAMBF6aIJpd5//30NHDhQI0aM0Jo1a1SvXj3FxsZq//79/i4NAAAAAADgonPRhFIvvPCCevXqpe7du6tWrVqaOHGiChcurMmTJ/u7NAAAAAAAgIvORRFKnTx5UqtXr1bbtm2dMbfbrbZt22rZsmV+rAwAAAAAAODiFOjvAnwhMTFRGRkZKl26tNd46dKltWnTpiz7p6WlKS0tzfk5KSlJknTo0CGdOnVK0ulQKyAgQBkZGfJ4PM6+mePp6ekyM2c8ICBAbrf7nOOZ15spMPD01KSnp2drPCgoSB6PRxkZGc6Yy+VSYGBglvG05CMyd4Bc5pHL/le7yXV63JMhl/5Xo7ncMpc7y7jH5ZbOOh4guVxye7xr9LgCTt9GlpG9cXegZOY1nlmjzCP32Wr3YU8HD7pydZ5OpCT5vSdnXBfuPCUnB+f64+lk8uF8dd9zxnVhzdPBgy5Jufe8d+Joit97+t/4hTtPR44E5vrr08nkw37tqaDMU+ZjRsqd9xEnkw/7vaeCMk+HDwfk6vu9Mx8z/uqpIMzT4cMBuf6+/C8fN8xTtns6eNCVq38/nTia4veevMYv0HlKTg4+53yc7zxlPp/ll/ue1/gFNE+Z7wEy/1bM7Xn683he5BEpKSmnezvj952Ny/5ujwJg9+7duuSSS7R06VI1bdrUGR80aJC+/vprrVixwmv/xx9/XE888YSvywQAAAAAACgwduzYofLly59z+0WxUqpUqVIKCAjQvn37vMb37dunMmXKZNn/kUce0cCBA52fPR6PDh06pJIlS8rlcmXZH7krOTlZFSpU0I4dOxQWFubvcvD/mJf8i7nJn5iX/Iu5yZ+Yl/yLucm/mJv8iXnJv5gb3zEzpaSkqFy5cn+530URSgUHB6tRo0b68ssvdeONN0o6HTR9+eWX6tevX5b9Q0JCFBIS4jUWERHhg0pxprCwMJ4o8iHmJf9ibvIn5iX/Ym7yJ+Yl/2Ju8i/mJn9iXvIv5sY3wsPD/3afiyKUkqSBAweqW7duuuKKK3TllVfqxRdf1LFjx9S9e3d/lwYAAAAAAHDRuWhCqS5duujAgQMaPny49u7dq/r162vevHlZTn4OAAAAAACAvHfRhFKS1K9fv7Merof8JSQkRCNGjMhyCCX8i3nJv5ib/Il5yb+Ym/yJecm/mJv8i7nJn5iX/Iu5yX8uim/fAwAAAAAAQP7i9ncBAAAAAAAAuPgQSgEAAAAAAMDnCKUAAAAAAADgc4RSuGB5PB5/lwAAAIAcOnr0qL9LAADkE4RSuOAsWbJEZia32y3O058/MA8XviNHjvi7BADAReDtt9/WnXfeqV27dvm7FABAPkAohQvKokWL1KtXLw0dOlRmJpfLRSDiZx6PRy6XS5J06NAhP1eD83HfffepefPm2rt3r79LAfIlVuYCuWffvn3au3evhg4dSjDlA5nvk48dO+bnSvBXMucpJSXFz5UgE6/9vkMohQtKvXr1dP3112vx4sUaPnw4wZSfeTweud2nn0aee+45jR49Whs2bPBzVcip+Ph4paWl6bbbbiOY8pPnnntOM2bM8HcZOIfM57l33nlH69evl8QKUV/KyMiQJO3du1f79u1zfsaF6aGHHtLdd9+t7du3a8iQIdqzZ4+/SyqwMt8nz5s3T3fccYd++uknf5eEs8icp/nz56tv375avXq1v0u66J35N87q1asJ0PMYoRQuGB6PRyVKlNDQoUPVvHlzLVy4kGDKzzKfrAcNGqRnn31WjRo1UokSJbz2YV7yvxo1amj+/Pnatm2bunbtSjDlY5MnT9bYsWNVpUoVf5eCczAzHT16VPfdd59mzZolSc4KUeSNWbNm6YsvvpAkBQQE6IMPPtB1112nevXqqU+fPlq4cKGfK8T5OHXqlCTp2muvVd26dfXdd99p6NChvO7kEZfLpQ8//FBdunRRnTp1nFU4vDfLXzLnqVOnTqpRo4YzP8yTf2SeJkaSHnnkEfXv318LFizQ8ePH/VxZweUy7u24gGSm1keOHNHTTz+tJUuWqF27dho5cqQTTPGHgm+99957evjhhzVnzhzVrVtXknT8+HHt2LFDNWrUkCTm5QLx22+/qV27dqpYsaLee+89lSlTxt8lFXgrV67U9OnTVbduXfXo0YPHSj6V+drzyiuvaPLkyXr33Xed5zfkvm3btql9+/aqWbOmBg0apMjISMXExGjgwIEKDg7WjBkzVKRIEfXq1Us333yzv8tFDr333nt6+umnVaNGDf3888/auXOnbrzxRj311FO65JJL/F1egfLzzz+rbdu2Gj58uO69915n/I8//lB0dLQfK8OZNm7cqOuuu04jRoxQr169nPGtW7eqcuXKfqzs4vLn92CjRo3SuHHj9P7776tRo0YKDw/3Y3UFGyulcEHJTK0jIiI0ZMgQXX311ayY8rO9e/eqWrVqqlu3rrZs2aKxY8eqfv366tChg+677z5JrCjIj852nHzVqlW1cOFC/fHHH6yY8oHVq1crJiZGEydOdL6JisdK/vDn15HM154rr7xSx48fdw5T5jCyvFGpUiWNGzdOiYmJGj9+vN577z11795dDz30kAYMGKCXX35ZhQoV0n//+1998MEH/i4XObB582bFx8erb9++euutt7Rx40YNGjRImzdv1mOPPcbrTi7btm2bSpYsqXvvvVcpKSmaNGmS2rZtq1q1aqlPnz58C2I+sW3bNkVERKhXr15KTU3V5MmT1a5dOzVq1MgrTETeSU1Ndd6DmZl27dql2bNn6+WXX1br1q2dQIq/M/MGoRTyvcwH/y+//KKFCxdq9erV2rNnj0qUKEEw5WNnBhlJSUmSpGLFiikxMVG33HKL/vWvf+n777/XnXfeqUGDBunDDz90zr+C/OPM4+S3bNmin3/+2XljWrVqVX3xxRcEU3ko8/mpUaNGmjBhgkJDQ/XVV19py5Ytfq4MkvcnpR999JHmzp3rbLvyyivVqlUrDRs2TMeOHVNAQIC/yiywMl9n2rVrp2HDhmnr1q169dVXvc7n0aBBA40YMUKhoaF64403NH36dH+Vi79hZl7vyVJTU+XxeNSkSROFhoZKOn14TIcOHfThhx9q+PDh2rlzp7/KLXCqVKmiX3/9VV27dlXLli01e/Zs1a9fX9OmTdNrr72mJUuW+LtESKpQoYKOHDmiLl26KCYmRp988okuu+wyTZ48Wa+//ro+++wzf5dYoPXs2VPvvfee87PL5ZLL5dLOnTtVuHBhr31dLpfS0tI4F14uI5RCvpb5x8GsWbMUGxur++67Tz169ND999+vDRs2qGTJkk4wtWjRIj300EMc/pJHzgwynn/+eb344ovasWOHbr/9dt1+++0KDg7Www8/rCeffFLDhg1To0aNVKlSJRUtWtTPleNMZx4n//jjj6tjx47q0KGDqlWrps8++0wpKSlOMLVjxw7ddtttnNwxlx0/ftw5L0GPHj00evRorVixQpMmTdK2bdv8W9xF7szXj2nTpumdd97RjTfeqF69emnq1KmSpP79+ysyMtI5pxHfzpO7zvyk+tprr9WoUaNUtmxZrV69Wl999ZWzX8OGDTVy5EgdP35cM2fO5Bur8qnMP+4+//xzTZs2Tenp6SpRooR27Ngh6fRqQ5fLpWHDhumSSy7RZ599pieffFLp6el+rvzCkxn+7d27VwcPHtT27dtVo0YNTZs2TUePHlVsbKxGjx6tZ599VjfeeKOuvvpq3i/7QeY87d+/X4mJidq3b5/q1aunMWPGKDU1Va1bt9Yzzzyjl156SR07dlSLFi2yBCPIPR6PR9WqVdMdd9wh6X/nvTt16pTS09P1+++/S5LXc9IPP/ygadOm6ciRIz6vt8AyIJ9buHChFS9e3F555RUzM3v99detaNGiduWVV9r3339vZmaJiYl23333Wdu2bW3//v3+LLfAe/jhhy0yMtLeeust27FjhzOenp5uZmYZGRmWkpJi119/vbVr184yMjL8VSr+wuOPP25ly5a1Tz/91I4dO2bt27e3cuXK2aRJk+zo0aNmZvbbb79Z4cKF7f777/dztQXH888/b9ddd53FxMTYzTffbCkpKWZm9uqrr9oll1xigwcPtm3btvm5youTx+Nx/v/RRx+1Fi1a2E8//WTffPON3XTTTXb55ZfblVdeadOmTbPq1atbr169/FhtwZQ5B19++aUNHTrUeV1ZtGiRNWnSxG6++WZbvHix12V++OEH2759u89rRfatXLnSAgICbMaMGXby5Elr2bKlXXHFFbZ161Znn0OHDlmnTp1sxIgRtnPnTv8Ve4HKfOx88skn1rRpU6tdu7bVqFHDnn/++bPuP3ToUCtfvjyPHR87c55iYmKsevXq1qJFC3vmmWfOuv+wYcOsYsWKzFMeOfN138zstddes+HDh1tSUpKZmY0aNcoCAwPtk08+cfY5ceKExcbG2l133ZXl8jh/hFLIdzIf4B6Px5KTk61Lly42bNgwMzPbs2ePRUdHW4cOHSwmJsYaN25sGzZsMDOzgwcP2r59+/xW98XgrbfesrJly9r69eudsaNHj9off/xhZqfn7NVXX7XY2FirX7++nTx50syMYCqfWbduncXExNjnn39uZmaf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c7lcZ/22MOQPo0aNsqefftrMTn86dN9991n9+vXtrbfecvY5ceKEdezY0Tp16sT85ZL33nvPXC6XVaxYMctz1dtvv22FChWydevWZbkct7/veTwea9WqlT3++OP23XffWdGiRZ1AKiMjwx599FGbMGGC12UIps7fnwPYCRMm2IABA8zM7LfffrMqVarY3XffbV26dLGyZcvaK6+8YmlpaXb8+HGv1dLIX86c11WrVtkPP/xgKSkpFhMTY/fcc4+Zme3YscOKFCliwcHB9sEHH/ir1AIjIyPDmjVrZiNHjjQz74DvyiuvtFtuucVfpV3UznwsLF++3CpVqmRut9v69+/vtd/WrVutYcOGVr9+fdu5c6evy7yoLV261KKjo23p0qVmdvr8uFu3brVPP/3UfvrpJzM7vZKzW7du9tBDDznfVs1rv28QSsFvtm3bZjVq1LCXX37ZzMxSUlIsIiLCEhISvJZZzps3z9555x1O0JjLzryNb7nlFrvsssvsrbfesqNHjzrjixcvtjp16jhLjTds2GC9evWyzz77jE8P8pEz5zI9Pd2eeOIJc7lczsrD1NRU69Spk9WrV8/atWtn/fr1s6uuuspq167tvOgSjPxzW7dutdtvv91cLpd98sknZmbO7WtmVrly5SxBB/Le0qVLnUOR+/fv76zOeeutt6x+/foWFBRkkyZNcvZPSkqyDh062PDhw/1Sb0F05srodevW2ZYtW+znn3+2Y8eOWUxMjPXo0cPMTh/yVapUKatatarz3gD5z1+9Xqxbt87q16/vBPM///yz9ezZ03r37s3hSf9Q5mt9mzZtLC4uzhnPPAXDY489Zm3btuX13Ecy5+PMk5hv2LDBTp06ZcuWLbP69etbw4YNneAwc162bdtmlStXtubNmxN4+NCKFSusXr16tnr1alu9erUlJCRYtWrVrHLlyla9enVbvnx5lsvwt47vcDZV+M2JEycUFhamfv36adu2bapRo4ZuueUWvfDCC3K73Vq1apUkKTY2VrfffruqVq3q54oLFpfL5Xx98/vvv6/GjRvrqaee0qxZs5SamipJCgwM1MaNG7Vw4UJt27ZNQ4YM0eHDhxUXF6fAwEClp6f7swX8v8wTN6akpCggIECDBw/Wc889p4EDB+q5555ToUKF9O6776pPnz4qU6aM9uzZo5iYGK1bt05BQUFKT093vvYe569SpUp68skndf3116tHjx7O7StJiYmJMjMVK1bMz1VePMxMO3fuVJ8+ffTyyy/rzjvv1MSJE3XFFVdIkho0aKCyZcuqTp06Klu2rCTpt99+06233qoDBw5o2LBh/iy/QHG5XFq8eLFatWqlHTt2KDo6WjVr1tSmTZuUmJio+++/X5K0e/duNW7cWK1atdL111/v56pxNvb/J9r+9ttvNWzYMD3++OOaOnWqs3337t3atGmT0tPTlZKSonfffVf79+/XhAkTVLNmTf8VfoHxeDzyeDySpP379+v48eM6fvy4JOnJJ5/U4sWLFR8fL0kKDg6WJG3btk0lS5ZURkaGX2q+2Ljdbu3YsUO9evXSd999p1mzZqlu3brauHGjrrrqKr366qs6ePCgOnToII/H47zvjo6O1tdff623336bk2fnkcy/b+yM73MrUqSIjh07pvj4eLVo0ULHjh3T008/rRkzZig4OFjbt2/Pcj2ZXwgEH/BjIIaL3MaNG61SpUr28ccfW5UqVax3795OIr127Vpr3bq18/XPyF1nfor21ltvOYd13XnnnVazZk2vFVODBg0yl8tlVatWtQYNGrCyJh85c4XU5MmTrWbNmrZ161YzO72k/z//+Y+5XC577rnnvC7HuYxyz6pVq2zVqlW2evVqZ2zHjh3WoUMHK168uI0YMcImTJhgcXFxVqdOHW5vH8q8n8+fP9/KlCljgYGBNm3aNK9tX3/9tXXo0MHKlStnl1xyidWvX9+aNWvGsv1c9vvvv9usWbNs9OjRZva/23/JkiVWpUoVe/fdd+3YsWP2+OOPW9euXb1WHiD/+fDDD61w4cIWFxdnTZs2taJFi1rnzp2d57fY2FgLCAiwyy+/3CIiIryeH/HXZs6c6XV7zZo1yxo1amQ1atSwfv36Oas+p0yZYkWKFLF27dpZfHy83X333VakSBHOv+Zjq1evtquuusquuOIKCwkJsbfffttr+/Llyy06Otpat27tvGfj/XPeOvO98d69e+3IkSPO6UlWrlxpkydPtnnz5jnn0j158qQ1bNjQ3n//fb/Ui9MIpeATmU/AP/30k33zzTf222+/mZnZHXfcYUWLFrWbbrrJa/9HHnnEmjVrZnv37vV5rQXdmU/WGzdutAYNGli9evWcb5i48847rUaNGvb22287f5itXr3avvrqK+cPNP6w9r8z5/HTTz+1cePGmcvlstjYWPvjjz/M7H/BlNvtthdffNFfpRZYQ4cOtapVq1r16tUtLCzMnn/+eecxsmPHDrv55pvN5XLZnXfeaZMmTXJONM/jxzcyX3c+//xzi4mJsVq1alm3bt2ynO9r+/btzhvVxYsX8zz3D5z5vJRp27ZtFhwcbIUKFfI66a/Z6cNerrvuOqtSpYpVr17dSpYsSYCRz23fvt0qV67sfOHJ8ePH7ZtvvrFy5cp5vZd77bXXbOrUqbZlyxZ/lXrB+emnn6xhw4bWsWNH27Rpk/3xxx8WERFhY8aMscGDB1u7du3s6quvtu+++87MTr83u+GGGywuLs66dOlCIOUnr732mrlcLqtTp44tWrQoy/bly5dbtWrVrEGDBmd9jkTuOfP2feaZZ6xJkybWoEEDa9u2re3atcvM/vdh04kTJ2zfvn3Wvn17a9y4MR9C+RmhFHzmo48+sqJFi1q1atWcTxPefvtta9y4sf3rX/+y2bNn25dffmkJCQkWHh5uP/zwg79LLtAeeugh69y5szVr1sxKlChhVapUsQ8//NDM/hdMvfPOO1k+seZJO38ZPHiwXXLJJTZ69Gi75557rHz58ta4cWPn67ZPnDhhzz//vLlcLpsxY4afqy04Ro0aZaVLl7avv/7ajh07ZgMGDDCXy2VDhw51HiPbtm2zf//73xYVFeWcS4Vvncp7H3/8sW3evNnMTp9j5f7777fjx4/b559/bo0bN7Zbb731b780g+e587d9+3abOXOmmZ3+5sLbbrvNJk6caJGRkXbHHXc4+2WGfkeOHLF33nnH3njjDc4deQHYsGGDVapUyTkxcKbFixdbWFiYTZ8+3U+VFQzTp0+3du3a2c0332xPP/20DRs2zNn25Zdf2o033mjNmjXLEn6cef5C+Ebmc9i7775rL730krVp08Y6dOhgs2fPzrLvt99+a3Xq1LFt27b5usyLxpmB1KOPPmqlS5e2N99802bPnm1169a1qlWr2i+//GJmp9+LjRo1yq655hpr2rQpq6PzAUIp5LmMjAw7ePCgNW/e3P773//ali1bbNSoURYYGGjjx4+3CRMmWJcuXSw0NNTq1KljLVq0OOs3VCH3TJkyxVlSf+jQIduzZ49de+21dsUVV9jHH39sZmbdunWz4sWL2+eff+7nanEuP/zwg0VFRdncuXOdsZ9//tlq1KhhV111lbNiKjU11aZPn87Kj1zy888/W1xcnPPG8+OPP7aIiAjr1q2bBQQE2LBhw5wTz2YeyleuXDk+xfaBo0ePWrt27axo0aJ29913W0hIiNcHHB9//LE1btzY7rzzTuer06+77jp79913/VVygXLy5Enr2rWrNWvWzBISEszlctmUKVPM4/HY5MmTLSgoyB577DGv/XFh2b17txUrVsymTp3qNX748GGrXbs2q3LP05mvzzNmzLB27dpZxYoV7YEHHvDaLzOYiomJ8Xp/xiFhvpN5W2eufs78eenSpXbNNddY+/btvd6XZR5pkLk/clfm0TeZvvjiC2vYsKF98803Znb6aILw8HCrUqWKlS5d2gmm1q5day+99BKro/MJQinkmTOftI8fP26PPvqoHTp0yNn+wgsvWGBgoL344ou2b98+++OPP+zgwYN8/bMPPPbYY9aiRQvLyMhwPlnYuXOnXXXVVc55vsxOrwbhj4b8a/ny5VayZEnnBTlzLletWmVFixa1Dh062I4dO7y28aL7z+3fv98mTpxoR48etSVLltgll1xir7zyipmZde/e3Vwulz3wwAPOc+DOnTutRYsWVr16dR5PPnDs2DErU6aMhYSEOM9lmSGhmdknn3xizZs3t/r161u9evWsUqVKzEsuOnz4sF111VXmcrnsvvvuc8aPHz9ukyZNssDAQBs6dKgzzh/T+ZPH4znr3Jw8edK6detm7dq1sy+++MJrW0xMjL3wwgvO5ZF9mbfXjz/+aIcOHbJPP/3UGjVqZJdeemmW86suWrTIWrdubbGxsc55ceAbmfM0b94869q1q8XFxVn37t2dDwFXrlxprVq1sg4dOtjEiRPt8ccfN5fL5Rw6htzVp08fu/baa70O+16yZImNHDnSzE4fvh8ZGWnjx4+3zZs3W7ly5ezSSy/N8iEhK6T8j1AKeerjjz+22NhYq1WrltWsWTPLIXljx4614OBge/TRRy0pKclPVV48Ml9MR44caVdccYXzqU3mH2RfffWVFS5c2K6++mqv5cc8Wfvf2d7gp6SkWFRUlPPim+nAgQNWv359K1KkiDVv3vwvrwPZt2XLFtu5c6fXIXj9+vWzO+64w3ksDR482Fq3bm0xMTFej5tdu3Y5h1Qib+3bt8+uvPJKa9KkiUVFRdmPP/5oZt6rcpYsWWIvvfSSDR061AlqCWxzx8mTJ61169ZWv359a9eunb3zzjvOtsxgKjQ01BISEvxYJc4lMTHR6+cvvvjChg0bZr1797avv/7aUlJSbP369damTRu75pprbMKECbZ06VIbOHCgFS9enEMwz0Pma/NHH31kpUuXtscff9zS09Ptww8/tJYtW9qNN96Y5QiCJUuWOB86wbc++eQTCw4Otvj4eOvevbs1b97cIiIibMmSJWZmtmLFCrvpppusbt26dumll9r333/v54oLri+//NKqVq1qt956q61atcoZ3717t506dcpiY2PtkUceMbPTH1hdc801Fhoaau3btzcz3hfnJ4RSyDOrVq2ysLAw69Onj919990WFBRkDzzwQJbjqUePHm3FixfP8kYIeWf9+vUWEBBgjz/+uNf4vHnzrHPnzta6dWtr27Yt57/JJ848Tv7kyZNef1yPGDHCGjRoYK+++qozduzYMbvrrrts8eLFFhUVZaNGjfJpvQXR4MGDrWbNmlaqVClr2bKlszKqVatWdvvtt5vZ6bm54YYbbM6cOc7lCHTz3tlOHJuammqJiYnWvn17i4yMzHL+mzNX7ZoxT7ntxIkTtmfPHouLi7NWrVpl+UaqF154wUqXLm379+/3U4U4mzfffNNKlizpBLmffvqpBQcHW/v27a1u3bpWvnx56969u+3du9c2bNhgvXv3tvDwcKtZs6bVqVPH1q5d698GLmCzZ8+20NBQe/31173Cpo8++sjatm1rN9xwA+dazQeSkpKsefPmNmLECGfsyJEjduedd1pERITt3LnTzMw5AmTfvn1+qrTgy3zt//bbb61KlSrWtWtXW7lypbN9586dVqlSJfvkk0/M7PQ83XLLLbZixQpOOJ8PuczMBOSy3377TW+99ZZCQ0M1ZMgQSdKrr76qp59+WnfccYf69Omj6OhoZ//Dhw+rePHi/ir3ojR16lT17t1b8fHx6tKli4oXL64BAwaoWbNm+r/27jw8prP9A/h3JuvIKqGhaCIRWxIRUiXiqqol9uUnaosUQRSpKKIoDUVVY01FIyXWWCO02mgERVpKsxAdsdZSYk0QW5a5f3/0zXlNw/v2bWXG8v1cVy/XnOfMmftMeuacc5/nuZ/u3bvDw8MD33//PVq3bm3sUF9qOp0OarUaADBnzhz8/PPPyMnJQe/evdGpUye4uLhgwoQJSElJ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sWPHIjIy0siRExHR86R0COvOnTuxfft2hIWFoVKlSrCxsUF4eDguXLiA+Ph4WFtbY9iwYdiyZQs0Gg2OHDkCW1tbDn8lIiKjYk8pIqJy0LBhQ8TGxiItLQ3r16/H3bt3lTYbGxsEBQWhbdu2WLt2LXx8fJCWloYpU6YYMWIiInoeqVQqJCYmokuXLnBwcMCNGzdgY2ODoqIiZGZmonr16rC2tgYAmJmZYebMmcjIyICdnR0TUkREZHTsKUVEVI6OHj2q3CjExcXp1Y0KCQnBxYsXkZycrCxjDSkiIvpfnDhxAgEBARg3bhyGDx+u1zZ+/Hhs3rwZY8eOhVarxaZNm5CWloaaNWsaKVoiIiJ97ClFRFSOvLy8sHXrVpSUlGD+/PnIzMwE8McQPq1Wi9dee01vfSakiIjof3H+/HmYmZmhQ4cOyrLSZ859+vRBu3btMGfOHPz444/Yvn07E1JERPRMYU8pIiIDyMjIQP/+/ZGXlwdfX19YWFjg9OnTOHjwIMzMzDitPRER/S1JSUkICwvDvn374OzsDJ1OB5VKBZVKhbS0NJiYmMDLywtFRUWwt7c3drhERER62FOKiMgAfHx8sH79elhZWeHs2bPo3LkzDh06BDMzMxQXFzMhRUREf4u3tzeuX7+O2NhYAIBarVbOKZs2bcL27duh0WiYkCIiomeSqbEDICJ6WXh6emLt2rWIi4tDUFAQVCoVdDodTE35U0xERH9PzZo1ER0djdDQUBQVFWHAgAEwMTFBfHw84uPj8dNPP0Gt5nNoIiJ6NnH4HhGRgZUO1dPpdLxRICKif0yn02Hz5s0YNmwYrKysYGlpCRMTEyQkJOhNsEFERPSsYVKKiMgIWEOKiIietkuXLuHcuXNQqVSoWbMmnJycjB0SERHRf8SkFBERERERERERGRzHjRARERERERERkcExKUVERERERERERAbHpBQRERERERERERkck1JERERERERERGRwTEoREREREREREZHBMSlFREREREREREQGx6QUEREREREREREZHJNSRERERERERERkcExKEREREf0F7777Lrp162bsMIiIiIheGExKERER0QshNzcX77//PmrVqgVLS0s4OTmhefPmiImJwb1794wdXrkTEcTGxuKNN96AtbU17O3t4evri/nz5/9P+69SqZCUlFR+gRIRERH9i6mxAyAi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",
      "text/plain": [
       "<Figure size 1200x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "class_counts = {cls: len(os.listdir(os.path.join(dataset_path, cls)))\n",
    "                for cls in os.listdir(dataset_path)}\n",
    "\n",
    "# Plotting\n",
    "plt.figure(figsize=(12, 6))\n",
    "plt.bar(class_counts.keys(), class_counts.values(), color='skyblue')\n",
    "plt.xticks(rotation=45)\n",
    "plt.title(\"Image Count per Class\")\n",
    "plt.xlabel(\"Garbage Category\")\n",
    "plt.ylabel(\"Number of Images\")\n",
    "plt.grid(axis=\"y\", linestyle=\"--\")\n",
    "plt.tight_layout()\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:32:13.047035Z",
     "iopub.status.busy": "2025-06-25T14:32:13.046454Z",
     "iopub.status.idle": "2025-06-25T14:32:13.625354Z",
     "shell.execute_reply": "2025-06-25T14:32:13.624652Z",
     "shell.execute_reply.started": "2025-06-25T14:32:13.047012Z"
    },
    "trusted": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Average image width: 379.5, height: 351.2\n",
      "Min size: 144x109 | Max size: 2000x3556\n"
     ]
    }
   ],
   "source": [
    "image_shapes = []\n",
    "\n",
    "for cls in os.listdir(dataset_path):\n",
    "    class_path = os.path.join(dataset_path, cls)\n",
    "    for img_file in os.listdir(class_path)[:50]:  # sample 50 per class\n",
    "        img_path = os.path.join(class_path, img_file)\n",
    "        with Image.open(img_path) as img:\n",
    "            image_shapes.append(img.size)\n",
    "\n",
    "# Convert to numpy array for statistics\n",
    "widths, heights = zip(*image_shapes)\n",
    "\n",
    "print(f\"Average image width: {np.mean(widths):.1f}, height: {np.mean(heights):.1f}\")\n",
    "print(f\"Min size: {np.min(widths)}x{np.min(heights)} | Max size: {np.max(widths)}x{np.max(heights)}\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:33:59.614292Z",
     "iopub.status.busy": "2025-06-25T14:33:59.613563Z",
     "iopub.status.idle": "2025-06-25T14:34:02.385850Z",
     "shell.execute_reply": "2025-06-25T14:34:02.384646Z",
     "shell.execute_reply.started": "2025-06-25T14:33:59.614267Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "def show_sample_images(dataset_path, class_names, samples_per_class=3):\n",
    "    \"\"\"\n",
    "    Display sample images from each class in a grid.\n",
    "\n",
    "    Parameters:\n",
    "    - dataset_path (str): Path to the dataset directory containing class subfolders.\n",
    "    - class_names (list): List of class folder names to display samples from.\n",
    "    - samples_per_class (int): Number of images to show per class.\n",
    "    \"\"\"\n",
    "    total_classes = len(class_names)\n",
    "    plt.figure(figsize=(samples_per_class * 3, total_classes * 3))  # adjust grid size\n",
    "\n",
    "    for class_index, class_name in enumerate(class_names):\n",
    "        class_folder = os.path.join(dataset_path, class_name)\n",
    "        sample_images = random.sample(os.listdir(class_folder), samples_per_class)\n",
    "\n",
    "        for img_index, img_name in enumerate(sample_images):\n",
    "            img_path = os.path.join(class_folder, img_name)\n",
    "            image = Image.open(img_path)\n",
    "\n",
    "            # Calculate subplot position\n",
    "            subplot_index = class_index * samples_per_class + img_index + 1\n",
    "            plt.subplot(total_classes, samples_per_class, subplot_index)\n",
    "            plt.imshow(image)\n",
    "            plt.axis('off')\n",
    "\n",
    "            # Add title in the middle image of the row\n",
    "            if img_index == samples_per_class // 2:\n",
    "                plt.title(class_name, fontsize=10)\n",
    "\n",
    "    plt.tight_layout()\n",
    "    plt.show()\n",
    "\n",
    "\n",
    "show_sample_images(dataset_path, list(class_counts.keys())[:10], samples_per_class=3)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Dataset Preparation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:34:59.218685Z",
     "iopub.status.busy": "2025-06-25T14:34:59.218404Z",
     "iopub.status.idle": "2025-06-25T14:34:59.224426Z",
     "shell.execute_reply": "2025-06-25T14:34:59.223572Z",
     "shell.execute_reply.started": "2025-06-25T14:34:59.218665Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "IMG_SIZE = 224\n",
    "\n",
    "train_transforms = transforms.Compose([\n",
    "    transforms.Resize((IMG_SIZE, IMG_SIZE)),\n",
    "    transforms.RandomHorizontalFlip(),\n",
    "    transforms.RandomRotation(15),\n",
    "    transforms.ColorJitter(brightness=0.1, contrast=0.1),\n",
    "    transforms.ToTensor(),\n",
    "    # transforms.Normalize(mean=[0.485, 0.456, 0.406],  # ImageNet std\n",
    "    #                      std=[0.229, 0.224, 0.225])\n",
    "])\n",
    "\n",
    "val_test_transforms = transforms.Compose([\n",
    "    transforms.Resize((IMG_SIZE, IMG_SIZE)),\n",
    "    transforms.ToTensor(),\n",
    "    # transforms.Normalize(mean=[0.485, 0.456, 0.406],  # ImageNet std\n",
    "    #                      std=[0.229, 0.224, 0.225])\n",
    "])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:35:08.028286Z",
     "iopub.status.busy": "2025-06-25T14:35:08.028004Z",
     "iopub.status.idle": "2025-06-25T14:35:13.893898Z",
     "shell.execute_reply": "2025-06-25T14:35:13.893133Z",
     "shell.execute_reply.started": "2025-06-25T14:35:08.028266Z"
    },
    "trusted": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Classes: ['battery', 'biological', 'cardboard', 'clothes', 'glass', 'metal', 'paper', 'plastic', 'shoes', 'trash']\n"
     ]
    }
   ],
   "source": [
    "full_dataset = ImageFolder(root=dataset_path, transform=train_transforms)\n",
    "\n",
    "# Class names\n",
    "class_names = full_dataset.classes\n",
    "print(f\"Classes: {class_names}\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:35:13.895337Z",
     "iopub.status.busy": "2025-06-25T14:35:13.895016Z",
     "iopub.status.idle": "2025-06-25T14:35:13.899538Z",
     "shell.execute_reply": "2025-06-25T14:35:13.898727Z",
     "shell.execute_reply.started": "2025-06-25T14:35:13.895318Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "train_size = int(0.7 * len(full_dataset))\n",
    "val_size = int(0.2 * len(full_dataset))\n",
    "test_size = len(full_dataset) - train_size - val_size"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:35:18.659755Z",
     "iopub.status.busy": "2025-06-25T14:35:18.659400Z",
     "iopub.status.idle": "2025-06-25T14:35:18.665098Z",
     "shell.execute_reply": "2025-06-25T14:35:18.664401Z",
     "shell.execute_reply.started": "2025-06-25T14:35:18.659726Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "train_dataset, val_dataset, test_dataset = random_split(\n",
    "    full_dataset, [train_size, val_size, test_size],\n",
    "    generator=torch.Generator().manual_seed(42)\n",
    ")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:35:24.025242Z",
     "iopub.status.busy": "2025-06-25T14:35:24.024946Z",
     "iopub.status.idle": "2025-06-25T14:35:24.028977Z",
     "shell.execute_reply": "2025-06-25T14:35:24.028170Z",
     "shell.execute_reply.started": "2025-06-25T14:35:24.025222Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "# Apply validation/test transforms\n",
    "val_dataset.dataset.transform = val_test_transforms\n",
    "test_dataset.dataset.transform = val_test_transforms\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:35:46.067646Z",
     "iopub.status.busy": "2025-06-25T14:35:46.067356Z",
     "iopub.status.idle": "2025-06-25T14:35:46.071846Z",
     "shell.execute_reply": "2025-06-25T14:35:46.070874Z",
     "shell.execute_reply.started": "2025-06-25T14:35:46.067624Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "BATCH_SIZE = 32"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:35:46.407849Z",
     "iopub.status.busy": "2025-06-25T14:35:46.407108Z",
     "iopub.status.idle": "2025-06-25T14:35:46.411985Z",
     "shell.execute_reply": "2025-06-25T14:35:46.411263Z",
     "shell.execute_reply.started": "2025-06-25T14:35:46.407821Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "train_loader = DataLoader(train_dataset, batch_size=BATCH_SIZE, shuffle=True, num_workers=4)\n",
    "val_loader = DataLoader(val_dataset, batch_size=BATCH_SIZE, shuffle=False, num_workers=4)\n",
    "test_loader = DataLoader(test_dataset, batch_size=BATCH_SIZE, shuffle=False, num_workers=4)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Choose A Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:36:07.643431Z",
     "iopub.status.busy": "2025-06-25T14:36:07.643149Z",
     "iopub.status.idle": "2025-06-25T14:36:08.149160Z",
     "shell.execute_reply": "2025-06-25T14:36:08.148500Z",
     "shell.execute_reply.started": "2025-06-25T14:36:07.643410Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "# Load pretrained ResNet50\n",
    "model = models.resnet50(pretrained=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:36:27.975074Z",
     "iopub.status.busy": "2025-06-25T14:36:27.974815Z",
     "iopub.status.idle": "2025-06-25T14:36:27.980226Z",
     "shell.execute_reply": "2025-06-25T14:36:27.979246Z",
     "shell.execute_reply.started": "2025-06-25T14:36:27.975056Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "# Freeze the feature extractor to avoid long training\n",
    "for param in model.parameters():\n",
    "    param.requires_grad = False"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:36:48.315239Z",
     "iopub.status.busy": "2025-06-25T14:36:48.314932Z",
     "iopub.status.idle": "2025-06-25T14:36:48.329789Z",
     "shell.execute_reply": "2025-06-25T14:36:48.328973Z",
     "shell.execute_reply.started": "2025-06-25T14:36:48.315216Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "# Modify the final FC layer to match number of classes (10 for garbage classification)\n",
    "num_features = model.fc.in_features\n",
    "model.fc = nn.Sequential(\n",
    "    nn.Linear(num_features, 512),\n",
    "    nn.ReLU(),\n",
    "    nn.Dropout(0.3),\n",
    "    nn.Linear(512, 10)  # -> number of classes\n",
    ")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:36:56.353408Z",
     "iopub.status.busy": "2025-06-25T14:36:56.352825Z",
     "iopub.status.idle": "2025-06-25T14:36:56.358814Z",
     "shell.execute_reply": "2025-06-25T14:36:56.358050Z",
     "shell.execute_reply.started": "2025-06-25T14:36:56.353382Z"
    },
    "trusted": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "device(type='cuda')"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n",
    "device"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:36:59.839098Z",
     "iopub.status.busy": "2025-06-25T14:36:59.838422Z",
     "iopub.status.idle": "2025-06-25T14:36:59.878257Z",
     "shell.execute_reply": "2025-06-25T14:36:59.877558Z",
     "shell.execute_reply.started": "2025-06-25T14:36:59.839072Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "model = model.to(device)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Train The Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:37:49.524796Z",
     "iopub.status.busy": "2025-06-25T14:37:49.524267Z",
     "iopub.status.idle": "2025-06-25T14:37:49.529050Z",
     "shell.execute_reply": "2025-06-25T14:37:49.528265Z",
     "shell.execute_reply.started": "2025-06-25T14:37:49.524772Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "criterion = nn.CrossEntropyLoss()\n",
    "\n",
    "# Only train the classifier parameters\n",
    "optimizer = torch.optim.Adam(model.fc.parameters(), lr=1e-4)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:37:58.230276Z",
     "iopub.status.busy": "2025-06-25T14:37:58.229981Z",
     "iopub.status.idle": "2025-06-25T14:37:58.240114Z",
     "shell.execute_reply": "2025-06-25T14:37:58.239168Z",
     "shell.execute_reply.started": "2025-06-25T14:37:58.230250Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "\n",
    "def train_model(model, train_loader, val_loader, criterion, optimizer, device, num_epochs=10):\n",
    "    since = time.time()\n",
    "    \n",
    "    best_model_wts = copy.deepcopy(model.state_dict())\n",
    "    best_acc = 0.0\n",
    "\n",
    "    for epoch in range(num_epochs):\n",
    "        print(f\"\\nEpoch {epoch+1}/{num_epochs}\")\n",
    "        print(\"-\" * 30)\n",
    "\n",
    "        for phase in ['train', 'val']:\n",
    "            if phase == 'train':\n",
    "                model.train()\n",
    "                dataloader = train_loader\n",
    "            else:\n",
    "                model.eval()\n",
    "                dataloader = val_loader\n",
    "\n",
    "            running_loss = 0.0\n",
    "            running_corrects = 0\n",
    "\n",
    "            # Wrap the dataloader with tqdm\n",
    "            loop = tqdm(dataloader, desc=f\"{phase.capitalize()} Phase\", leave=False)\n",
    "\n",
    "            for inputs, labels in loop:\n",
    "                inputs = inputs.to(device)\n",
    "                labels = labels.to(device)\n",
    "\n",
    "                optimizer.zero_grad()\n",
    "\n",
    "                with torch.set_grad_enabled(phase == 'train'):\n",
    "                    outputs = model(inputs)\n",
    "                    _, preds = torch.max(outputs, 1)\n",
    "                    loss = criterion(outputs, labels)\n",
    "\n",
    "                    if phase == 'train':\n",
    "                        loss.backward()\n",
    "                        optimizer.step()\n",
    "\n",
    "                running_loss += loss.item() * inputs.size(0)\n",
    "                running_corrects += torch.sum(preds == labels.data)\n",
    "\n",
    "                # Update tqdm description with current batch loss\n",
    "                loop.set_postfix(loss=loss.item())\n",
    "\n",
    "            epoch_loss = running_loss / len(dataloader.dataset)\n",
    "            epoch_acc = running_corrects.double() / len(dataloader.dataset)\n",
    "\n",
    "            print(f\"{phase.capitalize()} Loss: {epoch_loss:.4f} Acc: {epoch_acc:.4f}\")\n",
    "\n",
    "            if phase == 'val' and epoch_acc > best_acc:\n",
    "                best_acc = epoch_acc\n",
    "                best_model_wts = copy.deepcopy(model.state_dict())\n",
    "                torch.save(model.state_dict(), 'best_resnet50.pth')\n",
    "\n",
    "    time_elapsed = time.time() - since\n",
    "    print(f\"\\nTraining complete in {time_elapsed // 60:.0f}m {time_elapsed % 60:.0f}s\")\n",
    "    print(f\"Best val Acc: {best_acc:.4f}\")\n",
    "\n",
    "    model.load_state_dict(best_model_wts)\n",
    "    return model\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:38:02.614081Z",
     "iopub.status.busy": "2025-06-25T14:38:02.613554Z",
     "iopub.status.idle": "2025-06-25T14:55:03.177304Z",
     "shell.execute_reply": "2025-06-25T14:55:03.175998Z",
     "shell.execute_reply.started": "2025-06-25T14:38:02.614057Z"
    },
    "trusted": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Epoch 1/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                          \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.7588 Acc: 0.7848\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                        \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.3428 Acc: 0.9013\n",
      "\n",
      "Epoch 2/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                          \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.3664 Acc: 0.8843\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                         \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.2917 Acc: 0.9031\n",
      "\n",
      "Epoch 3/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                           \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.3112 Acc: 0.9017\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                         \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.2597 Acc: 0.9205\n",
      "\n",
      "Epoch 4/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                           \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.2901 Acc: 0.9049\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                         \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.2420 Acc: 0.9185\n",
      "\n",
      "Epoch 5/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                           \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.2679 Acc: 0.9137\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                         \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.2290 Acc: 0.9261\n",
      "\n",
      "Epoch 6/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                           \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.2521 Acc: 0.9190\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                         \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.2253 Acc: 0.9286\n",
      "\n",
      "Epoch 7/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                           \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.2449 Acc: 0.9184\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                         \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.2386 Acc: 0.9211\n",
      "\n",
      "Epoch 8/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                           \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.2264 Acc: 0.9272\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                         \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.2203 Acc: 0.9271\n",
      "\n",
      "Epoch 9/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                           \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.2171 Acc: 0.9266\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                         \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.2123 Acc: 0.9302\n",
      "\n",
      "Epoch 10/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                           \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.2071 Acc: 0.9271\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                         \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.2173 Acc: 0.9309\n",
      "\n",
      "Epoch 11/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                           \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.2027 Acc: 0.9295\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                         \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.2156 Acc: 0.9299\n",
      "\n",
      "Epoch 12/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                           \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.1938 Acc: 0.9346\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                         \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.2109 Acc: 0.9350\n",
      "\n",
      "Epoch 13/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                           \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.1914 Acc: 0.9354\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                         \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.2037 Acc: 0.9337\n",
      "\n",
      "Epoch 14/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                           \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.1809 Acc: 0.9396\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                         \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.1974 Acc: 0.9352\n",
      "\n",
      "Epoch 15/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                           \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.1750 Acc: 0.9404\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                         \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.1968 Acc: 0.9380\n",
      "\n",
      "Epoch 16/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                           \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.1673 Acc: 0.9417\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                         \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.1967 Acc: 0.9385\n",
      "\n",
      "Epoch 17/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                           \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.1653 Acc: 0.9437\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                         \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.1940 Acc: 0.9383\n",
      "\n",
      "Epoch 18/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                           \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.1604 Acc: 0.9448\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                         \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.1987 Acc: 0.9383\n",
      "\n",
      "Epoch 19/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                           \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.1538 Acc: 0.9476\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                         \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.1894 Acc: 0.9421\n",
      "\n",
      "Epoch 20/20\n",
      "------------------------------\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                           \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train Loss: 0.1505 Acc: 0.9485\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                                         \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Val Loss: 0.1832 Acc: 0.9410\n",
      "\n",
      "Training complete in 17m 1s\n",
      "Best val Acc: 0.9421\n"
     ]
    }
   ],
   "source": [
    "model = train_model(model, train_loader, val_loader, criterion, optimizer, device, num_epochs=20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:57:59.542196Z",
     "iopub.status.busy": "2025-06-25T14:57:59.541907Z",
     "iopub.status.idle": "2025-06-25T14:57:59.552146Z",
     "shell.execute_reply": "2025-06-25T14:57:59.551395Z",
     "shell.execute_reply.started": "2025-06-25T14:57:59.542175Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "def evaluate_model(model, test_loader, device, class_names=None, save_confusion_matrix=False, matrix_path=\"confusion_matrix.png\"):\n",
    "    \"\"\"\n",
    "    Evaluates the model on a test set and displays classification metrics and confusion matrix.\n",
    "\n",
    "    Args:\n",
    "        model (nn.Module): Trained model.\n",
    "        test_loader (DataLoader): DataLoader for test data.\n",
    "        device (torch.device): Device to run evaluation on.\n",
    "        class_names (list, optional): List of class names for labels.\n",
    "        save_confusion_matrix (bool): Whether to save the confusion matrix as an image.\n",
    "        matrix_path (str): File path to save the confusion matrix image.\n",
    "    \"\"\"\n",
    "    model.eval()\n",
    "    all_preds = []\n",
    "    all_labels = []\n",
    "\n",
    "    with torch.no_grad():\n",
    "        for inputs, labels in tqdm(test_loader, desc=\"Evaluating\", leave=False):\n",
    "            inputs = inputs.to(device)\n",
    "            labels = labels.to(device)\n",
    "\n",
    "            outputs = model(inputs)\n",
    "            _, preds = torch.max(outputs, 1)\n",
    "\n",
    "            all_preds.extend(preds.cpu().numpy())\n",
    "            all_labels.extend(labels.cpu().numpy())\n",
    "\n",
    "    # Convert lists to numpy arrays\n",
    "    all_preds = np.array(all_preds)\n",
    "    all_labels = np.array(all_labels)\n",
    "\n",
    "    # Compute classification metrics\n",
    "    acc = accuracy_score(all_labels, all_preds)\n",
    "    prec = precision_score(all_labels, all_preds, average='weighted', zero_division=0)\n",
    "    rec = recall_score(all_labels, all_preds, average='weighted', zero_division=0)\n",
    "    f1 = f1_score(all_labels, all_preds, average='weighted', zero_division=0)\n",
    "\n",
    "    print(\"\\n📊 Test Set Metrics:\")\n",
    "    print(f\"Accuracy : {acc:.4f}\")\n",
    "    print(f\"Precision: {prec:.4f}\")\n",
    "    print(f\"Recall   : {rec:.4f}\")\n",
    "    print(f\"F1 Score : {f1:.4f}\\n\")\n",
    "\n",
    "    # Print full classification report\n",
    "    print(\"Detailed Classification Report:\")\n",
    "    print(classification_report(all_labels, all_preds, target_names=class_names if class_names else None))\n",
    "\n",
    "    # Confusion matrix\n",
    "    cm = confusion_matrix(all_labels, all_preds)\n",
    "\n",
    "    # Plotting\n",
    "    plt.figure(figsize=(10, 8))\n",
    "    sns.heatmap(cm, annot=True, fmt='d', cmap='Blues',\n",
    "                xticklabels=class_names if class_names else np.unique(all_labels),\n",
    "                yticklabels=class_names if class_names else np.unique(all_labels))\n",
    "    plt.title(\"Confusion Matrix\")\n",
    "    plt.xlabel(\"Predicted Label\")\n",
    "    plt.ylabel(\"True Label\")\n",
    "    plt.tight_layout()\n",
    "\n",
    "    if save_confusion_matrix:\n",
    "        plt.savefig(matrix_path, dpi=300)\n",
    "        print(f\"✅ Confusion matrix saved to: {matrix_path}\")\n",
    "\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T14:58:00.109609Z",
     "iopub.status.busy": "2025-06-25T14:58:00.109070Z",
     "iopub.status.idle": "2025-06-25T14:58:06.489365Z",
     "shell.execute_reply": "2025-06-25T14:58:06.488394Z",
     "shell.execute_reply.started": "2025-06-25T14:58:00.109583Z"
    },
    "trusted": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "                                                           \r"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "📊 Test Set Metrics:\n",
      "Accuracy : 0.9413\n",
      "Precision: 0.9418\n",
      "Recall   : 0.9413\n",
      "F1 Score : 0.9412\n",
      "\n",
      "Detailed Classification Report:\n",
      "              precision    recall  f1-score   support\n",
      "\n",
      "       metal       0.91      0.98      0.94        93\n",
      "       glass       0.96      0.97      0.97       113\n",
      "  biological       0.94      0.92      0.93       170\n",
      "       paper       0.99      0.98      0.99       528\n",
      "     battery       0.94      0.95      0.94       313\n",
      "       trash       0.83      0.89      0.86        90\n",
      "   cardboard       0.94      0.93      0.94       171\n",
      "       shoes       0.93      0.86      0.89       217\n",
      "     clothes       0.93      0.98      0.95       188\n",
      "     plastic       0.85      0.85      0.85        94\n",
      "\n",
      "    accuracy                           0.94      1977\n",
      "   macro avg       0.92      0.93      0.93      1977\n",
      "weighted avg       0.94      0.94      0.94      1977\n",
      "\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA5oAAAMWCAYAAACQh/koAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAADK4ElEQVR4nOzdeVxU1f/H8feAAm6ggoqm4I4buFbgnmupuZZLpmbaam6omaXmlpiZprnnkpmmlmmluZRLfUs09wWXXChyXxBcQFCY3x/+nK980Rxg5N6R17PHfTyYM3dm3pzujPPhnHuuxWq1WgUAAAAAgIO4GB0AAAAAAPBoodAEAAAAADgUhSYAAAAAwKEoNAEAAAAADkWhCQAAAABwKApNAAAAAIBDUWgCAAAAAByKQhMAAAAA4FAUmgAAAAAAh6LQBABIko4ePaomTZrIy8tLFotFK1eudOjz//XXX7JYLPr8888d+rzOrH79+qpfv77RMQAAcDgKTQAwkePHj+u1115TyZIl5eHhIU9PT9WqVUuTJ09WfHz8Q33tbt26af/+/frggw+0cOFC1ahR46G+XmZ66aWXZLFY5Onpec9+PHr0qCwWiywWiyZMmJDm5z99+rRGjBihPXv2OCAtAADOL5vRAQAAt61evVrPP/+83N3d1bVrV1WqVEmJiYn67bffNGjQIEVERGj27NkP5bXj4+MVHh6u9957T2+99dZDeQ1/f3/Fx8cre/bsD+X5HyRbtmyKi4vTDz/8oPbt26e4b9GiRfLw8NCNGzfS9dynT5/WyJEjVbx4cVWpUsXux61fvz5drwcAgNlRaAKACURGRqpjx47y9/fXxo0bVbhwYdt9vXr10rFjx7R69eqH9voXLlyQJOXNm/ehvYbFYpGHh8dDe/4HcXd3V61atfTVV1+lKjQXL16s5s2ba/ny5ZmSJS4uTjlz5pSbm1umvB4AAJmNqbMAYALjx4/XtWvXNHfu3BRF5h2lS5dW3759bbdv3bql0aNHq1SpUnJ3d1fx4sX17rvvKiEhIcXjihcvrhYtWui3337TE088IQ8PD5UsWVJffPGFbZ8RI0bI399fkjRo0CBZLBYVL15c0u0pp3d+vtuIESNksVhStP3000+qXbu28ubNq9y5cysgIEDvvvuu7f77naO5ceNG1alTR7ly5VLevHnVqlUrHTp06J6vd+zYMb300kvKmzevvLy81L17d8XFxd2/Y//HCy+8oDVr1igmJsbWtn37dh09elQvvPBCqv2jo6M1cOBABQYGKnfu3PL09NQzzzyjvXv32vbZvHmzHn/8cUlS9+7dbVNw7/ye9evXV6VKlbRz507VrVtXOXPmtPXL/56j2a1bN3l4eKT6/Zs2bap8+fLp9OnTdv+uAAAYiUITAEzghx9+UMmSJVWzZk279u/Zs6eGDx+uatWqadKkSapXr57CwsLUsWPHVPseO3ZMzz33nBo3bqyPP/5Y+fLl00svvaSIiAhJUtu2bTVp0iRJUqdOnbRw4UJ98sknacofERGhFi1aKCEhQaNGjdLHH3+sli1b6vfff//Xx/38889q2rSpzp8/rxEjRig0NFRbtmxRrVq19Ndff6Xav3379rp69arCwsLUvn17ff755xo5cqTdOdu2bSuLxaJvv/3W1rZ48WKVK1dO1apVS7X/iRMntHLlSrVo0UITJ07UoEGDtH//ftWrV89W9JUvX16jRo2SJL366qtauHChFi5cqLp169qe59KlS3rmmWdUpUoVffLJJ3rqqafumW/y5MkqUKCAunXrpqSkJEnSrFmztH79en366acqUqSI3b8rAACGsgIADBUbG2uVZG3VqpVd++/Zs8cqydqzZ88U7QMHDrRKsm7cuNHW5u/vb5Vk/fXXX21t58+ft7q7u1sHDBhga4uMjLRKsn700UcpnrNbt25Wf3//VBnef/99693/hEyaNMkqyXrhwoX75r7zGvPnz7e1ValSxVqwYEHrpUuXbG179+61uri4WLt27Zrq9V5++eUUz9mmTRurt7f3fV/z7t8jV65cVqvVan3uueesDRs2tFqtVmtSUpLV19fXOnLkyHv2wY0bN6xJSUmpfg93d3frqFGjbG3bt29P9bvdUa9ePask68yZM+95X7169VK0rVu3zirJOmbMGOuJEyesuXPntrZu3fqBvyMAAGbCiCYAGOzKlSuSpDx58ti1/48//ihJCg0NTdE+YMAASUp1LmeFChVUp04d2+0CBQooICBAJ06cSHfm/3Xn3M7vvvtOycnJdj3mzJkz2rNnj1566SXlz5/f1h4UFKTGjRvbfs+7vf766ylu16lTR5cuXbL1oT1eeOEFbd68WWfPntXGjRt19uzZe06blW6f1+nicvufyqSkJF26dMk2LXjX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8eLFatCggaTbNVn58uW1detWBQcHa/369Tp48KB+/vlnFSpUSFWqVNHo0aM1ePBgjRgxQm5ubnbncM4xYQAAAABAKkePHlWRIkVUsmRJde7cWVFRUZKknTt36ubNm2rUqJFt33LlysnPz0/h4eGSpPDwcAUGBqaYStu0aVNduXJFERERacphmsubfPPNN1q2bJmioqKUmJiY4r5du3YZlAoAAAAAjJOQkKCEhIQUbe7u7nJ3d0+175NPPqnPP/9cAQEBOnPmjEaOHKk6derowIEDOnv2rNzc3JQ3b94UjylUqJDOnj0rSTp79myKIvPO/XfuSwtTjGhOmTJF3bt3V6FChbR792498cQT8vb21okTJ/TMM88YHQ8AAABAVmJxMc0WFhYmLy+vFFtYWNg9Yz/zzDN6/vnnFRQUpKZNm+rHH39UTEyMli1blskdaJJCc/r06Zo9e7Y+/fRTubm56e2339ZPP/2kPn36KDY21uh4AAAAAGCIIUOGKDY2NsU2ZMgQux6bN29elS1bVseOHZOvr68SExMVExOTYp9z587Zzun09fXVuXPnUt1/5760MEWhGRUVpZo1a0qScuTIoatXr0qSunTpoq+++srIaAAAAABgGHd3d3l6eqbY7jVt9l6uXbum48ePq3DhwqpevbqyZ8+uDRs22O4/cuSIoqKiFBISIkkKCQnR/v37df78eds+P/30kzw9PVWhQoU05TZFoenr66vo6GhJkp+fn7Zu3SpJioyMlNVqNTIaAAAAgKzGYjHPlgYDBw7UL7/8or/++ktbtmxRmzZt5Orqqk6dOsnLy0s9evRQaGioNm3apJ07d6p79+4KCQlRcHCwJKlJkyaqUKGCunTpor1792rdunUaOnSoevXqZXdxe4cpFgNq0KCBvv/+e1WtWlXdu3dX//799c0332jHjh1q27at0fEAAAAAwPROnjypTp066dKlSypQoIBq166trVu3qkCBApKkSZMmycXFRe3atVNCQoKaNm2q6dOn2x7v6uqqVatW6Y033lBISIhy5cqlbt26adSoUWnOYrGaYMgwOTlZycnJtouJLlmyRFu2bFGZMmX02muvpel6LZJ08PT1hxHzgeLjrmvxvOna9tsmxV6+rBJlAtTjrUEqU66iJCn81w1a98NyHf/zkK5didXEz75SidIBhmSVpJIFcxn22veyZPEi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iIiIiIgKSPIRTQBwdHTkoj9ERERERCQLCt2dsSobkiSaFy5c0HpbHx+fEoyEiIiIiIiIipskiWadOnWgUCgghHjjdgqFAtnZ2aUUFRERERERERUHSRLN+Ph4KV6WiIiIiIgoX5w5W3SSJJrOzs7q/8+aNQt2dnYYOHCgxja//vor7t+/j/Hjx5d2eERERERERFQEkq86+8svv6BGjRq5ymvVqoUlS5ZIEBEREREREZVrChnddJTkiebdu3fh4OCQq9zW1haJiYkSRERERERERERFIXmi6eTkhLCwsFzlYWFhcHR0lCAiIiIiIiIiKgrJr6M5ePBgjB49GpmZmXjnnXcAAIcOHcK4ceMwZswYiaMjIiIiIqLyRqHLc1ZlQvJE84svvsCDBw8QFBSEjIwMAIChoSHGjx+PiRMnShwdERERERERFZRC5Hcxy1KSmpqK6OhoGBkZwd3dHUqlstD7ep5VjIERERERlRPbLtyWOgSd0c2nqtQh6ARDyYe1Cufmg3SpQ1Bztil8XiQl2fzpTU1N0bBhQ6nDICIiIiKick7BmbNFJvliQERERERERFS2MNEkIiIiIiKiYiWbqbNERERERERywJmzRccRTSIiIiIiIipWHNEkIiIiIiJ6CRcDKjqOaBIREREREVGxYqJJRERERERExYpTZ4mIiIiIiDRw7mxRKYQQQuogitvzLKkjICqfyl5vUjJ43od22J60w/ZEJI2EpKdSh6ATPOyNpQ6hUG4nZ0gdglpVKwOpQygUTp0lIiIiIiKiYsWps0RERERERC/hbJGi44gmERERERERFSsmmkRERERERFSsOHWWiIiIiIjoJZw5W3Qc0SQiIiIiIqJixRFNIiIiIiKil3AxoKLjiCYREREREREVKyaaREREREREVKw4dZaIiIiIiOglCi4HVGQc0SQiIiIiIqJixUSTiIiIiIiIihWnzhIREREREb2MM2eLjCOaREREREREVKyYaBIREREREVGxkkWiuXLlSmzevDlX+ebNm7Fq1SoJIiIiIiIiovJKIaObrpJFojlr1ixUqlQpV3nlypUxc+ZMCSIiIiIiIiKiwpLFYkAJCQlwdXXNVe7s7IyEhAQJIiIiIiIiovJKoctDiTIhixHNypUr48KFC7nKo6KiYGNjI0FEREREREREVFiySDR79+6NkSNH4siRI8jOzkZ2djYO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",
      "text/plain": [
       "<Figure size 1000x800 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "evaluate_model(model, test_loader, device, class_names=list(class_counts.keys()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Save Full Model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T15:00:14.808207Z",
     "iopub.status.busy": "2025-06-25T15:00:14.807852Z",
     "iopub.status.idle": "2025-06-25T15:00:14.986499Z",
     "shell.execute_reply": "2025-06-25T15:00:14.985751Z",
     "shell.execute_reply.started": "2025-06-25T15:00:14.808177Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "torch.save(model, \"model.pth\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Test an image from url"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T15:00:54.192750Z",
     "iopub.status.busy": "2025-06-25T15:00:54.192429Z",
     "iopub.status.idle": "2025-06-25T15:00:54.199948Z",
     "shell.execute_reply": "2025-06-25T15:00:54.199032Z",
     "shell.execute_reply.started": "2025-06-25T15:00:54.192689Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "import requests\n",
    "from io import BytesIO\n",
    "\n",
    "def predict_image_from_url(model, image_url, device, class_names, image_size=224):\n",
    "    \"\"\"\n",
    "    Predict the class of an image from a URL.\n",
    "\n",
    "    Args:\n",
    "        model: Trained PyTorch model.\n",
    "        image_url (str): URL of the image to predict.\n",
    "        device: torch.device (e.g., 'cuda' or 'cpu').\n",
    "        class_names (list): List of class names.\n",
    "        image_size (int): Image size for resizing (default: 224).\n",
    "    \"\"\"\n",
    "    # Preprocessing pipeline\n",
    "    transform = transforms.Compose([\n",
    "        transforms.Resize((image_size, image_size)),\n",
    "        transforms.ToTensor(),\n",
    "        # transforms.Normalize(mean=[0.485, 0.456, 0.406],  # for pretrained models\n",
    "                             # std=[0.229, 0.224, 0.225])\n",
    "    ])\n",
    "\n",
    "    # Load and transform image\n",
    "    response = requests.get(image_url)\n",
    "    image = Image.open(BytesIO(response.content)).convert('RGB')\n",
    "    input_tensor = transform(image).unsqueeze(0).to(device)\n",
    "\n",
    "    # Predict\n",
    "    model.eval()\n",
    "    with torch.no_grad():\n",
    "        outputs = model(input_tensor)\n",
    "        _, predicted = torch.max(outputs, 1)\n",
    "        predicted_class = class_names[predicted.item()]\n",
    "\n",
    "    # Show image and prediction\n",
    "    plt.imshow(image)\n",
    "    plt.axis('off')\n",
    "    plt.title(f\"Predicted: {predicted_class}\", fontsize=14)\n",
    "    plt.show()\n",
    "\n",
    "    return predicted_class\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T15:05:19.658390Z",
     "iopub.status.busy": "2025-06-25T15:05:19.658074Z",
     "iopub.status.idle": "2025-06-25T15:05:19.662654Z",
     "shell.execute_reply": "2025-06-25T15:05:19.661790Z",
     "shell.execute_reply.started": "2025-06-25T15:05:19.658368Z"
    },
    "trusted": true
   },
   "outputs": [],
   "source": [
    "class_names = ['battery', 'biological', 'cardboard', 'clothes', 'glass', 'metal', 'paper', 'platic', 'shoes', 'trash']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "trusted": true
   },
   "outputs": [],
   "source": [
    "model.eval()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2025-06-25T15:06:34.191229Z",
     "iopub.status.busy": "2025-06-25T15:06:34.190949Z",
     "iopub.status.idle": "2025-06-25T15:06:34.901367Z",
     "shell.execute_reply": "2025-06-25T15:06:34.900573Z",
     "shell.execute_reply.started": "2025-06-25T15:06:34.191207Z"
    },
    "trusted": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Predicted Class: battery\n"
     ]
    }
   ],
   "source": [
    "# Test on a real image URL\n",
    "url = \"https://www.duracell.com/wp-content/uploads/2022/06/eContent-PI-Duracell_Renders_N_Boost_Battery_Cell.png\"\n",
    "predicted = predict_image_from_url(model, url, device, class_names)\n",
    "print(\"Predicted Class:\", predicted)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "trusted": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "trusted": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kaggle": {
   "accelerator": "gpu",
   "dataSources": [
    {
     "datasetId": 2814684,
     "sourceId": 10182596,
     "sourceType": "datasetVersion"
    }
   ],
   "dockerImageVersionId": 31040,
   "isGpuEnabled": true,
   "isInternetEnabled": true,
   "language": "python",
   "sourceType": "notebook"
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}