(function(){return function(e,t,r){var a=Scanner.fromMessage(e);a.setLocale(t);var n=a.getSpan(),i=r.isCancellation?"Cancelled":"Confirmed",p=[],o=[];if(n.next("Travelers").parentAnyTag("table").allInnerTags("tr5").slice(2).forEach(function(e){p.push({name:e.nextAnyTag("td").tagContents().innerCapture(/#\d+?\s(.+)/,1)})}),0===p.length&&p.push({}),n.next(r.hotelReservationIdRegExp).exists()){var s,g,c,l,h,d;s=n.next(r.hotelReservationIdRegExp).parentAnyTag("td").tagContents().innerCapture(r.hotelReservationIdRegExp,1);var u=s.parentAnyTag("table").allInnerTags("tr4").slice(2)[0].allInnerTags("td4").map(function(e){return e.tagContents()});l=u[0],h=u[1].innerCapture(/\s([\w\-]+)/,1).replace(/-/g," ").innerDate(),d=u[2].innerCapture(/\s([\w\-]+)/,1).replace(/-/g," ").innerDate();var u=(""+l).split(/\s-\s/);l=u[0],g=u[1],ASSERT(h,OR(g,l))&&o.push({"@context":"http://schema.org","@type":"http://schema.org/LodgingReservation",underName:{"@type":"http://schema.org/Person",name:p[0].name},checkinTime:h,checkoutTime:d,reservationStatus:"http://schema.org/Reservation"+i,reservationId:s,reservationFor:{"@type":"http://schema.org/LodgingBusiness",name:g,telephone:c,address:l}})}if(n.next(r.carReservationIdRegExp).exists()){var m,v,R,f,C,T,x;m=n.next(r.carReservationIdRegExp).parentAnyTag("td").tagContents().innerCapture(r.carReservationIdRegExp,1);var y=m.parentAnyTag("table").allInnerTags("tr4").slice(2)[0].allInnerTags("td4").map(function(e){return e.tagContents()});v=y[0],f=y[1],T=y[2];var A=v.innerCapture(r.carProviderNameRegExp);v=A[1],R=A[2];var E=(""+f).split(/\n/).map(function(e){return a.getDetachedSpan(e)});f=E[0].replace(/\-/g," ").innerDate(),C=E[1].innerCapture(r.carLocationAddressRegExp,1);var I=(""+T).split(/\n/).map(function(e){return a.getDetachedSpan(e)});T=I[0].replace(/\-/g," ").innerDate(),x=I[1].innerCapture(r.carLocationAddressRegExp,1),ASSERT(C,f)&&o.push({"@context":"http://schema.org","@type":"http://schema.org/RentalCarReservation",reservationStatus:"http://schema.org/Reservation"+i,reservationId:m,underName:{"@type":"http://schema.org/Person",name:p[0].name},provider:{"@type":"http://schema.org/Organization",name:v},reservationFor:{"@type":"http://schema.org/Car",brand:{"@type":"http://schema.org/Organization",name:R}},pickupTime:f,pickupLocation:{"@type":"http://schema.org/Place",address:C},dropoffTime:T,dropoffLocation:{"@type":"http://schema.org/Place",address:x}})}if(n.next(r.flightReservationIdRegExp).exists()){var S,D=[];S=n.next(r.flightReservationIdRegExp).parentAnyTag("td").tagContents().innerCapture(r.flightReservationIdRegExp,1),S.parentAnyTag("table").allInnerTags("tr4").slice(2,-1).forEach(function(e){var t,n,i,p,o,s,g,c,l=e.allInnerTags("td4").map(function(e){return e.tagContents()}),h=l[1].innerCapture(r.flightNumberRegExp);t=h[1],n=h[2];var d=l[2].innerCapture(r.flightRouteRegExp);i=d[1],p=d[2],s=d[3],g=d[4];var u=l[3].innerCapture(r.flightDateTimesRegExp);o=u[1],c=u[2],l[0]=(""+l[0]).replace(/.+ (\d{1,2})-(.+)-(\d{2})/,"$1 $2 20$3"),o=l[0]+" "+o,c=l[0]+" "+c,o=a.getDetachedSpan(o),c=a.getDetachedSpan(c),D.push({airlineCode:t,flightNumber:n,departureAirport:i,departureAirportCode:p,departureDateTime:o,arrivalAirport:s,arrivalAirportCode:g,arrivalDateTime:c})}),D.forEach(function(e){p.forEach(function(t){ASSERT(e.airlineCode,e.flightNumber,e.departureAirport,e.departureDateTime),o.push({"@context":"http://schema.org","@type":"http://schema.org/FlightReservation",reservationFor:{"@type":"http://apple.com/FuzzyFlight",airlineCode:e.airlineCode,airlineName:e.airlineName,flightNumber:e.flightNumber,departureAirportFuzzy:e.departureAirport,departureAirportCode:e.departureAirportCode,departureTime:e.departureDateTime,arrivalAirportFuzzy:e.arrivalAirport,arrivalAirportCode:e.arrivalAirportCode,arrivalTime:e.arrivalDateTime},underName:{"@type":"http://schema.org/Person",name:t.name},reservationId:S,reservationStatus:"http://schema.org/Reservation"+i,reservedTicket:{"@type":"http://schema.org/Ticket",ticketNumber:t.ticketNumber,ticketedSeat:{"@type":"http://schema.org/Seat",seatNumber:t.seat,seatingType:null}}})})})}return o}}).call();