Produced by Araxis Merge on 12/7/2018 11:36:08 AM Central Standard Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.
| # | Location | File | Last Modified |
|---|---|---|---|
| 1 | C:\SCRUB\MHED\MHED\VAR 4.10.0\var-web-release-4.10@e10f18de1ef\veteran-appointment-requests\test\watir-ruby\spec\requests | request_message_clerk_and_method_type_care_spec.rb | Mon Oct 22 23:25:20 2018 UTC |
| 2 | C:\MHED-scrubbed\MHED\MHED\VAR 4.10.0\var-web-release-4.10@e10f18de1ef\veteran-appointment-requests\test\watir-ruby\spec\requests | request_message_clerk_and_method_type_care_spec.rb | Fri Dec 7 13:26:00 2018 UTC |
| Description | Between Files 1 and 2 |
|
|---|---|---|
| Text Blocks | Lines | |
| Unchanged | 2 | 702 |
| Changed | 1 | 2 |
| Inserted | 0 | 0 |
| Removed | 0 | 0 |
| Whitespace | |
|---|---|
| Character case | Differences in character case are significant |
| Line endings | Differences in line endings (CR and LF characters) are ignored |
| CR/LF characters | Not shown in the comparison detail |
No regular expressions were active.
| 1 | #!/bin/env ruby | |
| 2 | # encoding : utf-8 | |
| 3 | require 'r ubygems' | |
| 4 | require 'r spec' | |
| 5 | require 'w atir-webdr iver' | |
| 6 | require 'p age-object ' | |
| 7 | require 'o ci8' | |
| 8 | require 'w atir-scrol l' | |
| 9 | ||
| 10 | require_re lative '.. /../module /DriverUti lity' | |
| 11 | require_re lative '.. /rspec_hel per' | |
| 12 | require_re lative './ request_he lper' | |
| 13 | require_re lative '.. /../pages/ landing' | |
| 14 | require_re lative '.. /../pages/ login' | |
| 15 | require_re lative '.. /../pages/ eula' | |
| 16 | require_re lative '.. /../common /common' | |
| 17 | require_re lative '.. /../pages/ landing_ap pointments ' | |
| 18 | require_re lative '.. /../pages/ appointmen ts/new_app ointment_r equest' | |
| 19 | require_re lative '.. /../pages/ appointmen ts/request _appointme nt_detail' | |
| 20 | require_re lative '.. /../helper /modal' | |
| 21 | require_re lative '.. /../module /database/ OracleUtil ity' | |
| 22 | require_re lative '.. /../module /DateUtili ty' | |
| 23 | require_re lative '.. /../helper /error_val idation' | |
| 24 | require_re lative '.. /../module /database/ MongoUtili ty' | |
| 25 | ||
| 26 | describe ' [Story# VA R-1920: Ap pointment Request - Message Cl erk] | |
| 27 | [Story# VA R-1921: Ne w Appointm ent/Reques t – Appoin tment vs. Request Ro uting Ques tion Updat es (5.2.3. c)]' do | |
| 28 | include DriverUtil ity | |
| 29 | include OracleUtil ity | |
| 30 | include DateUtilit y | |
| 31 | include MongoUtili ty | |
| 32 | ||
| 33 | before(: all) do | |
| 34 | initia lizeConfig urations(V AR_BASE_UR L) | |
| 35 | @landi ng_appoint ments = La ndingAppoi ntments.ne w(@driver) | |
| 36 | @login = Login.n ew(@driver ) | |
| 37 | @eula = Eula.new (@driver) | |
| 38 | @commo n = Common .new(@driv er) | |
| 39 | @modal = Modal.n ew(@driver ) | |
| 40 | @new_r equest = N ewAppointm entRequest .new(@driv er) | |
| 41 | @detai l = Reques tAppointme ntDetail.n ew(@driver ) | |
| 42 | ||
| 43 | APPOIN TMENTS = " Appointmen ts/Request s" | |
| 44 | ||
| 45 | #mongo | |
| 46 | @db = connectToM ongoDB("va r-utility" ) | |
| 47 | restor eCollectio n("siteSup portingVAR ", "var-ut ility", "s ites-suppo rting-var- exported2. json", @db ) | |
| 48 | restor eCollectio n("clinica l-services ", "var-ut ility", "c linical_se rvices_def ault.json" , @db) | |
| 49 | restor eCollectio n("request Eligibilit yCriteria" , "var-uti lity", "re questEligi bilityCrit eria.json" , @db) | |
| 50 | @new_m essage_50 = "0123456 7890123456 7890123456 7890123456 7890123456 789" | |
| 51 | @today = getDate NthDaysFro mNow(0, "% m/%d/%Y") | |
| 52 | @patie ntID = "10 06088937V0 99668" | |
| 53 | @patie ntID2 = "1 113138327" | |
| 54 | delete PatientDat a(@patient ID) | |
| 55 | delete PatientDat a(@patient ID2) | |
| 56 | @common.lo ginEndsOnH ome( pw_reda c t e d ) | |
| 57 | @landi ng_appoint ments.prim ary_header _element.w hen_presen t(TIME_OUT _LIMIT) | |
| 58 | ||
| 59 | end | |
| 60 | ||
| 61 | after(:a ll) do | |
| 62 | delete PatientDat a(@patient ID) | |
| 63 | delete PatientDat a(@patient ID2) | |
| 64 | @drive r.close | |
| 65 | end | |
| 66 | ||
| 67 | context 'AC#VAR-20 45|TC#VAR- 2221: Appo intment Re quests - M essage Cle rk ' do | |
| 68 | it "Ve rify reque st is crea ted" do | |
| 69 | ||
| 70 | #add clerk Men tal Health | |
| 71 | type OfCare = " Outpatient Mental He alth" | |
| 72 | sche dulingMeth od = "cler k" | |
| 73 | faci lityId = " 523" | |
| 74 | faci lityName = "BOSTON H CS VAMC" | |
| 75 | type OfVisit = "Office Vi sit" | |
| 76 | purp oseOfVisit = "Medica tion Conce rn" | |
| 77 | othe rPurposeOf Visit = "" | |
| 78 | desi redDateTim e1 = [getD ateNthDays FromNow(40 , "%m/%d/% Y"), "AM"] | |
| 79 | desi redDateTim e2 = [getD ateNthDays FromNow(42 , "%m/%d/% Y"), "PM"] | |
| 80 | desi redDAteTim e3 = [getD ateNthDays FromNow(43 , "%m/%d/% Y"), "AM"] | |
| 81 | phon eNum = "(2 34) 567-89 01" | |
| 82 | veri fyPhoneNum = "(234) 567-8901" | |
| 83 | ||
| 84 | best TimeToCall = " After noon, Even ing" | |
| 85 | call _morning = false | |
| 86 | call _afternoon = true | |
| 87 | call _evening = true | |
| 88 | best TimesForVA toCall = [ call_morni ng, call_a fternoon, call_eveni ng] | |
| 89 | vaTo CallYou = false | |
| 90 | mess age = "" | |
| 91 | send MeEmail = "false" | |
| 92 | emai l = "test1 @hotmail.c om" | |
| 93 | ||
| 94 | addR equest(sch edulingMet hod, typeO fCare, fac ilityId, t ypeOfVisit , purposeO fVisit, ot herPurpose OfVisit, d esiredDate Time1, des iredDateTi me2, desir edDAteTime 3, phoneNu m, verifyP honeNum, b estTimesFo rVAtoCall, vaToCallY ou, messag e, sendMeE mail, emai l ) | |
| 95 | veri fyTableLis t(facility Name, @tod ay, typeOf Care) | |
| 96 | ||
| 97 | end | |
| 98 | ||
| 99 | it "Ve rify messa ge a sched uling cler k section is present and detai ls" do | |
| 100 | ||
| 101 | @lan ding_appoi ntments.re quest_tabl e_list_ele ments[0].c lick | |
| 102 | @det ail.status _element.w hen_presen t(TIME_OUT _LIMIT) | |
| 103 | @det ail.messag e_desc_ele ment.when_ visible(TI ME_OUT_LIM IT) | |
| 104 | expe ct(@detail .send_btn_ element.di sabled?).t o eq(true) | |
| 105 | expe ct(@detail .message_h eader).to eq("Messag e a Schedu ling Clerk ") | |
| 106 | expe ct(@detail .message_d esc).to eq ("You may send up to two (2) m essages wh ile this r equest is in Submitt ed status. If you ne ed additio nal inform ation, ple ase call y our local VA Medical Center") | |
| 107 | expe ct(@detail .new_messa ge_element .attribute ("placehol der")).to eq("Messag es (100 ch aracters m ax) should not be us ed for can celling an appointme nt or for clinical q uestions t hat may ne ed provide r attentio n.") | |
| 108 | expe ct(@detail .message_c ounter).to eq("100 c haracters remaining" ) | |
| 109 | ||
| 110 | end | |
| 111 | ||
| 112 | it "Ve rify chara cter remai ning texts when mess age entere d with 50 chars" do | |
| 113 | @det ail.new_me ssage= @ne w_message_ 50 | |
| 114 | expe ct(@detail .message_c ounter).to eq("50 ch aracters r emaining") | |
| 115 | end | |
| 116 | ||
| 117 | it "Ve rify chara cter remai ning texts when mess age entere d with 100 chars" do | |
| 118 | @det ail.new_me ssage= @ne w_message_ 50 + @new_ message_50 | |
| 119 | expe ct(@detail .new_messa ge).to eq( @new_messa ge_50 + @n ew_message _50) | |
| 120 | expe ct(@detail .message_c ounter).to eq("0 cha racters re maining") | |
| 121 | end | |
| 122 | ||
| 123 | it "Ve rify more than 100 c hars canno t be enter ed" do | |
| 124 | @det ail.new_me ssage= @ne w_message_ 50 + @new_ message_50 + "!!@#!@ #!@#%^^" | |
| 125 | expe ct(@detail .new_messa ge).to eq( @new_messa ge_50 + @n ew_message _50) | |
| 126 | expe ct(@detail .message_c ounter).to eq("0 cha racters re maining") | |
| 127 | end | |
| 128 | ||
| 129 | it "Se nd button is enabled when mess age entere d" do | |
| 130 | @det ail.send_b tn_element .when_pres ent(TIME_O UT_LIMIT) | |
| 131 | expe ct(@detail .send_btn_ element.pr esent?).to eq(true) | |
| 132 | expe ct(@detail .send_btn_ element.di sabled?).t o eq(false ) | |
| 133 | end | |
| 134 | ||
| 135 | it "Ve rify sent message te xt is disp layed in d etails" do | |
| 136 | @det ail.send_b tn | |
| 137 | @com mon.waitWh ileSpinner Present | |
| 138 | @det ail.messag e_section_ element.wh en_present (TIME_OUT_ LIMIT) | |
| 139 | Wati r::Wait.un til {@deta il.getNthF romMeMessa ge(1) == @ new_messag e_50 + @ne w_message_ 50 } | |
| 140 | expe ct(@detail .getNthFro mMeMessage (1)).to eq (@new_mess age_50 + @ new_messag e_50) | |
| 141 | end | |
| 142 | ||
| 143 | it "sh ould verif y Messages Area, Mes sage, time stamp" do | |
| 144 | expe ct(@detail .message_h eaders).to eq("From VA:\nFrom Me:") | |
| 145 | expe ct(@detail .getNthFro mMeMessage (1)).to eq (@new_mess age_50 + @ new_messag e_50) | |
| 146 | expe ct(isDateF ormatValid ?(@detail. getNthFrom MeMeTimeSt amp(1), "% m/%d/%Y @ %H:%M")).t o eq(true) | |
| 147 | end | |
| 148 | ||
| 149 | it "Us ers can on ly see the text box, character countdown and send options, i f status i s Submitte d and vete ran has se nt 0 or 1 message. Text descr iption for requests in Cacelle d or Not B ooked; His torical me ssages are maintaine d." do | |
| 150 | canc elRequest | |
| 151 | #tex tArea box is not ava ilable for Cancelled | |
| 152 | expe ct(@detail .status_el ement.text ).to eq("S tatus: Can celled") | |
| 153 | expe ct(@detail .new_messa ge_element .visible?) .to eq(fal se) | |
| 154 | expe ct(@detail .message_c ounter_ele ment.visib le?).to eq (false) | |
| 155 | expe ct(@detail .send_btn_ element.vi sible?).to eq(false) | |
| 156 | expe ct(@detail .message_d esc).to eq ("Messages cannot be sent for requests i n Cancelle d or Not B ooked stat us. If you need addi tional inf ormation, please cal l your loc al VA Medi cal Center .") | |
| 157 | #his torical me ssages mai ntained | |
| 158 | expe ct(@detail .messages_ all_elemen ts.length) .to be >= 1 | |
| 159 | ||
| 160 | end | |
| 161 | ||
| 162 | it "Me ssage sect ion when r equest is in not boo ked status " do | |
| 163 | upda teAppointm entRequest edLastUpda tedDate(ge tDateNthDa ysAgo(0, " %Y-%m-%d") , "#{@pati entID2}", MENTAL_HEA LTH , "Not Booked") | |
| 164 | butt on_element = @driver .button(:i d => 'back -btn') | |
| 165 | @dri ver.execut e_script(" $(argument s[0]).clic k();",butt on_element ) | |
| 166 | wait TillReques tsDisplay | |
| 167 | @dri ver.refres h | |
| 168 | #@la nding_appo intments.r efresh | |
| 169 | @com mon.waitWh ileSpinner Present | |
| 170 | requ est_detail s = @landi ng_appoint ments.requ est_table_ list_eleme nts[0] | |
| 171 | requ est_detail s.scroll.t o :top | |
| 172 | @lan ding_appoi ntments.re quest_tabl e_list_ele ments[0].c lick | |
| 173 | @com mon.waitWh ileSpinner Present | |
| 174 | @det ail.status _element.w hen_presen t(TIME_OUT _LIMIT) | |
| 175 | expe ct(@detail .has_expec ted_title? ).to eq(tr ue) | |
| 176 | #tex tArea box is not ava ilable for Cancelled | |
| 177 | expe ct(@detail .status_el ement.text ).to eq("S tatus: Not Booked") | |
| 178 | expe ct(@detail .new_messa ge_element .visible?) .to eq(fal se) | |
| 179 | expe ct(@detail .message_c ounter_ele ment.visib le?).to eq (false) | |
| 180 | expe ct(@detail .send_btn_ element.vi sible?).to eq(false) | |
| 181 | expe ct(@detail .message_d esc).to eq ("Messages cannot be sent for requests i n Cancelle d or Not B ooked stat us. If you need addi tional inf ormation, please cal l your loc al VA Medi cal Center .") | |
| 182 | #his torical me ssages mai ntained | |
| 183 | expe ct(@detail .messages_ all_elemen ts.length) .to be >= 1 | |
| 184 | end | |
| 185 | ||
| 186 | it "No messages were excha nged on th is request - add a n ew request " do | |
| 187 | butt on_element = @driver .button(:i d => 'back -btn') | |
| 188 | @dri ver.execut e_script(" $(argument s[0]).clic k();",butt on_element ) | |
| 189 | wait TillReques tsDisplay | |
| 190 | ||
| 191 | #add clerk Men tal Health | |
| 192 | type OfCare = M ENTAL_HEAL TH | |
| 193 | sche dulingMeth od = "cler k" | |
| 194 | faci lityId = " 523" | |
| 195 | faci lityName = "BOSTON H CS VAMC" | |
| 196 | type OfVisit = "Office Vi sit" | |
| 197 | purp oseOfVisit = "Medica tion Conce rn" | |
| 198 | othe rPurposeOf Visit = "" | |
| 199 | desi redDateTim e1 = [getD ateNthDays FromNow(10 , "%m/%d/% Y"), "AM"] | |
| 200 | desi redDateTim e2 = [getD ateNthDays FromNow(12 , "%m/%d/% Y"), "PM"] | |
| 201 | desi redDAteTim e3 = [getD ateNthDays FromNow(13 , "%m/%d/% Y"), "AM"] | |
| 202 | phon eNum = "(2 34) 567-89 01" | |
| 203 | veri fyPhoneNum = "(234) 567-8901" | |
| 204 | ||
| 205 | best TimeToCall = " Eveni ng" | |
| 206 | call _morning = false | |
| 207 | call _afternoon = false | |
| 208 | call _evening = true | |
| 209 | ||
| 210 | best TimesForVA toCall = [ call_morni ng, call_a fternoon, call_eveni ng] | |
| 211 | vaTo CallYou = false | |
| 212 | mess age = "" | |
| 213 | send MeEmail = "false" | |
| 214 | emai l = "test1 @hotmail.c om" | |
| 215 | ||
| 216 | addR equest(sch edulingMet hod, typeO fCare, fac ilityId, t ypeOfVisit , purposeO fVisit, ot herPurpose OfVisit, d esiredDate Time1, des iredDateTi me2, desir edDAteTime 3, phoneNu m, verifyP honeNum, b estTimesFo rVAtoCall, vaToCallY ou, messag e, sendMeE mail, emai l ) | |
| 217 | veri fyTableLis t(facility Name, @tod ay, typeOf Care) | |
| 218 | end | |
| 219 | ||
| 220 | it "sh ould verif y message section fo r a cancel led reques t when no message ex change hav e happened " do | |
| 221 | ||
| 222 | @lan ding_appoi ntments.re quest_tabl e_list_ele ments[0].c lick | |
| 223 | @com mon.waitWh ileSpinner Present | |
| 224 | @det ail.reques t_details_ group_elem ent.when_p resent(TIM E_OUT_LIMI T) | |
| 225 | canc elRequest | |
| 226 | Wati r::Wait.un til { @de tail.messa ge_desc== "No messag es were ex changed on this requ est." } | |
| 227 | expe ct(@detail .message_d esc).to eq ("No messa ges were e xchanged o n this req uest.") | |
| 228 | expe ct(@detail .messages_ all_elemen ts.length) .to eq(0) | |
| 229 | ||
| 230 | end | |
| 231 | ||
| 232 | it "Sh ould verif y message secction w hen no mes sages are exchanged for reques t in not b ooked stat us" do | |
| 233 | ||
| 234 | upda teAppointm entRequest edLastUpda tedDate(ge tDateNthDa ysAgo(0, " %Y-%m-%d") , "#{@pati entID2}", MENTAL_HEA LTH, "Not Booked") | |
| 235 | exec uteQuery(" delete fro m vardb.ap pointment_ request_me ssage wher e sender_i d='#{@pati entID}'") | |
| 236 | butt on_element = @driver .button(:i d => 'back -btn') | |
| 237 | @dri ver.execut e_script(" $(argument s[0]).clic k();",butt on_element ) | |
| 238 | wait TillReques tsDisplay | |
| 239 | #@la nding_appo intments.r efresh | |
| 240 | @dri ver.refres h | |
| 241 | wait TillReques tsDisplay | |
| 242 | Wati r::Wait.un til {@land ing_appoin tments.get RequestTex tForRowCol (1,2) == " Not Booked "} | |
| 243 | @lan ding_appoi ntments.re quest_tabl e_list_ele ments[1].c lick | |
| 244 | @com mon.waitWh ileSpinner Present | |
| 245 | @det ail.status _element.w hen_presen t(TIME_OUT _LIMIT) | |
| 246 | expe ct(@detail .has_expec ted_title? ).to eq(tr ue) | |
| 247 | expe ct(@detail .status_el ement.text ).to eq("S tatus: Not Booked") | |
| 248 | Wati r::Wait.un til { @de tail.messa ge_desc== "No messag es were ex changed on this requ est." } | |
| 249 | expe ct(@detail .message_d esc).to eq ("No messa ges were e xchanged o n this req uest.") | |
| 250 | expe ct(@detail .messages_ all_elemen ts.length) .to eq(0) | |
| 251 | end | |
| 252 | ||
| 253 | it "Ve teran has sent two m essages, t extbox, ch aracter co unter, sen d button a re hidden: add a new request " do | |
| 254 | butt on_element = @driver .button(:i d => 'back -btn') | |
| 255 | @dri ver.execut e_script(" $(argument s[0]).clic k();",butt on_element ) | |
| 256 | wait TillReques tsDisplay | |
| 257 | ||
| 258 | #add clerk Men tal Health | |
| 259 | type OfCare = M ENTAL_HEAL TH | |
| 260 | sche dulingMeth od = "cler k" | |
| 261 | faci lityId = " 523" | |
| 262 | faci lityName = "BOSTON H CS VAMC" | |
| 263 | type OfVisit = "Office Vi sit" | |
| 264 | purp oseOfVisit = "Medica tion Conce rn" | |
| 265 | othe rPurposeOf Visit = "" | |
| 266 | desi redDateTim e1 = [getD ateNthDays FromNow(20 , "%m/%d/% Y"), "AM"] | |
| 267 | desi redDateTim e2 = [getD ateNthDays FromNow(22 , "%m/%d/% Y"), "PM"] | |
| 268 | desi redDAteTim e3 = [getD ateNthDays FromNow(23 , "%m/%d/% Y"), "AM"] | |
| 269 | phon eNum = "(2 34) 567-89 01" | |
| 270 | veri fyPhoneNum = "(234) 567-8901" | |
| 271 | ||
| 272 | best TimeToCall = " Eveni ng" | |
| 273 | call _morning = false | |
| 274 | call _afternoon = false | |
| 275 | call _evening = true | |
| 276 | ||
| 277 | best TimesForVA toCall = [ call_morni ng, call_a fternoon, call_eveni ng] | |
| 278 | vaTo CallYou = false | |
| 279 | mess age = "" | |
| 280 | send MeEmail = "false" | |
| 281 | emai l = "test1 @hotmail.c om" | |
| 282 | ||
| 283 | addR equest(sch edulingMet hod, typeO fCare, fac ilityId, t ypeOfVisit , purposeO fVisit, ot herPurpose OfVisit, d esiredDate Time1, des iredDateTi me2, desir edDAteTime 3, phoneNu m, verifyP honeNum, b estTimesFo rVAtoCall, vaToCallY ou, messag e, sendMeE mail, emai l ) | |
| 284 | veri fyTableLis t(facility Name, @tod ay, typeOf Care) | |
| 285 | end | |
| 286 | ||
| 287 | it "Ve rify sendi ng first m essage" do | |
| 288 | @lan ding_appoi ntments.re quest_tabl e_list_ele ments[0].c lick | |
| 289 | @det ail.status _element.w hen_presen t(TIME_OUT _LIMIT) | |
| 290 | @det ail.new_me ssage_elem ent.when_p resent(TIM E_OUT_LIMI T) | |
| 291 | @det ail.new_me ssage = "S ending a c onsecutive message t o a clerk" | |
| 292 | @det ail.send_b tn | |
| 293 | @det ail.messag e_section_ element.wh en_present (TIME_OUT_ LIMIT) | |
| 294 | Wati r::Wait.un til {@deta il.getNthF romMeMessa ge(1) == " Sending a consecutiv e message to a clerk " } | |
| 295 | expe ct(@detail .getNthFro mMeMessage (1)).to eq ("Sending a consecut ive messag e to a cle rk") | |
| 296 | end | |
| 297 | ||
| 298 | it "Ve rify sendi ng second message" d o | |
| 299 | @det ail.new_me ssage_elem ent.when_p resent(TIM E_OUT_LIMI T) | |
| 300 | @det ail.new_me ssage = "S ending nex t message" | |
| 301 | @det ail.send_b tn | |
| 302 | @com mon.waitWh ileSpinner Present | |
| 303 | @det ail.messag e_section_ element.wh en_present (TIME_OUT_ LIMIT) | |
| 304 | Wati r::Wait.un til {@deta il.getNthF romMeMessa ge(1) == " Sending ne xt message " } | |
| 305 | expe ct(@detail .getNthFro mMeMessage (1)).to eq ("Sending next messa ge") | |
| 306 | expe ct(@detail .new_messa ge_element .visible?) .to eq(fal se) | |
| 307 | expe ct(@detail .message_c ounter_ele ment.visib le?).to eq (false) | |
| 308 | expe ct(@detail .send_btn_ element.vi sible?).to eq(false) | |
| 309 | expe ct(@detail .message_d esc).to eq ("You have reached y our two me ssage maxi mum. If yo u need add itional in formation, please ca ll your lo cal VA Med ical Cente r") | |
| 310 | end | |
| 311 | ||
| 312 | end | |
| 313 | ||
| 314 | end | |
| 315 | ||
| 316 | ||
| 317 | ||
| 318 | ||
| 319 | ||
| 320 | ||
| 321 | ||
| 322 | ||
| 323 | ||
| 324 | ||
| 325 | ||
| 326 | ||
| 327 | ||
| 328 | ||
| 329 | ||
| 330 | ||
| 331 | ||
| 332 | ||
| 333 | ||
| 334 | ||
| 335 | ||
| 336 | ||
| 337 | ||
| 338 | ||
| 339 | ||
| 340 | ||
| 341 | ||
| 342 | ||
| 343 | ||
| 344 | ||
| 345 | ||
| 346 | ||
| 347 | ||
| 348 | ||
| 349 | ||
| 350 | ||
| 351 | ||
| 352 |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2016 Araxis Ltd (www.araxis.com). All rights reserved.