diff --git a/Projects/p3-skeleton/cs448p3/.gitignore b/Projects/p3-skeleton/cs448p3/.gitignore deleted file mode 100644 index 00b41c6..0000000 --- a/Projects/p3-skeleton/cs448p3/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -bin/ -.DS_Store diff --git a/Projects/p3-skeleton/cs448p3/Makefile b/Projects/p3-skeleton/cs448p3/Makefile deleted file mode 100644 index 099fa66..0000000 --- a/Projects/p3-skeleton/cs448p3/Makefile +++ /dev/null @@ -1,20 +0,0 @@ -JDKPATH = /usr -LIBPATH = lib/bufmgr.jar:lib/diskmgr.jar:lib/heap.jar:lib/index.jar:lib/junit.jar:lib/org.hamcrest.core_1.3.0.v201303031735.jar -SRCPATH = src/main/java/*/ -TESTPATH = src/test/java/*/ - -CLASSPATH = .:..:$(LIBPATH) -BINPATH = $(JDKPATH)/bin -JAVAC = $(JDKPATH)/bin/javac -JAVA = $(JDKPATH)/bin/java - -PROGS = xx - -all: $(PROGS) - -compile:${SRCPATH}*.java - $(JAVAC) -cp $(CLASSPATH) -d bin ${SRCPATH}*.java ${TESTPATH}*.java - -xx : compile - $(JAVA) -cp $(CLASSPATH):bin tests.ROTest - diff --git a/Projects/p3-skeleton/cs448p3/p3-handout.pdf b/Projects/p3-skeleton/cs448p3/p3-handout.pdf deleted file mode 100644 index 98ce7de..0000000 Binary files a/Projects/p3-skeleton/cs448p3/p3-handout.pdf and /dev/null differ diff --git a/Projects/p3-skeleton/cs448p3/pom.xml b/Projects/p3-skeleton/cs448p3/pom.xml deleted file mode 100644 index a55f734..0000000 --- a/Projects/p3-skeleton/cs448p3/pom.xml +++ /dev/null @@ -1,131 +0,0 @@ - - - - 4.0.0 - - edu.cs.purdue - cs448p3 - 1.0-SNAPSHOT - - cs448p3 - https://www.cs.purdue.edu/homes/bb/cs448f19/ - - - 10 - UTF-8 - ${java.version} - ${java.version} - - - - - com.googlecode.json-simple - json-simple - 1.1.1 - - - com.opencsv - opencsv - 4.0 - - - junit - junit - 4.11 - test - - - minibase - bufmgr - 1.0 - system - ${basedir}/lib/bufmgr.jar - - - minibase - diskmgr - 1.0 - system - ${basedir}/lib/diskmgr.jar - jar - - - minibase - heap - 1.0 - system - ${basedir}/lib/heap.jar - - - minibase - index - 1.0 - system - ${basedir}/lib/index.jar - - - - - - - - - - maven-clean-plugin - 3.1.0 - - - - maven-resources-plugin - 3.0.2 - - - maven-compiler-plugin - 3.8.0 - - ${java.version} - - - - maven-surefire-plugin - 2.22.1 - - - maven-jar-plugin - 3.0.2 - - - maven-install-plugin - 2.5.2 - - - maven-deploy-plugin - 2.8.2 - - - - maven-site-plugin - 3.7.1 - - - maven-project-info-reports-plugin - 3.0.0 - - - maven-assembly-plugin - - - - test.TestDriver - - - - jar-with-dependencies - - - - - - - diff --git a/Projects/p3-skeleton/cs448p3/solution.txt b/Projects/p3-skeleton/cs448p3/solution.txt deleted file mode 100644 index 5e89823..0000000 --- a/Projects/p3-skeleton/cs448p3/solution.txt +++ /dev/null @@ -1,24 +0,0 @@ -proj_idx=3:18.|9:19.|2:20.|8:20.|4:22.|6:23.|7:24.|1:25.|5:26. -proj_key=2:20.|8:20. -proj_sel=2:20.|8:20. -proj_proj=1:25.|2:20.|3:18.|4:22.|5:26.|6:23.|7:24.|8:20.|9:19. -proj_sj=1:25.|1:25.|2:20.|2:20.|3:18.|3:18.|3:18.|4:22.|5:26.|6:23.|8:20.|9:19. -proj_hj=1:25.|1:25.|2:20.|2:20.|3:18.|3:18.|3:18.|4:22.|5:26.|6:23.|8:20.|9:19. -keyscan=2:Walid:Aref:20.013|8:Arif:Ghafoor:20.05 -selection=1:Ahmed:Elmagarmid:25.05|4:Sunil:Prabhakar:22.07|5:Elisa:Bertino:26.05|6:Susanne:Hambrusch:23.03|7:David:Eberts:24.08 -idxscan=3:Christopher:Clifton:18.04|9:Jeff:Vitter:19.010|2:Walid:Aref:20.013|8:Arif:Ghafoor:20.05|4:Sunil:Prabhakar:22.07|6:Susanne:Hambrusch:23.03|7:David:Eberts:24.08|1:Ahmed:Elmagarmid:25.05|5:Elisa:Bertino:26.05 -filescan=1:Ahmed:Elmagarmid:25.05|2:Walid:Aref:20.013|3:Christopher:Clifton:18.04|4:Sunil:Prabhakar:22.07|5:Elisa:Bertino:26.05|6:Susanne:Hambrusch:23.03|7:David:Eberts:24.08|8:Arif:Ghafoor:20.05|9:Jeff:Vitter:19.010 -sel_idx=2:Walid:Aref:20.013 -sel_key=2:Walid:Aref:20.013 -sel_sel=2:Walid:Aref:20.013 -sel_proj=2:Walid -sel_sj=2:Walid:Aref:20.013:2:6:2/17/2006:2/20/2006|2:Walid:Aref:20.013:2:7:2/18/2006:2/23/2006 -sel_jh=2:Walid:Aref:20.013:2:6:2/17/2006:2/20/2006|2:Walid:Aref:20.013:2:7:2/18/2006:2/23/2006 -selection_preds=1:Ahmed:Elmagarmid:25.05|3:Christopher:Clifton:18.04|5:Elisa:Bertino:26.05|7:David:Eberts:24.08 -hj_sel_sj=6:Susanne:Hambrusch:23.03:6:6:2/25/2006:2/26/2006:1:Purdue1 -hj_proj_hj=1:25.01:2:2/12/2006:2/14/2006:2:Purdue2|1:25.01:3:2/15/2006:2/16/2006:3:Purdue3|2:20.02:6:2/17/2006:2/20/2006:6:Purdue6|2:20.02:7:2/18/2006:2/23/2006:7:Purdue7|3:18.03:2:2/24/2006:2/26/2006:2:Purdue2|3:18.03:4:2/18/2006:2/19/2006:4:Purdue4|3:18.03:5:2/10/2006:2/13/2006:5:Purdue5|4:22.04:1:2/19/2006:2/19/2006:1:Purdue1|5:26.05:7:2/14/2006:2/18/2006:7:Purdue7|6:23.06:6:2/25/2006:2/26/2006:6:Purdue6|8:20.08:5:2/20/2006:2/22/2006:5:Purdue5|9:19.09:1:2/15/2006:2/15/2006:1:Purdue1 -hj_iscan_kscan=4:Sunil:Prabhakar:22.07:4:1:2/19/2006:2/19/2006|9:Jeff:Vitter:19.010:9:1:2/15/2006:2/15/2006 -hashjoin=1:Ahmed:Elmagarmid:25.05:1:2:2/12/2006:2/14/2006|1:Ahmed:Elmagarmid:25.05:1:3:2/15/2006:2/16/2006|2:Walid:Aref:20.013:2:6:2/17/2006:2/20/2006|2:Walid:Aref:20.013:2:7:2/18/2006:2/23/2006|3:Christopher:Clifton:18.04:3:5:2/10/2006:2/13/2006|3:Christopher:Clifton:18.04:3:4:2/18/2006:2/19/2006|3:Christopher:Clifton:18.04:3:2:2/24/2006:2/26/2006|4:Sunil:Prabhakar:22.07:4:1:2/19/2006:2/19/2006|5:Elisa:Bertino:26.05:5:7:2/14/2006:2/18/2006|6:Susanne:Hambrusch:23.03:6:6:2/25/2006:2/26/2006|8:Arif:Ghafoor:20.05:8:5:2/20/2006:2/22/2006|9:Jeff:Vitter:19.010:9:1:2/15/2006:2/15/2006 -projection=Ahmed:5|Walid:13|Christopher:4|Sunil:7|Elisa:5|Susanne:3|David:8|Arif:5|Jeff:10 -hashEqual=128:"Adnan":"Bob":19.010:128:"Adnan":"Bob":19.010|256:"Adnan":"Bob":19.010:256:"Adnan":"Bob":19.010|384:"Adnan":"Bob":19.010:384:"Adnan":"Bob":19.010|512:"Adnan":"Bob":19.010:512:"Adnan":"Bob":19.010|640:"Adnan":"Bob":19.010:640:"Adnan":"Bob":19.010|768:"Adnan":"Bob":19.010:768:"Adnan":"Bob":19.010|896:"Adnan":"Bob":19.010:896:"Adnan":"Bob":19.010|1:"Ahmed":"Elmagarmid":25.05:1:"Ahmed":"Elmagarmid":25.05|129:"Adnan":"Edgardo":19.010:129:"Adnan":"Edgardo":19.010|257:"Adnan":"Edgardo":19.010:257:"Adnan":"Edgardo":19.010|385:"Adnan":"Edgardo":19.010:385:"Adnan":"Edgardo":19.010|513:"Adnan":"Edgardo":19.010:513:"Adnan":"Edgardo":19.010|641:"Adnan":"Edgardo":19.010:641:"Adnan":"Edgardo":19.010|769:"Adnan":"Edgardo":19.010:769:"Adnan":"Edgardo":19.010|897:"Adnan":"Edgardo":19.010:897:"Adnan":"Edgardo":19.010|2:"Walid":"Aref":20.013:2:"Walid":"Aref":20.013|130:"Adnan":"Bob":19.010:130:"Adnan":"Bob":19.010|258:"Adnan":"Bob":19.010:258:"Adnan":"Bob":19.010|386:"Adnan":"Bob":19.010:386:"Adnan":"Bob":19.010|514:"Adnan":"Bob":19.010:514:"Adnan":"Bob":19.010|642:"Adnan":"Bob":19.010:642:"Adnan":"Bob":19.010|770:"Adnan":"Bob":19.010:770:"Adnan":"Bob":19.010|898:"Adnan":"Bob":19.010:898:"Adnan":"Bob":19.010|3:"Christopher":"Clifton":18.04:3:"Christopher":"Clifton":18.04|131:"Adnan":"Edgardo":19.010:131:"Adnan":"Edgardo":19.010|259:"Adnan":"Edgardo":19.010:259:"Adnan":"Edgardo":19.010|387:"Adnan":"Edgardo":19.010:387:"Adnan":"Edgardo":19.010|515:"Adnan":"Edgardo":19.010:515:"Adnan":"Edgardo":19.010|643:"Adnan":"Edgardo":19.010:643:"Adnan":"Edgardo":19.010|771:"Adnan":"Edgardo":19.010:771:"Adnan":"Edgardo":19.010|899:"Adnan":"Edgardo":19.010:899:"Adnan":"Edgardo":19.010|4:"Sunil":"Prabhakar":22.07:4:"Sunil":"Prabhakar":22.07|132:"Adnan":"Bob":19.010:132:"Adnan":"Bob":19.010|260:"Adnan":"Bob":19.010:260:"Adnan":"Bob":19.010|388:"Adnan":"Bob":19.010:388:"Adnan":"Bob":19.010|516:"Adnan":"Bob":19.010:516:"Adnan":"Bob":19.010|644:"Adnan":"Bob":19.010:644:"Adnan":"Bob":19.010|772:"Adnan":"Bob":19.010:772:"Adnan":"Bob":19.010|900:"Adnan":"Bob":19.010:900:"Adnan":"Bob":19.010|5:"Elisa":"Bertino":26.05:5:"Elisa":"Bertino":26.05|133:"Adnan":"Edgardo":19.010:133:"Adnan":"Edgardo":19.010|261:"Adnan":"Edgardo":19.010:261:"Adnan":"Edgardo":19.010|389:"Adnan":"Edgardo":19.010:389:"Adnan":"Edgardo":19.010|517:"Adnan":"Edgardo":19.010:517:"Adnan":"Edgardo":19.010|645:"Adnan":"Edgardo":19.010:645:"Adnan":"Edgardo":19.010|773:"Adnan":"Edgardo":19.010:773:"Adnan":"Edgardo":19.010|901:"Adnan":"Edgardo":19.010:901:"Adnan":"Edgardo":19.010|6:"Susanne":"Hambrusch":23.03:6:"Susanne":"Hambrusch":23.03|134:"Adnan":"Bob":19.010:134:"Adnan":"Bob":19.010|262:"Adnan":"Bob":19.010:262:"Adnan":"Bob":19.010|390:"Adnan":"Bob":19.010:390:"Adnan":"Bob":19.010|518:"Adnan":"Bob":19.010:518:"Adnan":"Bob":19.010|646:"Adnan":"Bob":19.010:646:"Adnan":"Bob":19.010|774:"Adnan":"Bob":19.010:774:"Adnan":"Bob":19.010|902:"Adnan":"Bob":19.010:902:"Adnan":"Bob":19.010|7:"David":"Eberts":24.08:7:"David":"Eberts":24.08|135:"Adnan":"Edgardo":19.010:135:"Adnan":"Edgardo":19.010|263:"Adnan":"Edgardo":19.010:263:"Adnan":"Edgardo":19.010|391:"Adnan":"Edgardo":19.010:391:"Adnan":"Edgardo":19.010|519:"Adnan":"Edgardo":19.010:519:"Adnan":"Edgardo":19.010|647:"Adnan":"Edgardo":19.010:647:"Adnan":"Edgardo":19.010|775:"Adnan":"Edgardo":19.010:775:"Adnan":"Edgardo":19.010|903:"Adnan":"Edgardo":19.010:903:"Adnan":"Edgardo":19.010|8:"Arif":"Ghafoor":20.05:8:"Arif":"Ghafoor":20.05|136:"Adnan":"Bob":19.010:136:"Adnan":"Bob":19.010|264:"Adnan":"Bob":19.010:264:"Adnan":"Bob":19.010|392:"Adnan":"Bob":19.010:392:"Adnan":"Bob":19.010|520:"Adnan":"Bob":19.010:520:"Adnan":"Bob":19.010|648:"Adnan":"Bob":19.010:648:"Adnan":"Bob":19.010|776:"Adnan":"Bob":19.010:776:"Adnan":"Bob":19.010|904:"Adnan":"Bob":19.010:904:"Adnan":"Bob":19.010|9:"Jeff":"Vitter":19.010:9:"Jeff":"Vitter":19.010|137:"Adnan":"Edgardo":19.010:137:"Adnan":"Edgardo":19.010|265:"Adnan":"Edgardo":19.010:265:"Adnan":"Edgardo":19.010|393:"Adnan":"Edgardo":19.010:393:"Adnan":"Edgardo":19.010|521:"Adnan":"Edgardo":19.010:521:"Adnan":"Edgardo":19.010|649:"Adnan":"Edgardo":19.010:649:"Adnan":"Edgardo":19.010|777:"Adnan":"Edgardo":19.010:777:"Adnan":"Edgardo":19.010|905:"Adnan":"Edgardo":19.010:905:"Adnan":"Edgardo":19.010|10:"Adnan":"Bob":19.010:10:"Adnan":"Bob":19.010|138:"Adnan":"Bob":19.010:138:"Adnan":"Bob":19.010|266:"Adnan":"Bob":19.010:266:"Adnan":"Bob":19.010|394:"Adnan":"Bob":19.010:394:"Adnan":"Bob":19.010|522:"Adnan":"Bob":19.010:522:"Adnan":"Bob":19.010|650:"Adnan":"Bob":19.010:650:"Adnan":"Bob":19.010|778:"Adnan":"Bob":19.010:778:"Adnan":"Bob":19.010|906:"Adnan":"Bob":19.010:906:"Adnan":"Bob":19.010|11:"Adnan":"Edgardo":19.010:11:"Adnan":"Edgardo":19.010|139:"Adnan":"Edgardo":19.010:139:"Adnan":"Edgardo":19.010|267:"Adnan":"Edgardo":19.010:267:"Adnan":"Edgardo":19.010|395:"Adnan":"Edgardo":19.010:395:"Adnan":"Edgardo":19.010|523:"Adnan":"Edgardo":19.010:523:"Adnan":"Edgardo":19.010|651:"Adnan":"Edgardo":19.010:651:"Adnan":"Edgardo":19.010|779:"Adnan":"Edgardo":19.010:779:"Adnan":"Edgardo":19.010|907:"Adnan":"Edgardo":19.010:907:"Adnan":"Edgardo":19.010|12:"Adnan":"Bob":19.010:12:"Adnan":"Bob":19.010|140:"Adnan":"Bob":19.010:140:"Adnan":"Bob":19.010|268:"Adnan":"Bob":19.010:268:"Adnan":"Bob":19.010|396:"Adnan":"Bob":19.010:396:"Adnan":"Bob":19.010|524:"Adnan":"Bob":19.010:524:"Adnan":"Bob":19.010|652:"Adnan":"Bob":19.010:652:"Adnan":"Bob":19.010|780:"Adnan":"Bob":19.010:780:"Adnan":"Bob":19.010|908:"Adnan":"Bob":19.010:908:"Adnan":"Bob":19.010|13:"Adnan":"Edgardo":19.010:13:"Adnan":"Edgardo":19.010|141:"Adnan":"Edgardo":19.010:141:"Adnan":"Edgardo":19.010|269:"Adnan":"Edgardo":19.010:269:"Adnan":"Edgardo":19.010|397:"Adnan":"Edgardo":19.010:397:"Adnan":"Edgardo":19.010|525:"Adnan":"Edgardo":19.010:525:"Adnan":"Edgardo":19.010|653:"Adnan":"Edgardo":19.010:653:"Adnan":"Edgardo":19.010|781:"Adnan":"Edgardo":19.010:781:"Adnan":"Edgardo":19.010|909:"Adnan":"Edgardo":19.010:909:"Adnan":"Edgardo":19.010|14:"Adnan":"Bob":19.010:14:"Adnan":"Bob":19.010|142:"Adnan":"Bob":19.010:142:"Adnan":"Bob":19.010|270:"Adnan":"Bob":19.010:270:"Adnan":"Bob":19.010|398:"Adnan":"Bob":19.010:398:"Adnan":"Bob":19.010|526:"Adnan":"Bob":19.010:526:"Adnan":"Bob":19.010|654:"Adnan":"Bob":19.010:654:"Adnan":"Bob":19.010|782:"Adnan":"Bob":19.010:782:"Adnan":"Bob":19.010|910:"Adnan":"Bob":19.010:910:"Adnan":"Bob":19.010|15:"Adnan":"Edgardo":19.010:15:"Adnan":"Edgardo":19.010|143:"Adnan":"Edgardo":19.010:143:"Adnan":"Edgardo":19.010|271:"Adnan":"Edgardo":19.010:271:"Adnan":"Edgardo":19.010|399:"Adnan":"Edgardo":19.010:399:"Adnan":"Edgardo":19.010|527:"Adnan":"Edgardo":19.010:527:"Adnan":"Edgardo":19.010|655:"Adnan":"Edgardo":19.010:655:"Adnan":"Edgardo":19.010|783:"Adnan":"Edgardo":19.010:783:"Adnan":"Edgardo":19.010|911:"Adnan":"Edgardo":19.010:911:"Adnan":"Edgardo":19.010|16:"Adnan":"Bob":19.010:16:"Adnan":"Bob":19.010|144:"Adnan":"Bob":19.010:144:"Adnan":"Bob":19.010|272:"Adnan":"Bob":19.010:272:"Adnan":"Bob":19.010|400:"Adnan":"Bob":19.010:400:"Adnan":"Bob":19.010|528:"Adnan":"Bob":19.010:528:"Adnan":"Bob":19.010|656:"Adnan":"Bob":19.010:656:"Adnan":"Bob":19.010|784:"Adnan":"Bob":19.010:784:"Adnan":"Bob":19.010|912:"Adnan":"Bob":19.010:912:"Adnan":"Bob":19.010|17:"Adnan":"Edgardo":19.010:17:"Adnan":"Edgardo":19.010|145:"Adnan":"Edgardo":19.010:145:"Adnan":"Edgardo":19.010|273:"Adnan":"Edgardo":19.010:273:"Adnan":"Edgardo":19.010|401:"Adnan":"Edgardo":19.010:401:"Adnan":"Edgardo":19.010|529:"Adnan":"Edgardo":19.010:529:"Adnan":"Edgardo":19.010|657:"Adnan":"Edgardo":19.010:657:"Adnan":"Edgardo":19.010|785:"Adnan":"Edgardo":19.010:785:"Adnan":"Edgardo":19.010|913:"Adnan":"Edgardo":19.010:913:"Adnan":"Edgardo":19.010|18:"Adnan":"Bob":19.010:18:"Adnan":"Bob":19.010|146:"Adnan":"Bob":19.010:146:"Adnan":"Bob":19.010|274:"Adnan":"Bob":19.010:274:"Adnan":"Bob":19.010|402:"Adnan":"Bob":19.010:402:"Adnan":"Bob":19.010|530:"Adnan":"Bob":19.010:530:"Adnan":"Bob":19.010|658:"Adnan":"Bob":19.010:658:"Adnan":"Bob":19.010|786:"Adnan":"Bob":19.010:786:"Adnan":"Bob":19.010|914:"Adnan":"Bob":19.010:914:"Adnan":"Bob":19.010|19:"Adnan":"Edgardo":19.010:19:"Adnan":"Edgardo":19.010|147:"Adnan":"Edgardo":19.010:147:"Adnan":"Edgardo":19.010|275:"Adnan":"Edgardo":19.010:275:"Adnan":"Edgardo":19.010|403:"Adnan":"Edgardo":19.010:403:"Adnan":"Edgardo":19.010|531:"Adnan":"Edgardo":19.010:531:"Adnan":"Edgardo":19.010|659:"Adnan":"Edgardo":19.010:659:"Adnan":"Edgardo":19.010|787:"Adnan":"Edgardo":19.010:787:"Adnan":"Edgardo":19.010|915:"Adnan":"Edgardo":19.010:915:"Adnan":"Edgardo":19.010|20:"Adnan":"Bob":19.010:20:"Adnan":"Bob":19.010|148:"Adnan":"Bob":19.010:148:"Adnan":"Bob":19.010|276:"Adnan":"Bob":19.010:276:"Adnan":"Bob":19.010|404:"Adnan":"Bob":19.010:404:"Adnan":"Bob":19.010|532:"Adnan":"Bob":19.010:532:"Adnan":"Bob":19.010|660:"Adnan":"Bob":19.010:660:"Adnan":"Bob":19.010|788:"Adnan":"Bob":19.010:788:"Adnan":"Bob":19.010|916:"Adnan":"Bob":19.010:916:"Adnan":"Bob":19.010|21:"Adnan":"Edgardo":19.010:21:"Adnan":"Edgardo":19.010|149:"Adnan":"Edgardo":19.010:149:"Adnan":"Edgardo":19.010|277:"Adnan":"Edgardo":19.010:277:"Adnan":"Edgardo":19.010|405:"Adnan":"Edgardo":19.010:405:"Adnan":"Edgardo":19.010|533:"Adnan":"Edgardo":19.010:533:"Adnan":"Edgardo":19.010|661:"Adnan":"Edgardo":19.010:661:"Adnan":"Edgardo":19.010|789:"Adnan":"Edgardo":19.010:789:"Adnan":"Edgardo":19.010|917:"Adnan":"Edgardo":19.010:917:"Adnan":"Edgardo":19.010|22:"Adnan":"Bob":19.010:22:"Adnan":"Bob":19.010|150:"Adnan":"Bob":19.010:150:"Adnan":"Bob":19.010|278:"Adnan":"Bob":19.010:278:"Adnan":"Bob":19.010|406:"Adnan":"Bob":19.010:406:"Adnan":"Bob":19.010|534:"Adnan":"Bob":19.010:534:"Adnan":"Bob":19.010|662:"Adnan":"Bob":19.010:662:"Adnan":"Bob":19.010|790:"Adnan":"Bob":19.010:790:"Adnan":"Bob":19.010|918:"Adnan":"Bob":19.010:918:"Adnan":"Bob":19.010|23:"Adnan":"Edgardo":19.010:23:"Adnan":"Edgardo":19.010|151:"Adnan":"Edgardo":19.010:151:"Adnan":"Edgardo":19.010|279:"Adnan":"Edgardo":19.010:279:"Adnan":"Edgardo":19.010|407:"Adnan":"Edgardo":19.010:407:"Adnan":"Edgardo":19.010|535:"Adnan":"Edgardo":19.010:535:"Adnan":"Edgardo":19.010|663:"Adnan":"Edgardo":19.010:663:"Adnan":"Edgardo":19.010|791:"Adnan":"Edgardo":19.010:791:"Adnan":"Edgardo":19.010|919:"Adnan":"Edgardo":19.010:919:"Adnan":"Edgardo":19.010|24:"Adnan":"Bob":19.010:24:"Adnan":"Bob":19.010|152:"Adnan":"Bob":19.010:152:"Adnan":"Bob":19.010|280:"Adnan":"Bob":19.010:280:"Adnan":"Bob":19.010|408:"Adnan":"Bob":19.010:408:"Adnan":"Bob":19.010|536:"Adnan":"Bob":19.010:536:"Adnan":"Bob":19.010|664:"Adnan":"Bob":19.010:664:"Adnan":"Bob":19.010|792:"Adnan":"Bob":19.010:792:"Adnan":"Bob":19.010|920:"Adnan":"Bob":19.010:920:"Adnan":"Bob":19.010|25:"Adnan":"Edgardo":19.010:25:"Adnan":"Edgardo":19.010|153:"Adnan":"Edgardo":19.010:153:"Adnan":"Edgardo":19.010|281:"Adnan":"Edgardo":19.010:281:"Adnan":"Edgardo":19.010|409:"Adnan":"Edgardo":19.010:409:"Adnan":"Edgardo":19.010|537:"Adnan":"Edgardo":19.010:537:"Adnan":"Edgardo":19.010|665:"Adnan":"Edgardo":19.010:665:"Adnan":"Edgardo":19.010|793:"Adnan":"Edgardo":19.010:793:"Adnan":"Edgardo":19.010|921:"Adnan":"Edgardo":19.010:921:"Adnan":"Edgardo":19.010|26:"Adnan":"Bob":19.010:26:"Adnan":"Bob":19.010|154:"Adnan":"Bob":19.010:154:"Adnan":"Bob":19.010|282:"Adnan":"Bob":19.010:282:"Adnan":"Bob":19.010|410:"Adnan":"Bob":19.010:410:"Adnan":"Bob":19.010|538:"Adnan":"Bob":19.010:538:"Adnan":"Bob":19.010|666:"Adnan":"Bob":19.010:666:"Adnan":"Bob":19.010|794:"Adnan":"Bob":19.010:794:"Adnan":"Bob":19.010|922:"Adnan":"Bob":19.010:922:"Adnan":"Bob":19.010|27:"Adnan":"Edgardo":19.010:27:"Adnan":"Edgardo":19.010|155:"Adnan":"Edgardo":19.010:155:"Adnan":"Edgardo":19.010|283:"Adnan":"Edgardo":19.010:283:"Adnan":"Edgardo":19.010|411:"Adnan":"Edgardo":19.010:411:"Adnan":"Edgardo":19.010|539:"Adnan":"Edgardo":19.010:539:"Adnan":"Edgardo":19.010|667:"Adnan":"Edgardo":19.010:667:"Adnan":"Edgardo":19.010|795:"Adnan":"Edgardo":19.010:795:"Adnan":"Edgardo":19.010|923:"Adnan":"Edgardo":19.010:923:"Adnan":"Edgardo":19.010|28:"Adnan":"Bob":19.010:28:"Adnan":"Bob":19.010|156:"Adnan":"Bob":19.010:156:"Adnan":"Bob":19.010|284:"Adnan":"Bob":19.010:284:"Adnan":"Bob":19.010|412:"Adnan":"Bob":19.010:412:"Adnan":"Bob":19.010|540:"Adnan":"Bob":19.010:540:"Adnan":"Bob":19.010|668:"Adnan":"Bob":19.010:668:"Adnan":"Bob":19.010|796:"Adnan":"Bob":19.010:796:"Adnan":"Bob":19.010|924:"Adnan":"Bob":19.010:924:"Adnan":"Bob":19.010|29:"Adnan":"Edgardo":19.010:29:"Adnan":"Edgardo":19.010|157:"Adnan":"Edgardo":19.010:157:"Adnan":"Edgardo":19.010|285:"Adnan":"Edgardo":19.010:285:"Adnan":"Edgardo":19.010|413:"Adnan":"Edgardo":19.010:413:"Adnan":"Edgardo":19.010|541:"Adnan":"Edgardo":19.010:541:"Adnan":"Edgardo":19.010|669:"Adnan":"Edgardo":19.010:669:"Adnan":"Edgardo":19.010|797:"Adnan":"Edgardo":19.010:797:"Adnan":"Edgardo":19.010|925:"Adnan":"Edgardo":19.010:925:"Adnan":"Edgardo":19.010|30:"Adnan":"Bob":19.010:30:"Adnan":"Bob":19.010|158:"Adnan":"Bob":19.010:158:"Adnan":"Bob":19.010|286:"Adnan":"Bob":19.010:286:"Adnan":"Bob":19.010|414:"Adnan":"Bob":19.010:414:"Adnan":"Bob":19.010|542:"Adnan":"Bob":19.010:542:"Adnan":"Bob":19.010|670:"Adnan":"Bob":19.010:670:"Adnan":"Bob":19.010|798:"Adnan":"Bob":19.010:798:"Adnan":"Bob":19.010|926:"Adnan":"Bob":19.010:926:"Adnan":"Bob":19.010|31:"Adnan":"Edgardo":19.010:31:"Adnan":"Edgardo":19.010|159:"Adnan":"Edgardo":19.010:159:"Adnan":"Edgardo":19.010|287:"Adnan":"Edgardo":19.010:287:"Adnan":"Edgardo":19.010|415:"Adnan":"Edgardo":19.010:415:"Adnan":"Edgardo":19.010|543:"Adnan":"Edgardo":19.010:543:"Adnan":"Edgardo":19.010|671:"Adnan":"Edgardo":19.010:671:"Adnan":"Edgardo":19.010|799:"Adnan":"Edgardo":19.010:799:"Adnan":"Edgardo":19.010|927:"Adnan":"Edgardo":19.010:927:"Adnan":"Edgardo":19.010|32:"Adnan":"Bob":19.010:32:"Adnan":"Bob":19.010|160:"Adnan":"Bob":19.010:160:"Adnan":"Bob":19.010|288:"Adnan":"Bob":19.010:288:"Adnan":"Bob":19.010|416:"Adnan":"Bob":19.010:416:"Adnan":"Bob":19.010|544:"Adnan":"Bob":19.010:544:"Adnan":"Bob":19.010|672:"Adnan":"Bob":19.010:672:"Adnan":"Bob":19.010|800:"Adnan":"Bob":19.010:800:"Adnan":"Bob":19.010|928:"Adnan":"Bob":19.010:928:"Adnan":"Bob":19.010|33:"Adnan":"Edgardo":19.010:33:"Adnan":"Edgardo":19.010|161:"Adnan":"Edgardo":19.010:161:"Adnan":"Edgardo":19.010|289:"Adnan":"Edgardo":19.010:289:"Adnan":"Edgardo":19.010|417:"Adnan":"Edgardo":19.010:417:"Adnan":"Edgardo":19.010|545:"Adnan":"Edgardo":19.010:545:"Adnan":"Edgardo":19.010|673:"Adnan":"Edgardo":19.010:673:"Adnan":"Edgardo":19.010|801:"Adnan":"Edgardo":19.010:801:"Adnan":"Edgardo":19.010|929:"Adnan":"Edgardo":19.010:929:"Adnan":"Edgardo":19.010|34:"Adnan":"Bob":19.010:34:"Adnan":"Bob":19.010|162:"Adnan":"Bob":19.010:162:"Adnan":"Bob":19.010|290:"Adnan":"Bob":19.010:290:"Adnan":"Bob":19.010|418:"Adnan":"Bob":19.010:418:"Adnan":"Bob":19.010|546:"Adnan":"Bob":19.010:546:"Adnan":"Bob":19.010|674:"Adnan":"Bob":19.010:674:"Adnan":"Bob":19.010|802:"Adnan":"Bob":19.010:802:"Adnan":"Bob":19.010|930:"Adnan":"Bob":19.010:930:"Adnan":"Bob":19.010|35:"Adnan":"Edgardo":19.010:35:"Adnan":"Edgardo":19.010|163:"Adnan":"Edgardo":19.010:163:"Adnan":"Edgardo":19.010|291:"Adnan":"Edgardo":19.010:291:"Adnan":"Edgardo":19.010|419:"Adnan":"Edgardo":19.010:419:"Adnan":"Edgardo":19.010|547:"Adnan":"Edgardo":19.010:547:"Adnan":"Edgardo":19.010|675:"Adnan":"Edgardo":19.010:675:"Adnan":"Edgardo":19.010|803:"Adnan":"Edgardo":19.010:803:"Adnan":"Edgardo":19.010|931:"Adnan":"Edgardo":19.010:931:"Adnan":"Edgardo":19.010|36:"Adnan":"Bob":19.010:36:"Adnan":"Bob":19.010|164:"Adnan":"Bob":19.010:164:"Adnan":"Bob":19.010|292:"Adnan":"Bob":19.010:292:"Adnan":"Bob":19.010|420:"Adnan":"Bob":19.010:420:"Adnan":"Bob":19.010|548:"Adnan":"Bob":19.010:548:"Adnan":"Bob":19.010|676:"Adnan":"Bob":19.010:676:"Adnan":"Bob":19.010|804:"Adnan":"Bob":19.010:804:"Adnan":"Bob":19.010|932:"Adnan":"Bob":19.010:932:"Adnan":"Bob":19.010|37:"Adnan":"Edgardo":19.010:37:"Adnan":"Edgardo":19.010|165:"Adnan":"Edgardo":19.010:165:"Adnan":"Edgardo":19.010|293:"Adnan":"Edgardo":19.010:293:"Adnan":"Edgardo":19.010|421:"Adnan":"Edgardo":19.010:421:"Adnan":"Edgardo":19.010|549:"Adnan":"Edgardo":19.010:549:"Adnan":"Edgardo":19.010|677:"Adnan":"Edgardo":19.010:677:"Adnan":"Edgardo":19.010|805:"Adnan":"Edgardo":19.010:805:"Adnan":"Edgardo":19.010|933:"Adnan":"Edgardo":19.010:933:"Adnan":"Edgardo":19.010|38:"Adnan":"Bob":19.010:38:"Adnan":"Bob":19.010|166:"Adnan":"Bob":19.010:166:"Adnan":"Bob":19.010|294:"Adnan":"Bob":19.010:294:"Adnan":"Bob":19.010|422:"Adnan":"Bob":19.010:422:"Adnan":"Bob":19.010|550:"Adnan":"Bob":19.010:550:"Adnan":"Bob":19.010|678:"Adnan":"Bob":19.010:678:"Adnan":"Bob":19.010|806:"Adnan":"Bob":19.010:806:"Adnan":"Bob":19.010|934:"Adnan":"Bob":19.010:934:"Adnan":"Bob":19.010|39:"Adnan":"Edgardo":19.010:39:"Adnan":"Edgardo":19.010|167:"Adnan":"Edgardo":19.010:167:"Adnan":"Edgardo":19.010|295:"Adnan":"Edgardo":19.010:295:"Adnan":"Edgardo":19.010|423:"Adnan":"Edgardo":19.010:423:"Adnan":"Edgardo":19.010|551:"Adnan":"Edgardo":19.010:551:"Adnan":"Edgardo":19.010|679:"Adnan":"Edgardo":19.010:679:"Adnan":"Edgardo":19.010|807:"Adnan":"Edgardo":19.010:807:"Adnan":"Edgardo":19.010|935:"Adnan":"Edgardo":19.010:935:"Adnan":"Edgardo":19.010|40:"Adnan":"Bob":19.010:40:"Adnan":"Bob":19.010|168:"Adnan":"Bob":19.010:168:"Adnan":"Bob":19.010|296:"Adnan":"Bob":19.010:296:"Adnan":"Bob":19.010|424:"Adnan":"Bob":19.010:424:"Adnan":"Bob":19.010|552:"Adnan":"Bob":19.010:552:"Adnan":"Bob":19.010|680:"Adnan":"Bob":19.010:680:"Adnan":"Bob":19.010|808:"Adnan":"Bob":19.010:808:"Adnan":"Bob":19.010|936:"Adnan":"Bob":19.010:936:"Adnan":"Bob":19.010|41:"Adnan":"Edgardo":19.010:41:"Adnan":"Edgardo":19.010|169:"Adnan":"Edgardo":19.010:169:"Adnan":"Edgardo":19.010|297:"Adnan":"Edgardo":19.010:297:"Adnan":"Edgardo":19.010|425:"Adnan":"Edgardo":19.010:425:"Adnan":"Edgardo":19.010|553:"Adnan":"Edgardo":19.010:553:"Adnan":"Edgardo":19.010|681:"Adnan":"Edgardo":19.010:681:"Adnan":"Edgardo":19.010|809:"Adnan":"Edgardo":19.010:809:"Adnan":"Edgardo":19.010|937:"Adnan":"Edgardo":19.010:937:"Adnan":"Edgardo":19.010|42:"Adnan":"Bob":19.010:42:"Adnan":"Bob":19.010|170:"Adnan":"Bob":19.010:170:"Adnan":"Bob":19.010|298:"Adnan":"Bob":19.010:298:"Adnan":"Bob":19.010|426:"Adnan":"Bob":19.010:426:"Adnan":"Bob":19.010|554:"Adnan":"Bob":19.010:554:"Adnan":"Bob":19.010|682:"Adnan":"Bob":19.010:682:"Adnan":"Bob":19.010|810:"Adnan":"Bob":19.010:810:"Adnan":"Bob":19.010|938:"Adnan":"Bob":19.010:938:"Adnan":"Bob":19.010|43:"Adnan":"Edgardo":19.010:43:"Adnan":"Edgardo":19.010|171:"Adnan":"Edgardo":19.010:171:"Adnan":"Edgardo":19.010|299:"Adnan":"Edgardo":19.010:299:"Adnan":"Edgardo":19.010|427:"Adnan":"Edgardo":19.010:427:"Adnan":"Edgardo":19.010|555:"Adnan":"Edgardo":19.010:555:"Adnan":"Edgardo":19.010|683:"Adnan":"Edgardo":19.010:683:"Adnan":"Edgardo":19.010|811:"Adnan":"Edgardo":19.010:811:"Adnan":"Edgardo":19.010|939:"Adnan":"Edgardo":19.010:939:"Adnan":"Edgardo":19.010|44:"Adnan":"Bob":19.010:44:"Adnan":"Bob":19.010|172:"Adnan":"Bob":19.010:172:"Adnan":"Bob":19.010|300:"Adnan":"Bob":19.010:300:"Adnan":"Bob":19.010|428:"Adnan":"Bob":19.010:428:"Adnan":"Bob":19.010|556:"Adnan":"Bob":19.010:556:"Adnan":"Bob":19.010|684:"Adnan":"Bob":19.010:684:"Adnan":"Bob":19.010|812:"Adnan":"Bob":19.010:812:"Adnan":"Bob":19.010|940:"Adnan":"Bob":19.010:940:"Adnan":"Bob":19.010|45:"Adnan":"Edgardo":19.010:45:"Adnan":"Edgardo":19.010|173:"Adnan":"Edgardo":19.010:173:"Adnan":"Edgardo":19.010|301:"Adnan":"Edgardo":19.010:301:"Adnan":"Edgardo":19.010|429:"Adnan":"Edgardo":19.010:429:"Adnan":"Edgardo":19.010|557:"Adnan":"Edgardo":19.010:557:"Adnan":"Edgardo":19.010|685:"Adnan":"Edgardo":19.010:685:"Adnan":"Edgardo":19.010|813:"Adnan":"Edgardo":19.010:813:"Adnan":"Edgardo":19.010|941:"Adnan":"Edgardo":19.010:941:"Adnan":"Edgardo":19.010|46:"Adnan":"Bob":19.010:46:"Adnan":"Bob":19.010|174:"Adnan":"Bob":19.010:174:"Adnan":"Bob":19.010|302:"Adnan":"Bob":19.010:302:"Adnan":"Bob":19.010|430:"Adnan":"Bob":19.010:430:"Adnan":"Bob":19.010|558:"Adnan":"Bob":19.010:558:"Adnan":"Bob":19.010|686:"Adnan":"Bob":19.010:686:"Adnan":"Bob":19.010|814:"Adnan":"Bob":19.010:814:"Adnan":"Bob":19.010|942:"Adnan":"Bob":19.010:942:"Adnan":"Bob":19.010|47:"Adnan":"Edgardo":19.010:47:"Adnan":"Edgardo":19.010|175:"Adnan":"Edgardo":19.010:175:"Adnan":"Edgardo":19.010|303:"Adnan":"Edgardo":19.010:303:"Adnan":"Edgardo":19.010|431:"Adnan":"Edgardo":19.010:431:"Adnan":"Edgardo":19.010|559:"Adnan":"Edgardo":19.010:559:"Adnan":"Edgardo":19.010|687:"Adnan":"Edgardo":19.010:687:"Adnan":"Edgardo":19.010|815:"Adnan":"Edgardo":19.010:815:"Adnan":"Edgardo":19.010|943:"Adnan":"Edgardo":19.010:943:"Adnan":"Edgardo":19.010|48:"Adnan":"Bob":19.010:48:"Adnan":"Bob":19.010|176:"Adnan":"Bob":19.010:176:"Adnan":"Bob":19.010|304:"Adnan":"Bob":19.010:304:"Adnan":"Bob":19.010|432:"Adnan":"Bob":19.010:432:"Adnan":"Bob":19.010|560:"Adnan":"Bob":19.010:560:"Adnan":"Bob":19.010|688:"Adnan":"Bob":19.010:688:"Adnan":"Bob":19.010|816:"Adnan":"Bob":19.010:816:"Adnan":"Bob":19.010|944:"Adnan":"Bob":19.010:944:"Adnan":"Bob":19.010|49:"Adnan":"Edgardo":19.010:49:"Adnan":"Edgardo":19.010|177:"Adnan":"Edgardo":19.010:177:"Adnan":"Edgardo":19.010|305:"Adnan":"Edgardo":19.010:305:"Adnan":"Edgardo":19.010|433:"Adnan":"Edgardo":19.010:433:"Adnan":"Edgardo":19.010|561:"Adnan":"Edgardo":19.010:561:"Adnan":"Edgardo":19.010|689:"Adnan":"Edgardo":19.010:689:"Adnan":"Edgardo":19.010|817:"Adnan":"Edgardo":19.010:817:"Adnan":"Edgardo":19.010|945:"Adnan":"Edgardo":19.010:945:"Adnan":"Edgardo":19.010|50:"Adnan":"Bob":19.010:50:"Adnan":"Bob":19.010|178:"Adnan":"Bob":19.010:178:"Adnan":"Bob":19.010|306:"Adnan":"Bob":19.010:306:"Adnan":"Bob":19.010|434:"Adnan":"Bob":19.010:434:"Adnan":"Bob":19.010|562:"Adnan":"Bob":19.010:562:"Adnan":"Bob":19.010|690:"Adnan":"Bob":19.010:690:"Adnan":"Bob":19.010|818:"Adnan":"Bob":19.010:818:"Adnan":"Bob":19.010|946:"Adnan":"Bob":19.010:946:"Adnan":"Bob":19.010|51:"Adnan":"Edgardo":19.010:51:"Adnan":"Edgardo":19.010|179:"Adnan":"Edgardo":19.010:179:"Adnan":"Edgardo":19.010|307:"Adnan":"Edgardo":19.010:307:"Adnan":"Edgardo":19.010|435:"Adnan":"Edgardo":19.010:435:"Adnan":"Edgardo":19.010|563:"Adnan":"Edgardo":19.010:563:"Adnan":"Edgardo":19.010|691:"Adnan":"Edgardo":19.010:691:"Adnan":"Edgardo":19.010|819:"Adnan":"Edgardo":19.010:819:"Adnan":"Edgardo":19.010|947:"Adnan":"Edgardo":19.010:947:"Adnan":"Edgardo":19.010|52:"Adnan":"Bob":19.010:52:"Adnan":"Bob":19.010|180:"Adnan":"Bob":19.010:180:"Adnan":"Bob":19.010|308:"Adnan":"Bob":19.010:308:"Adnan":"Bob":19.010|436:"Adnan":"Bob":19.010:436:"Adnan":"Bob":19.010|564:"Adnan":"Bob":19.010:564:"Adnan":"Bob":19.010|692:"Adnan":"Bob":19.010:692:"Adnan":"Bob":19.010|820:"Adnan":"Bob":19.010:820:"Adnan":"Bob":19.010|948:"Adnan":"Bob":19.010:948:"Adnan":"Bob":19.010|53:"Adnan":"Edgardo":19.010:53:"Adnan":"Edgardo":19.010|181:"Adnan":"Edgardo":19.010:181:"Adnan":"Edgardo":19.010|309:"Adnan":"Edgardo":19.010:309:"Adnan":"Edgardo":19.010|437:"Adnan":"Edgardo":19.010:437:"Adnan":"Edgardo":19.010|565:"Adnan":"Edgardo":19.010:565:"Adnan":"Edgardo":19.010|693:"Adnan":"Edgardo":19.010:693:"Adnan":"Edgardo":19.010|821:"Adnan":"Edgardo":19.010:821:"Adnan":"Edgardo":19.010|949:"Adnan":"Edgardo":19.010:949:"Adnan":"Edgardo":19.010|54:"Adnan":"Bob":19.010:54:"Adnan":"Bob":19.010|182:"Adnan":"Bob":19.010:182:"Adnan":"Bob":19.010|310:"Adnan":"Bob":19.010:310:"Adnan":"Bob":19.010|438:"Adnan":"Bob":19.010:438:"Adnan":"Bob":19.010|566:"Adnan":"Bob":19.010:566:"Adnan":"Bob":19.010|694:"Adnan":"Bob":19.010:694:"Adnan":"Bob":19.010|822:"Adnan":"Bob":19.010:822:"Adnan":"Bob":19.010|950:"Adnan":"Bob":19.010:950:"Adnan":"Bob":19.010|55:"Adnan":"Edgardo":19.010:55:"Adnan":"Edgardo":19.010|183:"Adnan":"Edgardo":19.010:183:"Adnan":"Edgardo":19.010|311:"Adnan":"Edgardo":19.010:311:"Adnan":"Edgardo":19.010|439:"Adnan":"Edgardo":19.010:439:"Adnan":"Edgardo":19.010|567:"Adnan":"Edgardo":19.010:567:"Adnan":"Edgardo":19.010|695:"Adnan":"Edgardo":19.010:695:"Adnan":"Edgardo":19.010|823:"Adnan":"Edgardo":19.010:823:"Adnan":"Edgardo":19.010|951:"Adnan":"Edgardo":19.010:951:"Adnan":"Edgardo":19.010|56:"Adnan":"Bob":19.010:56:"Adnan":"Bob":19.010|184:"Adnan":"Bob":19.010:184:"Adnan":"Bob":19.010|312:"Adnan":"Bob":19.010:312:"Adnan":"Bob":19.010|440:"Adnan":"Bob":19.010:440:"Adnan":"Bob":19.010|568:"Adnan":"Bob":19.010:568:"Adnan":"Bob":19.010|696:"Adnan":"Bob":19.010:696:"Adnan":"Bob":19.010|824:"Adnan":"Bob":19.010:824:"Adnan":"Bob":19.010|952:"Adnan":"Bob":19.010:952:"Adnan":"Bob":19.010|57:"Adnan":"Edgardo":19.010:57:"Adnan":"Edgardo":19.010|185:"Adnan":"Edgardo":19.010:185:"Adnan":"Edgardo":19.010|313:"Adnan":"Edgardo":19.010:313:"Adnan":"Edgardo":19.010|441:"Adnan":"Edgardo":19.010:441:"Adnan":"Edgardo":19.010|569:"Adnan":"Edgardo":19.010:569:"Adnan":"Edgardo":19.010|697:"Adnan":"Edgardo":19.010:697:"Adnan":"Edgardo":19.010|825:"Adnan":"Edgardo":19.010:825:"Adnan":"Edgardo":19.010|953:"Adnan":"Edgardo":19.010:953:"Adnan":"Edgardo":19.010|58:"Adnan":"Bob":19.010:58:"Adnan":"Bob":19.010|186:"Adnan":"Bob":19.010:186:"Adnan":"Bob":19.010|314:"Adnan":"Bob":19.010:314:"Adnan":"Bob":19.010|442:"Adnan":"Bob":19.010:442:"Adnan":"Bob":19.010|570:"Adnan":"Bob":19.010:570:"Adnan":"Bob":19.010|698:"Adnan":"Bob":19.010:698:"Adnan":"Bob":19.010|826:"Adnan":"Bob":19.010:826:"Adnan":"Bob":19.010|954:"Adnan":"Bob":19.010:954:"Adnan":"Bob":19.010|59:"Adnan":"Edgardo":19.010:59:"Adnan":"Edgardo":19.010|187:"Adnan":"Edgardo":19.010:187:"Adnan":"Edgardo":19.010|315:"Adnan":"Edgardo":19.010:315:"Adnan":"Edgardo":19.010|443:"Adnan":"Edgardo":19.010:443:"Adnan":"Edgardo":19.010|571:"Adnan":"Edgardo":19.010:571:"Adnan":"Edgardo":19.010|699:"Adnan":"Edgardo":19.010:699:"Adnan":"Edgardo":19.010|827:"Adnan":"Edgardo":19.010:827:"Adnan":"Edgardo":19.010|955:"Adnan":"Edgardo":19.010:955:"Adnan":"Edgardo":19.010|60:"Adnan":"Bob":19.010:60:"Adnan":"Bob":19.010|188:"Adnan":"Bob":19.010:188:"Adnan":"Bob":19.010|316:"Adnan":"Bob":19.010:316:"Adnan":"Bob":19.010|444:"Adnan":"Bob":19.010:444:"Adnan":"Bob":19.010|572:"Adnan":"Bob":19.010:572:"Adnan":"Bob":19.010|700:"Adnan":"Bob":19.010:700:"Adnan":"Bob":19.010|828:"Adnan":"Bob":19.010:828:"Adnan":"Bob":19.010|956:"Adnan":"Bob":19.010:956:"Adnan":"Bob":19.010|61:"Adnan":"Edgardo":19.010:61:"Adnan":"Edgardo":19.010|189:"Adnan":"Edgardo":19.010:189:"Adnan":"Edgardo":19.010|317:"Adnan":"Edgardo":19.010:317:"Adnan":"Edgardo":19.010|445:"Adnan":"Edgardo":19.010:445:"Adnan":"Edgardo":19.010|573:"Adnan":"Edgardo":19.010:573:"Adnan":"Edgardo":19.010|701:"Adnan":"Edgardo":19.010:701:"Adnan":"Edgardo":19.010|829:"Adnan":"Edgardo":19.010:829:"Adnan":"Edgardo":19.010|957:"Adnan":"Edgardo":19.010:957:"Adnan":"Edgardo":19.010|62:"Adnan":"Bob":19.010:62:"Adnan":"Bob":19.010|190:"Adnan":"Bob":19.010:190:"Adnan":"Bob":19.010|318:"Adnan":"Bob":19.010:318:"Adnan":"Bob":19.010|446:"Adnan":"Bob":19.010:446:"Adnan":"Bob":19.010|574:"Adnan":"Bob":19.010:574:"Adnan":"Bob":19.010|702:"Adnan":"Bob":19.010:702:"Adnan":"Bob":19.010|830:"Adnan":"Bob":19.010:830:"Adnan":"Bob":19.010|958:"Adnan":"Bob":19.010:958:"Adnan":"Bob":19.010|63:"Adnan":"Edgardo":19.010:63:"Adnan":"Edgardo":19.010|191:"Adnan":"Edgardo":19.010:191:"Adnan":"Edgardo":19.010|319:"Adnan":"Edgardo":19.010:319:"Adnan":"Edgardo":19.010|447:"Adnan":"Edgardo":19.010:447:"Adnan":"Edgardo":19.010|575:"Adnan":"Edgardo":19.010:575:"Adnan":"Edgardo":19.010|703:"Adnan":"Edgardo":19.010:703:"Adnan":"Edgardo":19.010|831:"Adnan":"Edgardo":19.010:831:"Adnan":"Edgardo":19.010|959:"Adnan":"Edgardo":19.010:959:"Adnan":"Edgardo":19.010|64:"Adnan":"Bob":19.010:64:"Adnan":"Bob":19.010|192:"Adnan":"Bob":19.010:192:"Adnan":"Bob":19.010|320:"Adnan":"Bob":19.010:320:"Adnan":"Bob":19.010|448:"Adnan":"Bob":19.010:448:"Adnan":"Bob":19.010|576:"Adnan":"Bob":19.010:576:"Adnan":"Bob":19.010|704:"Adnan":"Bob":19.010:704:"Adnan":"Bob":19.010|832:"Adnan":"Bob":19.010:832:"Adnan":"Bob":19.010|960:"Adnan":"Bob":19.010:960:"Adnan":"Bob":19.010|65:"Adnan":"Edgardo":19.010:65:"Adnan":"Edgardo":19.010|193:"Adnan":"Edgardo":19.010:193:"Adnan":"Edgardo":19.010|321:"Adnan":"Edgardo":19.010:321:"Adnan":"Edgardo":19.010|449:"Adnan":"Edgardo":19.010:449:"Adnan":"Edgardo":19.010|577:"Adnan":"Edgardo":19.010:577:"Adnan":"Edgardo":19.010|705:"Adnan":"Edgardo":19.010:705:"Adnan":"Edgardo":19.010|833:"Adnan":"Edgardo":19.010:833:"Adnan":"Edgardo":19.010|961:"Adnan":"Edgardo":19.010:961:"Adnan":"Edgardo":19.010|66:"Adnan":"Bob":19.010:66:"Adnan":"Bob":19.010|194:"Adnan":"Bob":19.010:194:"Adnan":"Bob":19.010|322:"Adnan":"Bob":19.010:322:"Adnan":"Bob":19.010|450:"Adnan":"Bob":19.010:450:"Adnan":"Bob":19.010|578:"Adnan":"Bob":19.010:578:"Adnan":"Bob":19.010|706:"Adnan":"Bob":19.010:706:"Adnan":"Bob":19.010|834:"Adnan":"Bob":19.010:834:"Adnan":"Bob":19.010|962:"Adnan":"Bob":19.010:962:"Adnan":"Bob":19.010|67:"Adnan":"Edgardo":19.010:67:"Adnan":"Edgardo":19.010|195:"Adnan":"Edgardo":19.010:195:"Adnan":"Edgardo":19.010|323:"Adnan":"Edgardo":19.010:323:"Adnan":"Edgardo":19.010|451:"Adnan":"Edgardo":19.010:451:"Adnan":"Edgardo":19.010|579:"Adnan":"Edgardo":19.010:579:"Adnan":"Edgardo":19.010|707:"Adnan":"Edgardo":19.010:707:"Adnan":"Edgardo":19.010|835:"Adnan":"Edgardo":19.010:835:"Adnan":"Edgardo":19.010|963:"Adnan":"Edgardo":19.010:963:"Adnan":"Edgardo":19.010|68:"Adnan":"Bob":19.010:68:"Adnan":"Bob":19.010|196:"Adnan":"Bob":19.010:196:"Adnan":"Bob":19.010|324:"Adnan":"Bob":19.010:324:"Adnan":"Bob":19.010|452:"Adnan":"Bob":19.010:452:"Adnan":"Bob":19.010|580:"Adnan":"Bob":19.010:580:"Adnan":"Bob":19.010|708:"Adnan":"Bob":19.010:708:"Adnan":"Bob":19.010|836:"Adnan":"Bob":19.010:836:"Adnan":"Bob":19.010|964:"Adnan":"Bob":19.010:964:"Adnan":"Bob":19.010|69:"Adnan":"Edgardo":19.010:69:"Adnan":"Edgardo":19.010|197:"Adnan":"Edgardo":19.010:197:"Adnan":"Edgardo":19.010|325:"Adnan":"Edgardo":19.010:325:"Adnan":"Edgardo":19.010|453:"Adnan":"Edgardo":19.010:453:"Adnan":"Edgardo":19.010|581:"Adnan":"Edgardo":19.010:581:"Adnan":"Edgardo":19.010|709:"Adnan":"Edgardo":19.010:709:"Adnan":"Edgardo":19.010|837:"Adnan":"Edgardo":19.010:837:"Adnan":"Edgardo":19.010|965:"Adnan":"Edgardo":19.010:965:"Adnan":"Edgardo":19.010|70:"Adnan":"Bob":19.010:70:"Adnan":"Bob":19.010|198:"Adnan":"Bob":19.010:198:"Adnan":"Bob":19.010|326:"Adnan":"Bob":19.010:326:"Adnan":"Bob":19.010|454:"Adnan":"Bob":19.010:454:"Adnan":"Bob":19.010|582:"Adnan":"Bob":19.010:582:"Adnan":"Bob":19.010|710:"Adnan":"Bob":19.010:710:"Adnan":"Bob":19.010|838:"Adnan":"Bob":19.010:838:"Adnan":"Bob":19.010|966:"Adnan":"Bob":19.010:966:"Adnan":"Bob":19.010|71:"Adnan":"Edgardo":19.010:71:"Adnan":"Edgardo":19.010|199:"Adnan":"Edgardo":19.010:199:"Adnan":"Edgardo":19.010|327:"Adnan":"Edgardo":19.010:327:"Adnan":"Edgardo":19.010|455:"Adnan":"Edgardo":19.010:455:"Adnan":"Edgardo":19.010|583:"Adnan":"Edgardo":19.010:583:"Adnan":"Edgardo":19.010|711:"Adnan":"Edgardo":19.010:711:"Adnan":"Edgardo":19.010|839:"Adnan":"Edgardo":19.010:839:"Adnan":"Edgardo":19.010|967:"Adnan":"Edgardo":19.010:967:"Adnan":"Edgardo":19.010|72:"Adnan":"Bob":19.010:72:"Adnan":"Bob":19.010|200:"Adnan":"Bob":19.010:200:"Adnan":"Bob":19.010|328:"Adnan":"Bob":19.010:328:"Adnan":"Bob":19.010|456:"Adnan":"Bob":19.010:456:"Adnan":"Bob":19.010|584:"Adnan":"Bob":19.010:584:"Adnan":"Bob":19.010|712:"Adnan":"Bob":19.010:712:"Adnan":"Bob":19.010|840:"Adnan":"Bob":19.010:840:"Adnan":"Bob":19.010|968:"Adnan":"Bob":19.010:968:"Adnan":"Bob":19.010|73:"Adnan":"Edgardo":19.010:73:"Adnan":"Edgardo":19.010|201:"Adnan":"Edgardo":19.010:201:"Adnan":"Edgardo":19.010|329:"Adnan":"Edgardo":19.010:329:"Adnan":"Edgardo":19.010|457:"Adnan":"Edgardo":19.010:457:"Adnan":"Edgardo":19.010|585:"Adnan":"Edgardo":19.010:585:"Adnan":"Edgardo":19.010|713:"Adnan":"Edgardo":19.010:713:"Adnan":"Edgardo":19.010|841:"Adnan":"Edgardo":19.010:841:"Adnan":"Edgardo":19.010|969:"Adnan":"Edgardo":19.010:969:"Adnan":"Edgardo":19.010|74:"Adnan":"Bob":19.010:74:"Adnan":"Bob":19.010|202:"Adnan":"Bob":19.010:202:"Adnan":"Bob":19.010|330:"Adnan":"Bob":19.010:330:"Adnan":"Bob":19.010|458:"Adnan":"Bob":19.010:458:"Adnan":"Bob":19.010|586:"Adnan":"Bob":19.010:586:"Adnan":"Bob":19.010|714:"Adnan":"Bob":19.010:714:"Adnan":"Bob":19.010|842:"Adnan":"Bob":19.010:842:"Adnan":"Bob":19.010|970:"Adnan":"Bob":19.010:970:"Adnan":"Bob":19.010|75:"Adnan":"Edgardo":19.010:75:"Adnan":"Edgardo":19.010|203:"Adnan":"Edgardo":19.010:203:"Adnan":"Edgardo":19.010|331:"Adnan":"Edgardo":19.010:331:"Adnan":"Edgardo":19.010|459:"Adnan":"Edgardo":19.010:459:"Adnan":"Edgardo":19.010|587:"Adnan":"Edgardo":19.010:587:"Adnan":"Edgardo":19.010|715:"Adnan":"Edgardo":19.010:715:"Adnan":"Edgardo":19.010|843:"Adnan":"Edgardo":19.010:843:"Adnan":"Edgardo":19.010|971:"Adnan":"Edgardo":19.010:971:"Adnan":"Edgardo":19.010|76:"Adnan":"Bob":19.010:76:"Adnan":"Bob":19.010|204:"Adnan":"Bob":19.010:204:"Adnan":"Bob":19.010|332:"Adnan":"Bob":19.010:332:"Adnan":"Bob":19.010|460:"Adnan":"Bob":19.010:460:"Adnan":"Bob":19.010|588:"Adnan":"Bob":19.010:588:"Adnan":"Bob":19.010|716:"Adnan":"Bob":19.010:716:"Adnan":"Bob":19.010|844:"Adnan":"Bob":19.010:844:"Adnan":"Bob":19.010|972:"Adnan":"Bob":19.010:972:"Adnan":"Bob":19.010|77:"Adnan":"Edgardo":19.010:77:"Adnan":"Edgardo":19.010|205:"Adnan":"Edgardo":19.010:205:"Adnan":"Edgardo":19.010|333:"Adnan":"Edgardo":19.010:333:"Adnan":"Edgardo":19.010|461:"Adnan":"Edgardo":19.010:461:"Adnan":"Edgardo":19.010|589:"Adnan":"Edgardo":19.010:589:"Adnan":"Edgardo":19.010|717:"Adnan":"Edgardo":19.010:717:"Adnan":"Edgardo":19.010|845:"Adnan":"Edgardo":19.010:845:"Adnan":"Edgardo":19.010|973:"Adnan":"Edgardo":19.010:973:"Adnan":"Edgardo":19.010|78:"Adnan":"Bob":19.010:78:"Adnan":"Bob":19.010|206:"Adnan":"Bob":19.010:206:"Adnan":"Bob":19.010|334:"Adnan":"Bob":19.010:334:"Adnan":"Bob":19.010|462:"Adnan":"Bob":19.010:462:"Adnan":"Bob":19.010|590:"Adnan":"Bob":19.010:590:"Adnan":"Bob":19.010|718:"Adnan":"Bob":19.010:718:"Adnan":"Bob":19.010|846:"Adnan":"Bob":19.010:846:"Adnan":"Bob":19.010|974:"Adnan":"Bob":19.010:974:"Adnan":"Bob":19.010|79:"Adnan":"Edgardo":19.010:79:"Adnan":"Edgardo":19.010|207:"Adnan":"Edgardo":19.010:207:"Adnan":"Edgardo":19.010|335:"Adnan":"Edgardo":19.010:335:"Adnan":"Edgardo":19.010|463:"Adnan":"Edgardo":19.010:463:"Adnan":"Edgardo":19.010|591:"Adnan":"Edgardo":19.010:591:"Adnan":"Edgardo":19.010|719:"Adnan":"Edgardo":19.010:719:"Adnan":"Edgardo":19.010|847:"Adnan":"Edgardo":19.010:847:"Adnan":"Edgardo":19.010|975:"Adnan":"Edgardo":19.010:975:"Adnan":"Edgardo":19.010|80:"Adnan":"Bob":19.010:80:"Adnan":"Bob":19.010|208:"Adnan":"Bob":19.010:208:"Adnan":"Bob":19.010|336:"Adnan":"Bob":19.010:336:"Adnan":"Bob":19.010|464:"Adnan":"Bob":19.010:464:"Adnan":"Bob":19.010|592:"Adnan":"Bob":19.010:592:"Adnan":"Bob":19.010|720:"Adnan":"Bob":19.010:720:"Adnan":"Bob":19.010|848:"Adnan":"Bob":19.010:848:"Adnan":"Bob":19.010|976:"Adnan":"Bob":19.010:976:"Adnan":"Bob":19.010|81:"Adnan":"Edgardo":19.010:81:"Adnan":"Edgardo":19.010|209:"Adnan":"Edgardo":19.010:209:"Adnan":"Edgardo":19.010|337:"Adnan":"Edgardo":19.010:337:"Adnan":"Edgardo":19.010|465:"Adnan":"Edgardo":19.010:465:"Adnan":"Edgardo":19.010|593:"Adnan":"Edgardo":19.010:593:"Adnan":"Edgardo":19.010|721:"Adnan":"Edgardo":19.010:721:"Adnan":"Edgardo":19.010|849:"Adnan":"Edgardo":19.010:849:"Adnan":"Edgardo":19.010|977:"Adnan":"Edgardo":19.010:977:"Adnan":"Edgardo":19.010|82:"Adnan":"Bob":19.010:82:"Adnan":"Bob":19.010|210:"Adnan":"Bob":19.010:210:"Adnan":"Bob":19.010|338:"Adnan":"Bob":19.010:338:"Adnan":"Bob":19.010|466:"Adnan":"Bob":19.010:466:"Adnan":"Bob":19.010|594:"Adnan":"Bob":19.010:594:"Adnan":"Bob":19.010|722:"Adnan":"Bob":19.010:722:"Adnan":"Bob":19.010|850:"Adnan":"Bob":19.010:850:"Adnan":"Bob":19.010|978:"Adnan":"Bob":19.010:978:"Adnan":"Bob":19.010|83:"Adnan":"Edgardo":19.010:83:"Adnan":"Edgardo":19.010|211:"Adnan":"Edgardo":19.010:211:"Adnan":"Edgardo":19.010|339:"Adnan":"Edgardo":19.010:339:"Adnan":"Edgardo":19.010|467:"Adnan":"Edgardo":19.010:467:"Adnan":"Edgardo":19.010|595:"Adnan":"Edgardo":19.010:595:"Adnan":"Edgardo":19.010|723:"Adnan":"Edgardo":19.010:723:"Adnan":"Edgardo":19.010|851:"Adnan":"Edgardo":19.010:851:"Adnan":"Edgardo":19.010|979:"Adnan":"Edgardo":19.010:979:"Adnan":"Edgardo":19.010|84:"Adnan":"Bob":19.010:84:"Adnan":"Bob":19.010|212:"Adnan":"Bob":19.010:212:"Adnan":"Bob":19.010|340:"Adnan":"Bob":19.010:340:"Adnan":"Bob":19.010|468:"Adnan":"Bob":19.010:468:"Adnan":"Bob":19.010|596:"Adnan":"Bob":19.010:596:"Adnan":"Bob":19.010|724:"Adnan":"Bob":19.010:724:"Adnan":"Bob":19.010|852:"Adnan":"Bob":19.010:852:"Adnan":"Bob":19.010|980:"Adnan":"Bob":19.010:980:"Adnan":"Bob":19.010|85:"Adnan":"Edgardo":19.010:85:"Adnan":"Edgardo":19.010|213:"Adnan":"Edgardo":19.010:213:"Adnan":"Edgardo":19.010|341:"Adnan":"Edgardo":19.010:341:"Adnan":"Edgardo":19.010|469:"Adnan":"Edgardo":19.010:469:"Adnan":"Edgardo":19.010|597:"Adnan":"Edgardo":19.010:597:"Adnan":"Edgardo":19.010|725:"Adnan":"Edgardo":19.010:725:"Adnan":"Edgardo":19.010|853:"Adnan":"Edgardo":19.010:853:"Adnan":"Edgardo":19.010|981:"Adnan":"Edgardo":19.010:981:"Adnan":"Edgardo":19.010|86:"Adnan":"Bob":19.010:86:"Adnan":"Bob":19.010|214:"Adnan":"Bob":19.010:214:"Adnan":"Bob":19.010|342:"Adnan":"Bob":19.010:342:"Adnan":"Bob":19.010|470:"Adnan":"Bob":19.010:470:"Adnan":"Bob":19.010|598:"Adnan":"Bob":19.010:598:"Adnan":"Bob":19.010|726:"Adnan":"Bob":19.010:726:"Adnan":"Bob":19.010|854:"Adnan":"Bob":19.010:854:"Adnan":"Bob":19.010|982:"Adnan":"Bob":19.010:982:"Adnan":"Bob":19.010|87:"Adnan":"Edgardo":19.010:87:"Adnan":"Edgardo":19.010|215:"Adnan":"Edgardo":19.010:215:"Adnan":"Edgardo":19.010|343:"Adnan":"Edgardo":19.010:343:"Adnan":"Edgardo":19.010|471:"Adnan":"Edgardo":19.010:471:"Adnan":"Edgardo":19.010|599:"Adnan":"Edgardo":19.010:599:"Adnan":"Edgardo":19.010|727:"Adnan":"Edgardo":19.010:727:"Adnan":"Edgardo":19.010|855:"Adnan":"Edgardo":19.010:855:"Adnan":"Edgardo":19.010|983:"Adnan":"Edgardo":19.010:983:"Adnan":"Edgardo":19.010|88:"Adnan":"Bob":19.010:88:"Adnan":"Bob":19.010|216:"Adnan":"Bob":19.010:216:"Adnan":"Bob":19.010|344:"Adnan":"Bob":19.010:344:"Adnan":"Bob":19.010|472:"Adnan":"Bob":19.010:472:"Adnan":"Bob":19.010|600:"Adnan":"Bob":19.010:600:"Adnan":"Bob":19.010|728:"Adnan":"Bob":19.010:728:"Adnan":"Bob":19.010|856:"Adnan":"Bob":19.010:856:"Adnan":"Bob":19.010|984:"Adnan":"Bob":19.010:984:"Adnan":"Bob":19.010|89:"Adnan":"Edgardo":19.010:89:"Adnan":"Edgardo":19.010|217:"Adnan":"Edgardo":19.010:217:"Adnan":"Edgardo":19.010|345:"Adnan":"Edgardo":19.010:345:"Adnan":"Edgardo":19.010|473:"Adnan":"Edgardo":19.010:473:"Adnan":"Edgardo":19.010|601:"Adnan":"Edgardo":19.010:601:"Adnan":"Edgardo":19.010|729:"Adnan":"Edgardo":19.010:729:"Adnan":"Edgardo":19.010|857:"Adnan":"Edgardo":19.010:857:"Adnan":"Edgardo":19.010|985:"Adnan":"Edgardo":19.010:985:"Adnan":"Edgardo":19.010|90:"Adnan":"Bob":19.010:90:"Adnan":"Bob":19.010|218:"Adnan":"Bob":19.010:218:"Adnan":"Bob":19.010|346:"Adnan":"Bob":19.010:346:"Adnan":"Bob":19.010|474:"Adnan":"Bob":19.010:474:"Adnan":"Bob":19.010|602:"Adnan":"Bob":19.010:602:"Adnan":"Bob":19.010|730:"Adnan":"Bob":19.010:730:"Adnan":"Bob":19.010|858:"Adnan":"Bob":19.010:858:"Adnan":"Bob":19.010|986:"Adnan":"Bob":19.010:986:"Adnan":"Bob":19.010|91:"Adnan":"Edgardo":19.010:91:"Adnan":"Edgardo":19.010|219:"Adnan":"Edgardo":19.010:219:"Adnan":"Edgardo":19.010|347:"Adnan":"Edgardo":19.010:347:"Adnan":"Edgardo":19.010|475:"Adnan":"Edgardo":19.010:475:"Adnan":"Edgardo":19.010|603:"Adnan":"Edgardo":19.010:603:"Adnan":"Edgardo":19.010|731:"Adnan":"Edgardo":19.010:731:"Adnan":"Edgardo":19.010|859:"Adnan":"Edgardo":19.010:859:"Adnan":"Edgardo":19.010|987:"Adnan":"Edgardo":19.010:987:"Adnan":"Edgardo":19.010|92:"Adnan":"Bob":19.010:92:"Adnan":"Bob":19.010|220:"Adnan":"Bob":19.010:220:"Adnan":"Bob":19.010|348:"Adnan":"Bob":19.010:348:"Adnan":"Bob":19.010|476:"Adnan":"Bob":19.010:476:"Adnan":"Bob":19.010|604:"Adnan":"Bob":19.010:604:"Adnan":"Bob":19.010|732:"Adnan":"Bob":19.010:732:"Adnan":"Bob":19.010|860:"Adnan":"Bob":19.010:860:"Adnan":"Bob":19.010|988:"Adnan":"Bob":19.010:988:"Adnan":"Bob":19.010|93:"Adnan":"Edgardo":19.010:93:"Adnan":"Edgardo":19.010|221:"Adnan":"Edgardo":19.010:221:"Adnan":"Edgardo":19.010|349:"Adnan":"Edgardo":19.010:349:"Adnan":"Edgardo":19.010|477:"Adnan":"Edgardo":19.010:477:"Adnan":"Edgardo":19.010|605:"Adnan":"Edgardo":19.010:605:"Adnan":"Edgardo":19.010|733:"Adnan":"Edgardo":19.010:733:"Adnan":"Edgardo":19.010|861:"Adnan":"Edgardo":19.010:861:"Adnan":"Edgardo":19.010|989:"Adnan":"Edgardo":19.010:989:"Adnan":"Edgardo":19.010|94:"Adnan":"Bob":19.010:94:"Adnan":"Bob":19.010|222:"Adnan":"Bob":19.010:222:"Adnan":"Bob":19.010|350:"Adnan":"Bob":19.010:350:"Adnan":"Bob":19.010|478:"Adnan":"Bob":19.010:478:"Adnan":"Bob":19.010|606:"Adnan":"Bob":19.010:606:"Adnan":"Bob":19.010|734:"Adnan":"Bob":19.010:734:"Adnan":"Bob":19.010|862:"Adnan":"Bob":19.010:862:"Adnan":"Bob":19.010|990:"Adnan":"Bob":19.010:990:"Adnan":"Bob":19.010|95:"Adnan":"Edgardo":19.010:95:"Adnan":"Edgardo":19.010|223:"Adnan":"Edgardo":19.010:223:"Adnan":"Edgardo":19.010|351:"Adnan":"Edgardo":19.010:351:"Adnan":"Edgardo":19.010|479:"Adnan":"Edgardo":19.010:479:"Adnan":"Edgardo":19.010|607:"Adnan":"Edgardo":19.010:607:"Adnan":"Edgardo":19.010|735:"Adnan":"Edgardo":19.010:735:"Adnan":"Edgardo":19.010|863:"Adnan":"Edgardo":19.010:863:"Adnan":"Edgardo":19.010|991:"Adnan":"Edgardo":19.010:991:"Adnan":"Edgardo":19.010|96:"Adnan":"Bob":19.010:96:"Adnan":"Bob":19.010|224:"Adnan":"Bob":19.010:224:"Adnan":"Bob":19.010|352:"Adnan":"Bob":19.010:352:"Adnan":"Bob":19.010|480:"Adnan":"Bob":19.010:480:"Adnan":"Bob":19.010|608:"Adnan":"Bob":19.010:608:"Adnan":"Bob":19.010|736:"Adnan":"Bob":19.010:736:"Adnan":"Bob":19.010|864:"Adnan":"Bob":19.010:864:"Adnan":"Bob":19.010|992:"Adnan":"Bob":19.010:992:"Adnan":"Bob":19.010|97:"Adnan":"Edgardo":19.010:97:"Adnan":"Edgardo":19.010|225:"Adnan":"Edgardo":19.010:225:"Adnan":"Edgardo":19.010|353:"Adnan":"Edgardo":19.010:353:"Adnan":"Edgardo":19.010|481:"Adnan":"Edgardo":19.010:481:"Adnan":"Edgardo":19.010|609:"Adnan":"Edgardo":19.010:609:"Adnan":"Edgardo":19.010|737:"Adnan":"Edgardo":19.010:737:"Adnan":"Edgardo":19.010|865:"Adnan":"Edgardo":19.010:865:"Adnan":"Edgardo":19.010|993:"Adnan":"Edgardo":19.010:993:"Adnan":"Edgardo":19.010|98:"Adnan":"Bob":19.010:98:"Adnan":"Bob":19.010|226:"Adnan":"Bob":19.010:226:"Adnan":"Bob":19.010|354:"Adnan":"Bob":19.010:354:"Adnan":"Bob":19.010|482:"Adnan":"Bob":19.010:482:"Adnan":"Bob":19.010|610:"Adnan":"Bob":19.010:610:"Adnan":"Bob":19.010|738:"Adnan":"Bob":19.010:738:"Adnan":"Bob":19.010|866:"Adnan":"Bob":19.010:866:"Adnan":"Bob":19.010|994:"Adnan":"Bob":19.010:994:"Adnan":"Bob":19.010|99:"Adnan":"Edgardo":19.010:99:"Adnan":"Edgardo":19.010|227:"Adnan":"Edgardo":19.010:227:"Adnan":"Edgardo":19.010|355:"Adnan":"Edgardo":19.010:355:"Adnan":"Edgardo":19.010|483:"Adnan":"Edgardo":19.010:483:"Adnan":"Edgardo":19.010|611:"Adnan":"Edgardo":19.010:611:"Adnan":"Edgardo":19.010|739:"Adnan":"Edgardo":19.010:739:"Adnan":"Edgardo":19.010|867:"Adnan":"Edgardo":19.010:867:"Adnan":"Edgardo":19.010|995:"Adnan":"Edgardo":19.010:995:"Adnan":"Edgardo":19.010|100:"Adnan":"Bob":19.010:100:"Adnan":"Bob":19.010|228:"Adnan":"Bob":19.010:228:"Adnan":"Bob":19.010|356:"Adnan":"Bob":19.010:356:"Adnan":"Bob":19.010|484:"Adnan":"Bob":19.010:484:"Adnan":"Bob":19.010|612:"Adnan":"Bob":19.010:612:"Adnan":"Bob":19.010|740:"Adnan":"Bob":19.010:740:"Adnan":"Bob":19.010|868:"Adnan":"Bob":19.010:868:"Adnan":"Bob":19.010|996:"Adnan":"Bob":19.010:996:"Adnan":"Bob":19.010|101:"Adnan":"Edgardo":19.010:101:"Adnan":"Edgardo":19.010|229:"Adnan":"Edgardo":19.010:229:"Adnan":"Edgardo":19.010|357:"Adnan":"Edgardo":19.010:357:"Adnan":"Edgardo":19.010|485:"Adnan":"Edgardo":19.010:485:"Adnan":"Edgardo":19.010|613:"Adnan":"Edgardo":19.010:613:"Adnan":"Edgardo":19.010|741:"Adnan":"Edgardo":19.010:741:"Adnan":"Edgardo":19.010|869:"Adnan":"Edgardo":19.010:869:"Adnan":"Edgardo":19.010|997:"Adnan":"Edgardo":19.010:997:"Adnan":"Edgardo":19.010|102:"Adnan":"Bob":19.010:102:"Adnan":"Bob":19.010|230:"Adnan":"Bob":19.010:230:"Adnan":"Bob":19.010|358:"Adnan":"Bob":19.010:358:"Adnan":"Bob":19.010|486:"Adnan":"Bob":19.010:486:"Adnan":"Bob":19.010|614:"Adnan":"Bob":19.010:614:"Adnan":"Bob":19.010|742:"Adnan":"Bob":19.010:742:"Adnan":"Bob":19.010|870:"Adnan":"Bob":19.010:870:"Adnan":"Bob":19.010|998:"Adnan":"Bob":19.010:998:"Adnan":"Bob":19.010|103:"Adnan":"Edgardo":19.010:103:"Adnan":"Edgardo":19.010|231:"Adnan":"Edgardo":19.010:231:"Adnan":"Edgardo":19.010|359:"Adnan":"Edgardo":19.010:359:"Adnan":"Edgardo":19.010|487:"Adnan":"Edgardo":19.010:487:"Adnan":"Edgardo":19.010|615:"Adnan":"Edgardo":19.010:615:"Adnan":"Edgardo":19.010|743:"Adnan":"Edgardo":19.010:743:"Adnan":"Edgardo":19.010|871:"Adnan":"Edgardo":19.010:871:"Adnan":"Edgardo":19.010|999:"Adnan":"Edgardo":19.010:999:"Adnan":"Edgardo":19.010|104:"Adnan":"Bob":19.010:104:"Adnan":"Bob":19.010|232:"Adnan":"Bob":19.010:232:"Adnan":"Bob":19.010|360:"Adnan":"Bob":19.010:360:"Adnan":"Bob":19.010|488:"Adnan":"Bob":19.010:488:"Adnan":"Bob":19.010|616:"Adnan":"Bob":19.010:616:"Adnan":"Bob":19.010|744:"Adnan":"Bob":19.010:744:"Adnan":"Bob":19.010|872:"Adnan":"Bob":19.010:872:"Adnan":"Bob":19.010|1000:"Adnan":"Bob":19.010:1000:"Adnan":"Bob":19.010|105:"Adnan":"Edgardo":19.010:105:"Adnan":"Edgardo":19.010|233:"Adnan":"Edgardo":19.010:233:"Adnan":"Edgardo":19.010|361:"Adnan":"Edgardo":19.010:361:"Adnan":"Edgardo":19.010|489:"Adnan":"Edgardo":19.010:489:"Adnan":"Edgardo":19.010|617:"Adnan":"Edgardo":19.010:617:"Adnan":"Edgardo":19.010|745:"Adnan":"Edgardo":19.010:745:"Adnan":"Edgardo":19.010|873:"Adnan":"Edgardo":19.010:873:"Adnan":"Edgardo":19.010|1001:"Adnan":"Edgardo":19.010:1001:"Adnan":"Edgardo":19.010|106:"Adnan":"Bob":19.010:106:"Adnan":"Bob":19.010|234:"Adnan":"Bob":19.010:234:"Adnan":"Bob":19.010|362:"Adnan":"Bob":19.010:362:"Adnan":"Bob":19.010|490:"Adnan":"Bob":19.010:490:"Adnan":"Bob":19.010|618:"Adnan":"Bob":19.010:618:"Adnan":"Bob":19.010|746:"Adnan":"Bob":19.010:746:"Adnan":"Bob":19.010|874:"Adnan":"Bob":19.010:874:"Adnan":"Bob":19.010|1002:"Adnan":"Bob":19.010:1002:"Adnan":"Bob":19.010|107:"Adnan":"Edgardo":19.010:107:"Adnan":"Edgardo":19.010|235:"Adnan":"Edgardo":19.010:235:"Adnan":"Edgardo":19.010|363:"Adnan":"Edgardo":19.010:363:"Adnan":"Edgardo":19.010|491:"Adnan":"Edgardo":19.010:491:"Adnan":"Edgardo":19.010|619:"Adnan":"Edgardo":19.010:619:"Adnan":"Edgardo":19.010|747:"Adnan":"Edgardo":19.010:747:"Adnan":"Edgardo":19.010|875:"Adnan":"Edgardo":19.010:875:"Adnan":"Edgardo":19.010|1003:"Adnan":"Edgardo":19.010:1003:"Adnan":"Edgardo":19.010|108:"Adnan":"Bob":19.010:108:"Adnan":"Bob":19.010|236:"Adnan":"Bob":19.010:236:"Adnan":"Bob":19.010|364:"Adnan":"Bob":19.010:364:"Adnan":"Bob":19.010|492:"Adnan":"Bob":19.010:492:"Adnan":"Bob":19.010|620:"Adnan":"Bob":19.010:620:"Adnan":"Bob":19.010|748:"Adnan":"Bob":19.010:748:"Adnan":"Bob":19.010|876:"Adnan":"Bob":19.010:876:"Adnan":"Bob":19.010|1004:"Adnan":"Bob":19.010:1004:"Adnan":"Bob":19.010|109:"Adnan":"Edgardo":19.010:109:"Adnan":"Edgardo":19.010|237:"Adnan":"Edgardo":19.010:237:"Adnan":"Edgardo":19.010|365:"Adnan":"Edgardo":19.010:365:"Adnan":"Edgardo":19.010|493:"Adnan":"Edgardo":19.010:493:"Adnan":"Edgardo":19.010|621:"Adnan":"Edgardo":19.010:621:"Adnan":"Edgardo":19.010|749:"Adnan":"Edgardo":19.010:749:"Adnan":"Edgardo":19.010|877:"Adnan":"Edgardo":19.010:877:"Adnan":"Edgardo":19.010|1005:"Adnan":"Edgardo":19.010:1005:"Adnan":"Edgardo":19.010|110:"Adnan":"Bob":19.010:110:"Adnan":"Bob":19.010|238:"Adnan":"Bob":19.010:238:"Adnan":"Bob":19.010|366:"Adnan":"Bob":19.010:366:"Adnan":"Bob":19.010|494:"Adnan":"Bob":19.010:494:"Adnan":"Bob":19.010|622:"Adnan":"Bob":19.010:622:"Adnan":"Bob":19.010|750:"Adnan":"Bob":19.010:750:"Adnan":"Bob":19.010|878:"Adnan":"Bob":19.010:878:"Adnan":"Bob":19.010|1006:"Adnan":"Bob":19.010:1006:"Adnan":"Bob":19.010|111:"Adnan":"Edgardo":19.010:111:"Adnan":"Edgardo":19.010|239:"Adnan":"Edgardo":19.010:239:"Adnan":"Edgardo":19.010|367:"Adnan":"Edgardo":19.010:367:"Adnan":"Edgardo":19.010|495:"Adnan":"Edgardo":19.010:495:"Adnan":"Edgardo":19.010|623:"Adnan":"Edgardo":19.010:623:"Adnan":"Edgardo":19.010|751:"Adnan":"Edgardo":19.010:751:"Adnan":"Edgardo":19.010|879:"Adnan":"Edgardo":19.010:879:"Adnan":"Edgardo":19.010|1007:"Adnan":"Edgardo":19.010:1007:"Adnan":"Edgardo":19.010|112:"Adnan":"Bob":19.010:112:"Adnan":"Bob":19.010|240:"Adnan":"Bob":19.010:240:"Adnan":"Bob":19.010|368:"Adnan":"Bob":19.010:368:"Adnan":"Bob":19.010|496:"Adnan":"Bob":19.010:496:"Adnan":"Bob":19.010|624:"Adnan":"Bob":19.010:624:"Adnan":"Bob":19.010|752:"Adnan":"Bob":19.010:752:"Adnan":"Bob":19.010|880:"Adnan":"Bob":19.010:880:"Adnan":"Bob":19.010|1008:"Adnan":"Bob":19.010:1008:"Adnan":"Bob":19.010|113:"Adnan":"Edgardo":19.010:113:"Adnan":"Edgardo":19.010|241:"Adnan":"Edgardo":19.010:241:"Adnan":"Edgardo":19.010|369:"Adnan":"Edgardo":19.010:369:"Adnan":"Edgardo":19.010|497:"Adnan":"Edgardo":19.010:497:"Adnan":"Edgardo":19.010|625:"Adnan":"Edgardo":19.010:625:"Adnan":"Edgardo":19.010|753:"Adnan":"Edgardo":19.010:753:"Adnan":"Edgardo":19.010|881:"Adnan":"Edgardo":19.010:881:"Adnan":"Edgardo":19.010|1009:"Adnan":"Edgardo":19.010:1009:"Adnan":"Edgardo":19.010|114:"Adnan":"Bob":19.010:114:"Adnan":"Bob":19.010|242:"Adnan":"Bob":19.010:242:"Adnan":"Bob":19.010|370:"Adnan":"Bob":19.010:370:"Adnan":"Bob":19.010|498:"Adnan":"Bob":19.010:498:"Adnan":"Bob":19.010|626:"Adnan":"Bob":19.010:626:"Adnan":"Bob":19.010|754:"Adnan":"Bob":19.010:754:"Adnan":"Bob":19.010|882:"Adnan":"Bob":19.010:882:"Adnan":"Bob":19.010|1010:"Adnan":"Bob":19.010:1010:"Adnan":"Bob":19.010|115:"Adnan":"Edgardo":19.010:115:"Adnan":"Edgardo":19.010|243:"Adnan":"Edgardo":19.010:243:"Adnan":"Edgardo":19.010|371:"Adnan":"Edgardo":19.010:371:"Adnan":"Edgardo":19.010|499:"Adnan":"Edgardo":19.010:499:"Adnan":"Edgardo":19.010|627:"Adnan":"Edgardo":19.010:627:"Adnan":"Edgardo":19.010|755:"Adnan":"Edgardo":19.010:755:"Adnan":"Edgardo":19.010|883:"Adnan":"Edgardo":19.010:883:"Adnan":"Edgardo":19.010|116:"Adnan":"Bob":19.010:116:"Adnan":"Bob":19.010|244:"Adnan":"Bob":19.010:244:"Adnan":"Bob":19.010|372:"Adnan":"Bob":19.010:372:"Adnan":"Bob":19.010|500:"Adnan":"Bob":19.010:500:"Adnan":"Bob":19.010|628:"Adnan":"Bob":19.010:628:"Adnan":"Bob":19.010|756:"Adnan":"Bob":19.010:756:"Adnan":"Bob":19.010|884:"Adnan":"Bob":19.010:884:"Adnan":"Bob":19.010|117:"Adnan":"Edgardo":19.010:117:"Adnan":"Edgardo":19.010|245:"Adnan":"Edgardo":19.010:245:"Adnan":"Edgardo":19.010|373:"Adnan":"Edgardo":19.010:373:"Adnan":"Edgardo":19.010|501:"Adnan":"Edgardo":19.010:501:"Adnan":"Edgardo":19.010|629:"Adnan":"Edgardo":19.010:629:"Adnan":"Edgardo":19.010|757:"Adnan":"Edgardo":19.010:757:"Adnan":"Edgardo":19.010|885:"Adnan":"Edgardo":19.010:885:"Adnan":"Edgardo":19.010|118:"Adnan":"Bob":19.010:118:"Adnan":"Bob":19.010|246:"Adnan":"Bob":19.010:246:"Adnan":"Bob":19.010|374:"Adnan":"Bob":19.010:374:"Adnan":"Bob":19.010|502:"Adnan":"Bob":19.010:502:"Adnan":"Bob":19.010|630:"Adnan":"Bob":19.010:630:"Adnan":"Bob":19.010|758:"Adnan":"Bob":19.010:758:"Adnan":"Bob":19.010|886:"Adnan":"Bob":19.010:886:"Adnan":"Bob":19.010|119:"Adnan":"Edgardo":19.010:119:"Adnan":"Edgardo":19.010|247:"Adnan":"Edgardo":19.010:247:"Adnan":"Edgardo":19.010|375:"Adnan":"Edgardo":19.010:375:"Adnan":"Edgardo":19.010|503:"Adnan":"Edgardo":19.010:503:"Adnan":"Edgardo":19.010|631:"Adnan":"Edgardo":19.010:631:"Adnan":"Edgardo":19.010|759:"Adnan":"Edgardo":19.010:759:"Adnan":"Edgardo":19.010|887:"Adnan":"Edgardo":19.010:887:"Adnan":"Edgardo":19.010|120:"Adnan":"Bob":19.010:120:"Adnan":"Bob":19.010|248:"Adnan":"Bob":19.010:248:"Adnan":"Bob":19.010|376:"Adnan":"Bob":19.010:376:"Adnan":"Bob":19.010|504:"Adnan":"Bob":19.010:504:"Adnan":"Bob":19.010|632:"Adnan":"Bob":19.010:632:"Adnan":"Bob":19.010|760:"Adnan":"Bob":19.010:760:"Adnan":"Bob":19.010|888:"Adnan":"Bob":19.010:888:"Adnan":"Bob":19.010|121:"Adnan":"Edgardo":19.010:121:"Adnan":"Edgardo":19.010|249:"Adnan":"Edgardo":19.010:249:"Adnan":"Edgardo":19.010|377:"Adnan":"Edgardo":19.010:377:"Adnan":"Edgardo":19.010|505:"Adnan":"Edgardo":19.010:505:"Adnan":"Edgardo":19.010|633:"Adnan":"Edgardo":19.010:633:"Adnan":"Edgardo":19.010|761:"Adnan":"Edgardo":19.010:761:"Adnan":"Edgardo":19.010|889:"Adnan":"Edgardo":19.010:889:"Adnan":"Edgardo":19.010|122:"Adnan":"Bob":19.010:122:"Adnan":"Bob":19.010|250:"Adnan":"Bob":19.010:250:"Adnan":"Bob":19.010|378:"Adnan":"Bob":19.010:378:"Adnan":"Bob":19.010|506:"Adnan":"Bob":19.010:506:"Adnan":"Bob":19.010|634:"Adnan":"Bob":19.010:634:"Adnan":"Bob":19.010|762:"Adnan":"Bob":19.010:762:"Adnan":"Bob":19.010|890:"Adnan":"Bob":19.010:890:"Adnan":"Bob":19.010|123:"Adnan":"Edgardo":19.010:123:"Adnan":"Edgardo":19.010|251:"Adnan":"Edgardo":19.010:251:"Adnan":"Edgardo":19.010|379:"Adnan":"Edgardo":19.010:379:"Adnan":"Edgardo":19.010|507:"Adnan":"Edgardo":19.010:507:"Adnan":"Edgardo":19.010|635:"Adnan":"Edgardo":19.010:635:"Adnan":"Edgardo":19.010|763:"Adnan":"Edgardo":19.010:763:"Adnan":"Edgardo":19.010|891:"Adnan":"Edgardo":19.010:891:"Adnan":"Edgardo":19.010|124:"Adnan":"Bob":19.010:124:"Adnan":"Bob":19.010|252:"Adnan":"Bob":19.010:252:"Adnan":"Bob":19.010|380:"Adnan":"Bob":19.010:380:"Adnan":"Bob":19.010|508:"Adnan":"Bob":19.010:508:"Adnan":"Bob":19.010|636:"Adnan":"Bob":19.010:636:"Adnan":"Bob":19.010|764:"Adnan":"Bob":19.010:764:"Adnan":"Bob":19.010|892:"Adnan":"Bob":19.010:892:"Adnan":"Bob":19.010|125:"Adnan":"Edgardo":19.010:125:"Adnan":"Edgardo":19.010|253:"Adnan":"Edgardo":19.010:253:"Adnan":"Edgardo":19.010|381:"Adnan":"Edgardo":19.010:381:"Adnan":"Edgardo":19.010|509:"Adnan":"Edgardo":19.010:509:"Adnan":"Edgardo":19.010|637:"Adnan":"Edgardo":19.010:637:"Adnan":"Edgardo":19.010|765:"Adnan":"Edgardo":19.010:765:"Adnan":"Edgardo":19.010|893:"Adnan":"Edgardo":19.010:893:"Adnan":"Edgardo":19.010|126:"Adnan":"Bob":19.010:126:"Adnan":"Bob":19.010|254:"Adnan":"Bob":19.010:254:"Adnan":"Bob":19.010|382:"Adnan":"Bob":19.010:382:"Adnan":"Bob":19.010|510:"Adnan":"Bob":19.010:510:"Adnan":"Bob":19.010|638:"Adnan":"Bob":19.010:638:"Adnan":"Bob":19.010|766:"Adnan":"Bob":19.010:766:"Adnan":"Bob":19.010|894:"Adnan":"Bob":19.010:894:"Adnan":"Bob":19.010|127:"Adnan":"Edgardo":19.010:127:"Adnan":"Edgardo":19.010|255:"Adnan":"Edgardo":19.010:255:"Adnan":"Edgardo":19.010|383:"Adnan":"Edgardo":19.010:383:"Adnan":"Edgardo":19.010|511:"Adnan":"Edgardo":19.010:511:"Adnan":"Edgardo":19.010|639:"Adnan":"Edgardo":19.010:639:"Adnan":"Edgardo":19.010|767:"Adnan":"Edgardo":19.010:767:"Adnan":"Edgardo":19.010|895:"Adnan":"Edgardo":19.010:895:"Adnan":"Edgardo":19.010 -hashSame=1:Ahmed:Elmagarmid:25.05:1:Ahmed:Elmagarmid:25.05|2:Walid:Aref:20.013:2:Walid:Aref:20.013|3:Christopher:Clifton:18.04:3:Christopher:Clifton:18.04|4:Sunil:Prabhakar:22.07:4:Sunil:Prabhakar:22.07|5:Elisa:Bertino:26.05:5:Elisa:Bertino:26.05|6:Susanne:Hambrusch:23.03:6:Susanne:Hambrusch:23.03|7:David:Eberts:24.08:7:David:Eberts:24.08|8:Arif:Ghafoor:20.05:8:Arif:Ghafoor:20.05|9:Jeff:Vitter:19.010:9:Jeff:Vitter:19.010 \ No newline at end of file diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/AttrOperator.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/AttrOperator.java deleted file mode 100644 index 2b2fc0a..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/global/AttrOperator.java +++ /dev/null @@ -1,79 +0,0 @@ -package global; - -/** - * Enumeration class for predicate operators. - */ -public class AttrOperator { - - public static final int EQ = 11; - public static final int NEQ = 12; - public static final int GT = 13; - public static final int GTE = 14; - public static final int LT = 15; - public static final int LTE = 16; - - // -------------------------------------------------------------------------- - - /** - * Private constructor (static class). - */ - private AttrOperator() {} - - /** - * Returns the constant value for the string representation (i.e. inverse of - * the toString() method). - */ - public static int toValue(String str) { - - // it may have been better to use the parse tree node, but this - // makes it easier to release class projects independently - if (str.equals("=")) { - return EQ; - } else if (str.equals("<>")) { - return NEQ; - } else if (str.equals(">")) { - return GT; - } else if (str.equals(">=")) { - return GTE; - } else if (str.equals("<")) { - return LT; - } else if (str.equals("<=")) { - return LTE; - } else { - throw new IllegalArgumentException("unknown operator"); - } - - } // public static int toValue(String str) - - /** - * Returns a string representation of an AttrOperator. - */ - public static String toString(int value) { - - switch (value) { - - case EQ: - return "="; - - case NEQ: - return "<>"; - - case GT: - return ">"; - - case GTE: - return ">="; - - case LT: - return "<"; - - case LTE: - return "<="; - - } // switch - - return ("Unexpected AttrOperator " + value); - - } // public static String toString(int value) - -} // public class AttrOperator diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/AttrType.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/AttrType.java deleted file mode 100644 index 6334db3..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/global/AttrType.java +++ /dev/null @@ -1,98 +0,0 @@ -package global; - -/** - * Enumeration class for attribute data types. - */ -public class AttrType { - - public static final int INTEGER = 11; - public static final int FLOAT = 12; - public static final int STRING = 13; - - public static final int COLNAME = 21; - public static final int FIELDNO = 22; - - // -------------------------------------------------------------------------- - - /** - * Private constructor (static class). - */ - private AttrType() {} - - /** - * Gets the AttrType of the given value; i.e. not applicable for column names - * or field numbers. - * - * @throws IllegalArgumentException if obj is not an AttrType - */ - public static int getType(Object obj) { - - if (obj instanceof Integer) { - return INTEGER; - } - - if (obj instanceof Float) { - return FLOAT; - } - - if (obj instanceof String) { - return STRING; - } - - // otherwise, unknown type - throw new IllegalArgumentException("Unknown AttrType " - + obj.getClass().getName()); - - } // public static int getType(Object obj) - - /** - * Returns a string representation of an AttrType. - */ - public static String toString(int value) { - - switch (value) { - - case INTEGER: - return "INTEGER"; - - case FLOAT: - return "FLOAT"; - - case STRING: - return "STRING"; - - case COLNAME: - return "COLNAME"; - - case FIELDNO: - return "FIELDNO"; - - } // switch - - return ("Unexpected AttrType " + value); - - } // public static String toString(int value) - - - /** - * Returns the AttrType that match the given type (@link String) - * @param type - * @return - */ - public static int fromString(String type) { - - switch (type) { - case "INTEGER": - return INTEGER; - - case "FLOAT": - return FLOAT; - - case "STRING": - default: - return STRING; - } - - } // public static int fromString (String type) - -} // public class AttrType diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/Convert.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/Convert.java deleted file mode 100644 index 7661e6c..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/global/Convert.java +++ /dev/null @@ -1,122 +0,0 @@ -package global; - -/** - * Provides conversion routines for getting and setting data in byte arrays. - */ -public class Convert { - - /** - * Reads from the given byte array at the specified position, and converts it - * into a unicode character. - */ - public static char getCharValue(int pos, byte[] data) { - - // ignoring that UTF-8 could be up to six bytes - return (char) data[pos]; - - } // public static char getCharValue(int pos, byte[] data) - - /** - * Writes a unicode character into the given byte array at the specified - * position. - */ - public static void setCharValue(char value, int pos, byte[] data) { - - // ignoring that UTF-8 could be up to six bytes - data[pos] = (byte) value; - - } // public static void setCharValue(char value, int pos, byte[] data) - - /** - * Reads from the given byte array at the specified position, and converts it - * into a short. - */ - public static short getShortValue(int pos, byte[] data) { - - return (short) (((data[pos] & 0xff) << 8) | (data[pos + 1] & 0xff)); - - } // public static short getShortValue(int pos, byte[] data) - - /** - * Writes a short into the given byte array at the specified position. - */ - public static void setShortValue(short value, int pos, byte[] data) { - - data[pos] = (byte) ((value >> 8) & 0xff); - data[pos + 1] = (byte) (value & 0xff); - - } // public static void setShortValue(short value, int pos, byte[] data) - - /** - * Reads from the given byte array at the specified position, and converts it - * into an integer. - */ - public static int getIntValue(int pos, byte[] data) { - - return ((data[pos] & 0xff) << 24) | ((data[pos + 1] & 0xff) << 16) - | ((data[pos + 2] & 0xff) << 8) | (data[pos + 3] & 0xff); - - } // public static int getIntValue(int pos, byte[] data) - - /** - * Writes an integer into the given byte array at the specified position. - */ - public static void setIntValue(int value, int pos, byte[] data) { - - data[pos] = (byte) ((value >> 24) & 0xff); - data[pos + 1] = (byte) ((value >> 16) & 0xff); - data[pos + 2] = (byte) ((value >> 8) & 0xff); - data[pos + 3] = (byte) (value & 0xff); - - } // public static void setIntValue(int value, int pos, byte[] data) - - /** - * Reads from the given byte array at the specified position, and converts it - * to a float. - */ - public static float getFloatValue(int pos, byte[] data) { - - // let java do the IEEE 754 conversion - return Float.intBitsToFloat(getIntValue(pos, data)); - - } // public static float getFloatValue(int pos, byte[] data) - - /** - * Writes a float into the given byte array at the specified position. - */ - public static void setFloatValue(float value, int pos, byte[] data) { - - // let java do the IEEE 754 conversion - setIntValue(Float.floatToIntBits(value), pos, data); - - } // public static void setFloatValue(float value, int pos, byte[] data) - - /** - * Reads from the given byte array at the specified position, and converts it - * to a string of given length. - */ - public static String getStringValue(int pos, byte[] data, int length) { - - // validate the maximum length - int buflen = data.length - pos; - if (buflen < length) { - length = buflen; - } - - // is there any way in Java to avoid these mem copies? - return new String(data, pos, length).trim(); - - } // public static String getStringValue(int pos, byte[] data, int length) - - /** - * Writes a string into the given byte array at the specified position. - */ - public static void setStringValue(String value, int pos, byte[] data) { - - // is there any way in Java to avoid these mem copies? - byte[] ba = value.getBytes(); - System.arraycopy(ba, 0, data, pos, ba.length); - - } // public static void setStringValue(String value, int pos, byte[] data) - -} // public class Convert diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/GlobalConst.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/GlobalConst.java deleted file mode 100644 index 0b2a48d..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/global/GlobalConst.java +++ /dev/null @@ -1,57 +0,0 @@ -package global; - -/** - * Global constants; implement this interface to access them conveniently. - */ -public interface GlobalConst { - - // - // Disk Manager Constants - // - - /** Size of a page, in bytes. */ - public static final int PAGE_SIZE = 1024; - - /** Page number of an invalid page (i.e. null pointer). */ - public static final int INVALID_PAGEID = -1; - - /** Page number of the first page in a database file. */ - public static final int FIRST_PAGEID = 0; - - /** Maximum size of a name (i.e. of files or attributes). */ - public static final int NAME_MAXLEN = 50; - - // - // Buffer Manager Constants - // - - /** Replace the buffer frame with an existing memory page. */ - public static final boolean PIN_MEMCPY = true; - - /** Replace an existing memory page with the current disk page. */ - public static final boolean PIN_DISKIO = false; - - /** Forces the page to be written to disk when unpinned. */ - public static final boolean UNPIN_DIRTY = true; - - /** Optimization to avoid writing to disk when unpinned. */ - public static final boolean UNPIN_CLEAN = false; - - // - // Heap File Constants - // - - /** Length of an "empty" slot in a heap file page. */ - public static final int EMPTY_SLOT = -1; - - // - // System Catalog Constants - // - - /** Maximum length of a column (in bytes). */ - public static final int MAX_COLSIZE = 1001; - - /** Maximum length of a tuple (in bytes). */ - public static final int MAX_TUPSIZE = 1004; - -} // public interface GlobalConst diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/Minibase.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/Minibase.java deleted file mode 100644 index 92111a1..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/global/Minibase.java +++ /dev/null @@ -1,89 +0,0 @@ -package global; - -import bufmgr.BufMgr; -import diskmgr.DiskMgr; - -/** - * Definitions for the running Minibase system, including references to static - * layers and database-level attributes. - */ -public class Minibase { - - /** Name of the data file. */ - public static String DatabaseName; - - /** The Minibase Disk Space Manager. */ - public static DiskMgr DiskManager; - - /** The Minibase Buffer Manager. */ - public static BufMgr BufferManager; - - - // -------------------------------------------------------------------------- - - /** - * Constructs and starts an instance of Minibase, given the configuration. - * - * @param dbname Name of the data file - * @param num_pgs Number of pages to allocate - * @param bufpoolsize Buffer pool size (in pages) - * @param replacement_policy Buffer pool replacement policy - * @param exists If the database already exists on disk - */ - public Minibase(String dbname, int num_pgs, int bufpoolsize, - String replacement_policy, boolean exists) { - - // simply initialize the database - init(dbname, num_pgs, bufpoolsize, replacement_policy, exists); - - } // constructor - - /** - * Initializes the current instance of Minibase with the given configuration. - * - * @param dbname Name of the data file - * @param num_pgs Number of pages to allocate - * @param bufpoolsize Buffer pool size (in pages) - * @param replacement_policy Buffer pool replacement policy - * @param exists If the database already exists on disk - */ - public void init(String dbname, int num_pgs, int bufpoolsize, - String replacement_policy, boolean exists) { - - // save the file name - DatabaseName = dbname; - - // load the static layers - try { - DiskManager = new DiskMgr(); - BufferManager = new BufMgr(bufpoolsize); - } catch (Exception exc) { - haltSystem(exc); - } - - // create or open the database - try { - if (exists) { - DiskManager.openDB(dbname); - - } else { - DiskManager.createDB(dbname, num_pgs); - - BufferManager.flushAllPages(); - } - } catch (Exception exc) { - haltSystem(exc); - } - - } // init - - /** - * Displays an unrecoverable error and halts the system. - */ - public static void haltSystem(Exception exc) { - System.err.println("\n*** Unrecoverable system error ***"); - exc.printStackTrace(); - Runtime.getRuntime().exit(1); - } - -} // public class Minibase diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/Page.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/Page.java deleted file mode 100644 index 3c8b365..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/global/Page.java +++ /dev/null @@ -1,133 +0,0 @@ -package global; - -/** - * Lowest-level view of a disk page. - */ -public class Page implements GlobalConst { - - /** The actual byte array for the page. */ - protected byte[] data; - - // -------------------------------------------------------------------------- - - /** - * Default constructor; creates a blank page. - */ - public Page() { - data = new byte[PAGE_SIZE]; - } - - /** - * Constructor that wraps the given byte array. - */ - public Page(byte[] data) { - setData(data); - } - - /** - * Get accessor for the data byte array. - */ - public byte[] getData() { - return data; - } - - /** - * Set accessor for the data byte array. - * - * @throws IllegalArgumentException if the data array size is invalid - */ - public void setData(byte[] data) { - if (data.length != PAGE_SIZE) { - Minibase.haltSystem(new IllegalArgumentException( - "Invalid page buffer size")); - } - this.data = data; - } - - /** - * Sets this page's data array to share the given page's data array. - */ - public void setPage(Page page) { - this.data = page.data; - } - - /** - * Copies the contents of the given page's buffer into this page's buffer. - */ - public void copyPage(Page page) { - System.arraycopy(page.data, 0, this.data, 0, PAGE_SIZE); - } - - // -------------------------------------------------------------------------- - - /** - * Gets a char at the given page offset. - */ - public char getCharValue(int offset) { - return Convert.getCharValue(offset, data); - } - - /** - * Sets a char at the given page offset. - */ - public void setCharValue(char value, int offset) { - Convert.setCharValue(value, offset, data); - } - - /** - * Gets a short at the given page offset. - */ - public short getShortValue(int offset) { - return Convert.getShortValue(offset, data); - } - - /** - * Sets a short at the given page offset. - */ - public void setShortValue(short value, int offset) { - Convert.setShortValue(value, offset, data); - } - - /** - * Gets an int at the given page offset. - */ - public int getIntValue(int offset) { - return Convert.getIntValue(offset, data); - } - - /** - * Sets an int at the given page offset. - */ - public void setIntValue(int value, int offset) { - Convert.setIntValue(value, offset, data); - } - - /** - * Gets a float at the given page offset. - */ - public float getFloatValue(int offset) { - return Convert.getFloatValue(offset, data); - } - - /** - * Sets a float at the given page offset. - */ - public void setFloatValue(float value, int offset) { - Convert.setFloatValue(value, offset, data); - } - - /** - * Gets a string at the given page offset, given the maximum length. - */ - public String getStringValue(int offset, int length) { - return Convert.getStringValue(offset, data, length); - } - - /** - * Sets a string at the given page offset. - */ - public void setStringValue(String value, int offset) { - Convert.setStringValue(value, offset, data); - } - -} // public class Page implements GlobalConst diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/PageId.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/PageId.java deleted file mode 100644 index d653551..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/global/PageId.java +++ /dev/null @@ -1,60 +0,0 @@ -package global; - -/** - * Although a PageId is simply an integer, wrapping it provides convenient - * methods and allows returning it via method parameters. - */ -public class PageId implements GlobalConst { - - /** The actual page id value. */ - public int pid; - - // -------------------------------------------------------------------------- - - /** - * Default constructor. - */ - public PageId() { - pid = INVALID_PAGEID; - } - - /** - * Constructs a PageId from the given value. - */ - public PageId(int pid) { - this.pid = pid; - } - - /** - * Makes a copy of the given PageId. - */ - public void copyPageId(PageId pageNo) { - this.pid = pageNo.pid; - } - - /** - * Returns a hash code value for the PageId. - */ - public int hashCode() { - return pid; - } - - /** - * True if obj is a PageId with the same pid; false otherwise. - */ - public boolean equals(Object obj) { - if (obj instanceof PageId) { - PageId pageno = (PageId) obj; - return (this.pid == pageno.pid); - } - return false; - } - - /** - * Returns a string representation of the PageId. - */ - public String toString() { - return Integer.toString(pid); - } - -} // public class PageId implements GlobalConst diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/RID.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/RID.java deleted file mode 100644 index 4dc96fa..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/global/RID.java +++ /dev/null @@ -1,98 +0,0 @@ -package global; - -/** - * A record is uniquely identified by its page number and slot number. - */ -public class RID { - - /** The record's page number. */ - public PageId pageno; - - /** The record's slot number. */ - public int slotno; - - // -------------------------------------------------------------------------- - - /** - * Default constructor. - */ - public RID() { - pageno = new PageId(); - slotno = 0; - } - - /** - * Copy constructor. - */ - public RID(RID rid) { - copyRID(rid); - } - - /** - * Constructs an RID from the given values. - */ - public RID(PageId pageno, int slotno) { - this.pageno = new PageId(); - this.pageno.pid = pageno.pid; - this.slotno = slotno; - } - - /** - * Constructs an RID stored in the given data buffer. - */ - public RID(byte[] data, short offset) { - pageno = new PageId(Convert.getIntValue(offset, data)); - slotno = Convert.getIntValue(offset + 4, data); - } - - /** - * Writes the RID into the given data buffer. - */ - public void writeData(byte[] data, short offset) { - Convert.setIntValue(pageno.pid, offset, data); - Convert.setIntValue(slotno, offset + 4, data); - } - - /** - * Gets the total length of the RID (in bytes). - */ - public short getLength() { - return 8; - } - - /** - * Makes a copy of the given RID. - */ - public void copyRID(RID rid) { - this.pageno = new PageId(); - this.pageno.pid = rid.pageno.pid; - slotno = rid.slotno; - } - - /** - * Returns a hash code value for the RID. - */ - public int hashCode() { - // won't work if DB supports more than 65535 pages - return ((pageno.pid & 0xFFFF) << 16) | (slotno & 0xFFFF); - } - - /** - * True if obj is an RID with the same values; false otherwise. - */ - public boolean equals(Object obj) { - if (obj instanceof RID) { - RID rid = (RID) obj; - return ((pageno.pid == rid.pageno.pid) && (slotno == rid.slotno)); - } - return false; - } - - /** - * Returns a string representation of the PageId. - */ - public String toString() { - return pageno.toString() + ":" + Integer.toString(slotno); - } - -} // public class RID diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/SearchKey.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/SearchKey.java deleted file mode 100644 index c81f0df..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/global/SearchKey.java +++ /dev/null @@ -1,291 +0,0 @@ -package global; - -/** - * Provides a general and type-safe way to store and compare index search keys. - */ -public class SearchKey implements Comparable { - - /** Internal type number for Integer keys. */ - protected static final byte INTEGER_KEY = 1; - - /** Internal type number for Float keys. */ - protected static final byte FLOAT_KEY = 2; - - /** Internal type number for String keys. */ - protected static final byte STRING_KEY = 3; - - // -------------------------------------------------------------------------- - - /** The type of the key value. */ - protected byte type; - - /** The size of the key value (in bytes). */ - protected short size; - - /** The actual key value. */ - protected Object value; - - // -------------------------------------------------------------------------- - - /** - * Constructs a new integer search key. - */ - public SearchKey(Integer value) { - this.type = INTEGER_KEY; - this.size = Integer.SIZE / Byte.SIZE; - this.value = value; - } - - /** - * Constructs a new float search key. - */ - public SearchKey(Float value) { - this.type = FLOAT_KEY; - this.size = Float.SIZE / Byte.SIZE; - this.value = value; - } - - /** - * Constructs a new string search key. - */ - public SearchKey(String value) { - this.type = STRING_KEY; - this.size = (short) value.length(); - this.value = value; - } - - /** - * Constructs a search key from a generic value. - * - * @throws IllegalArgumentException if value's type is invalid - */ - public SearchKey(Object value) { - - // Integer key? - if (value instanceof Integer) { - this.type = INTEGER_KEY; - this.size = Integer.SIZE / Byte.SIZE; - this.value = value; - } - - // Float key? - else if (value instanceof Float) { - this.type = FLOAT_KEY; - this.size = Float.SIZE / Byte.SIZE; - this.value = value; - } - - // String key? - else if (value instanceof String) { - this.type = STRING_KEY; - this.size = (short) ((String) value).length(); - this.value = value; - } - - // otherwise, none of the above - else { - throw new IllegalArgumentException("invalid key value type"); - } - - } // public SearchKey(Object value) - - /** - * Copy constructor for a search key. - */ - public SearchKey(SearchKey key) { - - // copy the type and size - this.type = key.type; - this.size = key.size; - - // copy the value - switch (key.type) { - case INTEGER_KEY: - this.value = new Integer((Integer) key.value); - break; - case FLOAT_KEY: - this.value = new Float((Float) key.value); - break; - case STRING_KEY: - this.value = new String((String) key.value); - break; - } - - } // public SearchKey(SearchKey key) - - // -------------------------------------------------------------------------- - - /** - * Constructs a SearchKey stored in the given data buffer. - */ - public SearchKey(byte[] data, short offset) { - - // extract the type and size - type = data[offset]; - size = Convert.getShortValue(offset + 1, data); - - // extract the key value - switch (type) { - case INTEGER_KEY: - value = new Integer(Convert.getIntValue(offset + 3, data)); - break; - case FLOAT_KEY: - value = new Float(Convert.getFloatValue(offset + 3, data)); - break; - case STRING_KEY: - value = Convert.getStringValue(offset + 3, data, size); - break; - } - - } // public SearchKey(byte[] data, short offset) - - /** - * Writes the SearchKey into the given data buffer. - */ - public void writeData(byte[] data, short offset) { - - // write the type and size - data[offset] = type; - Convert.setShortValue(size, offset + 1, data); - - // write the key value - switch (type) { - case INTEGER_KEY: - Convert.setIntValue((Integer) value, offset + 3, data); - break; - case FLOAT_KEY: - Convert.setFloatValue((Float) value, offset + 3, data); - break; - case STRING_KEY: - Convert.setStringValue((String) value, offset + 3, data); - break; - } - - } // public void writeData(byte[] data, short offset) - - /** - * Gets the total length of the search key (in bytes). - */ - public short getLength() { - return (short) (3 + size); - } - - // -------------------------------------------------------------------------- - - /** - * Gets the hash value for the search key, given the depth (i.e. number of - * bits to consider). - */ - public int getHash(int depth) { - - // apply the appropriate calculation - int mask = (1 << depth) - 1; - switch (type) { - - default: - case INTEGER_KEY: - int ikey = ((Integer) value).intValue(); - return ikey & mask; - - case FLOAT_KEY: - int fkey = Float.floatToIntBits((Float) value); - return fkey & mask; - - case STRING_KEY: - - // reverse the first four bytes of the string - byte[] s = ((String) value).getBytes(); - int skey = 0; - int len = s.length > 4 ? 4 : s.length; - for (int i = 0; i < len; i++) { - skey |= (s[i] << (i * Byte.SIZE)); - } - return skey & mask; - - } // switch - - } // public int getHash(int depth) - - /** - * Returns true if the search key matches the given hash value, false - * otherwise. - */ - public boolean isHash(int hash) { - - // calculate the bit depth (i.e. the left-most '1' bit) - int depth = (int) (Math.log(hash) / Math.log(2) + 1); - - // compare the hash codes - return (getHash(depth) == hash); - - } // public boolean isHash(int hash) - - // -------------------------------------------------------------------------- - - /** - * Returns a generic hash code for the key value. - */ - public int hashCode() { - return value.hashCode(); - } - - /** - * True if obj is a SearchKey with the same values; false otherwise. - */ - public boolean equals(Object obj) { - if (obj instanceof SearchKey) { - SearchKey key = (SearchKey) obj; - return (value.equals(key.value)); - } - return false; - } - - /** - * Generically compares two search keys. - * - * @return a negative integer, zero, or a positive integer as this object is - * less than, equal to, or greater than the specified object - * @throws IllegalArgumentException if the search keys are not comparable - */ - public int compareTo(SearchKey key) { - - // Integer comparison - if (value instanceof Integer) { - if (key.value instanceof Integer) { - - Integer ikey1 = (Integer) this.value; - Integer ikey2 = (Integer) key.value; - return ikey1.compareTo(ikey2); - - } else { - throw new IllegalArgumentException("search keys are not comparable"); - } - } - - // Float comparison - if (value instanceof Float) { - if (key.value instanceof Float) { - - Float fkey1 = (Float) this.value; - Float fkey2 = (Float) key.value; - return fkey1.compareTo(fkey2); - - } else { - throw new IllegalArgumentException("search keys are not comparable"); - } - } - - // default: String comparison - if (key.value instanceof String) { - - String skey1 = (String) this.value; - String skey2 = (String) key.value; - return skey1.compareTo(skey2); - - } else { - throw new IllegalArgumentException("search keys are not comparable"); - } - - } // public int compareTo(SearchKey key) - -} // public class SearchKey implements Comparable diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/global/SortKey.java b/Projects/p3-skeleton/cs448p3/src/main/java/global/SortKey.java deleted file mode 100644 index 192f869..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/global/SortKey.java +++ /dev/null @@ -1,23 +0,0 @@ -package global; - -/** - * One term in an ORDER BY clause; i.e. relations can be sorted on multiple - * (distinct) attributes, as well as in ascending or descending order. - */ -public class SortKey { - - /** Column name or field number. */ - public Object field; - - /** True if descending order, false if ascending order. */ - public boolean isDesc; - - /** - * Constructs a SortKey from the given values. - */ - public SortKey(Object field, boolean isDesc) { - this.field = field; - this.isDesc = isDesc; - } - -} // public class SortKey diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/FileScan.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/FileScan.java deleted file mode 100644 index 73ddbcb..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/FileScan.java +++ /dev/null @@ -1,92 +0,0 @@ -package relop; - -import global.RID; -import heap.HeapFile; -import heap.HeapScan; - -/** - * Wrapper for heap file scan, the most basic access method. This "iterator" - * version takes schema into consideration and generates real tuples. - */ -public class FileScan extends Iterator { - - private HeapFile file = null; // needed for restart(), getFile(); - private HeapScan scan = null; - private RID rid = null; - private boolean isOpen; - - /** - * Constructs a file scan, given the schema and heap file. - */ - public FileScan(Schema aSchema, HeapFile aFile) { - this.schema = aSchema; - this.file = aFile; - this.scan = file.openScan(); - this.rid = new RID(); - isOpen = true; - } - - /** - * Gives a one-line explanation of the iterator, repeats the call on any - * child iterators, and increases the indent depth along the way. - */ - public void explain(int depth) { - for(int i = 0; i < depth; i++){ - System.out.printf(" "); - } - System.out.printf("FileScan\n"); - } - - /** - * Restarts the iterator, i.e. as if it were just constructed. - */ - public void restart() { - scan.close(); - scan = file.openScan(); - //rid = new RID(); - } - - /** - * Returns true if the iterator is open; false otherwise. - */ - public boolean isOpen() { - return isOpen; - } - - /** - * Closes the iterator, releasing any resources (i.e. pinned pages). - */ - public void close() { - scan.close(); - isOpen = false; - } - - /** - * Returns true if there are more tuples, false otherwise. - */ - public boolean hasNext() { - return scan.hasNext(); - } - - /** - * Gets the next tuple in the iteration. - * - * @throws IllegalStateException if no more tuples - */ - public Tuple getNext() { - return new Tuple(schema, scan.getNext(rid)); - } - - /** - * Gets the RID of the last tuple returned. - */ - public RID getLastRID() { - return rid; - } - - // getter; added so HashJoin doesn't have to copy the file; - public HeapFile getFile(){ - return file; - } - -} // public class FileScan extends Iterator diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/HashJoin.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/HashJoin.java deleted file mode 100644 index 682516f..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/HashJoin.java +++ /dev/null @@ -1,52 +0,0 @@ -package relop; - -import heap.HeapFile; -import index.HashIndex; -import global.SearchKey; -import global.RID; -import global.AttrOperator; -import global.AttrType; - -public class HashJoin extends Iterator { - - public HashJoin(Iterator aIter1, Iterator aIter2, int aJoinCol1, int aJoinCol2){ - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - @Override - public void explain(int depth) { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - @Override - public void restart() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - @Override - public boolean isOpen() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - @Override - public void close() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - @Override - public boolean hasNext() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - @Override - public Tuple getNext() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } -} // end class HashJoin; diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/HashTableDup.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/HashTableDup.java deleted file mode 100644 index 87cd765..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/HashTableDup.java +++ /dev/null @@ -1,83 +0,0 @@ -package relop; - -import global.SearchKey; - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Hashtable; - -/** - * A extension to Java's hash table that allows duplicate keys. - * http://mindprod.com/jgloss/hashtable.html - */ -@SuppressWarnings("unchecked") -class HashTableDup extends Hashtable { - - /** - * Maps the specified key to the specified value in this hashtable. - */ - public void add(SearchKey key, Tuple value) { - - // to conserve RAM, duplicate values are either stored as single objects, - // pairs in an array, or multiples in an ArrayList - Object existing = get(key); - if (existing == null) { - - // store the single value - put(key, value); - - } else if (existing instanceof Tuple) { - - // was a single object; make into a pair - put(key, new Tuple[] { (Tuple) existing, value }); - - } else if (existing instanceof Tuple[]) { - - // was a pair; make into an ArrayList of 3 - ArrayList a = new ArrayList(); - a.addAll(Arrays.asList((Tuple[]) existing)); - a.add(value); - put(key, a); - - } else { - - // just add to tail end of existing ArrayList - ((ArrayList) existing).add(value); - - } // else - - } // public void add(SearchKey key, Tuple value) - - /** - * Returns the values to which the specified key is mapped in this hashtable. - */ - public Tuple[] getAll(SearchKey key) { - - // look up the key - Object match = get(key); - if (match == null) { - - // not found - return null; - - } else if (match instanceof Tuple) { - - // return the single match - return new Tuple[] { (Tuple) match }; - - } else if (match instanceof Tuple[]) { - - // return the matches - return (Tuple[]) match; - - } else { - - // convert ArrayList to Tuple[] - ArrayList a = (ArrayList) match; - return a.toArray(new Tuple[a.size()]); - - } // elsee - - } // public Tuple[] getAll(SearchKey key) - -} // class HashTableDup extends Hashtable diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/IndexScan.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/IndexScan.java deleted file mode 100644 index 9672576..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/IndexScan.java +++ /dev/null @@ -1,89 +0,0 @@ -package relop; - -import global.SearchKey; -import heap.HeapFile; -import index.HashIndex; - -/** - * Wrapper for bucket scan, an index access method. - */ -public class IndexScan extends Iterator { - - - /** - * Constructs an index scan, given the hash index and schema. - */ - public IndexScan(Schema schema, HashIndex index, HeapFile file) { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Gives a one-line explaination of the iterator, repeats the call on any - * child iterators, and increases the indent depth along the way. - */ - public void explain(int depth) { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Restarts the iterator, i.e. as if it were just constructed. - */ - public void restart() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Returns true if the iterator is open; false otherwise. - */ - public boolean isOpen() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Closes the iterator, releasing any resources (i.e. pinned pages). - */ - public void close() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Returns true if there are more tuples, false otherwise. - */ - public boolean hasNext() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Gets the next tuple in the iteration. - * - * @throws IllegalStateException if no more tuples - */ - public Tuple getNext() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Gets the key of the last tuple returned. - */ - public SearchKey getLastKey() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Returns the hash value for the bucket containing the next tuple, or maximum - * number of buckets if none. - */ - public int getNextHash() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - -} // public class IndexScan extends Iterator diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Iterator.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/Iterator.java deleted file mode 100644 index e586fc0..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Iterator.java +++ /dev/null @@ -1,107 +0,0 @@ -package relop; - -/** - * Minibase Iterators - * Query execution is driven by a tree of relational operators, all of which are - * implemented as iterators. Results are requested by successive "get next - * tuple" calls on the root of the tree, which in turn makes similar calls to - * child iterators throughout the tree. Intermediate nodes (i.e. join iterators) - * drive the leaf-level nodes (i.e. file or index scan iterators). - */ -public abstract class Iterator { - - /** Schema for resulting tuples; must be set in all subclass constructors. */ - protected Schema schema; - - // -------------------------------------------------------------------------- - - /** - * Gives a one-line explanation of the iterator, repeats the call on any - * child iterators, and increases the indent depth along the way. - */ - public abstract void explain(int depth); - - /** - * Outputs the indentation for the given depth. - */ - protected void indent(int depth) { - for (int i = 0; i < depth * 2; i++) { - System.out.print(' '); - } - } - - /** - * Restarts the iterator, i.e. as if it were just constructed. - */ - public abstract void restart(); - - /** - * Returns true if the iterator is open; false otherwise. - */ - public abstract boolean isOpen(); - - /** - * Closes the iterator, releasing any resources (i.e. pinned pages). - */ - public abstract void close(); - - /** - * Returns true if there are more tuples, false otherwise. - */ - public abstract boolean hasNext(); - - /** - * Gets the next tuple in the iteration. - * - * @throws IllegalStateException if no more tuples - */ - public abstract Tuple getNext(); - - /** - * Prints the schema, gets and prints all tuples, and closes the iterator. - * - * @return number of tuples processed - */ - public int execute() { - result = ""; //Modification to store result of queries for test case comparison - int cnt = 0; - getSchema().print(); - Tuple next; - while (hasNext()) { - next = getNext(); - next.print(); - //Modification to store result of queries for test case comparison - result += next.toString() + "|"; - cnt++; - } - if(result.length() > 0) - result = result.substring(0, result.length() - 1); - close(); - return cnt; - } - - /** - * Called by the garbage collector when there are no more references to the - * object; closes the iterator if it's still open. - */ - protected void finalize() throws Throwable { - if (isOpen()) { - close(); - } - } - -public void setSchema(Schema schema) { - this.schema = schema; -} - -public Schema getSchema() { - return schema; -} - -// *** DO NOT CHANGE ANY EXISTING METHODS OR VARIABLES BELOW THIS LINE *** -//Store values for test cases only -//String format: row0|row1|row2|...rowN| -private String result; -public String getResult() { return result; } - -} // public abstract class Iterator diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/KeyScan.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/KeyScan.java deleted file mode 100644 index 5ae6996..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/KeyScan.java +++ /dev/null @@ -1,72 +0,0 @@ -package relop; - -import global.SearchKey; -import heap.HeapFile; -import index.HashIndex; -import index.HashScan; - -/** - * Wrapper for hash scan, an index access method. - */ -public class KeyScan extends Iterator { - - /** - * Constructs an index scan, given the hash index and schema. - */ - public KeyScan(Schema aSchema, HashIndex aIndex, SearchKey aKey, HeapFile aFile) { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Gives a one-line explanation of the iterator, repeats the call on any - * child iterators, and increases the indent depth along the way. - */ - public void explain(int depth) { - throw new UnsupportedOperationException("Not implemented"); - } - - /** - * Restarts the iterator, i.e. as if it were just constructed. - */ - public void restart() { - throw new UnsupportedOperationException("Not implemented"); - - //Your code here - } - - /** - * Returns true if the iterator is open; false otherwise. - */ - public boolean isOpen() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Closes the iterator, releasing any resources (i.e. pinned pages). - */ - public void close() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Returns true if there are more tuples, false otherwise. - */ - public boolean hasNext() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Gets the next tuple in the iteration. - * - * @throws IllegalStateException if no more tuples - */ - public Tuple getNext() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - -} // public class KeyScan extends Iterator diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Predicate.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/Predicate.java deleted file mode 100644 index 2f48a52..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Predicate.java +++ /dev/null @@ -1,188 +0,0 @@ -package relop; - -import global.AttrOperator; -import global.AttrType; - -/** - * Internal representation of simple SQL expressions. Operators are referenced - * by constants in global.AttrOperator, and operands can be constants or field - * numbers (i.e. if referring to an attribute). - */ -public class Predicate { - - /** The operator. */ - protected int oper; - - /** Type of left operand. */ - protected int ltype; - - /** Left operand. */ - protected Object left; - - /** Type of right operand. */ - protected int rtype; - - /** Right operand. */ - protected Object right; - - // -------------------------------------------------------------------------- - - /** - * Constructs a predicate, given the expression. - * - * @param oper AttrOperator constant - * @param ltype AttrType of the field - * @param left operand value, field number, or column name - * @param rtype AttrType of the field - * @param right operand value, field number, or column name - */ - public Predicate(int oper, int ltype, Object left, int rtype, Object right) { - this.oper = oper; - this.ltype = ltype; - this.rtype = rtype; - this.left = left; - this.right = right; - } - - /** - * Validates AttrType.COLNAME operands against the given schema. - * - * @return true if the predicate is valid, false otherwise - */ - public boolean validate(Schema schema) { - - // if column name, make sure it exists - int type1 = ltype; - if (type1 == AttrType.COLNAME) { - int fldno = schema.fieldNumber((String) left); - if (fldno < 0) { - return false; - } - type1 = schema.fieldType(fldno); - } - int type2 = rtype; - if (type2 == AttrType.COLNAME) { - int fldno = schema.fieldNumber((String) right); - if (fldno < 0) { - return false; - } - type2 = schema.fieldType(fldno); - } - - // test left and right type compatibility - return (type1 == type2); - - } // public boolean validate(Schema schema) - - /** - * Evaluates the predicate on the given tuple and returns true if it passes. - * - * @throws IllegalStateException if member data lead to an invalid operation - */ - public boolean evaluate(Tuple tuple) { - - // if necessary, resolve column names to field numbers - if (ltype == AttrType.COLNAME) { - left = tuple.schema.fieldNumber((String) left); - ltype = AttrType.FIELDNO; - } - if (rtype == AttrType.COLNAME) { - right = tuple.schema.fieldNumber((String) right); - rtype = AttrType.FIELDNO; - } - - // get the values to compare - int type = ltype; - Object lval = left; - if (ltype == AttrType.FIELDNO) { - type = tuple.schema.fieldType((Integer) lval); - lval = tuple.getField((Integer) lval); - } - Object rval = right; - if (rtype == AttrType.FIELDNO) { - rval = tuple.getField((Integer) rval); - } - - // compare the values - int comp = 0; - switch (type) { - - case AttrType.INTEGER: - comp = ((Integer) lval).compareTo((Integer) rval); - break; - - case AttrType.FLOAT: - comp = ((Float) lval).compareTo((Float) rval); - break; - - case AttrType.STRING: - comp = ((String) lval).compareTo((String) rval); - break; - - default: - throw new IllegalStateException("unknown types to compare"); - - } // switch (type) - - // evaluate the operator - switch (oper) { - - case AttrOperator.EQ: - return (comp == 0); - - case AttrOperator.NEQ: - return (comp != 0); - - case AttrOperator.GT: - return (comp > 0); - - case AttrOperator.GTE: - return (comp >= 0); - - case AttrOperator.LT: - return (comp < 0); - - case AttrOperator.LTE: - return (comp <= 0); - - default: - throw new IllegalStateException("unknown operator to evaluate"); - - } // switch (oper) - - } // public boolean evaluate(Tuple tuple) - - /** - * Returns a string representation of the Predicate. - */ - public String toString() { - - return opString(ltype, left) + ' ' + AttrOperator.toString(oper) + ' ' - + opString(rtype, right); - - } // public String toString() - - /** - * Returns a string representation of an operand. - */ - protected String opString(int type, Object operand) { - - // get the string version - String str = operand.toString(); - - // wrap strings in single quotes - if (type == AttrType.STRING) { - return "'" + str + "'"; - } - - // wrap column numbers in braces - if (type == AttrType.FIELDNO) { - return "{" + str + "}"; - } - - // otherwise, just return the string - return str; - - } // protected String opString(int type, Object obj) - -} // public class Predicate diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Projection.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/Projection.java deleted file mode 100644 index 48c32b7..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Projection.java +++ /dev/null @@ -1,79 +0,0 @@ -package relop; - - -/** - * The projection operator extracts columns from a relation; unlike in - * relational algebra, this operator does NOT eliminate duplicate tuples. - */ -public class Projection extends Iterator { - - private Iterator iter = null; - private Integer[] fields = null; - private boolean isOpen; - /** - * Constructs a projection, given the underlying iterator and field numbers. - */ - public Projection(Iterator aIter, Integer... aFields) { - this.iter = aIter; - this.fields = aFields; - this.isOpen = true; - - this.schema = new Schema(fields.length); - Schema iterSchema = iter.getSchema(); - for(int i = 0; i < fields.length; i++){ - this.schema.initField(i, iterSchema, fields[i]); - } - } - - /** - * Gives a one-line explanation of the iterator, repeats the call on any - * child iterators, and increases the indent depth along the way. - */ - public void explain(int depth) { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Restarts the iterator, i.e. as if it were just constructed. - */ - public void restart() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Returns true if the iterator is open; false otherwise. - */ - public boolean isOpen() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Closes the iterator, releasing any resources (i.e. pinned pages). - */ - public void close() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Returns true if there are more tuples, false otherwise. - */ - public boolean hasNext() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Gets the next tuple in the iteration. - * - * @throws IllegalStateException if no more tuples - */ - public Tuple getNext() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - -} // public class Projection extends Iterator diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Schema.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/Schema.java deleted file mode 100644 index dc9240e..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Schema.java +++ /dev/null @@ -1,195 +0,0 @@ -package relop; - -import global.AttrType; - -/** - * Each tuple has a schema that defines the logical view of the raw bytes; it - * describes the types, lengths, offsets, and names of a tuple's fields. - */ -public class Schema { - - /** Minimum column width for output. */ - public static final int MIN_WIDTH = 10; - - // -------------------------------------------------------------------------- - - /** Attribute types of the fields. */ - protected int[] types; - - /** Variable lengths of the fields. */ - protected int[] lengths; - - /** Relative offsets of the fields. */ - protected int[] offsets; - - /** Column names of the fields. */ - protected String[] names; - - // -------------------------------------------------------------------------- - - /** - * Constructs a schema for the given number of fields. - */ - public Schema(int fldcnt) { - types = new int[fldcnt]; - lengths = new int[fldcnt]; - offsets = new int[fldcnt]; - names = new String[fldcnt]; - } - - /** - * Sets the type, length, and name for the given field; this automatically - * calculates its offset, provided that fields are set in ascending order. - */ - public void initField(int fldno, int type, int length, String name) { - - // save the type, length, and name - types[fldno] = type; - lengths[fldno] = length; - names[fldno] = name; - - // calculate the relative offset - if (fldno > 0) { - offsets[fldno] = offsets[fldno - 1] + lengths[fldno - 1]; - } else { - offsets[fldno] = 0; - } - - } // public void initField(int fldno, int type, int length, String name) - - /** - * Copies a field from another schema. - * - * @param fldno number of this field to set - * @param schema contains the info to copy - * @param srcno number of the field to copy - */ - public void initField(int fldno, Schema schema, int srcno) { - initField(fldno, schema.types[srcno], schema.lengths[srcno], - schema.names[srcno]); - } - - /** - * Builds and returns a new schema resulting from joining two schemas. - * - * @param s1 the left schema - * @param s2 the right schema - */ - public static Schema join(Schema s1, Schema s2) { - - // construct the new schema - int s1cnt = s1.getCount(); - int s2cnt = s2.getCount(); - Schema schema = new Schema(s1cnt + s2cnt); - - // copy all fields from s1 and s2 - int fldno = 0; - for (int i = 0; i < s1cnt; i++) { - schema.initField(fldno++, s1, i); - } - for (int i = 0; i < s2cnt; i++) { - schema.initField(fldno++, s2, i); - } - - // return the resulting schema - return schema; - - } // public static Schema join(Schema s1, Schema s2) - - // -------------------------------------------------------------------------- - - /** - * Gets the number of fields in the schema. - */ - public int getCount() { - // all arrays are same length - return types.length; - } - - /** - * Gets the size of a tuple (in bytes). - */ - public int getLength() { - int len = 0; - for (int i = 0; i < lengths.length; i++) { - len += lengths[i]; - } - return len; - } - - /** - * Gets the type of the given field. - */ - public int fieldType(int fldno) { - return types[fldno]; - } - - /** - * Gets the length of the given field. - */ - public int fieldLength(int fldno) { - return lengths[fldno]; - } - - /** - * Gets the offset of the given field. - */ - public int fieldOffset(int fldno) { - return offsets[fldno]; - } - - /** - * Gets the name of the given field. - */ - public String fieldName(int fldno) { - return names[fldno]; - } - - /** - * Gets the number of the field with the given name, or -1 if not found. - */ - public int fieldNumber(String name) { - for (int i = 0; i < names.length; i++) { - if (names[i].equalsIgnoreCase(name)) { - return i; - } - } - return -1; - } - - /** - * Prints the schema (i.e. the first lines of typical query output). - */ - public void print() { - - // print and space the column names - int len = 0; - for (int i = 0; i < types.length; i++) { - - // print the column name - System.out.print(names[i]); - - // figure out the padding - int collen = Math.max(names[i].length(), MIN_WIDTH); - if (types[i] == AttrType.STRING) { - collen = Math.max(lengths[i], collen); - } - len += collen; - - // pad the output to the field length - for (int j = 0; j < collen - names[i].length(); j++) { - System.out.print(' '); - } - - } // for - - // print the line separator - System.out.println(); - for (int i = 0; i < len; i++) { - System.out.print('-'); - } - System.out.println(); - - } // public void print() - -} // public class Schema diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Selection.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/Selection.java deleted file mode 100644 index 900b8a6..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Selection.java +++ /dev/null @@ -1,78 +0,0 @@ -package relop; - -/** - * The selection operator specifies which tuples to retain under a condition; in - * Minibase, this condition is simply a set of independent predicates logically - * connected by OR operators. - */ -public class Selection extends Iterator { - - private Iterator iter = null; - private Predicate[] preds = null; - //boolean hasNext; - Tuple next = null; - private boolean consumed; - private boolean isOpen; - /** - * Constructs a selection, given the underlying iterator and predicates. - */ - public Selection(Iterator aIter, Predicate... aPreds) { - this.schema = aIter.getSchema(); - this.iter = aIter; - this.preds = aPreds; - this.consumed = true; - this.isOpen = true; - } - - /** - * Gives a one-line explanation of the iterator, repeats the call on any - * child iterators, and increases the indent depth along the way. - */ - public void explain(int depth) { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Restarts the iterator, i.e. as if it were just constructed. - */ - public void restart() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Returns true if the iterator is open; false otherwise. - */ - public boolean isOpen() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Closes the iterator, releasing any resources (i.e. pinned pages). - */ - public void close() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Returns true if there are more tuples, false otherwise. - */ - public boolean hasNext() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - - /** - * Gets the next tuple in the iteration. - * - * @throws IllegalStateException if no more tuples - */ - public Tuple getNext() { - throw new UnsupportedOperationException("Not implemented"); - //Your code here - } - -} // public class Selection extends Iterator diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/SimpleJoin.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/SimpleJoin.java deleted file mode 100644 index 3490176..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/SimpleJoin.java +++ /dev/null @@ -1,126 +0,0 @@ -package relop; - -/** - * The simplest of all join algorithms: nested loops (see textbook, 3rd edition, - * section 14.4.1, page 454). - */ -public class SimpleJoin extends Iterator { - - private Iterator outer; - private Iterator inner; - private Predicate[] preds; - - private boolean startJoin = true; - Tuple leftTuple; - - // boolean variable to indicate whether the pre-fetched tuple is consumed or not - private boolean nextTupleIsConsumed; - - // pre-fetched tuple - private Tuple nextTuple; - - /** - * Constructs a join, given the left and right iterators and join predicates - * (relative to the combined schema). - */ - public SimpleJoin(Iterator left, Iterator right, Predicate... preds) { - - this.outer = left; - this.inner = right; - this.preds = preds; - this.schema = Schema.join(left.schema, right.schema); - - nextTupleIsConsumed = true; - } - - /** - * Gives a one-line explanation of the iterator, repeats the call on any - * child iterators, and increases the indent depth along the way. - */ - public void explain(int depth) { - - throw new UnsupportedOperationException("Not implemented"); - } - - /** - * Restarts the iterator, i.e. as if it were just constructed. - */ - public void restart() { - - outer.restart(); - inner.restart(); - nextTupleIsConsumed = true; - } - - /** - * Returns true if the iterator is open; false otherwise. - */ - public boolean isOpen() { - - return outer.isOpen() && inner.isOpen(); - } - - /** - * Closes the iterator, releasing any resources (i.e. pinned pages). - */ - public void close() { - - outer.close(); - inner.close(); - } - - /** - * Returns true if there are more tuples, false otherwise. - * - */ - public boolean hasNext() { - - if (!nextTupleIsConsumed) - return true; - - if (!outer.hasNext()) - //if(!inner.hasNext() && !outer.hasNext()) // Piazza post 116 - return false; - - Tuple rightTuple; - - if (startJoin) { - leftTuple = outer.getNext(); - startJoin = false; - } - - while (true) { - - while (inner.hasNext()) { - - rightTuple = inner.getNext(); - - // try to match - nextTuple = Tuple.join(leftTuple, rightTuple, this.schema); - for (int i = 0; i < preds.length; i++) - if (preds[i].evaluate(nextTuple)) { - nextTupleIsConsumed = false; - return true; - } - } - - if (outer.hasNext()) { - leftTuple = outer.getNext(); - inner.restart(); - } - else - return false; - } - } - - /** - * Gets the next tuple in the iteration. - * - * @throws IllegalStateException if no more tuples - */ - public Tuple getNext() { - - nextTupleIsConsumed = true; - return nextTuple; - } -} diff --git a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Tuple.java b/Projects/p3-skeleton/cs448p3/src/main/java/relop/Tuple.java deleted file mode 100644 index 73992b4..0000000 --- a/Projects/p3-skeleton/cs448p3/src/main/java/relop/Tuple.java +++ /dev/null @@ -1,315 +0,0 @@ -package relop; - -import global.AttrType; -import global.Convert; -import global.RID; -import heap.HeapFile; - -/** - * Each tuple in a relation is a collection of bytes that must fit within a - * single page. The Tuple class provides a logical view of fields, allowing get - * and set operations while automatically handling offsets and type conversions. - */ -public class Tuple { - - /** Page buffer containing this tuple. */ - protected byte[] data; - - /** Schema information for the fields. */ - protected Schema schema; - - // -------------------------------------------------------------------------- - - /** - * Creates a new empty tuple, given its schema. - * - * @param schema logical information for the fields - */ - public Tuple(Schema schema) { - this.schema = schema; - data = new byte[schema.getLength()]; - } - - /** - * Creates a new tuple, given its schema and values. - * - * @param schema logical information for the fields - * @param values individual data values of the fields - */ - public Tuple(Schema schema, Object... values) { - this.schema = schema; - data = new byte[schema.getLength()]; - setAllFields(values); - } - - /** - * Creates a new tuple, given existing values to wrap. - * - * @param schema logical information for the fields - * @param data record buffer containing the tuple - */ - public Tuple(Schema schema, byte[] data) { - this.schema = schema; - this.data = data; - } - - /** - * Builds and returns a new tuple resulting from joining two tuples. - * - * @param t1 the left tuple - * @param t2 the right tuple - * @param schema of the result - */ - public static Tuple join(Tuple t1, Tuple t2, Schema schema) { - - // construct the new tuple - int t1cnt = t1.schema.getCount(); - int t2cnt = t2.schema.getCount(); - Tuple tuple = new Tuple(schema); - - // copy all fields from t1 and t2 - int fldno = 0; - for (int i = 0; i < t1cnt; i++) { - tuple.setField(fldno++, t1.getField(i)); - } - for (int i = 0; i < t2cnt; i++) { - tuple.setField(fldno++, t2.getField(i)); - } - - // return the resulting tuple - return tuple; - - } // public static Tuple join(Tuple t1, Tuple t2, Schema schema) - - /** - * Gets the underlying data buffer. - */ - public byte[] getData() { - return data; - } - - /** - * Inserts the tuple into the given heap file. - */ - public RID insertIntoFile(HeapFile file) { - return file.insertRecord(data); - } - - /** - * Gets a field's value generically. - */ - public Object getField(int fldno) { - - // refer to the schema for the appropriate conversion - switch (schema.fieldType(fldno)) { - - case AttrType.INTEGER: - return getIntFld(fldno); - - case AttrType.FLOAT: - return getFloatFld(fldno); - - case AttrType.STRING: - return getStringFld(fldno); - - default: - throw new IllegalStateException("invalid attribute type"); - } - - } // public Object getField(int fldno) - - /** - * Gets a field's value generically, by column name. - */ - public Object getField(String fldName) { - return getField(schema.fieldNumber(fldName)); - } - - /** - * Sets a field's value generically. - */ - public void setField(int fldno, Object val) { - - // refer to the schema for the appropriate conversion - switch (schema.fieldType(fldno)) { - - case AttrType.INTEGER: - setIntFld(fldno, (Integer) val); - break; - - case AttrType.FLOAT: - setFloatFld(fldno, (Float) val); - break; - - case AttrType.STRING: - setStringFld(fldno, (String) val); - break; - - default: - throw new IllegalStateException("invalid attribute type"); - } - - } // public void setField(int fldno, Object val) - - /** - * Sets a field's value generically, by column name. - */ - public void setField(String fldName, Object val) { - setField(schema.fieldNumber(fldName), val); - } - - /** - * Returns generic values for all fields. - */ - public Object[] getAllFields() { - - Object[] values = new Object[schema.getCount()]; - for (int i = 0; i < values.length; i++) { - values[i] = getField(i); - } - return values; - - } // public Object[] getAllFields() - - /** - * Sets all fields, given generic values. - */ - public void setAllFields(Object... values) { - - for (int i = 0; i < values.length; i++) { - setField(i, values[i]); - } - - } // public void setAllFields(Object... values) - - /** - * Gets an integer field. - */ - public int getIntFld(int fldno) { - return Convert.getIntValue(schema.fieldOffset(fldno), data); - } - - /** - * Sets an integer field. - */ - public void setIntFld(int fldno, int val) { - Convert.setIntValue(val, schema.fieldOffset(fldno), data); - } - - /** - * Gets a float field. - */ - public float getFloatFld(int fldno) { - return Convert.getFloatValue(schema.fieldOffset(fldno), data); - } - - /** - * Sets a float field. - */ - public void setFloatFld(int fldno, float val) { - Convert.setFloatValue(val, schema.fieldOffset(fldno), data); - } - - /** - * Gets a string field. - */ - public String getStringFld(int fldno) { - return Convert.getStringValue(schema.fieldOffset(fldno), data, schema - .fieldLength(fldno)); - } - - /** - * Sets a string field (automatically truncates, if necessary). - */ - public void setStringFld(int fldno, String val) { - - // truncate the string if too long - int len = schema.fieldLength(fldno); - if (val.length() > len) { - val = val.substring(0, len - 1); - } - - // set the string and zero out the rest - int off = schema.fieldOffset(fldno); - Convert.setStringValue(val, off, data); - for (int i = val.length(); i < len; i++) { - data[off + i] = 0; - } - - } // public void setStringFld(int fldno, String val) - - /** - * Prints the tuple in a human-readable format. - */ - public void print() { - - // print everything as a string, with padding - String str = null; - int cnt = schema.getCount(); - for (int i = 0; i < cnt; i++) { - switch (schema.fieldType(i)) { - - case AttrType.INTEGER: - str = Integer.toString(getIntFld(i)); - System.out.print(str); - padOutput(0, str.length()); - break; - - case AttrType.FLOAT: - str = Float.toString(getFloatFld(i)); - System.out.print(str); - padOutput(0, str.length()); - break; - - case AttrType.STRING: - str = getStringFld(i); - System.out.print(str); - padOutput(schema.fieldLength(i), str.length()); - break; - - } - } - System.out.println(); - - } // public void print() - - /** - * Pads the current output to make columns line up. - * - * @param fieldLen minimum length of the current field - * @param outputLen length of the current output so far - */ - protected void padOutput(int fieldLen, int outputLen) { - - fieldLen = Math.max(Schema.MIN_WIDTH, fieldLen); - for (int j = 0; j < fieldLen - outputLen; j++) { - System.out.print(' '); - } - - } // protected void padOutput(int fieldLen, int outputLen) - - - // *** DO NOT CHANGE ANY EXISTING METHODS OR VARIABLES BELOW THIS LINE *** - //String format: field0|field1|field2|...fieldN| - public String toString() - { - String res = ""; - for(int i = 0; i < schema.getCount(); i++) - { - switch(schema.fieldType(i)) - { - case AttrType.FLOAT: - res += Float.toString(getFloatFld(i)) + ""; - break; - case AttrType.INTEGER: - res += Integer.toString(getIntFld(i)) + ":"; - break; - case AttrType.STRING: - res += getStringFld(i) + ":"; - break; - } - } - if(res.length() > 0) res = res.substring(0, res.length()-1); - return res; - } -} // public class Tuple diff --git a/Projects/p3-skeleton/cs448p3/src/test/java/tests/Field.java b/Projects/p3-skeleton/cs448p3/src/test/java/tests/Field.java deleted file mode 100644 index 1727e1e..0000000 --- a/Projects/p3-skeleton/cs448p3/src/test/java/tests/Field.java +++ /dev/null @@ -1,51 +0,0 @@ -package tests; - -import global.AttrType; -import org.json.simple.JSONObject; - -public class Field { - - private int no; - private int type; - private int length; - private String name; - - Field(JSONObject obj) { - no = ((Long) obj.get("no")).intValue(); - type = AttrType.fromString((String) obj.get("type")); - length = ((Long) obj.get("length")).intValue(); - name = (String) obj.get("name"); - } - - public Object getValue(String val) { - switch (type) { - case AttrType.INTEGER: { - return Integer.parseInt(val.trim()); - } - - case AttrType.FLOAT: { - return Float.parseFloat(val); - } - - default: { - return val; - } - } - } - - public int getNo() { - return no; - } - - public int getType() { - return type; - } - - public int getLength() { - return length; - } - - public String getName() { - return name; - } -} diff --git a/Projects/p3-skeleton/cs448p3/src/test/java/tests/QEPTest.java b/Projects/p3-skeleton/cs448p3/src/test/java/tests/QEPTest.java deleted file mode 100644 index 635b960..0000000 --- a/Projects/p3-skeleton/cs448p3/src/test/java/tests/QEPTest.java +++ /dev/null @@ -1,262 +0,0 @@ -package tests; - -import java.io.BufferedReader; -import java.io.FileReader; -import java.io.IOException; - - -import global.AttrOperator; -import global.AttrType; -import heap.HeapFile; -import relop.FileScan; -import relop.HashJoin; -import relop.Predicate; -import relop.Projection; -import relop.Schema; -import relop.Selection; -import relop.SimpleJoin; -import relop.Tuple; - -// YOUR CODE FOR PART3 SHOULD GO HERE. - -public class QEPTest extends TestDriver -{ - /** The display name of the test suite. */ - private static final String TEST_NAME = "QEP Tests"; - - - /** Employee table schema. */ - private static Schema s_emp; - - /** Department table schema. */ - private static Schema s_dept; - - private static String empFilePath; - private static String deptFilePath; - - private static HeapFile empHeapFile; - private static HeapFile deptHeapFile; - - // -------------------------------------------------------------------------- - - /** - * Test application entry point; runs all tests. - * @throws IOException - */ - public static void main(String argv[]) throws IOException - { - empFilePath = argv[0] + "/Employee.txt"; - deptFilePath = argv[0] + "/Department.txt"; - // create a clean Minibase instance - QEPTest qepTest = new QEPTest(); - qepTest.create_minibase(); - - initSchema(); - loadData(); - - - qepTest.q1(); - qepTest.q2(); - qepTest.q3(); - qepTest.q4(); - qepTest.q5(); - qepTest.q6(); - qepTest.q7(); - qepTest.q8(); - - /* - qepTest.q5(); - qepTest.q5_hash(); - */ - } - - public void q1() - { - System.out.println("\n 1) Display for each employee his Name and Salary:\n"); - FileScan scan = new FileScan(s_emp, empHeapFile); - Projection pro = new Projection(scan, s_emp.fieldNumber(Constants.EmpNameColName) , s_emp.fieldNumber(Constants.EmpSalaryColName)); - pro.execute(); - } - - public void q2() - { - System.out.println("\n 2) Display the Name for the departments with MinSalary = 1000:\n"); - FileScan scan = new FileScan(s_dept, deptHeapFile); - Predicate pred = new Predicate(AttrOperator.EQ, AttrType.COLNAME, Constants.DeptMinSalaryColName, AttrType.FLOAT, 1000F); - Selection sel = new Selection(scan, pred); - Projection pro = new Projection(sel, s_dept.fieldNumber(Constants.DeptNameColName)); - pro.execute(); - } - - public void q3() - { - System.out.println("\n 3) Display the Name for the departments with MinSalary = MaxSalary:\n"); - FileScan scan = new FileScan(s_dept, deptHeapFile); - Predicate pred = new Predicate(AttrOperator.EQ, AttrType.COLNAME, Constants.DeptMinSalaryColName, AttrType.COLNAME, Constants.DeptMaxSalaryColName); - Selection sel = new Selection(scan, pred); - Projection pro = new Projection(sel, s_dept.fieldNumber(Constants.DeptNameColName)); - pro.execute(); - } - - public void q4() - { - System.out.println("\n 4) Display the Name for employees whose Age > 30 and Salary < 1000:\n"); - FileScan scan = new FileScan(s_emp, empHeapFile); - Predicate predAge = new Predicate(AttrOperator.GT, AttrType.COLNAME, Constants.EmpAgeColName, AttrType.FLOAT, 30F); - Predicate predSalary = new Predicate(AttrOperator.LT, AttrType.COLNAME, Constants.EmpSalaryColName, AttrType.FLOAT, 1000F); - Selection selAge = new Selection(scan, predAge); - Selection selSalary = new Selection(selAge, predSalary); - Projection projName = new Projection(selSalary, s_emp.fieldNumber(Constants.EmpNameColName)); - projName.execute(); - } - - public void q5() - { - System.out.println("\n 5) For each employee, display his Salary and the Name of his department:\n"); - FileScan empScan = new FileScan(s_emp, empHeapFile); - FileScan deptScan = new FileScan(s_dept, deptHeapFile); - Predicate joinPred = new Predicate(AttrOperator.EQ, AttrType.FIELDNO, 0, AttrType.FIELDNO, 8); - SimpleJoin join = new SimpleJoin(deptScan, empScan, joinPred); - Projection proj = new Projection(join, 7, 1); - proj.execute(); - } - - public void q6() - { - System.out.println("\n 6) Display the Name and Salary for employees who work in the department that has DeptId = 3:\n"); - FileScan scan = new FileScan(s_emp, empHeapFile); - Predicate predDept = new Predicate(AttrOperator.EQ, AttrType.COLNAME, Constants.EmpDeptIDColName, AttrType.INTEGER, 3); - Selection sel = new Selection(scan, predDept); - Projection proj = new Projection(sel, s_emp.fieldNumber(Constants.EmpNameColName), s_emp.fieldNumber(Constants.EmpSalaryColName)); - proj.execute(); - } - - public void q7() - { - System.out.println("\n 7) Display the Salary for each employee who works in a department that has MaxSalary > 100000:\n"); - FileScan empScan = new FileScan(s_emp, empHeapFile); - FileScan deptScan = new FileScan(s_dept, deptHeapFile); - Predicate predMaxSalary = new Predicate(AttrOperator.GT, AttrType.COLNAME, Constants.DeptMaxSalaryColName, AttrType.FLOAT, 100000F); - Selection selDept = new Selection(deptScan, predMaxSalary); - Predicate joinPred = new Predicate(AttrOperator.EQ, AttrType.FIELDNO, 0, AttrType.FIELDNO, 8); - SimpleJoin join = new SimpleJoin(selDept, empScan, joinPred); - Projection proj = new Projection(join, 7); - proj.execute(); - } - - public void q8() - { - System.out.println("\n 8) Display the Name for each employee whose Salary is less than the MinSalary of his department:\n"); - FileScan empScan = new FileScan(s_emp, empHeapFile); - FileScan deptScan = new FileScan(s_dept, deptHeapFile); - Predicate joinPred = new Predicate(AttrOperator.EQ, AttrType.FIELDNO, 0, AttrType.FIELDNO, 8); - SimpleJoin join = new SimpleJoin(deptScan, empScan, joinPred); - Predicate pred = new Predicate(AttrOperator.LT, AttrType.FIELDNO, 7, AttrType.FIELDNO, 2); - Selection sel = new Selection(join, pred); - Projection proj = new Projection(sel, 5); - proj.execute(); - } - - - - public void q5_hash() - { - System.out.println("\n 5) For each employee, display his Salary and the Name of his department:\n"); - FileScan empScan = new FileScan(s_emp, empHeapFile); - FileScan deptScan = new FileScan(s_dept, deptHeapFile); - Predicate joinPred = new Predicate(AttrOperator.EQ, AttrType.FIELDNO, 0, AttrType.FIELDNO, 8); - //SimpleJoin join = new SimpleJoin(deptScan, empScan, joinPred); - HashJoin join = new HashJoin(deptScan, empScan, 0, 4); - Projection proj = new Projection(join, 7, 1); - proj.execute(); - } - - protected static void initSchema() - { - //initialize schema for the "Employee" table - s_emp = new Schema(5); - s_emp.initField(0, AttrType.INTEGER, 4, Constants.EmpIdColName); - s_emp.initField(1, AttrType.STRING, 40, Constants.EmpNameColName); - s_emp.initField(2, AttrType.FLOAT, 4, Constants.EmpAgeColName); - s_emp.initField(3, AttrType.FLOAT, 4, Constants.EmpSalaryColName); - s_emp.initField(4, AttrType.INTEGER, 4, Constants.EmpDeptIDColName); - - //initialize schema for the "Department" table - s_dept = new Schema(4); - s_dept.initField(0, AttrType.INTEGER, 4, Constants.DeptIdColName); - s_dept.initField(1, AttrType.STRING, 40, Constants.DeptNameColName); - s_dept.initField(2, AttrType.FLOAT, 4, Constants.DeptMinSalaryColName); - s_dept.initField(3, AttrType.FLOAT, 4, Constants.DeptMaxSalaryColName); - - } - - protected static void loadData() throws IOException - { - empHeapFile = new HeapFile(null); - loadEmpTable(empHeapFile); - - deptHeapFile = new HeapFile(null); - loadDeptTable(deptHeapFile); - } - - - protected static void loadEmpTable(HeapFile file) throws IOException - { - Tuple tuple = new Tuple(s_emp); - BufferedReader reader = new BufferedReader(new FileReader(empFilePath)); - reader.readLine(); //ignore the header - String line = ""; - String[] temp = null; - int empId; String empName; float age; float salary; int deptId; - while((line = reader.readLine()) != null) - { - temp = line.split(","); - empId = Integer.parseInt(temp[0].trim()); - empName = temp[1].trim(); - age = Float.parseFloat(temp[2].trim()); - salary = Float.parseFloat(temp[3].trim()); - deptId = Integer.parseInt(temp[4].trim()); - tuple.setAllFields(empId, empName, age, salary, deptId); - tuple.insertIntoFile(file); - } - reader.close(); - } - - protected static void loadDeptTable(HeapFile file) throws IOException - { - Tuple tuple = new Tuple(s_dept); - BufferedReader reader = new BufferedReader(new FileReader(deptFilePath)); - reader.readLine(); //ignore the header - String line = ""; - String[] temp = null; - int deptId; String deptName; float minSalary; float maxSalary; - while((line = reader.readLine()) != null) - { - temp = line.split(","); - deptId = Integer.parseInt(temp[0].trim()); - deptName = temp[1].trim(); - minSalary = Float.parseFloat(temp[2].trim()); - maxSalary = Float.parseFloat(temp[3].trim()); - tuple.setAllFields(deptId, deptName, minSalary, maxSalary); - tuple.insertIntoFile(file); - } - reader.close(); - } - - static class Constants - { - - public final static String EmpIdColName = "EmpId"; - public final static String EmpNameColName = "Name"; - public final static String EmpAgeColName = "Age"; - public final static String EmpSalaryColName = "Salary"; - public final static String EmpDeptIDColName = "DeptID"; - - public final static String DeptIdColName = "DeptId"; - public final static String DeptNameColName = "Name"; - public final static String DeptMinSalaryColName = "MinSalary"; - public final static String DeptMaxSalaryColName = "MaxSalary"; - - - } -} diff --git a/Projects/p3-skeleton/cs448p3/src/test/java/tests/ROTest.java b/Projects/p3-skeleton/cs448p3/src/test/java/tests/ROTest.java deleted file mode 100644 index a66a746..0000000 --- a/Projects/p3-skeleton/cs448p3/src/test/java/tests/ROTest.java +++ /dev/null @@ -1,367 +0,0 @@ -package tests; - -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; -import org.json.simple.parser.ParseException; -import org.junit.After; -import org.junit.Before; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.FixMethodOrder; -import org.junit.Test; - -import org.junit.runner.JUnitCore; -import org.junit.runner.Result; -import org.junit.runner.notification.Failure; - -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; - -import global.AttrOperator; -import global.AttrType; -import global.RID; -import global.SearchKey; -import heap.HeapFile; -import index.HashIndex; -import relop.FileScan; -import relop.HashJoin; -import relop.IndexScan; -import relop.KeyScan; -import relop.Predicate; -import relop.Projection; -import relop.Schema; -import relop.Selection; -import relop.SimpleJoin; -import relop.Tuple; -import relop.Iterator; - -import java.io.*; -import java.util.*; - -import com.opencsv.CSVReader; -import org.json.simple.parser.JSONParser; - -/** - * Test suite for the relop layer. - */ -public class ROTest extends TestDriver { - - private static ROTest rot; - - /** The display name of the test suite. */ - private static final String TEST_NAME = "relational operator tests"; - - /** Size of tables in test3. */ - private static final int SUPER_SIZE = 2000; - - private Scanner in; - - /** Drivers schema/table/index */ - private static Schema s_drivers; - private static HeapFile f_drivers; - private static HashIndex idx_drivers; - - private static Schema s_driversBig; - private static HeapFile f_driversBig; - private static HashIndex idx_driversBig; - /** Rides schema/table/index */ - - private static Schema s_rides; - private static HeapFile f_rides; - private static HashIndex idx_rides; - - private static Schema s_ridesBig; - private static HeapFile f_ridesBig; - private static HashIndex idx_ridesBig; - - /** Groups schema/table/index */ - private static Schema s_groups; - private static HeapFile f_groups; - private static HashIndex idx_groups; - - private static Schema s_groupsBig; - private static HeapFile f_groupsBig; - private static HashIndex idx_groupsBig; - - /** Expected result strings for test cases */ - private static HashMap results; - - /** */ - private static void loadTable(Schema schema, HeapFile f_table, HashIndex idx_table, String table) - throws FileNotFoundException, IOException, ParseException { - - // initialize schema for table - InputStream in = ClassLoader.getSystemResourceAsStream(table.concat(".json")); - JSONObject jsonObj = (JSONObject) new JSONParser().parse(new InputStreamReader(in)); - JSONArray jsonFields = (JSONArray) jsonObj.get("schema"); - Field[] fields = new Field[jsonFields.size()]; - - int key = ((Long) jsonObj.get("key")).intValue(); - int xx = 0; - for (Object obj : jsonFields) { - Field field = new Field((JSONObject) obj); - fields[xx] = field; xx++; - schema.initField(field.getNo(), field.getType(), field.getLength(), field.getName()); - } - - // populate relation - in = ClassLoader.getSystemResourceAsStream(table.concat(".csv")); - try (CSVReader csvReader = new CSVReader(new InputStreamReader(in))) { - String[] values = null; - Tuple tuple = new Tuple(schema); - while((values = csvReader.readNext()) != null) { - - for (int i=0; i(); - - try - { - Scanner in = new Scanner(new File("solution.txt")); - String line; - String[] res; - while(in.hasNextLine()) - { - line = in.nextLine(); - res = line.split("="); - results.put(res[0],res[1]); - - } - } catch (IOException e) - { - e.printStackTrace(); - System.exit(1); - } - - // "Drivers" table - s_drivers = new Schema(5); - f_drivers = new HeapFile("drivers"); - idx_drivers = new HashIndex("drivers_idx"); - loadTable(s_drivers, f_drivers, idx_drivers, "drivers"); - - - s_driversBig = new Schema(5); - f_driversBig = new HeapFile("driversBig"); - idx_driversBig = new HashIndex("drivers_idxBig"); - loadTable(s_driversBig, f_driversBig, idx_driversBig, "driversBig"); - // "Rides" table - s_rides = new Schema(4); - f_rides = new HeapFile("rides"); - idx_rides = new HashIndex("rides_idx"); - loadTable(s_rides, f_rides, idx_rides, "rides"); - - s_ridesBig = new Schema(4); - f_ridesBig = new HeapFile("ridesBig"); - idx_ridesBig = new HashIndex("rides_idxBig"); - loadTable(s_ridesBig, f_ridesBig, idx_ridesBig, "ridesBig"); - - // "Groups" table - s_groupsBig = new Schema(2); - f_groupsBig = new HeapFile("groupsBig"); - idx_groupsBig = new HashIndex("groups_idxBig"); - loadTable(s_groupsBig, f_groupsBig, idx_groupsBig, "groupsBig"); - - s_groups = new Schema(2); - f_groups = new HeapFile("groups"); - idx_groups = new HashIndex("groups_idx"); - loadTable(s_groups, f_groups, idx_groups, "groups"); - - System.out.println(); - - } - - @AfterClass - public static void tearDownDB() - { - idx_drivers.deleteFile(); - idx_rides.deleteFile(); - idx_groups.deleteFile(); - f_rides.deleteFile(); - f_drivers.deleteFile(); - f_groups.deleteFile(); - rot.delete_minibase(); - } - - @Test - public void testFileScan() { - //Scan drivers table - Iterator fscan = new FileScan(s_drivers, f_drivers); - execute_and_compare("Filescan", "filescan", fscan); - } - - @Test - public void testIndexScan() { - //Scan drivers index - Iterator idxscan = new IndexScan(s_drivers, idx_drivers, f_drivers); - execute_and_compare("IndexScan", "idxscan", idxscan); - } - - @Test - public void testKeyScan() { - //Scan drivers index for key 20f - Iterator keyscan = new KeyScan(s_drivers, idx_drivers, new SearchKey(20f), f_drivers); - execute_and_compare("KeyScan", "keyscan", keyscan); - } - - @Test - public void testSelection() { - //Selection drivers with age > 20 - Iterator selection = new Selection(new FileScan(s_drivers, f_drivers), - new Predicate(AttrOperator.GT, AttrType.COLNAME, "age", AttrType.FLOAT, 20F)); - execute_and_compare("Selection", "selection", selection); - } - - @Test - public void testSelectionMultiplePredicates() { - Iterator selection_preds = new Selection(new FileScan(s_drivers, f_drivers), - new Predicate(AttrOperator.GT, AttrType.COLNAME, "age", AttrType.FLOAT, 23F), - new Predicate(AttrOperator.LT, AttrType.COLNAME, "age", AttrType.FLOAT, 19F)); - execute_and_compare("Selection Multipled Predicates", "selection_preds", selection_preds); - } - - @Test - public void testProjection() { - //Projection on Drivers: {FirstName, NumSeats} - Iterator projection = new Projection(new FileScan(s_drivers, f_drivers), s_drivers.fieldNumber("FirstName"), s_drivers.fieldNumber("NumSeats")); - execute_and_compare("Projection", "projection", projection); - } - - @Test - public void testHashJoin() { - //HashJoin on Drivers X Rides on DriverID - Iterator hashjoin = new HashJoin(new FileScan(s_drivers, f_drivers), - new FileScan(s_rides, f_rides), 0, 0); - execute_and_compare("Hash Join", "hashjoin", hashjoin); - } - - @Test - public void testSelectionPipelining() { - //Test all possible Iterator inputs to Selection - Iterator sel_idx = new Selection(new IndexScan(s_drivers, idx_drivers, f_drivers), - new Predicate(AttrOperator.EQ, AttrType.COLNAME, "FirstName", AttrType.STRING, "Walid")); - execute_and_compare("Selection - Pipelining IndexScan", "sel_idx", sel_idx); - Iterator sel_key = new Selection(new KeyScan(s_drivers, idx_drivers, new SearchKey(20F), f_drivers), - new Predicate(AttrOperator.EQ, AttrType.COLNAME, "FirstName", AttrType.STRING, "Walid")); - execute_and_compare("Selection - Pipelining Keyscan", "sel_key", sel_key); - Iterator sel_sel = new Selection(new Selection(new FileScan(s_drivers, f_drivers), - new Predicate(AttrOperator.EQ, AttrType.COLNAME, "Age", AttrType.FLOAT, 20F)), - new Predicate(AttrOperator.EQ, AttrType.COLNAME, "FirstName", AttrType.STRING, "Walid")); - execute_and_compare("Selection - Pipelining Selection", "sel_sel", sel_sel); - Iterator sel_proj = new Selection(new Projection( - new FileScan(s_drivers, f_drivers), s_drivers.fieldNumber("DriverId"), s_drivers.fieldNumber("FirstName")), - new Predicate(AttrOperator.EQ, AttrType.COLNAME, "FirstName", AttrType.STRING, "Walid")); - execute_and_compare("Selection - Pipelining Projection", "sel_proj", sel_proj); - /* Iterator sel_sj = new Selection(new SimpleJoin(new FileScan(s_drivers, f_drivers), new FileScan(s_rides, f_rides), - new Predicate(AttrOperator.EQ, AttrType.FIELDNO, 0, AttrType.FIELDNO, 5)), - new Predicate(AttrOperator.EQ, AttrType.COLNAME, "FirstName", AttrType.STRING, "Walid")); - execute_and_compare("Selection - Pipelining Simple Join", "sel_sj", sel_sj); - */ - Iterator sel_hj = new Selection(new HashJoin(new FileScan(s_drivers, f_drivers), new FileScan(s_rides, f_rides),0,0), - new Predicate(AttrOperator.EQ, AttrType.COLNAME, "FirstName", AttrType.STRING, "Walid")); - execute_and_compare("Selection - Pipelining Hash Join", "sel_jh", sel_hj); - } - - @Test - public void testProjectionPipelining() { - //Test all possible Iterator inputs to HashJoin - Iterator proj_idx = new Projection(new IndexScan(s_drivers, idx_drivers, f_drivers), - s_drivers.fieldNumber("DriverId"), s_drivers.fieldNumber("Age")); - execute_and_compare("Projection - Pipelining IndexScan", "proj_idx", proj_idx); - Iterator proj_key = new Projection(new KeyScan(s_drivers, idx_drivers, new SearchKey(20F), f_drivers), - s_drivers.fieldNumber("DriverId"), s_drivers.fieldNumber("Age")); - execute_and_compare("Projection - Pipelining KeyScan", "proj_key", proj_key); - Iterator proj_sel = new Projection(new Selection(new FileScan(s_drivers, f_drivers), - new Predicate(AttrOperator.EQ, AttrType.COLNAME, "Age", AttrType.FLOAT, 20F)), - s_drivers.fieldNumber("DriverId"), s_drivers.fieldNumber("Age")); - execute_and_compare("Projection - Pipelining Selection", "proj_sel", proj_sel); - Iterator proj_proj = new Projection(new Projection(new FileScan(s_drivers, f_drivers), - s_drivers.fieldNumber("DriverId"), s_drivers.fieldNumber("FirstName"), s_drivers.fieldNumber("Age")), - 0, 2); - execute_and_compare("Projection - Pipelining Projection", "proj_proj", proj_proj); - /* - Iterator proj_sj = new Projection(new SimpleJoin(new FileScan(s_drivers, f_drivers), new FileScan(s_rides, f_rides), - new Predicate(AttrOperator.EQ, AttrType.FIELDNO, 0, AttrType.FIELDNO, 5)), - 0, 3); - execute_and_compare("Projection - Pipelining Simple Join", "proj_sj", proj_sj); - */ - Iterator proj_hj = new Projection(new HashJoin(new FileScan(s_drivers, f_drivers), new FileScan(s_rides, f_rides),0,0), - 0, 3); - execute_and_compare("Projection - Pipelining Hash Join", "proj_hj", proj_hj); - } - - @Test - public void testHashjoinPipelining() { - //Test all possible Iterator inputs to HashJoin - /* - Iterator hj_sel_sj = new HashJoin(new Selection(new FileScan(s_drivers, f_drivers), - new Predicate(AttrOperator.GTE, AttrType.COLNAME, "DriverId", AttrType.INTEGER, 1)), - new SimpleJoin(new FileScan(s_rides, f_rides), new FileScan(s_groups, f_groups), - new Predicate(AttrOperator.EQ, AttrType.COLNAME, "GroupId", AttrType.COLNAME, "DriverId")),0,0); - execute_and_compare("Hash Join - Pipelining Selection/Simple Join", "hj_sel_sj", hj_sel_sj); - */ - Iterator hj_proj_hj = new HashJoin(new Projection(new FileScan(s_drivers, f_drivers), s_drivers.fieldNumber("DriverId"), s_drivers.fieldNumber("Age")), - new HashJoin(new FileScan(s_rides, f_rides), new FileScan(s_groups, f_groups), 1, 0), 0, 0); - execute_and_compare("Hash Join - Pipelining Projection/Hash Join", "hj_proj_hj", hj_proj_hj); - Iterator hj_iscan_kscan = new HashJoin(new IndexScan(s_drivers, idx_drivers, f_drivers), - new KeyScan(s_rides, idx_rides, new SearchKey(1), f_rides), 0, 0); - execute_and_compare("Hash Join - Pipelining IndexScan/KeyScan", "hj_iscan_kscan", hj_iscan_kscan); - } - - //This is an EXTRA test to do Drivers X Drivers using HashJoin and we will calibrate this by changing the value of HashTableDup in the HashTableDup class - @Test - public void testHashJoinOnBigTables() { - //HashJoin on Drivers X Rides on DriverID - //Anytime the HashTableDup count goes over the threshold, a runtimeexception is thrown - Iterator hashSame = new HashJoin(new FileScan(s_drivers, f_drivers), - new FileScan(s_drivers, f_drivers), 0, 0); - execute_and_compare("Hash Join", "hashSame", hashSame); - } - - //This is second EXTRA test to do DriversBig X DriversBig using HashJoin and we will calibrate this by changing the value of HashTableDup in the HashTableDup class - //Anytime the HashTableDup count goes over the threshold, a runtimeexception is thrown - //In addition, any call to Simplejoin throws a RunTimeException - @Test - public void testHashJoinOnEqualTables() { - //HashJoin on Drivers X Rides on DriverID - Iterator hashEqual = new HashJoin(new FileScan(s_driversBig, f_driversBig), - new FileScan(s_driversBig, f_driversBig), 0, 0); - execute_and_compare("Hash Join", "hashEqual", hashEqual); - } - -} // class ROTest extends TestDriver diff --git a/Projects/p3-skeleton/cs448p3/src/test/java/tests/TestDriver.java b/Projects/p3-skeleton/cs448p3/src/test/java/tests/TestDriver.java deleted file mode 100644 index 215f7d8..0000000 --- a/Projects/p3-skeleton/cs448p3/src/test/java/tests/TestDriver.java +++ /dev/null @@ -1,179 +0,0 @@ -package tests; - -import global.GlobalConst; -import global.Minibase; - -import java.io.File; -import java.util.ArrayList; -import java.util.Random; - -/** - *

Minibase Test Driver

- * This base class contains common code to each layer's test suite. - */ -class TestDriver implements GlobalConst { - - /** Success value, for readability. */ - protected static final boolean PASS = true; - - /** Failure value, for readability. */ - protected static final boolean FAIL = false; - - // -------------------------------------------------------------------------- - - /** Default database file name. */ - protected String DB_PATH = System.getProperty("user.name") + ".minibase"; - - /** Default database size (in pages). */ - protected int DB_SIZE = 10000; - - /** Default buffer pool size (in pages) */ - protected int BUF_SIZE = 100; - - /** Default buffer pool replacement policy */ - protected String BUF_POLICY = "Clock"; - - // -------------------------------------------------------------------------- - - /** Random generator; use the same seed to make tests deterministic. */ - protected Random random; - - /** - * Counter values saved with a particular description. - */ - protected class CountData { - - public String desc; - - public int reads; - - public int writes; - - public int allocs; - - public int pinned; - - } // protected class CountData - - /** - * Incremental history of the performance counters; odd elements are snapshots - * before the tests, and even elements are after. - */ - protected ArrayList counts; - - // -------------------------------------------------------------------------- - - /** - * Deletes the database files from the disk. - */ - protected void delete_minibase() { - new File(DB_PATH).delete(); - } - - /** - * Creates a new database on the disk. - */ - protected void create_minibase() { - System.out.println("Creating database...\nReplacer: " + BUF_POLICY); - new Minibase(DB_PATH, DB_SIZE, BUF_SIZE, BUF_POLICY, false); - } - - /** - * Loads an existing database from the disk. - */ - protected void load_minibase() { - System.out.println("Loading database...\nReplacer: " + BUF_POLICY); - new Minibase(DB_PATH, DB_SIZE, BUF_SIZE, BUF_POLICY, true); - } - - // -------------------------------------------------------------------------- - - /** - * Resets the random generator to the default seed. - */ - protected void initRandom() { - random = new Random(74); - } - - /** - * Resets the performance counter history. - */ - protected void initCounts() { - counts = new ArrayList(); - } - - /** - * Saves the current performance counters, given the description. - */ - protected void saveCounts(String desc) { - - // create the new count data - CountData data = new CountData(); - counts.add(data); - data.desc = desc; - - // save the counts (in correct order) - Minibase.BufferManager.flushAllPages(); - data.reads = Minibase.DiskManager.getReadCount(); - data.writes = Minibase.DiskManager.getWriteCount(); - data.allocs = Minibase.DiskManager.getAllocCount(); - data.pinned = BUF_SIZE - Minibase.BufferManager.getNumUnpinned(); - - } // protected void saveCounts(String desc) - - /** - * Prints the performance counters (i.e. for the current test). - */ - protected void printCounters() { - - CountData data = counts.get(counts.size() - 1); - System.out.println(); - Minibase.BufferManager.flushAllPages(); - System.out.println(" *** Number of reads: " - + (Minibase.DiskManager.getReadCount() - data.reads)); - System.out.println(" *** Number of writes: " - + (Minibase.DiskManager.getWriteCount() - data.writes)); - System.out.println(" *** Net total pages: " - + (Minibase.DiskManager.getAllocCount() - data.allocs)); - int numbufs = Minibase.BufferManager.getNumBuffers(); - System.out - .println(" *** Remaining Pinned: " - + (numbufs - Minibase.BufferManager.getNumUnpinned()) + " / " - + numbufs); - - } // protected void printCounters() - - /** - * Prints the complete history of the performance counters. - * - * @param sepcnt how many lines to print before each separator - */ - protected void printSummary(int sepcnt) { - - System.out.println(); - String seperator = "--------------------------------------"; - System.out.println(seperator); - System.out.println("\tReads\tWrites\tAllocs\tPinned"); - int size = counts.size(); - for (int i = 1; i < size; i += 2) { - - if (i % (sepcnt * 2) == 1) { - System.out.println(seperator); - } - - CountData before = counts.get(i - 1); - CountData after = counts.get(i); - System.out.print(after.desc); - - System.out.print("\t" + (after.reads - before.reads)); - System.out.print("\t" + (after.writes - before.writes)); - System.out.print("\t" + (after.allocs - before.allocs)); - System.out.print("\t" + (after.pinned - before.pinned)); - System.out.println(); - - } // for - System.out.println(seperator); - - } // protected void printSummary(int sepcnt) - -} // class TestDriver implements GlobalConst diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/drivers.csv b/Projects/p3-skeleton/cs448p3/src/test/resources/drivers.csv deleted file mode 100644 index bef7605..0000000 --- a/Projects/p3-skeleton/cs448p3/src/test/resources/drivers.csv +++ /dev/null @@ -1,9 +0,0 @@ -1, "Ahmed", "Elmagarmid", 25, 5 -2, "Walid", "Aref", 20, 13 -3, "Christopher", "Clifton", 18, 4 -4, "Sunil", "Prabhakar", 22, 7 -5, "Elisa", "Bertino", 26, 5 -6, "Susanne", "Hambrusch", 23, 3 -7, "David", "Eberts", 24, 8 -8, "Arif", "Ghafoor", 20, 5 -9, "Jeff", "Vitter", 19, 10 \ No newline at end of file diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/drivers.json b/Projects/p3-skeleton/cs448p3/src/test/resources/drivers.json deleted file mode 100644 index 7c7c7c5..0000000 --- a/Projects/p3-skeleton/cs448p3/src/test/resources/drivers.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "schema": [ - { - "no": 0, - "type": "INTEGER", - "length": 4, - "name": "DriverId" - }, - { - "no": 1, - "type": "STRING", - "length": 20, - "name": "FirstName" - }, - { - "no": 2, - "type": "STRING", - "length": 20, - "name": "LastName" - }, - { - "no": 3, - "type": "FLOAT", - "length": 4, - "name": "Age" - }, - { - "no": 4, - "type": "INTEGER", - "length": 4, - "name": "NumSeats" - } - ], - "key": 3 -} diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/driversBig.csv b/Projects/p3-skeleton/cs448p3/src/test/resources/driversBig.csv deleted file mode 100644 index fae9cec..0000000 --- a/Projects/p3-skeleton/cs448p3/src/test/resources/driversBig.csv +++ /dev/null @@ -1,1010 +0,0 @@ -1," ""Ahmed"""," ""Elmagarmid""",25,5 -2," ""Walid"""," ""Aref""",20,13 -3," ""Christopher"""," ""Clifton""",18,4 -4," ""Sunil"""," ""Prabhakar""",22,7 -5," ""Elisa"""," ""Bertino""",26,5 -6," ""Susanne"""," ""Hambrusch""",23,3 -7," ""David"""," ""Eberts""",24,8 -8," ""Arif"""," ""Ghafoor""",20,5 -9," ""Jeff"""," ""Vitter""",19,10 -10,"""Adnan""","""Bob""",19,10 -11,"""Adnan""","""Edgardo""",19,10 -12,"""Adnan""","""Bob""",19,10 -13,"""Adnan""","""Edgardo""",19,10 -14,"""Adnan""","""Bob""",19,10 -15,"""Adnan""","""Edgardo""",19,10 -16,"""Adnan""","""Bob""",19,10 -17,"""Adnan""","""Edgardo""",19,10 -18,"""Adnan""","""Bob""",19,10 -19,"""Adnan""","""Edgardo""",19,10 -20,"""Adnan""","""Bob""",19,10 -21,"""Adnan""","""Edgardo""",19,10 -22,"""Adnan""","""Bob""",19,10 -23,"""Adnan""","""Edgardo""",19,10 -24,"""Adnan""","""Bob""",19,10 -25,"""Adnan""","""Edgardo""",19,10 -26,"""Adnan""","""Bob""",19,10 -27,"""Adnan""","""Edgardo""",19,10 -28,"""Adnan""","""Bob""",19,10 -29,"""Adnan""","""Edgardo""",19,10 -30,"""Adnan""","""Bob""",19,10 -31,"""Adnan""","""Edgardo""",19,10 -32,"""Adnan""","""Bob""",19,10 -33,"""Adnan""","""Edgardo""",19,10 -34,"""Adnan""","""Bob""",19,10 -35,"""Adnan""","""Edgardo""",19,10 -36,"""Adnan""","""Bob""",19,10 -37,"""Adnan""","""Edgardo""",19,10 -38,"""Adnan""","""Bob""",19,10 -39,"""Adnan""","""Edgardo""",19,10 -40,"""Adnan""","""Bob""",19,10 -41,"""Adnan""","""Edgardo""",19,10 -42,"""Adnan""","""Bob""",19,10 -43,"""Adnan""","""Edgardo""",19,10 -44,"""Adnan""","""Bob""",19,10 -45,"""Adnan""","""Edgardo""",19,10 -46,"""Adnan""","""Bob""",19,10 -47,"""Adnan""","""Edgardo""",19,10 -48,"""Adnan""","""Bob""",19,10 -49,"""Adnan""","""Edgardo""",19,10 -50,"""Adnan""","""Bob""",19,10 -51,"""Adnan""","""Edgardo""",19,10 -52,"""Adnan""","""Bob""",19,10 -53,"""Adnan""","""Edgardo""",19,10 -54,"""Adnan""","""Bob""",19,10 -55,"""Adnan""","""Edgardo""",19,10 -56,"""Adnan""","""Bob""",19,10 -57,"""Adnan""","""Edgardo""",19,10 -58,"""Adnan""","""Bob""",19,10 -59,"""Adnan""","""Edgardo""",19,10 -60,"""Adnan""","""Bob""",19,10 -61,"""Adnan""","""Edgardo""",19,10 -62,"""Adnan""","""Bob""",19,10 -63,"""Adnan""","""Edgardo""",19,10 -64,"""Adnan""","""Bob""",19,10 -65,"""Adnan""","""Edgardo""",19,10 -66,"""Adnan""","""Bob""",19,10 -67,"""Adnan""","""Edgardo""",19,10 -68,"""Adnan""","""Bob""",19,10 -69,"""Adnan""","""Edgardo""",19,10 -70,"""Adnan""","""Bob""",19,10 -71,"""Adnan""","""Edgardo""",19,10 -72,"""Adnan""","""Bob""",19,10 -73,"""Adnan""","""Edgardo""",19,10 -74,"""Adnan""","""Bob""",19,10 -75,"""Adnan""","""Edgardo""",19,10 -76,"""Adnan""","""Bob""",19,10 -77,"""Adnan""","""Edgardo""",19,10 -78,"""Adnan""","""Bob""",19,10 -79,"""Adnan""","""Edgardo""",19,10 -80,"""Adnan""","""Bob""",19,10 -81,"""Adnan""","""Edgardo""",19,10 -82,"""Adnan""","""Bob""",19,10 -83,"""Adnan""","""Edgardo""",19,10 -84,"""Adnan""","""Bob""",19,10 -85,"""Adnan""","""Edgardo""",19,10 -86,"""Adnan""","""Bob""",19,10 -87,"""Adnan""","""Edgardo""",19,10 -88,"""Adnan""","""Bob""",19,10 -89,"""Adnan""","""Edgardo""",19,10 -90,"""Adnan""","""Bob""",19,10 -91,"""Adnan""","""Edgardo""",19,10 -92,"""Adnan""","""Bob""",19,10 -93,"""Adnan""","""Edgardo""",19,10 -94,"""Adnan""","""Bob""",19,10 -95,"""Adnan""","""Edgardo""",19,10 -96,"""Adnan""","""Bob""",19,10 -97,"""Adnan""","""Edgardo""",19,10 -98,"""Adnan""","""Bob""",19,10 -99,"""Adnan""","""Edgardo""",19,10 -100,"""Adnan""","""Bob""",19,10 -101,"""Adnan""","""Edgardo""",19,10 -102,"""Adnan""","""Bob""",19,10 -103,"""Adnan""","""Edgardo""",19,10 -104,"""Adnan""","""Bob""",19,10 -105,"""Adnan""","""Edgardo""",19,10 -106,"""Adnan""","""Bob""",19,10 -107,"""Adnan""","""Edgardo""",19,10 -108,"""Adnan""","""Bob""",19,10 -109,"""Adnan""","""Edgardo""",19,10 -110,"""Adnan""","""Bob""",19,10 -111,"""Adnan""","""Edgardo""",19,10 -112,"""Adnan""","""Bob""",19,10 -113,"""Adnan""","""Edgardo""",19,10 -114,"""Adnan""","""Bob""",19,10 -115,"""Adnan""","""Edgardo""",19,10 -116,"""Adnan""","""Bob""",19,10 -117,"""Adnan""","""Edgardo""",19,10 -118,"""Adnan""","""Bob""",19,10 -119,"""Adnan""","""Edgardo""",19,10 -120,"""Adnan""","""Bob""",19,10 -121,"""Adnan""","""Edgardo""",19,10 -122,"""Adnan""","""Bob""",19,10 -123,"""Adnan""","""Edgardo""",19,10 -124,"""Adnan""","""Bob""",19,10 -125,"""Adnan""","""Edgardo""",19,10 -126,"""Adnan""","""Bob""",19,10 -127,"""Adnan""","""Edgardo""",19,10 -128,"""Adnan""","""Bob""",19,10 -129,"""Adnan""","""Edgardo""",19,10 -130,"""Adnan""","""Bob""",19,10 -131,"""Adnan""","""Edgardo""",19,10 -132,"""Adnan""","""Bob""",19,10 -133,"""Adnan""","""Edgardo""",19,10 -134,"""Adnan""","""Bob""",19,10 -135,"""Adnan""","""Edgardo""",19,10 -136,"""Adnan""","""Bob""",19,10 -137,"""Adnan""","""Edgardo""",19,10 -138,"""Adnan""","""Bob""",19,10 -139,"""Adnan""","""Edgardo""",19,10 -140,"""Adnan""","""Bob""",19,10 -141,"""Adnan""","""Edgardo""",19,10 -142,"""Adnan""","""Bob""",19,10 -143,"""Adnan""","""Edgardo""",19,10 -144,"""Adnan""","""Bob""",19,10 -145,"""Adnan""","""Edgardo""",19,10 -146,"""Adnan""","""Bob""",19,10 -147,"""Adnan""","""Edgardo""",19,10 -148,"""Adnan""","""Bob""",19,10 -149,"""Adnan""","""Edgardo""",19,10 -150,"""Adnan""","""Bob""",19,10 -151,"""Adnan""","""Edgardo""",19,10 -152,"""Adnan""","""Bob""",19,10 -153,"""Adnan""","""Edgardo""",19,10 -154,"""Adnan""","""Bob""",19,10 -155,"""Adnan""","""Edgardo""",19,10 -156,"""Adnan""","""Bob""",19,10 -157,"""Adnan""","""Edgardo""",19,10 -158,"""Adnan""","""Bob""",19,10 -159,"""Adnan""","""Edgardo""",19,10 -160,"""Adnan""","""Bob""",19,10 -161,"""Adnan""","""Edgardo""",19,10 -162,"""Adnan""","""Bob""",19,10 -163,"""Adnan""","""Edgardo""",19,10 -164,"""Adnan""","""Bob""",19,10 -165,"""Adnan""","""Edgardo""",19,10 -166,"""Adnan""","""Bob""",19,10 -167,"""Adnan""","""Edgardo""",19,10 -168,"""Adnan""","""Bob""",19,10 -169,"""Adnan""","""Edgardo""",19,10 -170,"""Adnan""","""Bob""",19,10 -171,"""Adnan""","""Edgardo""",19,10 -172,"""Adnan""","""Bob""",19,10 -173,"""Adnan""","""Edgardo""",19,10 -174,"""Adnan""","""Bob""",19,10 -175,"""Adnan""","""Edgardo""",19,10 -176,"""Adnan""","""Bob""",19,10 -177,"""Adnan""","""Edgardo""",19,10 -178,"""Adnan""","""Bob""",19,10 -179,"""Adnan""","""Edgardo""",19,10 -180,"""Adnan""","""Bob""",19,10 -181,"""Adnan""","""Edgardo""",19,10 -182,"""Adnan""","""Bob""",19,10 -183,"""Adnan""","""Edgardo""",19,10 -184,"""Adnan""","""Bob""",19,10 -185,"""Adnan""","""Edgardo""",19,10 -186,"""Adnan""","""Bob""",19,10 -187,"""Adnan""","""Edgardo""",19,10 -188,"""Adnan""","""Bob""",19,10 -189,"""Adnan""","""Edgardo""",19,10 -190,"""Adnan""","""Bob""",19,10 -191,"""Adnan""","""Edgardo""",19,10 -192,"""Adnan""","""Bob""",19,10 -193,"""Adnan""","""Edgardo""",19,10 -194,"""Adnan""","""Bob""",19,10 -195,"""Adnan""","""Edgardo""",19,10 -196,"""Adnan""","""Bob""",19,10 -197,"""Adnan""","""Edgardo""",19,10 -198,"""Adnan""","""Bob""",19,10 -199,"""Adnan""","""Edgardo""",19,10 -200,"""Adnan""","""Bob""",19,10 -201,"""Adnan""","""Edgardo""",19,10 -202,"""Adnan""","""Bob""",19,10 -203,"""Adnan""","""Edgardo""",19,10 -204,"""Adnan""","""Bob""",19,10 -205,"""Adnan""","""Edgardo""",19,10 -206,"""Adnan""","""Bob""",19,10 -207,"""Adnan""","""Edgardo""",19,10 -208,"""Adnan""","""Bob""",19,10 -209,"""Adnan""","""Edgardo""",19,10 -210,"""Adnan""","""Bob""",19,10 -211,"""Adnan""","""Edgardo""",19,10 -212,"""Adnan""","""Bob""",19,10 -213,"""Adnan""","""Edgardo""",19,10 -214,"""Adnan""","""Bob""",19,10 -215,"""Adnan""","""Edgardo""",19,10 -216,"""Adnan""","""Bob""",19,10 -217,"""Adnan""","""Edgardo""",19,10 -218,"""Adnan""","""Bob""",19,10 -219,"""Adnan""","""Edgardo""",19,10 -220,"""Adnan""","""Bob""",19,10 -221,"""Adnan""","""Edgardo""",19,10 -222,"""Adnan""","""Bob""",19,10 -223,"""Adnan""","""Edgardo""",19,10 -224,"""Adnan""","""Bob""",19,10 -225,"""Adnan""","""Edgardo""",19,10 -226,"""Adnan""","""Bob""",19,10 -227,"""Adnan""","""Edgardo""",19,10 -228,"""Adnan""","""Bob""",19,10 -229,"""Adnan""","""Edgardo""",19,10 -230,"""Adnan""","""Bob""",19,10 -231,"""Adnan""","""Edgardo""",19,10 -232,"""Adnan""","""Bob""",19,10 -233,"""Adnan""","""Edgardo""",19,10 -234,"""Adnan""","""Bob""",19,10 -235,"""Adnan""","""Edgardo""",19,10 -236,"""Adnan""","""Bob""",19,10 -237,"""Adnan""","""Edgardo""",19,10 -238,"""Adnan""","""Bob""",19,10 -239,"""Adnan""","""Edgardo""",19,10 -240,"""Adnan""","""Bob""",19,10 -241,"""Adnan""","""Edgardo""",19,10 -242,"""Adnan""","""Bob""",19,10 -243,"""Adnan""","""Edgardo""",19,10 -244,"""Adnan""","""Bob""",19,10 -245,"""Adnan""","""Edgardo""",19,10 -246,"""Adnan""","""Bob""",19,10 -247,"""Adnan""","""Edgardo""",19,10 -248,"""Adnan""","""Bob""",19,10 -249,"""Adnan""","""Edgardo""",19,10 -250,"""Adnan""","""Bob""",19,10 -251,"""Adnan""","""Edgardo""",19,10 -252,"""Adnan""","""Bob""",19,10 -253,"""Adnan""","""Edgardo""",19,10 -254,"""Adnan""","""Bob""",19,10 -255,"""Adnan""","""Edgardo""",19,10 -256,"""Adnan""","""Bob""",19,10 -257,"""Adnan""","""Edgardo""",19,10 -258,"""Adnan""","""Bob""",19,10 -259,"""Adnan""","""Edgardo""",19,10 -260,"""Adnan""","""Bob""",19,10 -261,"""Adnan""","""Edgardo""",19,10 -262,"""Adnan""","""Bob""",19,10 -263,"""Adnan""","""Edgardo""",19,10 -264,"""Adnan""","""Bob""",19,10 -265,"""Adnan""","""Edgardo""",19,10 -266,"""Adnan""","""Bob""",19,10 -267,"""Adnan""","""Edgardo""",19,10 -268,"""Adnan""","""Bob""",19,10 -269,"""Adnan""","""Edgardo""",19,10 -270,"""Adnan""","""Bob""",19,10 -271,"""Adnan""","""Edgardo""",19,10 -272,"""Adnan""","""Bob""",19,10 -273,"""Adnan""","""Edgardo""",19,10 -274,"""Adnan""","""Bob""",19,10 -275,"""Adnan""","""Edgardo""",19,10 -276,"""Adnan""","""Bob""",19,10 -277,"""Adnan""","""Edgardo""",19,10 -278,"""Adnan""","""Bob""",19,10 -279,"""Adnan""","""Edgardo""",19,10 -280,"""Adnan""","""Bob""",19,10 -281,"""Adnan""","""Edgardo""",19,10 -282,"""Adnan""","""Bob""",19,10 -283,"""Adnan""","""Edgardo""",19,10 -284,"""Adnan""","""Bob""",19,10 -285,"""Adnan""","""Edgardo""",19,10 -286,"""Adnan""","""Bob""",19,10 -287,"""Adnan""","""Edgardo""",19,10 -288,"""Adnan""","""Bob""",19,10 -289,"""Adnan""","""Edgardo""",19,10 -290,"""Adnan""","""Bob""",19,10 -291,"""Adnan""","""Edgardo""",19,10 -292,"""Adnan""","""Bob""",19,10 -293,"""Adnan""","""Edgardo""",19,10 -294,"""Adnan""","""Bob""",19,10 -295,"""Adnan""","""Edgardo""",19,10 -296,"""Adnan""","""Bob""",19,10 -297,"""Adnan""","""Edgardo""",19,10 -298,"""Adnan""","""Bob""",19,10 -299,"""Adnan""","""Edgardo""",19,10 -300,"""Adnan""","""Bob""",19,10 -301,"""Adnan""","""Edgardo""",19,10 -302,"""Adnan""","""Bob""",19,10 -303,"""Adnan""","""Edgardo""",19,10 -304,"""Adnan""","""Bob""",19,10 -305,"""Adnan""","""Edgardo""",19,10 -306,"""Adnan""","""Bob""",19,10 -307,"""Adnan""","""Edgardo""",19,10 -308,"""Adnan""","""Bob""",19,10 -309,"""Adnan""","""Edgardo""",19,10 -310,"""Adnan""","""Bob""",19,10 -311,"""Adnan""","""Edgardo""",19,10 -312,"""Adnan""","""Bob""",19,10 -313,"""Adnan""","""Edgardo""",19,10 -314,"""Adnan""","""Bob""",19,10 -315,"""Adnan""","""Edgardo""",19,10 -316,"""Adnan""","""Bob""",19,10 -317,"""Adnan""","""Edgardo""",19,10 -318,"""Adnan""","""Bob""",19,10 -319,"""Adnan""","""Edgardo""",19,10 -320,"""Adnan""","""Bob""",19,10 -321,"""Adnan""","""Edgardo""",19,10 -322,"""Adnan""","""Bob""",19,10 -323,"""Adnan""","""Edgardo""",19,10 -324,"""Adnan""","""Bob""",19,10 -325,"""Adnan""","""Edgardo""",19,10 -326,"""Adnan""","""Bob""",19,10 -327,"""Adnan""","""Edgardo""",19,10 -328,"""Adnan""","""Bob""",19,10 -329,"""Adnan""","""Edgardo""",19,10 -330,"""Adnan""","""Bob""",19,10 -331,"""Adnan""","""Edgardo""",19,10 -332,"""Adnan""","""Bob""",19,10 -333,"""Adnan""","""Edgardo""",19,10 -334,"""Adnan""","""Bob""",19,10 -335,"""Adnan""","""Edgardo""",19,10 -336,"""Adnan""","""Bob""",19,10 -337,"""Adnan""","""Edgardo""",19,10 -338,"""Adnan""","""Bob""",19,10 -339,"""Adnan""","""Edgardo""",19,10 -340,"""Adnan""","""Bob""",19,10 -341,"""Adnan""","""Edgardo""",19,10 -342,"""Adnan""","""Bob""",19,10 -343,"""Adnan""","""Edgardo""",19,10 -344,"""Adnan""","""Bob""",19,10 -345,"""Adnan""","""Edgardo""",19,10 -346,"""Adnan""","""Bob""",19,10 -347,"""Adnan""","""Edgardo""",19,10 -348,"""Adnan""","""Bob""",19,10 -349,"""Adnan""","""Edgardo""",19,10 -350,"""Adnan""","""Bob""",19,10 -351,"""Adnan""","""Edgardo""",19,10 -352,"""Adnan""","""Bob""",19,10 -353,"""Adnan""","""Edgardo""",19,10 -354,"""Adnan""","""Bob""",19,10 -355,"""Adnan""","""Edgardo""",19,10 -356,"""Adnan""","""Bob""",19,10 -357,"""Adnan""","""Edgardo""",19,10 -358,"""Adnan""","""Bob""",19,10 -359,"""Adnan""","""Edgardo""",19,10 -360,"""Adnan""","""Bob""",19,10 -361,"""Adnan""","""Edgardo""",19,10 -362,"""Adnan""","""Bob""",19,10 -363,"""Adnan""","""Edgardo""",19,10 -364,"""Adnan""","""Bob""",19,10 -365,"""Adnan""","""Edgardo""",19,10 -366,"""Adnan""","""Bob""",19,10 -367,"""Adnan""","""Edgardo""",19,10 -368,"""Adnan""","""Bob""",19,10 -369,"""Adnan""","""Edgardo""",19,10 -370,"""Adnan""","""Bob""",19,10 -371,"""Adnan""","""Edgardo""",19,10 -372,"""Adnan""","""Bob""",19,10 -373,"""Adnan""","""Edgardo""",19,10 -374,"""Adnan""","""Bob""",19,10 -375,"""Adnan""","""Edgardo""",19,10 -376,"""Adnan""","""Bob""",19,10 -377,"""Adnan""","""Edgardo""",19,10 -378,"""Adnan""","""Bob""",19,10 -379,"""Adnan""","""Edgardo""",19,10 -380,"""Adnan""","""Bob""",19,10 -381,"""Adnan""","""Edgardo""",19,10 -382,"""Adnan""","""Bob""",19,10 -383,"""Adnan""","""Edgardo""",19,10 -384,"""Adnan""","""Bob""",19,10 -385,"""Adnan""","""Edgardo""",19,10 -386,"""Adnan""","""Bob""",19,10 -387,"""Adnan""","""Edgardo""",19,10 -388,"""Adnan""","""Bob""",19,10 -389,"""Adnan""","""Edgardo""",19,10 -390,"""Adnan""","""Bob""",19,10 -391,"""Adnan""","""Edgardo""",19,10 -392,"""Adnan""","""Bob""",19,10 -393,"""Adnan""","""Edgardo""",19,10 -394,"""Adnan""","""Bob""",19,10 -395,"""Adnan""","""Edgardo""",19,10 -396,"""Adnan""","""Bob""",19,10 -397,"""Adnan""","""Edgardo""",19,10 -398,"""Adnan""","""Bob""",19,10 -399,"""Adnan""","""Edgardo""",19,10 -400,"""Adnan""","""Bob""",19,10 -401,"""Adnan""","""Edgardo""",19,10 -402,"""Adnan""","""Bob""",19,10 -403,"""Adnan""","""Edgardo""",19,10 -404,"""Adnan""","""Bob""",19,10 -405,"""Adnan""","""Edgardo""",19,10 -406,"""Adnan""","""Bob""",19,10 -407,"""Adnan""","""Edgardo""",19,10 -408,"""Adnan""","""Bob""",19,10 -409,"""Adnan""","""Edgardo""",19,10 -410,"""Adnan""","""Bob""",19,10 -411,"""Adnan""","""Edgardo""",19,10 -412,"""Adnan""","""Bob""",19,10 -413,"""Adnan""","""Edgardo""",19,10 -414,"""Adnan""","""Bob""",19,10 -415,"""Adnan""","""Edgardo""",19,10 -416,"""Adnan""","""Bob""",19,10 -417,"""Adnan""","""Edgardo""",19,10 -418,"""Adnan""","""Bob""",19,10 -419,"""Adnan""","""Edgardo""",19,10 -420,"""Adnan""","""Bob""",19,10 -421,"""Adnan""","""Edgardo""",19,10 -422,"""Adnan""","""Bob""",19,10 -423,"""Adnan""","""Edgardo""",19,10 -424,"""Adnan""","""Bob""",19,10 -425,"""Adnan""","""Edgardo""",19,10 -426,"""Adnan""","""Bob""",19,10 -427,"""Adnan""","""Edgardo""",19,10 -428,"""Adnan""","""Bob""",19,10 -429,"""Adnan""","""Edgardo""",19,10 -430,"""Adnan""","""Bob""",19,10 -431,"""Adnan""","""Edgardo""",19,10 -432,"""Adnan""","""Bob""",19,10 -433,"""Adnan""","""Edgardo""",19,10 -434,"""Adnan""","""Bob""",19,10 -435,"""Adnan""","""Edgardo""",19,10 -436,"""Adnan""","""Bob""",19,10 -437,"""Adnan""","""Edgardo""",19,10 -438,"""Adnan""","""Bob""",19,10 -439,"""Adnan""","""Edgardo""",19,10 -440,"""Adnan""","""Bob""",19,10 -441,"""Adnan""","""Edgardo""",19,10 -442,"""Adnan""","""Bob""",19,10 -443,"""Adnan""","""Edgardo""",19,10 -444,"""Adnan""","""Bob""",19,10 -445,"""Adnan""","""Edgardo""",19,10 -446,"""Adnan""","""Bob""",19,10 -447,"""Adnan""","""Edgardo""",19,10 -448,"""Adnan""","""Bob""",19,10 -449,"""Adnan""","""Edgardo""",19,10 -450,"""Adnan""","""Bob""",19,10 -451,"""Adnan""","""Edgardo""",19,10 -452,"""Adnan""","""Bob""",19,10 -453,"""Adnan""","""Edgardo""",19,10 -454,"""Adnan""","""Bob""",19,10 -455,"""Adnan""","""Edgardo""",19,10 -456,"""Adnan""","""Bob""",19,10 -457,"""Adnan""","""Edgardo""",19,10 -458,"""Adnan""","""Bob""",19,10 -459,"""Adnan""","""Edgardo""",19,10 -460,"""Adnan""","""Bob""",19,10 -461,"""Adnan""","""Edgardo""",19,10 -462,"""Adnan""","""Bob""",19,10 -463,"""Adnan""","""Edgardo""",19,10 -464,"""Adnan""","""Bob""",19,10 -465,"""Adnan""","""Edgardo""",19,10 -466,"""Adnan""","""Bob""",19,10 -467,"""Adnan""","""Edgardo""",19,10 -468,"""Adnan""","""Bob""",19,10 -469,"""Adnan""","""Edgardo""",19,10 -470,"""Adnan""","""Bob""",19,10 -471,"""Adnan""","""Edgardo""",19,10 -472,"""Adnan""","""Bob""",19,10 -473,"""Adnan""","""Edgardo""",19,10 -474,"""Adnan""","""Bob""",19,10 -475,"""Adnan""","""Edgardo""",19,10 -476,"""Adnan""","""Bob""",19,10 -477,"""Adnan""","""Edgardo""",19,10 -478,"""Adnan""","""Bob""",19,10 -479,"""Adnan""","""Edgardo""",19,10 -480,"""Adnan""","""Bob""",19,10 -481,"""Adnan""","""Edgardo""",19,10 -482,"""Adnan""","""Bob""",19,10 -483,"""Adnan""","""Edgardo""",19,10 -484,"""Adnan""","""Bob""",19,10 -485,"""Adnan""","""Edgardo""",19,10 -486,"""Adnan""","""Bob""",19,10 -487,"""Adnan""","""Edgardo""",19,10 -488,"""Adnan""","""Bob""",19,10 -489,"""Adnan""","""Edgardo""",19,10 -490,"""Adnan""","""Bob""",19,10 -491,"""Adnan""","""Edgardo""",19,10 -492,"""Adnan""","""Bob""",19,10 -493,"""Adnan""","""Edgardo""",19,10 -494,"""Adnan""","""Bob""",19,10 -495,"""Adnan""","""Edgardo""",19,10 -496,"""Adnan""","""Bob""",19,10 -497,"""Adnan""","""Edgardo""",19,10 -498,"""Adnan""","""Bob""",19,10 -499,"""Adnan""","""Edgardo""",19,10 -500,"""Adnan""","""Bob""",19,10 -501,"""Adnan""","""Edgardo""",19,10 -502,"""Adnan""","""Bob""",19,10 -503,"""Adnan""","""Edgardo""",19,10 -504,"""Adnan""","""Bob""",19,10 -505,"""Adnan""","""Edgardo""",19,10 -506,"""Adnan""","""Bob""",19,10 -507,"""Adnan""","""Edgardo""",19,10 -508,"""Adnan""","""Bob""",19,10 -509,"""Adnan""","""Edgardo""",19,10 -510,"""Adnan""","""Bob""",19,10 -511,"""Adnan""","""Edgardo""",19,10 -512,"""Adnan""","""Bob""",19,10 -513,"""Adnan""","""Edgardo""",19,10 -514,"""Adnan""","""Bob""",19,10 -515,"""Adnan""","""Edgardo""",19,10 -516,"""Adnan""","""Bob""",19,10 -517,"""Adnan""","""Edgardo""",19,10 -518,"""Adnan""","""Bob""",19,10 -519,"""Adnan""","""Edgardo""",19,10 -520,"""Adnan""","""Bob""",19,10 -521,"""Adnan""","""Edgardo""",19,10 -522,"""Adnan""","""Bob""",19,10 -523,"""Adnan""","""Edgardo""",19,10 -524,"""Adnan""","""Bob""",19,10 -525,"""Adnan""","""Edgardo""",19,10 -526,"""Adnan""","""Bob""",19,10 -527,"""Adnan""","""Edgardo""",19,10 -528,"""Adnan""","""Bob""",19,10 -529,"""Adnan""","""Edgardo""",19,10 -530,"""Adnan""","""Bob""",19,10 -531,"""Adnan""","""Edgardo""",19,10 -532,"""Adnan""","""Bob""",19,10 -533,"""Adnan""","""Edgardo""",19,10 -534,"""Adnan""","""Bob""",19,10 -535,"""Adnan""","""Edgardo""",19,10 -536,"""Adnan""","""Bob""",19,10 -537,"""Adnan""","""Edgardo""",19,10 -538,"""Adnan""","""Bob""",19,10 -539,"""Adnan""","""Edgardo""",19,10 -540,"""Adnan""","""Bob""",19,10 -541,"""Adnan""","""Edgardo""",19,10 -542,"""Adnan""","""Bob""",19,10 -543,"""Adnan""","""Edgardo""",19,10 -544,"""Adnan""","""Bob""",19,10 -545,"""Adnan""","""Edgardo""",19,10 -546,"""Adnan""","""Bob""",19,10 -547,"""Adnan""","""Edgardo""",19,10 -548,"""Adnan""","""Bob""",19,10 -549,"""Adnan""","""Edgardo""",19,10 -550,"""Adnan""","""Bob""",19,10 -551,"""Adnan""","""Edgardo""",19,10 -552,"""Adnan""","""Bob""",19,10 -553,"""Adnan""","""Edgardo""",19,10 -554,"""Adnan""","""Bob""",19,10 -555,"""Adnan""","""Edgardo""",19,10 -556,"""Adnan""","""Bob""",19,10 -557,"""Adnan""","""Edgardo""",19,10 -558,"""Adnan""","""Bob""",19,10 -559,"""Adnan""","""Edgardo""",19,10 -560,"""Adnan""","""Bob""",19,10 -561,"""Adnan""","""Edgardo""",19,10 -562,"""Adnan""","""Bob""",19,10 -563,"""Adnan""","""Edgardo""",19,10 -564,"""Adnan""","""Bob""",19,10 -565,"""Adnan""","""Edgardo""",19,10 -566,"""Adnan""","""Bob""",19,10 -567,"""Adnan""","""Edgardo""",19,10 -568,"""Adnan""","""Bob""",19,10 -569,"""Adnan""","""Edgardo""",19,10 -570,"""Adnan""","""Bob""",19,10 -571,"""Adnan""","""Edgardo""",19,10 -572,"""Adnan""","""Bob""",19,10 -573,"""Adnan""","""Edgardo""",19,10 -574,"""Adnan""","""Bob""",19,10 -575,"""Adnan""","""Edgardo""",19,10 -576,"""Adnan""","""Bob""",19,10 -577,"""Adnan""","""Edgardo""",19,10 -578,"""Adnan""","""Bob""",19,10 -579,"""Adnan""","""Edgardo""",19,10 -580,"""Adnan""","""Bob""",19,10 -581,"""Adnan""","""Edgardo""",19,10 -582,"""Adnan""","""Bob""",19,10 -583,"""Adnan""","""Edgardo""",19,10 -584,"""Adnan""","""Bob""",19,10 -585,"""Adnan""","""Edgardo""",19,10 -586,"""Adnan""","""Bob""",19,10 -587,"""Adnan""","""Edgardo""",19,10 -588,"""Adnan""","""Bob""",19,10 -589,"""Adnan""","""Edgardo""",19,10 -590,"""Adnan""","""Bob""",19,10 -591,"""Adnan""","""Edgardo""",19,10 -592,"""Adnan""","""Bob""",19,10 -593,"""Adnan""","""Edgardo""",19,10 -594,"""Adnan""","""Bob""",19,10 -595,"""Adnan""","""Edgardo""",19,10 -596,"""Adnan""","""Bob""",19,10 -597,"""Adnan""","""Edgardo""",19,10 -598,"""Adnan""","""Bob""",19,10 -599,"""Adnan""","""Edgardo""",19,10 -600,"""Adnan""","""Bob""",19,10 -601,"""Adnan""","""Edgardo""",19,10 -602,"""Adnan""","""Bob""",19,10 -603,"""Adnan""","""Edgardo""",19,10 -604,"""Adnan""","""Bob""",19,10 -605,"""Adnan""","""Edgardo""",19,10 -606,"""Adnan""","""Bob""",19,10 -607,"""Adnan""","""Edgardo""",19,10 -608,"""Adnan""","""Bob""",19,10 -609,"""Adnan""","""Edgardo""",19,10 -610,"""Adnan""","""Bob""",19,10 -611,"""Adnan""","""Edgardo""",19,10 -612,"""Adnan""","""Bob""",19,10 -613,"""Adnan""","""Edgardo""",19,10 -614,"""Adnan""","""Bob""",19,10 -615,"""Adnan""","""Edgardo""",19,10 -616,"""Adnan""","""Bob""",19,10 -617,"""Adnan""","""Edgardo""",19,10 -618,"""Adnan""","""Bob""",19,10 -619,"""Adnan""","""Edgardo""",19,10 -620,"""Adnan""","""Bob""",19,10 -621,"""Adnan""","""Edgardo""",19,10 -622,"""Adnan""","""Bob""",19,10 -623,"""Adnan""","""Edgardo""",19,10 -624,"""Adnan""","""Bob""",19,10 -625,"""Adnan""","""Edgardo""",19,10 -626,"""Adnan""","""Bob""",19,10 -627,"""Adnan""","""Edgardo""",19,10 -628,"""Adnan""","""Bob""",19,10 -629,"""Adnan""","""Edgardo""",19,10 -630,"""Adnan""","""Bob""",19,10 -631,"""Adnan""","""Edgardo""",19,10 -632,"""Adnan""","""Bob""",19,10 -633,"""Adnan""","""Edgardo""",19,10 -634,"""Adnan""","""Bob""",19,10 -635,"""Adnan""","""Edgardo""",19,10 -636,"""Adnan""","""Bob""",19,10 -637,"""Adnan""","""Edgardo""",19,10 -638,"""Adnan""","""Bob""",19,10 -639,"""Adnan""","""Edgardo""",19,10 -640,"""Adnan""","""Bob""",19,10 -641,"""Adnan""","""Edgardo""",19,10 -642,"""Adnan""","""Bob""",19,10 -643,"""Adnan""","""Edgardo""",19,10 -644,"""Adnan""","""Bob""",19,10 -645,"""Adnan""","""Edgardo""",19,10 -646,"""Adnan""","""Bob""",19,10 -647,"""Adnan""","""Edgardo""",19,10 -648,"""Adnan""","""Bob""",19,10 -649,"""Adnan""","""Edgardo""",19,10 -650,"""Adnan""","""Bob""",19,10 -651,"""Adnan""","""Edgardo""",19,10 -652,"""Adnan""","""Bob""",19,10 -653,"""Adnan""","""Edgardo""",19,10 -654,"""Adnan""","""Bob""",19,10 -655,"""Adnan""","""Edgardo""",19,10 -656,"""Adnan""","""Bob""",19,10 -657,"""Adnan""","""Edgardo""",19,10 -658,"""Adnan""","""Bob""",19,10 -659,"""Adnan""","""Edgardo""",19,10 -660,"""Adnan""","""Bob""",19,10 -661,"""Adnan""","""Edgardo""",19,10 -662,"""Adnan""","""Bob""",19,10 -663,"""Adnan""","""Edgardo""",19,10 -664,"""Adnan""","""Bob""",19,10 -665,"""Adnan""","""Edgardo""",19,10 -666,"""Adnan""","""Bob""",19,10 -667,"""Adnan""","""Edgardo""",19,10 -668,"""Adnan""","""Bob""",19,10 -669,"""Adnan""","""Edgardo""",19,10 -670,"""Adnan""","""Bob""",19,10 -671,"""Adnan""","""Edgardo""",19,10 -672,"""Adnan""","""Bob""",19,10 -673,"""Adnan""","""Edgardo""",19,10 -674,"""Adnan""","""Bob""",19,10 -675,"""Adnan""","""Edgardo""",19,10 -676,"""Adnan""","""Bob""",19,10 -677,"""Adnan""","""Edgardo""",19,10 -678,"""Adnan""","""Bob""",19,10 -679,"""Adnan""","""Edgardo""",19,10 -680,"""Adnan""","""Bob""",19,10 -681,"""Adnan""","""Edgardo""",19,10 -682,"""Adnan""","""Bob""",19,10 -683,"""Adnan""","""Edgardo""",19,10 -684,"""Adnan""","""Bob""",19,10 -685,"""Adnan""","""Edgardo""",19,10 -686,"""Adnan""","""Bob""",19,10 -687,"""Adnan""","""Edgardo""",19,10 -688,"""Adnan""","""Bob""",19,10 -689,"""Adnan""","""Edgardo""",19,10 -690,"""Adnan""","""Bob""",19,10 -691,"""Adnan""","""Edgardo""",19,10 -692,"""Adnan""","""Bob""",19,10 -693,"""Adnan""","""Edgardo""",19,10 -694,"""Adnan""","""Bob""",19,10 -695,"""Adnan""","""Edgardo""",19,10 -696,"""Adnan""","""Bob""",19,10 -697,"""Adnan""","""Edgardo""",19,10 -698,"""Adnan""","""Bob""",19,10 -699,"""Adnan""","""Edgardo""",19,10 -700,"""Adnan""","""Bob""",19,10 -701,"""Adnan""","""Edgardo""",19,10 -702,"""Adnan""","""Bob""",19,10 -703,"""Adnan""","""Edgardo""",19,10 -704,"""Adnan""","""Bob""",19,10 -705,"""Adnan""","""Edgardo""",19,10 -706,"""Adnan""","""Bob""",19,10 -707,"""Adnan""","""Edgardo""",19,10 -708,"""Adnan""","""Bob""",19,10 -709,"""Adnan""","""Edgardo""",19,10 -710,"""Adnan""","""Bob""",19,10 -711,"""Adnan""","""Edgardo""",19,10 -712,"""Adnan""","""Bob""",19,10 -713,"""Adnan""","""Edgardo""",19,10 -714,"""Adnan""","""Bob""",19,10 -715,"""Adnan""","""Edgardo""",19,10 -716,"""Adnan""","""Bob""",19,10 -717,"""Adnan""","""Edgardo""",19,10 -718,"""Adnan""","""Bob""",19,10 -719,"""Adnan""","""Edgardo""",19,10 -720,"""Adnan""","""Bob""",19,10 -721,"""Adnan""","""Edgardo""",19,10 -722,"""Adnan""","""Bob""",19,10 -723,"""Adnan""","""Edgardo""",19,10 -724,"""Adnan""","""Bob""",19,10 -725,"""Adnan""","""Edgardo""",19,10 -726,"""Adnan""","""Bob""",19,10 -727,"""Adnan""","""Edgardo""",19,10 -728,"""Adnan""","""Bob""",19,10 -729,"""Adnan""","""Edgardo""",19,10 -730,"""Adnan""","""Bob""",19,10 -731,"""Adnan""","""Edgardo""",19,10 -732,"""Adnan""","""Bob""",19,10 -733,"""Adnan""","""Edgardo""",19,10 -734,"""Adnan""","""Bob""",19,10 -735,"""Adnan""","""Edgardo""",19,10 -736,"""Adnan""","""Bob""",19,10 -737,"""Adnan""","""Edgardo""",19,10 -738,"""Adnan""","""Bob""",19,10 -739,"""Adnan""","""Edgardo""",19,10 -740,"""Adnan""","""Bob""",19,10 -741,"""Adnan""","""Edgardo""",19,10 -742,"""Adnan""","""Bob""",19,10 -743,"""Adnan""","""Edgardo""",19,10 -744,"""Adnan""","""Bob""",19,10 -745,"""Adnan""","""Edgardo""",19,10 -746,"""Adnan""","""Bob""",19,10 -747,"""Adnan""","""Edgardo""",19,10 -748,"""Adnan""","""Bob""",19,10 -749,"""Adnan""","""Edgardo""",19,10 -750,"""Adnan""","""Bob""",19,10 -751,"""Adnan""","""Edgardo""",19,10 -752,"""Adnan""","""Bob""",19,10 -753,"""Adnan""","""Edgardo""",19,10 -754,"""Adnan""","""Bob""",19,10 -755,"""Adnan""","""Edgardo""",19,10 -756,"""Adnan""","""Bob""",19,10 -757,"""Adnan""","""Edgardo""",19,10 -758,"""Adnan""","""Bob""",19,10 -759,"""Adnan""","""Edgardo""",19,10 -760,"""Adnan""","""Bob""",19,10 -761,"""Adnan""","""Edgardo""",19,10 -762,"""Adnan""","""Bob""",19,10 -763,"""Adnan""","""Edgardo""",19,10 -764,"""Adnan""","""Bob""",19,10 -765,"""Adnan""","""Edgardo""",19,10 -766,"""Adnan""","""Bob""",19,10 -767,"""Adnan""","""Edgardo""",19,10 -768,"""Adnan""","""Bob""",19,10 -769,"""Adnan""","""Edgardo""",19,10 -770,"""Adnan""","""Bob""",19,10 -771,"""Adnan""","""Edgardo""",19,10 -772,"""Adnan""","""Bob""",19,10 -773,"""Adnan""","""Edgardo""",19,10 -774,"""Adnan""","""Bob""",19,10 -775,"""Adnan""","""Edgardo""",19,10 -776,"""Adnan""","""Bob""",19,10 -777,"""Adnan""","""Edgardo""",19,10 -778,"""Adnan""","""Bob""",19,10 -779,"""Adnan""","""Edgardo""",19,10 -780,"""Adnan""","""Bob""",19,10 -781,"""Adnan""","""Edgardo""",19,10 -782,"""Adnan""","""Bob""",19,10 -783,"""Adnan""","""Edgardo""",19,10 -784,"""Adnan""","""Bob""",19,10 -785,"""Adnan""","""Edgardo""",19,10 -786,"""Adnan""","""Bob""",19,10 -787,"""Adnan""","""Edgardo""",19,10 -788,"""Adnan""","""Bob""",19,10 -789,"""Adnan""","""Edgardo""",19,10 -790,"""Adnan""","""Bob""",19,10 -791,"""Adnan""","""Edgardo""",19,10 -792,"""Adnan""","""Bob""",19,10 -793,"""Adnan""","""Edgardo""",19,10 -794,"""Adnan""","""Bob""",19,10 -795,"""Adnan""","""Edgardo""",19,10 -796,"""Adnan""","""Bob""",19,10 -797,"""Adnan""","""Edgardo""",19,10 -798,"""Adnan""","""Bob""",19,10 -799,"""Adnan""","""Edgardo""",19,10 -800,"""Adnan""","""Bob""",19,10 -801,"""Adnan""","""Edgardo""",19,10 -802,"""Adnan""","""Bob""",19,10 -803,"""Adnan""","""Edgardo""",19,10 -804,"""Adnan""","""Bob""",19,10 -805,"""Adnan""","""Edgardo""",19,10 -806,"""Adnan""","""Bob""",19,10 -807,"""Adnan""","""Edgardo""",19,10 -808,"""Adnan""","""Bob""",19,10 -809,"""Adnan""","""Edgardo""",19,10 -810,"""Adnan""","""Bob""",19,10 -811,"""Adnan""","""Edgardo""",19,10 -812,"""Adnan""","""Bob""",19,10 -813,"""Adnan""","""Edgardo""",19,10 -814,"""Adnan""","""Bob""",19,10 -815,"""Adnan""","""Edgardo""",19,10 -816,"""Adnan""","""Bob""",19,10 -817,"""Adnan""","""Edgardo""",19,10 -818,"""Adnan""","""Bob""",19,10 -819,"""Adnan""","""Edgardo""",19,10 -820,"""Adnan""","""Bob""",19,10 -821,"""Adnan""","""Edgardo""",19,10 -822,"""Adnan""","""Bob""",19,10 -823,"""Adnan""","""Edgardo""",19,10 -824,"""Adnan""","""Bob""",19,10 -825,"""Adnan""","""Edgardo""",19,10 -826,"""Adnan""","""Bob""",19,10 -827,"""Adnan""","""Edgardo""",19,10 -828,"""Adnan""","""Bob""",19,10 -829,"""Adnan""","""Edgardo""",19,10 -830,"""Adnan""","""Bob""",19,10 -831,"""Adnan""","""Edgardo""",19,10 -832,"""Adnan""","""Bob""",19,10 -833,"""Adnan""","""Edgardo""",19,10 -834,"""Adnan""","""Bob""",19,10 -835,"""Adnan""","""Edgardo""",19,10 -836,"""Adnan""","""Bob""",19,10 -837,"""Adnan""","""Edgardo""",19,10 -838,"""Adnan""","""Bob""",19,10 -839,"""Adnan""","""Edgardo""",19,10 -840,"""Adnan""","""Bob""",19,10 -841,"""Adnan""","""Edgardo""",19,10 -842,"""Adnan""","""Bob""",19,10 -843,"""Adnan""","""Edgardo""",19,10 -844,"""Adnan""","""Bob""",19,10 -845,"""Adnan""","""Edgardo""",19,10 -846,"""Adnan""","""Bob""",19,10 -847,"""Adnan""","""Edgardo""",19,10 -848,"""Adnan""","""Bob""",19,10 -849,"""Adnan""","""Edgardo""",19,10 -850,"""Adnan""","""Bob""",19,10 -851,"""Adnan""","""Edgardo""",19,10 -852,"""Adnan""","""Bob""",19,10 -853,"""Adnan""","""Edgardo""",19,10 -854,"""Adnan""","""Bob""",19,10 -855,"""Adnan""","""Edgardo""",19,10 -856,"""Adnan""","""Bob""",19,10 -857,"""Adnan""","""Edgardo""",19,10 -858,"""Adnan""","""Bob""",19,10 -859,"""Adnan""","""Edgardo""",19,10 -860,"""Adnan""","""Bob""",19,10 -861,"""Adnan""","""Edgardo""",19,10 -862,"""Adnan""","""Bob""",19,10 -863,"""Adnan""","""Edgardo""",19,10 -864,"""Adnan""","""Bob""",19,10 -865,"""Adnan""","""Edgardo""",19,10 -866,"""Adnan""","""Bob""",19,10 -867,"""Adnan""","""Edgardo""",19,10 -868,"""Adnan""","""Bob""",19,10 -869,"""Adnan""","""Edgardo""",19,10 -870,"""Adnan""","""Bob""",19,10 -871,"""Adnan""","""Edgardo""",19,10 -872,"""Adnan""","""Bob""",19,10 -873,"""Adnan""","""Edgardo""",19,10 -874,"""Adnan""","""Bob""",19,10 -875,"""Adnan""","""Edgardo""",19,10 -876,"""Adnan""","""Bob""",19,10 -877,"""Adnan""","""Edgardo""",19,10 -878,"""Adnan""","""Bob""",19,10 -879,"""Adnan""","""Edgardo""",19,10 -880,"""Adnan""","""Bob""",19,10 -881,"""Adnan""","""Edgardo""",19,10 -882,"""Adnan""","""Bob""",19,10 -883,"""Adnan""","""Edgardo""",19,10 -884,"""Adnan""","""Bob""",19,10 -885,"""Adnan""","""Edgardo""",19,10 -886,"""Adnan""","""Bob""",19,10 -887,"""Adnan""","""Edgardo""",19,10 -888,"""Adnan""","""Bob""",19,10 -889,"""Adnan""","""Edgardo""",19,10 -890,"""Adnan""","""Bob""",19,10 -891,"""Adnan""","""Edgardo""",19,10 -892,"""Adnan""","""Bob""",19,10 -893,"""Adnan""","""Edgardo""",19,10 -894,"""Adnan""","""Bob""",19,10 -895,"""Adnan""","""Edgardo""",19,10 -896,"""Adnan""","""Bob""",19,10 -897,"""Adnan""","""Edgardo""",19,10 -898,"""Adnan""","""Bob""",19,10 -899,"""Adnan""","""Edgardo""",19,10 -900,"""Adnan""","""Bob""",19,10 -901,"""Adnan""","""Edgardo""",19,10 -902,"""Adnan""","""Bob""",19,10 -903,"""Adnan""","""Edgardo""",19,10 -904,"""Adnan""","""Bob""",19,10 -905,"""Adnan""","""Edgardo""",19,10 -906,"""Adnan""","""Bob""",19,10 -907,"""Adnan""","""Edgardo""",19,10 -908,"""Adnan""","""Bob""",19,10 -909,"""Adnan""","""Edgardo""",19,10 -910,"""Adnan""","""Bob""",19,10 -911,"""Adnan""","""Edgardo""",19,10 -912,"""Adnan""","""Bob""",19,10 -913,"""Adnan""","""Edgardo""",19,10 -914,"""Adnan""","""Bob""",19,10 -915,"""Adnan""","""Edgardo""",19,10 -916,"""Adnan""","""Bob""",19,10 -917,"""Adnan""","""Edgardo""",19,10 -918,"""Adnan""","""Bob""",19,10 -919,"""Adnan""","""Edgardo""",19,10 -920,"""Adnan""","""Bob""",19,10 -921,"""Adnan""","""Edgardo""",19,10 -922,"""Adnan""","""Bob""",19,10 -923,"""Adnan""","""Edgardo""",19,10 -924,"""Adnan""","""Bob""",19,10 -925,"""Adnan""","""Edgardo""",19,10 -926,"""Adnan""","""Bob""",19,10 -927,"""Adnan""","""Edgardo""",19,10 -928,"""Adnan""","""Bob""",19,10 -929,"""Adnan""","""Edgardo""",19,10 -930,"""Adnan""","""Bob""",19,10 -931,"""Adnan""","""Edgardo""",19,10 -932,"""Adnan""","""Bob""",19,10 -933,"""Adnan""","""Edgardo""",19,10 -934,"""Adnan""","""Bob""",19,10 -935,"""Adnan""","""Edgardo""",19,10 -936,"""Adnan""","""Bob""",19,10 -937,"""Adnan""","""Edgardo""",19,10 -938,"""Adnan""","""Bob""",19,10 -939,"""Adnan""","""Edgardo""",19,10 -940,"""Adnan""","""Bob""",19,10 -941,"""Adnan""","""Edgardo""",19,10 -942,"""Adnan""","""Bob""",19,10 -943,"""Adnan""","""Edgardo""",19,10 -944,"""Adnan""","""Bob""",19,10 -945,"""Adnan""","""Edgardo""",19,10 -946,"""Adnan""","""Bob""",19,10 -947,"""Adnan""","""Edgardo""",19,10 -948,"""Adnan""","""Bob""",19,10 -949,"""Adnan""","""Edgardo""",19,10 -950,"""Adnan""","""Bob""",19,10 -951,"""Adnan""","""Edgardo""",19,10 -952,"""Adnan""","""Bob""",19,10 -953,"""Adnan""","""Edgardo""",19,10 -954,"""Adnan""","""Bob""",19,10 -955,"""Adnan""","""Edgardo""",19,10 -956,"""Adnan""","""Bob""",19,10 -957,"""Adnan""","""Edgardo""",19,10 -958,"""Adnan""","""Bob""",19,10 -959,"""Adnan""","""Edgardo""",19,10 -960,"""Adnan""","""Bob""",19,10 -961,"""Adnan""","""Edgardo""",19,10 -962,"""Adnan""","""Bob""",19,10 -963,"""Adnan""","""Edgardo""",19,10 -964,"""Adnan""","""Bob""",19,10 -965,"""Adnan""","""Edgardo""",19,10 -966,"""Adnan""","""Bob""",19,10 -967,"""Adnan""","""Edgardo""",19,10 -968,"""Adnan""","""Bob""",19,10 -969,"""Adnan""","""Edgardo""",19,10 -970,"""Adnan""","""Bob""",19,10 -971,"""Adnan""","""Edgardo""",19,10 -972,"""Adnan""","""Bob""",19,10 -973,"""Adnan""","""Edgardo""",19,10 -974,"""Adnan""","""Bob""",19,10 -975,"""Adnan""","""Edgardo""",19,10 -976,"""Adnan""","""Bob""",19,10 -977,"""Adnan""","""Edgardo""",19,10 -978,"""Adnan""","""Bob""",19,10 -979,"""Adnan""","""Edgardo""",19,10 -980,"""Adnan""","""Bob""",19,10 -981,"""Adnan""","""Edgardo""",19,10 -982,"""Adnan""","""Bob""",19,10 -983,"""Adnan""","""Edgardo""",19,10 -984,"""Adnan""","""Bob""",19,10 -985,"""Adnan""","""Edgardo""",19,10 -986,"""Adnan""","""Bob""",19,10 -987,"""Adnan""","""Edgardo""",19,10 -988,"""Adnan""","""Bob""",19,10 -989,"""Adnan""","""Edgardo""",19,10 -990,"""Adnan""","""Bob""",19,10 -991,"""Adnan""","""Edgardo""",19,10 -992,"""Adnan""","""Bob""",19,10 -993,"""Adnan""","""Edgardo""",19,10 -994,"""Adnan""","""Bob""",19,10 -995,"""Adnan""","""Edgardo""",19,10 -996,"""Adnan""","""Bob""",19,10 -997,"""Adnan""","""Edgardo""",19,10 -998,"""Adnan""","""Bob""",19,10 -999,"""Adnan""","""Edgardo""",19,10 -1000,"""Adnan""","""Bob""",19,10 -1001,"""Adnan""","""Edgardo""",19,10 -1002,"""Adnan""","""Bob""",19,10 -1003,"""Adnan""","""Edgardo""",19,10 -1004,"""Adnan""","""Bob""",19,10 -1005,"""Adnan""","""Edgardo""",19,10 -1006,"""Adnan""","""Bob""",19,10 -1007,"""Adnan""","""Edgardo""",19,10 -1008,"""Adnan""","""Bob""",19,10 -1009,"""Adnan""","""Edgardo""",19,10 -1010,"""Adnan""","""Bob""",19,10 \ No newline at end of file diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/driversBig.json b/Projects/p3-skeleton/cs448p3/src/test/resources/driversBig.json deleted file mode 100644 index 7c7c7c5..0000000 --- a/Projects/p3-skeleton/cs448p3/src/test/resources/driversBig.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "schema": [ - { - "no": 0, - "type": "INTEGER", - "length": 4, - "name": "DriverId" - }, - { - "no": 1, - "type": "STRING", - "length": 20, - "name": "FirstName" - }, - { - "no": 2, - "type": "STRING", - "length": 20, - "name": "LastName" - }, - { - "no": 3, - "type": "FLOAT", - "length": 4, - "name": "Age" - }, - { - "no": 4, - "type": "INTEGER", - "length": 4, - "name": "NumSeats" - } - ], - "key": 3 -} diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/groups.csv b/Projects/p3-skeleton/cs448p3/src/test/resources/groups.csv deleted file mode 100644 index ce95fe1..0000000 --- a/Projects/p3-skeleton/cs448p3/src/test/resources/groups.csv +++ /dev/null @@ -1,7 +0,0 @@ -1, "Purdue1" -2, "Purdue2" -3, "Purdue3" -4, "Purdue4" -5, "Purdue5" -6, "Purdue6" -7, "Purdue7" diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/groups.json b/Projects/p3-skeleton/cs448p3/src/test/resources/groups.json deleted file mode 100644 index f0858c0..0000000 --- a/Projects/p3-skeleton/cs448p3/src/test/resources/groups.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "schema": [ - { - "no": 0, - "type": "INTEGER", - "length": 4, - "name": "GroupId" - }, - { - "no": 1, - "type": "STRING", - "length": 10, - "name": "GroupName" - } - ], - "key": 0 -} diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/groupsBig.csv b/Projects/p3-skeleton/cs448p3/src/test/resources/groupsBig.csv deleted file mode 100644 index bc08997..0000000 --- a/Projects/p3-skeleton/cs448p3/src/test/resources/groupsBig.csv +++ /dev/null @@ -1,10 +0,0 @@ -1," ""Purdue1""" -2," ""Purdue2""" -3," ""Purdue3""" -4," ""Purdue4""" -5," ""Purdue5""" -6," ""Purdue6""" -7," ""Purdue7""" -8," ""Purdue8""" -9," ""Purdue9""" -10," ""Purdue10""" \ No newline at end of file diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/groupsBig.json b/Projects/p3-skeleton/cs448p3/src/test/resources/groupsBig.json deleted file mode 100644 index f0858c0..0000000 --- a/Projects/p3-skeleton/cs448p3/src/test/resources/groupsBig.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "schema": [ - { - "no": 0, - "type": "INTEGER", - "length": 4, - "name": "GroupId" - }, - { - "no": 1, - "type": "STRING", - "length": 10, - "name": "GroupName" - } - ], - "key": 0 -} diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/rides.csv b/Projects/p3-skeleton/cs448p3/src/test/resources/rides.csv deleted file mode 100644 index b6acb3c..0000000 --- a/Projects/p3-skeleton/cs448p3/src/test/resources/rides.csv +++ /dev/null @@ -1,12 +0,0 @@ -3, 5, "2/10/2006", "2/13/2006" -1, 2, "2/12/2006", "2/14/2006" -9, 1, "2/15/2006", "2/15/2006" -5, 7, "2/14/2006", "2/18/2006" -1, 3, "2/15/2006", "2/16/2006" -2, 6, "2/17/2006", "2/20/2006" -3, 4, "2/18/2006", "2/19/2006" -4, 1, "2/19/2006", "2/19/2006" -2, 7, "2/18/2006", "2/23/2006" -8, 5, "2/20/2006", "2/22/2006" -3, 2, "2/24/2006", "2/26/2006" -6, 6, "2/25/2006", "2/26/2006" \ No newline at end of file diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/rides.json b/Projects/p3-skeleton/cs448p3/src/test/resources/rides.json deleted file mode 100644 index 041754b..0000000 --- a/Projects/p3-skeleton/cs448p3/src/test/resources/rides.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "schema": [ - { - "no": 0, - "type": "INTEGER", - "length": 4, - "name": "DriverId" - }, - { - "no": 1, - "type": "INTEGER", - "length": 4, - "name": "GroupId" - }, - { - "no": 2, - "type": "STRING", - "length": 10, - "name": "FromDate" - }, - { - "no": 3, - "type": "STRING", - "length": 10, - "name": "ToDate" - } - ], - "key": 1 -} diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/ridesBig.csv b/Projects/p3-skeleton/cs448p3/src/test/resources/ridesBig.csv deleted file mode 100644 index 338c7fd..0000000 --- a/Projects/p3-skeleton/cs448p3/src/test/resources/ridesBig.csv +++ /dev/null @@ -1,1000 +0,0 @@ -1,1," ""2/10/2006"""," ""2/13/2006""" -2,2," ""2/12/2006"""," ""2/14/2006""" -3,3," ""2/15/2006"""," ""2/15/2006""" -4,4," ""2/14/2006"""," ""2/18/2006""" -5,5," ""2/15/2006"""," ""2/16/2006""" -6,6," ""2/17/2006"""," ""2/20/2006""" -7,7," ""2/18/2006"""," ""2/19/2006""" -8,8," ""2/19/2006"""," ""2/19/2006""" -9,9," ""2/18/2006"""," ""2/23/2006""" -10,10," ""2/20/2006"""," ""2/22/2006""" -11,1," ""2/24/2006"""," ""2/26/2006""" -12,2," ""2/25/2006"""," ""2/26/2006""" -13,3," ""2/10/2006"""," ""2/13/2006""" -14,4," ""2/12/2006"""," ""2/14/2006""" -15,5," ""2/15/2006"""," ""2/15/2006""" -16,6," ""2/14/2006"""," ""2/18/2006""" -17,7," ""2/15/2006"""," ""2/16/2006""" -18,8," ""2/17/2006"""," ""2/20/2006""" -19,9," ""2/18/2006"""," ""2/19/2006""" -20,10," ""2/19/2006"""," ""2/19/2006""" -21,1," ""2/18/2006"""," ""2/23/2006""" -22,2," ""2/20/2006"""," ""2/22/2006""" -23,3," ""2/24/2006"""," ""2/26/2006""" -24,4," ""2/25/2006"""," ""2/26/2006""" -25,5," ""2/10/2006"""," ""2/13/2006""" -26,6," ""2/12/2006"""," ""2/14/2006""" -27,7," ""2/15/2006"""," ""2/15/2006""" -28,8," ""2/14/2006"""," ""2/18/2006""" -29,9," ""2/15/2006"""," ""2/16/2006""" -30,10," ""2/17/2006"""," ""2/20/2006""" -31,1," ""2/18/2006"""," ""2/19/2006""" -32,2," ""2/19/2006"""," ""2/19/2006""" -33,3," ""2/18/2006"""," ""2/23/2006""" -34,4," ""2/20/2006"""," ""2/22/2006""" -35,5," ""2/24/2006"""," ""2/26/2006""" -36,6," ""2/25/2006"""," ""2/26/2006""" -37,7," ""2/10/2006"""," ""2/13/2006""" -38,8," ""2/12/2006"""," ""2/14/2006""" -39,9," ""2/15/2006"""," ""2/15/2006""" -40,10," ""2/14/2006"""," ""2/18/2006""" -41,1," ""2/15/2006"""," ""2/16/2006""" -42,2," ""2/17/2006"""," ""2/20/2006""" -43,3," ""2/18/2006"""," ""2/19/2006""" -44,4," ""2/19/2006"""," ""2/19/2006""" -45,5," ""2/18/2006"""," ""2/23/2006""" -46,6," ""2/20/2006"""," ""2/22/2006""" -47,7," ""2/24/2006"""," ""2/26/2006""" -48,8," ""2/25/2006"""," ""2/26/2006""" -49,9," ""2/10/2006"""," ""2/13/2006""" -50,10," ""2/12/2006"""," ""2/14/2006""" -51,1," ""2/15/2006"""," ""2/15/2006""" -52,2," ""2/14/2006"""," ""2/18/2006""" -53,3," ""2/15/2006"""," ""2/16/2006""" -54,4," ""2/17/2006"""," ""2/20/2006""" -55,5," ""2/18/2006"""," ""2/19/2006""" -56,6," ""2/19/2006"""," ""2/19/2006""" -57,7," ""2/18/2006"""," ""2/23/2006""" -58,8," ""2/20/2006"""," ""2/22/2006""" -59,9," ""2/24/2006"""," ""2/26/2006""" -60,10," ""2/25/2006"""," ""2/26/2006""" -61,1," ""2/10/2006"""," ""2/13/2006""" -62,2," ""2/12/2006"""," ""2/14/2006""" -63,3," ""2/15/2006"""," ""2/15/2006""" -64,4," ""2/14/2006"""," ""2/18/2006""" -65,5," ""2/15/2006"""," ""2/16/2006""" -66,6," ""2/17/2006"""," ""2/20/2006""" -67,7," ""2/18/2006"""," ""2/19/2006""" -68,8," ""2/19/2006"""," ""2/19/2006""" -69,9," ""2/18/2006"""," ""2/23/2006""" -70,10," ""2/20/2006"""," ""2/22/2006""" -71,1," ""2/24/2006"""," ""2/26/2006""" -72,2," ""2/25/2006"""," ""2/26/2006""" -73,3," ""2/10/2006"""," ""2/13/2006""" -74,4," ""2/12/2006"""," ""2/14/2006""" -75,5," ""2/15/2006"""," ""2/15/2006""" -76,6," ""2/14/2006"""," ""2/18/2006""" -77,7," ""2/15/2006"""," ""2/16/2006""" -78,8," ""2/17/2006"""," ""2/20/2006""" -79,9," ""2/18/2006"""," ""2/19/2006""" -80,10," ""2/19/2006"""," ""2/19/2006""" -81,1," ""2/18/2006"""," ""2/23/2006""" -82,2," ""2/20/2006"""," ""2/22/2006""" -83,3," ""2/24/2006"""," ""2/26/2006""" -84,4," ""2/25/2006"""," ""2/26/2006""" -85,5," ""2/10/2006"""," ""2/13/2006""" -86,6," ""2/12/2006"""," ""2/14/2006""" -87,7," ""2/15/2006"""," ""2/15/2006""" -88,8," ""2/14/2006"""," ""2/18/2006""" -89,9," ""2/15/2006"""," ""2/16/2006""" -90,10," ""2/17/2006"""," ""2/20/2006""" -91,1," ""2/18/2006"""," ""2/19/2006""" -92,2," ""2/19/2006"""," ""2/19/2006""" -93,3," ""2/18/2006"""," ""2/23/2006""" -94,4," ""2/20/2006"""," ""2/22/2006""" -95,5," ""2/24/2006"""," ""2/26/2006""" -96,6," ""2/25/2006"""," ""2/26/2006""" -97,7," ""2/10/2006"""," ""2/13/2006""" -98,8," ""2/12/2006"""," ""2/14/2006""" -99,9," ""2/15/2006"""," ""2/15/2006""" -100,10," ""2/14/2006"""," ""2/18/2006""" -101,1," ""2/15/2006"""," ""2/16/2006""" -102,2," ""2/17/2006"""," ""2/20/2006""" -103,3," ""2/18/2006"""," ""2/19/2006""" -104,4," ""2/19/2006"""," ""2/19/2006""" -105,5," ""2/18/2006"""," ""2/23/2006""" -106,6," ""2/20/2006"""," ""2/22/2006""" -107,7," ""2/24/2006"""," ""2/26/2006""" -108,8," ""2/25/2006"""," ""2/26/2006""" -109,9," ""2/10/2006"""," ""2/13/2006""" -110,10," ""2/12/2006"""," ""2/14/2006""" -111,1," ""2/15/2006"""," ""2/15/2006""" -112,2," ""2/14/2006"""," ""2/18/2006""" -113,3," ""2/15/2006"""," ""2/16/2006""" -114,4," ""2/17/2006"""," ""2/20/2006""" -115,5," ""2/18/2006"""," ""2/19/2006""" -116,6," ""2/19/2006"""," ""2/19/2006""" -117,7," ""2/18/2006"""," ""2/23/2006""" -118,8," ""2/20/2006"""," ""2/22/2006""" -119,9," ""2/24/2006"""," ""2/26/2006""" -120,10," ""2/25/2006"""," ""2/26/2006""" -121,1," ""2/10/2006"""," ""2/13/2006""" -122,2," ""2/12/2006"""," ""2/14/2006""" -123,3," ""2/15/2006"""," ""2/15/2006""" -124,4," ""2/14/2006"""," ""2/18/2006""" -125,5," ""2/15/2006"""," ""2/16/2006""" -126,6," ""2/17/2006"""," ""2/20/2006""" -127,7," ""2/18/2006"""," ""2/19/2006""" -128,8," ""2/19/2006"""," ""2/19/2006""" -129,9," ""2/18/2006"""," ""2/23/2006""" -130,10," ""2/20/2006"""," ""2/22/2006""" -131,1," ""2/24/2006"""," ""2/26/2006""" -132,2," ""2/25/2006"""," ""2/26/2006""" -133,3," ""2/10/2006"""," ""2/13/2006""" -134,4," ""2/12/2006"""," ""2/14/2006""" -135,5," ""2/15/2006"""," ""2/15/2006""" -136,6," ""2/14/2006"""," ""2/18/2006""" -137,7," ""2/15/2006"""," ""2/16/2006""" -138,8," ""2/17/2006"""," ""2/20/2006""" -139,9," ""2/18/2006"""," ""2/19/2006""" -140,10," ""2/19/2006"""," ""2/19/2006""" -141,1," ""2/18/2006"""," ""2/23/2006""" -142,2," ""2/20/2006"""," ""2/22/2006""" -143,3," ""2/24/2006"""," ""2/26/2006""" -144,4," ""2/25/2006"""," ""2/26/2006""" -145,5," ""2/10/2006"""," ""2/13/2006""" -146,6," ""2/12/2006"""," ""2/14/2006""" -147,7," ""2/15/2006"""," ""2/15/2006""" -148,8," ""2/14/2006"""," ""2/18/2006""" -149,9," ""2/15/2006"""," ""2/16/2006""" -150,10," ""2/17/2006"""," ""2/20/2006""" -151,1," ""2/18/2006"""," ""2/19/2006""" -152,2," ""2/19/2006"""," ""2/19/2006""" -153,3," ""2/18/2006"""," ""2/23/2006""" -154,4," ""2/20/2006"""," ""2/22/2006""" -155,5," ""2/24/2006"""," ""2/26/2006""" -156,6," ""2/25/2006"""," ""2/26/2006""" -157,7," ""2/10/2006"""," ""2/13/2006""" -158,8," ""2/12/2006"""," ""2/14/2006""" -159,9," ""2/15/2006"""," ""2/15/2006""" -160,10," ""2/14/2006"""," ""2/18/2006""" -161,1," ""2/15/2006"""," ""2/16/2006""" -162,2," ""2/17/2006"""," ""2/20/2006""" -163,3," ""2/18/2006"""," ""2/19/2006""" -164,4," ""2/19/2006"""," ""2/19/2006""" -165,5," ""2/18/2006"""," ""2/23/2006""" -166,6," ""2/20/2006"""," ""2/22/2006""" -167,7," ""2/24/2006"""," ""2/26/2006""" -168,8," ""2/25/2006"""," ""2/26/2006""" -169,9," ""2/10/2006"""," ""2/13/2006""" -170,10," ""2/12/2006"""," ""2/14/2006""" -171,1," ""2/15/2006"""," ""2/15/2006""" -172,2," ""2/14/2006"""," ""2/18/2006""" -173,3," ""2/15/2006"""," ""2/16/2006""" -174,4," ""2/17/2006"""," ""2/20/2006""" -175,5," ""2/18/2006"""," ""2/19/2006""" -176,6," ""2/19/2006"""," ""2/19/2006""" -177,7," ""2/18/2006"""," ""2/23/2006""" -178,8," ""2/20/2006"""," ""2/22/2006""" -179,9," ""2/24/2006"""," ""2/26/2006""" -180,10," ""2/25/2006"""," ""2/26/2006""" -181,1," ""2/10/2006"""," ""2/13/2006""" -182,2," ""2/12/2006"""," ""2/14/2006""" -183,3," ""2/15/2006"""," ""2/15/2006""" -184,4," ""2/14/2006"""," ""2/18/2006""" -185,5," ""2/15/2006"""," ""2/16/2006""" -186,6," ""2/17/2006"""," ""2/20/2006""" -187,7," ""2/18/2006"""," ""2/19/2006""" -188,8," ""2/19/2006"""," ""2/19/2006""" -189,9," ""2/18/2006"""," ""2/23/2006""" -190,10," ""2/20/2006"""," ""2/22/2006""" -191,1," ""2/24/2006"""," ""2/26/2006""" -192,2," ""2/25/2006"""," ""2/26/2006""" -193,3," ""2/10/2006"""," ""2/13/2006""" -194,4," ""2/12/2006"""," ""2/14/2006""" -195,5," ""2/15/2006"""," ""2/15/2006""" -196,6," ""2/14/2006"""," ""2/18/2006""" -197,7," ""2/15/2006"""," ""2/16/2006""" -198,8," ""2/17/2006"""," ""2/20/2006""" -199,9," ""2/18/2006"""," ""2/19/2006""" -200,10," ""2/19/2006"""," ""2/19/2006""" -201,1," ""2/18/2006"""," ""2/23/2006""" -202,2," ""2/20/2006"""," ""2/22/2006""" -203,3," ""2/24/2006"""," ""2/26/2006""" -204,4," ""2/25/2006"""," ""2/26/2006""" -205,5," ""2/10/2006"""," ""2/13/2006""" -206,6," ""2/12/2006"""," ""2/14/2006""" -207,7," ""2/15/2006"""," ""2/15/2006""" -208,8," ""2/14/2006"""," ""2/18/2006""" -209,9," ""2/15/2006"""," ""2/16/2006""" -210,10," ""2/17/2006"""," ""2/20/2006""" -211,1," ""2/18/2006"""," ""2/19/2006""" -212,2," ""2/19/2006"""," ""2/19/2006""" -213,3," ""2/18/2006"""," ""2/23/2006""" -214,4," ""2/20/2006"""," ""2/22/2006""" -215,5," ""2/24/2006"""," ""2/26/2006""" -216,6," ""2/25/2006"""," ""2/26/2006""" -217,7," ""2/10/2006"""," ""2/13/2006""" -218,8," ""2/12/2006"""," ""2/14/2006""" -219,9," ""2/15/2006"""," ""2/15/2006""" -220,10," ""2/14/2006"""," ""2/18/2006""" -221,1," ""2/15/2006"""," ""2/16/2006""" -222,2," ""2/17/2006"""," ""2/20/2006""" -223,3," ""2/18/2006"""," ""2/19/2006""" -224,4," ""2/19/2006"""," ""2/19/2006""" -225,5," ""2/18/2006"""," ""2/23/2006""" -226,6," ""2/20/2006"""," ""2/22/2006""" -227,7," ""2/24/2006"""," ""2/26/2006""" -228,8," ""2/25/2006"""," ""2/26/2006""" -229,9," ""2/10/2006"""," ""2/13/2006""" -230,10," ""2/12/2006"""," ""2/14/2006""" -231,1," ""2/15/2006"""," ""2/15/2006""" -232,2," ""2/14/2006"""," ""2/18/2006""" -233,3," ""2/15/2006"""," ""2/16/2006""" -234,4," ""2/17/2006"""," ""2/20/2006""" -235,5," ""2/18/2006"""," ""2/19/2006""" -236,6," ""2/19/2006"""," ""2/19/2006""" -237,7," ""2/18/2006"""," ""2/23/2006""" -238,8," ""2/20/2006"""," ""2/22/2006""" -239,9," ""2/24/2006"""," ""2/26/2006""" -240,10," ""2/25/2006"""," ""2/26/2006""" -241,1," ""2/10/2006"""," ""2/13/2006""" -242,2," ""2/12/2006"""," ""2/14/2006""" -243,3," ""2/15/2006"""," ""2/15/2006""" -244,4," ""2/14/2006"""," ""2/18/2006""" -245,5," ""2/15/2006"""," ""2/16/2006""" -246,6," ""2/17/2006"""," ""2/20/2006""" -247,7," ""2/18/2006"""," ""2/19/2006""" -248,8," ""2/19/2006"""," ""2/19/2006""" -249,9," ""2/18/2006"""," ""2/23/2006""" -250,10," ""2/20/2006"""," ""2/22/2006""" -251,1," ""2/24/2006"""," ""2/26/2006""" -252,2," ""2/25/2006"""," ""2/26/2006""" -253,3," ""2/10/2006"""," ""2/13/2006""" -254,4," ""2/12/2006"""," ""2/14/2006""" -255,5," ""2/15/2006"""," ""2/15/2006""" -256,6," ""2/14/2006"""," ""2/18/2006""" -257,7," ""2/15/2006"""," ""2/16/2006""" -258,8," ""2/17/2006"""," ""2/20/2006""" -259,9," ""2/18/2006"""," ""2/19/2006""" -260,10," ""2/19/2006"""," ""2/19/2006""" -261,1," ""2/18/2006"""," ""2/23/2006""" -262,2," ""2/20/2006"""," ""2/22/2006""" -263,3," ""2/24/2006"""," ""2/26/2006""" -264,4," ""2/25/2006"""," ""2/26/2006""" -265,5," ""2/10/2006"""," ""2/13/2006""" -266,6," ""2/12/2006"""," ""2/14/2006""" -267,7," ""2/15/2006"""," ""2/15/2006""" -268,8," ""2/14/2006"""," ""2/18/2006""" -269,9," ""2/15/2006"""," ""2/16/2006""" -270,10," ""2/17/2006"""," ""2/20/2006""" -271,1," ""2/18/2006"""," ""2/19/2006""" -272,2," ""2/19/2006"""," ""2/19/2006""" -273,3," ""2/18/2006"""," ""2/23/2006""" -274,4," ""2/20/2006"""," ""2/22/2006""" -275,5," ""2/24/2006"""," ""2/26/2006""" -276,6," ""2/25/2006"""," ""2/26/2006""" -277,7," ""2/10/2006"""," ""2/13/2006""" -278,8," ""2/12/2006"""," ""2/14/2006""" -279,9," ""2/15/2006"""," ""2/15/2006""" -280,10," ""2/14/2006"""," ""2/18/2006""" -281,1," ""2/15/2006"""," ""2/16/2006""" -282,2," ""2/17/2006"""," ""2/20/2006""" -283,3," ""2/18/2006"""," ""2/19/2006""" -284,4," ""2/19/2006"""," ""2/19/2006""" -285,5," ""2/18/2006"""," ""2/23/2006""" -286,6," ""2/20/2006"""," ""2/22/2006""" -287,7," ""2/24/2006"""," ""2/26/2006""" -288,8," ""2/25/2006"""," ""2/26/2006""" -289,9," ""2/10/2006"""," ""2/13/2006""" -290,10," ""2/12/2006"""," ""2/14/2006""" -291,1," ""2/15/2006"""," ""2/15/2006""" -292,2," ""2/14/2006"""," ""2/18/2006""" -293,3," ""2/15/2006"""," ""2/16/2006""" -294,4," ""2/17/2006"""," ""2/20/2006""" -295,5," ""2/18/2006"""," ""2/19/2006""" -296,6," ""2/19/2006"""," ""2/19/2006""" -297,7," ""2/18/2006"""," ""2/23/2006""" -298,8," ""2/20/2006"""," ""2/22/2006""" -299,9," ""2/24/2006"""," ""2/26/2006""" -300,10," ""2/25/2006"""," ""2/26/2006""" -301,1," ""2/10/2006"""," ""2/13/2006""" -302,2," ""2/12/2006"""," ""2/14/2006""" -303,3," ""2/15/2006"""," ""2/15/2006""" -304,4," ""2/14/2006"""," ""2/18/2006""" -305,5," ""2/15/2006"""," ""2/16/2006""" -306,6," ""2/17/2006"""," ""2/20/2006""" -307,7," ""2/18/2006"""," ""2/19/2006""" -308,8," ""2/19/2006"""," ""2/19/2006""" -309,9," ""2/18/2006"""," ""2/23/2006""" -310,10," ""2/20/2006"""," ""2/22/2006""" -311,1," ""2/24/2006"""," ""2/26/2006""" -312,2," ""2/25/2006"""," ""2/26/2006""" -313,3," ""2/10/2006"""," ""2/13/2006""" -314,4," ""2/12/2006"""," ""2/14/2006""" -315,5," ""2/15/2006"""," ""2/15/2006""" -316,6," ""2/14/2006"""," ""2/18/2006""" -317,7," ""2/15/2006"""," ""2/16/2006""" -318,8," ""2/17/2006"""," ""2/20/2006""" -319,9," ""2/18/2006"""," ""2/19/2006""" -320,10," ""2/19/2006"""," ""2/19/2006""" -321,1," ""2/18/2006"""," ""2/23/2006""" -322,2," ""2/20/2006"""," ""2/22/2006""" -323,3," ""2/24/2006"""," ""2/26/2006""" -324,4," ""2/25/2006"""," ""2/26/2006""" -325,5," ""2/10/2006"""," ""2/13/2006""" -326,6," ""2/12/2006"""," ""2/14/2006""" -327,7," ""2/15/2006"""," ""2/15/2006""" -328,8," ""2/14/2006"""," ""2/18/2006""" -329,9," ""2/15/2006"""," ""2/16/2006""" -330,10," ""2/17/2006"""," ""2/20/2006""" -331,1," ""2/18/2006"""," ""2/19/2006""" -332,2," ""2/19/2006"""," ""2/19/2006""" -333,3," ""2/18/2006"""," ""2/23/2006""" -334,4," ""2/20/2006"""," ""2/22/2006""" -335,5," ""2/24/2006"""," ""2/26/2006""" -336,6," ""2/25/2006"""," ""2/26/2006""" -337,7," ""2/10/2006"""," ""2/13/2006""" -338,8," ""2/12/2006"""," ""2/14/2006""" -339,9," ""2/15/2006"""," ""2/15/2006""" -340,10," ""2/14/2006"""," ""2/18/2006""" -341,1," ""2/15/2006"""," ""2/16/2006""" -342,2," ""2/17/2006"""," ""2/20/2006""" -343,3," ""2/18/2006"""," ""2/19/2006""" -344,4," ""2/19/2006"""," ""2/19/2006""" -345,5," ""2/18/2006"""," ""2/23/2006""" -346,6," ""2/20/2006"""," ""2/22/2006""" -347,7," ""2/24/2006"""," ""2/26/2006""" -348,8," ""2/25/2006"""," ""2/26/2006""" -349,9," ""2/10/2006"""," ""2/13/2006""" -350,10," ""2/12/2006"""," ""2/14/2006""" -351,1," ""2/15/2006"""," ""2/15/2006""" -352,2," ""2/14/2006"""," ""2/18/2006""" -353,3," ""2/15/2006"""," ""2/16/2006""" -354,4," ""2/17/2006"""," ""2/20/2006""" -355,5," ""2/18/2006"""," ""2/19/2006""" -356,6," ""2/19/2006"""," ""2/19/2006""" -357,7," ""2/18/2006"""," ""2/23/2006""" -358,8," ""2/20/2006"""," ""2/22/2006""" -359,9," ""2/24/2006"""," ""2/26/2006""" -360,10," ""2/25/2006"""," ""2/26/2006""" -361,1," ""2/10/2006"""," ""2/13/2006""" -362,2," ""2/12/2006"""," ""2/14/2006""" -363,3," ""2/15/2006"""," ""2/15/2006""" -364,4," ""2/14/2006"""," ""2/18/2006""" -365,5," ""2/15/2006"""," ""2/16/2006""" -366,6," ""2/17/2006"""," ""2/20/2006""" -367,7," ""2/18/2006"""," ""2/19/2006""" -368,8," ""2/19/2006"""," ""2/19/2006""" -369,9," ""2/18/2006"""," ""2/23/2006""" -370,10," ""2/20/2006"""," ""2/22/2006""" -371,1," ""2/24/2006"""," ""2/26/2006""" -372,2," ""2/25/2006"""," ""2/26/2006""" -373,3," ""2/10/2006"""," ""2/13/2006""" -374,4," ""2/12/2006"""," ""2/14/2006""" -375,5," ""2/15/2006"""," ""2/15/2006""" -376,6," ""2/14/2006"""," ""2/18/2006""" -377,7," ""2/15/2006"""," ""2/16/2006""" -378,8," ""2/17/2006"""," ""2/20/2006""" -379,9," ""2/18/2006"""," ""2/19/2006""" -380,10," ""2/19/2006"""," ""2/19/2006""" -381,1," ""2/18/2006"""," ""2/23/2006""" -382,2," ""2/20/2006"""," ""2/22/2006""" -383,3," ""2/24/2006"""," ""2/26/2006""" -384,4," ""2/25/2006"""," ""2/26/2006""" -385,5," ""2/10/2006"""," ""2/13/2006""" -386,6," ""2/12/2006"""," ""2/14/2006""" -387,7," ""2/15/2006"""," ""2/15/2006""" -388,8," ""2/14/2006"""," ""2/18/2006""" -389,9," ""2/15/2006"""," ""2/16/2006""" -390,10," ""2/17/2006"""," ""2/20/2006""" -391,1," ""2/18/2006"""," ""2/19/2006""" -392,2," ""2/19/2006"""," ""2/19/2006""" -393,3," ""2/18/2006"""," ""2/23/2006""" -394,4," ""2/20/2006"""," ""2/22/2006""" -395,5," ""2/24/2006"""," ""2/26/2006""" -396,6," ""2/25/2006"""," ""2/26/2006""" -397,7," ""2/10/2006"""," ""2/13/2006""" -398,8," ""2/12/2006"""," ""2/14/2006""" -399,9," ""2/15/2006"""," ""2/15/2006""" -400,10," ""2/14/2006"""," ""2/18/2006""" -401,1," ""2/15/2006"""," ""2/16/2006""" -402,2," ""2/17/2006"""," ""2/20/2006""" -403,3," ""2/18/2006"""," ""2/19/2006""" -404,4," ""2/19/2006"""," ""2/19/2006""" -405,5," ""2/18/2006"""," ""2/23/2006""" -406,6," ""2/20/2006"""," ""2/22/2006""" -407,7," ""2/24/2006"""," ""2/26/2006""" -408,8," ""2/25/2006"""," ""2/26/2006""" -409,9," ""2/10/2006"""," ""2/13/2006""" -410,10," ""2/12/2006"""," ""2/14/2006""" -411,1," ""2/15/2006"""," ""2/15/2006""" -412,2," ""2/14/2006"""," ""2/18/2006""" -413,3," ""2/15/2006"""," ""2/16/2006""" -414,4," ""2/17/2006"""," ""2/20/2006""" -415,5," ""2/18/2006"""," ""2/19/2006""" -416,6," ""2/19/2006"""," ""2/19/2006""" -417,7," ""2/18/2006"""," ""2/23/2006""" -418,8," ""2/20/2006"""," ""2/22/2006""" -419,9," ""2/24/2006"""," ""2/26/2006""" -420,10," ""2/25/2006"""," ""2/26/2006""" -421,1," ""2/10/2006"""," ""2/13/2006""" -422,2," ""2/12/2006"""," ""2/14/2006""" -423,3," ""2/15/2006"""," ""2/15/2006""" -424,4," ""2/14/2006"""," ""2/18/2006""" -425,5," ""2/15/2006"""," ""2/16/2006""" -426,6," ""2/17/2006"""," ""2/20/2006""" -427,7," ""2/18/2006"""," ""2/19/2006""" -428,8," ""2/19/2006"""," ""2/19/2006""" -429,9," ""2/18/2006"""," ""2/23/2006""" -430,10," ""2/20/2006"""," ""2/22/2006""" -431,1," ""2/24/2006"""," ""2/26/2006""" -432,2," ""2/25/2006"""," ""2/26/2006""" -433,3," ""2/10/2006"""," ""2/13/2006""" -434,4," ""2/12/2006"""," ""2/14/2006""" -435,5," ""2/15/2006"""," ""2/15/2006""" -436,6," ""2/14/2006"""," ""2/18/2006""" -437,7," ""2/15/2006"""," ""2/16/2006""" -438,8," ""2/17/2006"""," ""2/20/2006""" -439,9," ""2/18/2006"""," ""2/19/2006""" -440,10," ""2/19/2006"""," ""2/19/2006""" -441,1," ""2/18/2006"""," ""2/23/2006""" -442,2," ""2/20/2006"""," ""2/22/2006""" -443,3," ""2/24/2006"""," ""2/26/2006""" -444,4," ""2/25/2006"""," ""2/26/2006""" -445,5," ""2/10/2006"""," ""2/13/2006""" -446,6," ""2/12/2006"""," ""2/14/2006""" -447,7," ""2/15/2006"""," ""2/15/2006""" -448,8," ""2/14/2006"""," ""2/18/2006""" -449,9," ""2/15/2006"""," ""2/16/2006""" -450,10," ""2/17/2006"""," ""2/20/2006""" -451,1," ""2/18/2006"""," ""2/19/2006""" -452,2," ""2/19/2006"""," ""2/19/2006""" -453,3," ""2/18/2006"""," ""2/23/2006""" -454,4," ""2/20/2006"""," ""2/22/2006""" -455,5," ""2/24/2006"""," ""2/26/2006""" -456,6," ""2/25/2006"""," ""2/26/2006""" -457,7," ""2/10/2006"""," ""2/13/2006""" -458,8," ""2/12/2006"""," ""2/14/2006""" -459,9," ""2/15/2006"""," ""2/15/2006""" -460,10," ""2/14/2006"""," ""2/18/2006""" -461,1," ""2/15/2006"""," ""2/16/2006""" -462,2," ""2/17/2006"""," ""2/20/2006""" -463,3," ""2/18/2006"""," ""2/19/2006""" -464,4," ""2/19/2006"""," ""2/19/2006""" -465,5," ""2/18/2006"""," ""2/23/2006""" -466,6," ""2/20/2006"""," ""2/22/2006""" -467,7," ""2/24/2006"""," ""2/26/2006""" -468,8," ""2/25/2006"""," ""2/26/2006""" -469,9," ""2/10/2006"""," ""2/13/2006""" -470,10," ""2/12/2006"""," ""2/14/2006""" -471,1," ""2/15/2006"""," ""2/15/2006""" -472,2," ""2/14/2006"""," ""2/18/2006""" -473,3," ""2/15/2006"""," ""2/16/2006""" -474,4," ""2/17/2006"""," ""2/20/2006""" -475,5," ""2/18/2006"""," ""2/19/2006""" -476,6," ""2/19/2006"""," ""2/19/2006""" -477,7," ""2/18/2006"""," ""2/23/2006""" -478,8," ""2/20/2006"""," ""2/22/2006""" -479,9," ""2/24/2006"""," ""2/26/2006""" -480,10," ""2/25/2006"""," ""2/26/2006""" -481,1," ""2/10/2006"""," ""2/13/2006""" -482,2," ""2/12/2006"""," ""2/14/2006""" -483,3," ""2/15/2006"""," ""2/15/2006""" -484,4," ""2/14/2006"""," ""2/18/2006""" -485,5," ""2/15/2006"""," ""2/16/2006""" -486,6," ""2/17/2006"""," ""2/20/2006""" -487,7," ""2/18/2006"""," ""2/19/2006""" -488,8," ""2/19/2006"""," ""2/19/2006""" -489,9," ""2/18/2006"""," ""2/23/2006""" -490,10," ""2/20/2006"""," ""2/22/2006""" -491,1," ""2/24/2006"""," ""2/26/2006""" -492,2," ""2/25/2006"""," ""2/26/2006""" -493,3," ""2/10/2006"""," ""2/13/2006""" -494,4," ""2/12/2006"""," ""2/14/2006""" -495,5," ""2/15/2006"""," ""2/15/2006""" -496,6," ""2/14/2006"""," ""2/18/2006""" -497,7," ""2/15/2006"""," ""2/16/2006""" -498,8," ""2/17/2006"""," ""2/20/2006""" -499,9," ""2/18/2006"""," ""2/19/2006""" -500,10," ""2/19/2006"""," ""2/19/2006""" -501,1," ""2/18/2006"""," ""2/23/2006""" -502,2," ""2/20/2006"""," ""2/22/2006""" -503,3," ""2/24/2006"""," ""2/26/2006""" -504,4," ""2/25/2006"""," ""2/26/2006""" -505,5," ""2/10/2006"""," ""2/13/2006""" -506,6," ""2/12/2006"""," ""2/14/2006""" -507,7," ""2/15/2006"""," ""2/15/2006""" -508,8," ""2/14/2006"""," ""2/18/2006""" -509,9," ""2/15/2006"""," ""2/16/2006""" -510,10," ""2/17/2006"""," ""2/20/2006""" -511,1," ""2/18/2006"""," ""2/19/2006""" -512,2," ""2/19/2006"""," ""2/19/2006""" -513,3," ""2/18/2006"""," ""2/23/2006""" -514,4," ""2/20/2006"""," ""2/22/2006""" -515,5," ""2/24/2006"""," ""2/26/2006""" -516,6," ""2/25/2006"""," ""2/26/2006""" -517,7," ""2/10/2006"""," ""2/13/2006""" -518,8," ""2/12/2006"""," ""2/14/2006""" -519,9," ""2/15/2006"""," ""2/15/2006""" -520,10," ""2/14/2006"""," ""2/18/2006""" -521,1," ""2/15/2006"""," ""2/16/2006""" -522,2," ""2/17/2006"""," ""2/20/2006""" -523,3," ""2/18/2006"""," ""2/19/2006""" -524,4," ""2/19/2006"""," ""2/19/2006""" -525,5," ""2/18/2006"""," ""2/23/2006""" -526,6," ""2/20/2006"""," ""2/22/2006""" -527,7," ""2/24/2006"""," ""2/26/2006""" -528,8," ""2/25/2006"""," ""2/26/2006""" -529,9," ""2/10/2006"""," ""2/13/2006""" -530,10," ""2/12/2006"""," ""2/14/2006""" -531,1," ""2/15/2006"""," ""2/15/2006""" -532,2," ""2/14/2006"""," ""2/18/2006""" -533,3," ""2/15/2006"""," ""2/16/2006""" -534,4," ""2/17/2006"""," ""2/20/2006""" -535,5," ""2/18/2006"""," ""2/19/2006""" -536,6," ""2/19/2006"""," ""2/19/2006""" -537,7," ""2/18/2006"""," ""2/23/2006""" -538,8," ""2/20/2006"""," ""2/22/2006""" -539,9," ""2/24/2006"""," ""2/26/2006""" -540,10," ""2/25/2006"""," ""2/26/2006""" -541,1," ""2/10/2006"""," ""2/13/2006""" -542,2," ""2/12/2006"""," ""2/14/2006""" -543,3," ""2/15/2006"""," ""2/15/2006""" -544,4," ""2/14/2006"""," ""2/18/2006""" -545,5," ""2/15/2006"""," ""2/16/2006""" -546,6," ""2/17/2006"""," ""2/20/2006""" -547,7," ""2/18/2006"""," ""2/19/2006""" -548,8," ""2/19/2006"""," ""2/19/2006""" -549,9," ""2/18/2006"""," ""2/23/2006""" -550,10," ""2/20/2006"""," ""2/22/2006""" -551,1," ""2/24/2006"""," ""2/26/2006""" -552,2," ""2/25/2006"""," ""2/26/2006""" -553,3," ""2/10/2006"""," ""2/13/2006""" -554,4," ""2/12/2006"""," ""2/14/2006""" -555,5," ""2/15/2006"""," ""2/15/2006""" -556,6," ""2/14/2006"""," ""2/18/2006""" -557,7," ""2/15/2006"""," ""2/16/2006""" -558,8," ""2/17/2006"""," ""2/20/2006""" -559,9," ""2/18/2006"""," ""2/19/2006""" -560,10," ""2/19/2006"""," ""2/19/2006""" -561,1," ""2/18/2006"""," ""2/23/2006""" -562,2," ""2/20/2006"""," ""2/22/2006""" -563,3," ""2/24/2006"""," ""2/26/2006""" -564,4," ""2/25/2006"""," ""2/26/2006""" -565,5," ""2/10/2006"""," ""2/13/2006""" -566,6," ""2/12/2006"""," ""2/14/2006""" -567,7," ""2/15/2006"""," ""2/15/2006""" -568,8," ""2/14/2006"""," ""2/18/2006""" -569,9," ""2/15/2006"""," ""2/16/2006""" -570,10," ""2/17/2006"""," ""2/20/2006""" -571,1," ""2/18/2006"""," ""2/19/2006""" -572,2," ""2/19/2006"""," ""2/19/2006""" -573,3," ""2/18/2006"""," ""2/23/2006""" -574,4," ""2/20/2006"""," ""2/22/2006""" -575,5," ""2/24/2006"""," ""2/26/2006""" -576,6," ""2/25/2006"""," ""2/26/2006""" -577,7," ""2/10/2006"""," ""2/13/2006""" -578,8," ""2/12/2006"""," ""2/14/2006""" -579,9," ""2/15/2006"""," ""2/15/2006""" -580,10," ""2/14/2006"""," ""2/18/2006""" -581,1," ""2/15/2006"""," ""2/16/2006""" -582,2," ""2/17/2006"""," ""2/20/2006""" -583,3," ""2/18/2006"""," ""2/19/2006""" -584,4," ""2/19/2006"""," ""2/19/2006""" -585,5," ""2/18/2006"""," ""2/23/2006""" -586,6," ""2/20/2006"""," ""2/22/2006""" -587,7," ""2/24/2006"""," ""2/26/2006""" -588,8," ""2/25/2006"""," ""2/26/2006""" -589,9," ""2/10/2006"""," ""2/13/2006""" -590,10," ""2/12/2006"""," ""2/14/2006""" -591,1," ""2/15/2006"""," ""2/15/2006""" -592,2," ""2/14/2006"""," ""2/18/2006""" -593,3," ""2/15/2006"""," ""2/16/2006""" -594,4," ""2/17/2006"""," ""2/20/2006""" -595,5," ""2/18/2006"""," ""2/19/2006""" -596,6," ""2/19/2006"""," ""2/19/2006""" -597,7," ""2/18/2006"""," ""2/23/2006""" -598,8," ""2/20/2006"""," ""2/22/2006""" -599,9," ""2/24/2006"""," ""2/26/2006""" -600,10," ""2/25/2006"""," ""2/26/2006""" -601,1," ""2/10/2006"""," ""2/13/2006""" -602,2," ""2/12/2006"""," ""2/14/2006""" -603,3," ""2/15/2006"""," ""2/15/2006""" -604,4," ""2/14/2006"""," ""2/18/2006""" -605,5," ""2/15/2006"""," ""2/16/2006""" -606,6," ""2/17/2006"""," ""2/20/2006""" -607,7," ""2/18/2006"""," ""2/19/2006""" -608,8," ""2/19/2006"""," ""2/19/2006""" -609,9," ""2/18/2006"""," ""2/23/2006""" -610,10," ""2/20/2006"""," ""2/22/2006""" -611,1," ""2/24/2006"""," ""2/26/2006""" -612,2," ""2/25/2006"""," ""2/26/2006""" -613,3," ""2/10/2006"""," ""2/13/2006""" -614,4," ""2/12/2006"""," ""2/14/2006""" -615,5," ""2/15/2006"""," ""2/15/2006""" -616,6," ""2/14/2006"""," ""2/18/2006""" -617,7," ""2/15/2006"""," ""2/16/2006""" -618,8," ""2/17/2006"""," ""2/20/2006""" -619,9," ""2/18/2006"""," ""2/19/2006""" -620,10," ""2/19/2006"""," ""2/19/2006""" -621,1," ""2/18/2006"""," ""2/23/2006""" -622,2," ""2/20/2006"""," ""2/22/2006""" -623,3," ""2/24/2006"""," ""2/26/2006""" -624,4," ""2/25/2006"""," ""2/26/2006""" -625,5," ""2/10/2006"""," ""2/13/2006""" -626,6," ""2/12/2006"""," ""2/14/2006""" -627,7," ""2/15/2006"""," ""2/15/2006""" -628,8," ""2/14/2006"""," ""2/18/2006""" -629,9," ""2/15/2006"""," ""2/16/2006""" -630,10," ""2/17/2006"""," ""2/20/2006""" -631,1," ""2/18/2006"""," ""2/19/2006""" -632,2," ""2/19/2006"""," ""2/19/2006""" -633,3," ""2/18/2006"""," ""2/23/2006""" -634,4," ""2/20/2006"""," ""2/22/2006""" -635,5," ""2/24/2006"""," ""2/26/2006""" -636,6," ""2/25/2006"""," ""2/26/2006""" -637,7," ""2/10/2006"""," ""2/13/2006""" -638,8," ""2/12/2006"""," ""2/14/2006""" -639,9," ""2/15/2006"""," ""2/15/2006""" -640,10," ""2/14/2006"""," ""2/18/2006""" -641,1," ""2/15/2006"""," ""2/16/2006""" -642,2," ""2/17/2006"""," ""2/20/2006""" -643,3," ""2/18/2006"""," ""2/19/2006""" -644,4," ""2/19/2006"""," ""2/19/2006""" -645,5," ""2/18/2006"""," ""2/23/2006""" -646,6," ""2/20/2006"""," ""2/22/2006""" -647,7," ""2/24/2006"""," ""2/26/2006""" -648,8," ""2/25/2006"""," ""2/26/2006""" -649,9," ""2/10/2006"""," ""2/13/2006""" -650,10," ""2/12/2006"""," ""2/14/2006""" -651,1," ""2/15/2006"""," ""2/15/2006""" -652,2," ""2/14/2006"""," ""2/18/2006""" -653,3," ""2/15/2006"""," ""2/16/2006""" -654,4," ""2/17/2006"""," ""2/20/2006""" -655,5," ""2/18/2006"""," ""2/19/2006""" -656,6," ""2/19/2006"""," ""2/19/2006""" -657,7," ""2/18/2006"""," ""2/23/2006""" -658,8," ""2/20/2006"""," ""2/22/2006""" -659,9," ""2/24/2006"""," ""2/26/2006""" -660,10," ""2/25/2006"""," ""2/26/2006""" -661,1," ""2/10/2006"""," ""2/13/2006""" -662,2," ""2/12/2006"""," ""2/14/2006""" -663,3," ""2/15/2006"""," ""2/15/2006""" -664,4," ""2/14/2006"""," ""2/18/2006""" -665,5," ""2/15/2006"""," ""2/16/2006""" -666,6," ""2/17/2006"""," ""2/20/2006""" -667,7," ""2/18/2006"""," ""2/19/2006""" -668,8," ""2/19/2006"""," ""2/19/2006""" -669,9," ""2/18/2006"""," ""2/23/2006""" -670,10," ""2/20/2006"""," ""2/22/2006""" -671,1," ""2/24/2006"""," ""2/26/2006""" -672,2," ""2/25/2006"""," ""2/26/2006""" -673,3," ""2/10/2006"""," ""2/13/2006""" -674,4," ""2/12/2006"""," ""2/14/2006""" -675,5," ""2/15/2006"""," ""2/15/2006""" -676,6," ""2/14/2006"""," ""2/18/2006""" -677,7," ""2/15/2006"""," ""2/16/2006""" -678,8," ""2/17/2006"""," ""2/20/2006""" -679,9," ""2/18/2006"""," ""2/19/2006""" -680,10," ""2/19/2006"""," ""2/19/2006""" -681,1," ""2/18/2006"""," ""2/23/2006""" -682,2," ""2/20/2006"""," ""2/22/2006""" -683,3," ""2/24/2006"""," ""2/26/2006""" -684,4," ""2/25/2006"""," ""2/26/2006""" -685,5," ""2/10/2006"""," ""2/13/2006""" -686,6," ""2/12/2006"""," ""2/14/2006""" -687,7," ""2/15/2006"""," ""2/15/2006""" -688,8," ""2/14/2006"""," ""2/18/2006""" -689,9," ""2/15/2006"""," ""2/16/2006""" -690,10," ""2/17/2006"""," ""2/20/2006""" -691,1," ""2/18/2006"""," ""2/19/2006""" -692,2," ""2/19/2006"""," ""2/19/2006""" -693,3," ""2/18/2006"""," ""2/23/2006""" -694,4," ""2/20/2006"""," ""2/22/2006""" -695,5," ""2/24/2006"""," ""2/26/2006""" -696,6," ""2/25/2006"""," ""2/26/2006""" -697,7," ""2/10/2006"""," ""2/13/2006""" -698,8," ""2/12/2006"""," ""2/14/2006""" -699,9," ""2/15/2006"""," ""2/15/2006""" -700,10," ""2/14/2006"""," ""2/18/2006""" -701,1," ""2/15/2006"""," ""2/16/2006""" -702,2," ""2/17/2006"""," ""2/20/2006""" -703,3," ""2/18/2006"""," ""2/19/2006""" -704,4," ""2/19/2006"""," ""2/19/2006""" -705,5," ""2/18/2006"""," ""2/23/2006""" -706,6," ""2/20/2006"""," ""2/22/2006""" -707,7," ""2/24/2006"""," ""2/26/2006""" -708,8," ""2/25/2006"""," ""2/26/2006""" -709,9," ""2/10/2006"""," ""2/13/2006""" -710,10," ""2/12/2006"""," ""2/14/2006""" -711,1," ""2/15/2006"""," ""2/15/2006""" -712,2," ""2/14/2006"""," ""2/18/2006""" -713,3," ""2/15/2006"""," ""2/16/2006""" -714,4," ""2/17/2006"""," ""2/20/2006""" -715,5," ""2/18/2006"""," ""2/19/2006""" -716,6," ""2/19/2006"""," ""2/19/2006""" -717,7," ""2/18/2006"""," ""2/23/2006""" -718,8," ""2/20/2006"""," ""2/22/2006""" -719,9," ""2/24/2006"""," ""2/26/2006""" -720,10," ""2/25/2006"""," ""2/26/2006""" -721,1," ""2/10/2006"""," ""2/13/2006""" -722,2," ""2/12/2006"""," ""2/14/2006""" -723,3," ""2/15/2006"""," ""2/15/2006""" -724,4," ""2/14/2006"""," ""2/18/2006""" -725,5," ""2/15/2006"""," ""2/16/2006""" -726,6," ""2/17/2006"""," ""2/20/2006""" -727,7," ""2/18/2006"""," ""2/19/2006""" -728,8," ""2/19/2006"""," ""2/19/2006""" -729,9," ""2/18/2006"""," ""2/23/2006""" -730,10," ""2/20/2006"""," ""2/22/2006""" -731,1," ""2/24/2006"""," ""2/26/2006""" -732,2," ""2/25/2006"""," ""2/26/2006""" -733,3," ""2/10/2006"""," ""2/13/2006""" -734,4," ""2/12/2006"""," ""2/14/2006""" -735,5," ""2/15/2006"""," ""2/15/2006""" -736,6," ""2/14/2006"""," ""2/18/2006""" -737,7," ""2/15/2006"""," ""2/16/2006""" -738,8," ""2/17/2006"""," ""2/20/2006""" -739,9," ""2/18/2006"""," ""2/19/2006""" -740,10," ""2/19/2006"""," ""2/19/2006""" -741,1," ""2/18/2006"""," ""2/23/2006""" -742,2," ""2/20/2006"""," ""2/22/2006""" -743,3," ""2/24/2006"""," ""2/26/2006""" -744,4," ""2/25/2006"""," ""2/26/2006""" -745,5," ""2/10/2006"""," ""2/13/2006""" -746,6," ""2/12/2006"""," ""2/14/2006""" -747,7," ""2/15/2006"""," ""2/15/2006""" -748,8," ""2/14/2006"""," ""2/18/2006""" -749,9," ""2/15/2006"""," ""2/16/2006""" -750,10," ""2/17/2006"""," ""2/20/2006""" -751,1," ""2/18/2006"""," ""2/19/2006""" -752,2," ""2/19/2006"""," ""2/19/2006""" -753,3," ""2/18/2006"""," ""2/23/2006""" -754,4," ""2/20/2006"""," ""2/22/2006""" -755,5," ""2/24/2006"""," ""2/26/2006""" -756,6," ""2/25/2006"""," ""2/26/2006""" -757,7," ""2/10/2006"""," ""2/13/2006""" -758,8," ""2/12/2006"""," ""2/14/2006""" -759,9," ""2/15/2006"""," ""2/15/2006""" -760,10," ""2/14/2006"""," ""2/18/2006""" -761,1," ""2/15/2006"""," ""2/16/2006""" -762,2," ""2/17/2006"""," ""2/20/2006""" -763,3," ""2/18/2006"""," ""2/19/2006""" -764,4," ""2/19/2006"""," ""2/19/2006""" -765,5," ""2/18/2006"""," ""2/23/2006""" -766,6," ""2/20/2006"""," ""2/22/2006""" -767,7," ""2/24/2006"""," ""2/26/2006""" -768,8," ""2/25/2006"""," ""2/26/2006""" -769,9," ""2/10/2006"""," ""2/13/2006""" -770,10," ""2/12/2006"""," ""2/14/2006""" -771,1," ""2/15/2006"""," ""2/15/2006""" -772,2," ""2/14/2006"""," ""2/18/2006""" -773,3," ""2/15/2006"""," ""2/16/2006""" -774,4," ""2/17/2006"""," ""2/20/2006""" -775,5," ""2/18/2006"""," ""2/19/2006""" -776,6," ""2/19/2006"""," ""2/19/2006""" -777,7," ""2/18/2006"""," ""2/23/2006""" -778,8," ""2/20/2006"""," ""2/22/2006""" -779,9," ""2/24/2006"""," ""2/26/2006""" -780,10," ""2/25/2006"""," ""2/26/2006""" -781,1," ""2/10/2006"""," ""2/13/2006""" -782,2," ""2/12/2006"""," ""2/14/2006""" -783,3," ""2/15/2006"""," ""2/15/2006""" -784,4," ""2/14/2006"""," ""2/18/2006""" -785,5," ""2/15/2006"""," ""2/16/2006""" -786,6," ""2/17/2006"""," ""2/20/2006""" -787,7," ""2/18/2006"""," ""2/19/2006""" -788,8," ""2/19/2006"""," ""2/19/2006""" -789,9," ""2/18/2006"""," ""2/23/2006""" -790,10," ""2/20/2006"""," ""2/22/2006""" -791,1," ""2/24/2006"""," ""2/26/2006""" -792,2," ""2/25/2006"""," ""2/26/2006""" -793,3," ""2/10/2006"""," ""2/13/2006""" -794,4," ""2/12/2006"""," ""2/14/2006""" -795,5," ""2/15/2006"""," ""2/15/2006""" -796,6," ""2/14/2006"""," ""2/18/2006""" -797,7," ""2/15/2006"""," ""2/16/2006""" -798,8," ""2/17/2006"""," ""2/20/2006""" -799,9," ""2/18/2006"""," ""2/19/2006""" -800,10," ""2/19/2006"""," ""2/19/2006""" -801,1," ""2/18/2006"""," ""2/23/2006""" -802,2," ""2/20/2006"""," ""2/22/2006""" -803,3," ""2/24/2006"""," ""2/26/2006""" -804,4," ""2/25/2006"""," ""2/26/2006""" -805,5," ""2/10/2006"""," ""2/13/2006""" -806,6," ""2/12/2006"""," ""2/14/2006""" -807,7," ""2/15/2006"""," ""2/15/2006""" -808,8," ""2/14/2006"""," ""2/18/2006""" -809,9," ""2/15/2006"""," ""2/16/2006""" -810,10," ""2/17/2006"""," ""2/20/2006""" -811,1," ""2/18/2006"""," ""2/19/2006""" -812,2," ""2/19/2006"""," ""2/19/2006""" -813,3," ""2/18/2006"""," ""2/23/2006""" -814,4," ""2/20/2006"""," ""2/22/2006""" -815,5," ""2/24/2006"""," ""2/26/2006""" -816,6," ""2/25/2006"""," ""2/26/2006""" -817,7," ""2/10/2006"""," ""2/13/2006""" -818,8," ""2/12/2006"""," ""2/14/2006""" -819,9," ""2/15/2006"""," ""2/15/2006""" -820,10," ""2/14/2006"""," ""2/18/2006""" -821,1," ""2/15/2006"""," ""2/16/2006""" -822,2," ""2/17/2006"""," ""2/20/2006""" -823,3," ""2/18/2006"""," ""2/19/2006""" -824,4," ""2/19/2006"""," ""2/19/2006""" -825,5," ""2/18/2006"""," ""2/23/2006""" -826,6," ""2/20/2006"""," ""2/22/2006""" -827,7," ""2/24/2006"""," ""2/26/2006""" -828,8," ""2/25/2006"""," ""2/26/2006""" -829,9," ""2/10/2006"""," ""2/13/2006""" -830,10," ""2/12/2006"""," ""2/14/2006""" -831,1," ""2/15/2006"""," ""2/15/2006""" -832,2," ""2/14/2006"""," ""2/18/2006""" -833,3," ""2/15/2006"""," ""2/16/2006""" -834,4," ""2/17/2006"""," ""2/20/2006""" -835,5," ""2/18/2006"""," ""2/19/2006""" -836,6," ""2/19/2006"""," ""2/19/2006""" -837,7," ""2/18/2006"""," ""2/23/2006""" -838,8," ""2/20/2006"""," ""2/22/2006""" -839,9," ""2/24/2006"""," ""2/26/2006""" -840,10," ""2/25/2006"""," ""2/26/2006""" -841,1," ""2/10/2006"""," ""2/13/2006""" -842,2," ""2/12/2006"""," ""2/14/2006""" -843,3," ""2/15/2006"""," ""2/15/2006""" -844,4," ""2/14/2006"""," ""2/18/2006""" -845,5," ""2/15/2006"""," ""2/16/2006""" -846,6," ""2/17/2006"""," ""2/20/2006""" -847,7," ""2/18/2006"""," ""2/19/2006""" -848,8," ""2/19/2006"""," ""2/19/2006""" -849,9," ""2/18/2006"""," ""2/23/2006""" -850,10," ""2/20/2006"""," ""2/22/2006""" -851,1," ""2/24/2006"""," ""2/26/2006""" -852,2," ""2/25/2006"""," ""2/26/2006""" -853,3," ""2/10/2006"""," ""2/13/2006""" -854,4," ""2/12/2006"""," ""2/14/2006""" -855,5," ""2/15/2006"""," ""2/15/2006""" -856,6," ""2/14/2006"""," ""2/18/2006""" -857,7," ""2/15/2006"""," ""2/16/2006""" -858,8," ""2/17/2006"""," ""2/20/2006""" -859,9," ""2/18/2006"""," ""2/19/2006""" -860,10," ""2/19/2006"""," ""2/19/2006""" -861,1," ""2/18/2006"""," ""2/23/2006""" -862,2," ""2/20/2006"""," ""2/22/2006""" -863,3," ""2/24/2006"""," ""2/26/2006""" -864,4," ""2/25/2006"""," ""2/26/2006""" -865,5," ""2/10/2006"""," ""2/13/2006""" -866,6," ""2/12/2006"""," ""2/14/2006""" -867,7," ""2/15/2006"""," ""2/15/2006""" -868,8," ""2/14/2006"""," ""2/18/2006""" -869,9," ""2/15/2006"""," ""2/16/2006""" -870,10," ""2/17/2006"""," ""2/20/2006""" -871,1," ""2/18/2006"""," ""2/19/2006""" -872,2," ""2/19/2006"""," ""2/19/2006""" -873,3," ""2/18/2006"""," ""2/23/2006""" -874,4," ""2/20/2006"""," ""2/22/2006""" -875,5," ""2/24/2006"""," ""2/26/2006""" -876,6," ""2/25/2006"""," ""2/26/2006""" -877,7," ""2/10/2006"""," ""2/13/2006""" -878,8," ""2/12/2006"""," ""2/14/2006""" -879,9," ""2/15/2006"""," ""2/15/2006""" -880,10," ""2/14/2006"""," ""2/18/2006""" -881,1," ""2/15/2006"""," ""2/16/2006""" -882,2," ""2/17/2006"""," ""2/20/2006""" -883,3," ""2/18/2006"""," ""2/19/2006""" -884,4," ""2/19/2006"""," ""2/19/2006""" -885,5," ""2/18/2006"""," ""2/23/2006""" -886,6," ""2/20/2006"""," ""2/22/2006""" -887,7," ""2/24/2006"""," ""2/26/2006""" -888,8," ""2/25/2006"""," ""2/26/2006""" -889,9," ""2/10/2006"""," ""2/13/2006""" -890,10," ""2/12/2006"""," ""2/14/2006""" -891,1," ""2/15/2006"""," ""2/15/2006""" -892,2," ""2/14/2006"""," ""2/18/2006""" -893,3," ""2/15/2006"""," ""2/16/2006""" -894,4," ""2/17/2006"""," ""2/20/2006""" -895,5," ""2/18/2006"""," ""2/19/2006""" -896,6," ""2/19/2006"""," ""2/19/2006""" -897,7," ""2/18/2006"""," ""2/23/2006""" -898,8," ""2/20/2006"""," ""2/22/2006""" -899,9," ""2/24/2006"""," ""2/26/2006""" -900,10," ""2/25/2006"""," ""2/26/2006""" -901,1," ""2/10/2006"""," ""2/13/2006""" -902,2," ""2/12/2006"""," ""2/14/2006""" -903,3," ""2/15/2006"""," ""2/15/2006""" -904,4," ""2/14/2006"""," ""2/18/2006""" -905,5," ""2/15/2006"""," ""2/16/2006""" -906,6," ""2/17/2006"""," ""2/20/2006""" -907,7," ""2/18/2006"""," ""2/19/2006""" -908,8," ""2/19/2006"""," ""2/19/2006""" -909,9," ""2/18/2006"""," ""2/23/2006""" -910,10," ""2/20/2006"""," ""2/22/2006""" -911,1," ""2/24/2006"""," ""2/26/2006""" -912,2," ""2/25/2006"""," ""2/26/2006""" -913,3," ""2/10/2006"""," ""2/13/2006""" -914,4," ""2/12/2006"""," ""2/14/2006""" -915,5," ""2/15/2006"""," ""2/15/2006""" -916,6," ""2/14/2006"""," ""2/18/2006""" -917,7," ""2/15/2006"""," ""2/16/2006""" -918,8," ""2/17/2006"""," ""2/20/2006""" -919,9," ""2/18/2006"""," ""2/19/2006""" -920,10," ""2/19/2006"""," ""2/19/2006""" -921,1," ""2/18/2006"""," ""2/23/2006""" -922,2," ""2/20/2006"""," ""2/22/2006""" -923,3," ""2/24/2006"""," ""2/26/2006""" -924,4," ""2/25/2006"""," ""2/26/2006""" -925,5," ""2/10/2006"""," ""2/13/2006""" -926,6," ""2/12/2006"""," ""2/14/2006""" -927,7," ""2/15/2006"""," ""2/15/2006""" -928,8," ""2/14/2006"""," ""2/18/2006""" -929,9," ""2/15/2006"""," ""2/16/2006""" -930,10," ""2/17/2006"""," ""2/20/2006""" -931,1," ""2/18/2006"""," ""2/19/2006""" -932,2," ""2/19/2006"""," ""2/19/2006""" -933,3," ""2/18/2006"""," ""2/23/2006""" -934,4," ""2/20/2006"""," ""2/22/2006""" -935,5," ""2/24/2006"""," ""2/26/2006""" -936,6," ""2/25/2006"""," ""2/26/2006""" -937,7," ""2/10/2006"""," ""2/13/2006""" -938,8," ""2/12/2006"""," ""2/14/2006""" -939,9," ""2/15/2006"""," ""2/15/2006""" -940,10," ""2/14/2006"""," ""2/18/2006""" -941,1," ""2/15/2006"""," ""2/16/2006""" -942,2," ""2/17/2006"""," ""2/20/2006""" -943,3," ""2/18/2006"""," ""2/19/2006""" -944,4," ""2/19/2006"""," ""2/19/2006""" -945,5," ""2/18/2006"""," ""2/23/2006""" -946,6," ""2/20/2006"""," ""2/22/2006""" -947,7," ""2/24/2006"""," ""2/26/2006""" -948,8," ""2/25/2006"""," ""2/26/2006""" -949,9," ""2/10/2006"""," ""2/13/2006""" -950,10," ""2/12/2006"""," ""2/14/2006""" -951,1," ""2/15/2006"""," ""2/15/2006""" -952,2," ""2/14/2006"""," ""2/18/2006""" -953,3," ""2/15/2006"""," ""2/16/2006""" -954,4," ""2/17/2006"""," ""2/20/2006""" -955,5," ""2/18/2006"""," ""2/19/2006""" -956,6," ""2/19/2006"""," ""2/19/2006""" -957,7," ""2/18/2006"""," ""2/23/2006""" -958,8," ""2/20/2006"""," ""2/22/2006""" -959,9," ""2/24/2006"""," ""2/26/2006""" -960,10," ""2/25/2006"""," ""2/26/2006""" -961,1," ""2/10/2006"""," ""2/13/2006""" -962,2," ""2/12/2006"""," ""2/14/2006""" -963,3," ""2/15/2006"""," ""2/15/2006""" -964,4," ""2/14/2006"""," ""2/18/2006""" -965,5," ""2/15/2006"""," ""2/16/2006""" -966,6," ""2/17/2006"""," ""2/20/2006""" -967,7," ""2/18/2006"""," ""2/19/2006""" -968,8," ""2/19/2006"""," ""2/19/2006""" -969,9," ""2/18/2006"""," ""2/23/2006""" -970,10," ""2/20/2006"""," ""2/22/2006""" -971,1," ""2/24/2006"""," ""2/26/2006""" -972,2," ""2/25/2006"""," ""2/26/2006""" -973,3," ""2/10/2006"""," ""2/13/2006""" -974,4," ""2/12/2006"""," ""2/14/2006""" -975,5," ""2/15/2006"""," ""2/15/2006""" -976,6," ""2/14/2006"""," ""2/18/2006""" -977,7," ""2/15/2006"""," ""2/16/2006""" -978,8," ""2/17/2006"""," ""2/20/2006""" -979,9," ""2/18/2006"""," ""2/19/2006""" -980,10," ""2/19/2006"""," ""2/19/2006""" -981,1," ""2/18/2006"""," ""2/23/2006""" -982,2," ""2/20/2006"""," ""2/22/2006""" -983,3," ""2/24/2006"""," ""2/26/2006""" -984,4," ""2/25/2006"""," ""2/26/2006""" -985,5," ""2/10/2006"""," ""2/13/2006""" -986,6," ""2/12/2006"""," ""2/14/2006""" -987,7," ""2/15/2006"""," ""2/15/2006""" -988,8," ""2/14/2006"""," ""2/18/2006""" -989,9," ""2/15/2006"""," ""2/16/2006""" -990,10," ""2/17/2006"""," ""2/20/2006""" -991,1," ""2/18/2006"""," ""2/19/2006""" -992,2," ""2/19/2006"""," ""2/19/2006""" -993,3," ""2/18/2006"""," ""2/23/2006""" -994,4," ""2/20/2006"""," ""2/22/2006""" -995,5," ""2/24/2006"""," ""2/26/2006""" -996,6," ""2/25/2006"""," ""2/26/2006""" -997,7," ""2/10/2006"""," ""2/13/2006""" -998,8," ""2/12/2006"""," ""2/14/2006""" -999,9," ""2/15/2006"""," ""2/15/2006""" -1000,10," ""2/14/2006"""," ""2/18/2006""" \ No newline at end of file diff --git a/Projects/p3-skeleton/cs448p3/src/test/resources/ridesBig.json b/Projects/p3-skeleton/cs448p3/src/test/resources/ridesBig.json deleted file mode 100644 index 041754b..0000000 --- a/Projects/p3-skeleton/cs448p3/src/test/resources/ridesBig.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "schema": [ - { - "no": 0, - "type": "INTEGER", - "length": 4, - "name": "DriverId" - }, - { - "no": 1, - "type": "INTEGER", - "length": 4, - "name": "GroupId" - }, - { - "no": 2, - "type": "STRING", - "length": 10, - "name": "FromDate" - }, - { - "no": 3, - "type": "STRING", - "length": 10, - "name": "ToDate" - } - ], - "key": 1 -}