@aya-flights/ngx-goox-lib 2.20.23-ang-18 → 2.20.24-ang-18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/esm2022/lib/model/Account.mjs +1 -1
  2. package/esm2022/lib/model/Airplane.mjs +1 -1
  3. package/esm2022/lib/model/Booking.mjs +1 -1
  4. package/esm2022/lib/model/BookingPlan.mjs +1 -1
  5. package/esm2022/lib/model/BookingsFilter.mjs +1 -1
  6. package/esm2022/lib/model/Certificate.mjs +1 -1
  7. package/esm2022/lib/model/CertificatesFilter.mjs +1 -1
  8. package/esm2022/lib/model/ContactGroup.mjs +1 -1
  9. package/esm2022/lib/model/Credit.mjs +2 -1
  10. package/esm2022/lib/model/Flight.mjs +1 -1
  11. package/esm2022/lib/model/FlightPlan.mjs +1 -1
  12. package/esm2022/lib/model/FlightRisk.mjs +1 -1
  13. package/esm2022/lib/model/Group.mjs +1 -1
  14. package/esm2022/lib/model/Maintenance.mjs +1 -1
  15. package/esm2022/lib/model/MaintenancesFilter.mjs +1 -1
  16. package/esm2022/lib/model/PostFlightInfo.mjs +1 -1
  17. package/esm2022/lib/model/RiskAssessment.mjs +1 -1
  18. package/esm2022/lib/model/StudentSheet.mjs +1 -1
  19. package/esm2022/lib/model/SyllabusTrack.mjs +1 -1
  20. package/esm2022/lib/model/TokenData.mjs +1 -1
  21. package/esm2022/lib/model/UsersFilter.mjs +1 -1
  22. package/esm2022/lib/model/index.mjs +128 -128
  23. package/esm2022/lib/services/AccountsEndPoint.mjs +1 -1
  24. package/esm2022/lib/services/AirplanesEndPoint.mjs +1 -1
  25. package/esm2022/lib/services/AuditLogsEndPoint.mjs +1 -1
  26. package/esm2022/lib/services/BookingSlotsEndPoint.mjs +1 -1
  27. package/esm2022/lib/services/BookingsEndPoint.mjs +1 -1
  28. package/esm2022/lib/services/CampaignsEndPoint.mjs +1 -1
  29. package/esm2022/lib/services/ContactsEndPoint.mjs +1 -1
  30. package/esm2022/lib/services/ContactsGroupsEndPoint.mjs +1 -1
  31. package/esm2022/lib/services/CreditsEndPoint.mjs +1 -1
  32. package/esm2022/lib/services/DocumentsEndPoint.mjs +1 -1
  33. package/esm2022/lib/services/FlightsEndPoint.mjs +1 -1
  34. package/esm2022/lib/services/LeadsEndPoint.mjs +1 -1
  35. package/esm2022/lib/services/LookupsEndPoint.mjs +1 -1
  36. package/esm2022/lib/services/MessageConfirmsEndPoint.mjs +1 -1
  37. package/esm2022/lib/services/MyAuthEndPoint.mjs +1 -1
  38. package/esm2022/lib/services/MyBookingsEndPoint.mjs +1 -1
  39. package/esm2022/lib/services/MyCertificatesEndPoint.mjs +1 -1
  40. package/esm2022/lib/services/MyFlightsEndPoint.mjs +1 -1
  41. package/esm2022/lib/services/MyInfoEndPoint.mjs +1 -1
  42. package/esm2022/lib/services/MyMessagesEndPoint.mjs +1 -1
  43. package/esm2022/lib/services/MyStudentsEndPoint.mjs +1 -1
  44. package/esm2022/lib/services/SyllabusEndPoint.mjs +1 -1
  45. package/esm2022/lib/services/SystemConfigsEndPoint.mjs +1 -1
  46. package/esm2022/lib/services/UserEndPoint.mjs +1 -1
  47. package/esm2022/lib/services/UsersEndPoint.mjs +1 -1
  48. package/esm2022/lib/services/index.mjs +26 -26
  49. package/fesm2022/aya-flights-ngx-goox-lib.mjs +5246 -5245
  50. package/fesm2022/aya-flights-ngx-goox-lib.mjs.map +1 -1
  51. package/lib/model/Account.d.ts +1 -1
  52. package/lib/model/Airplane.d.ts +5 -5
  53. package/lib/model/Booking.d.ts +1 -1
  54. package/lib/model/BookingPlan.d.ts +2 -2
  55. package/lib/model/BookingsFilter.d.ts +1 -1
  56. package/lib/model/Certificate.d.ts +1 -1
  57. package/lib/model/CertificatesFilter.d.ts +1 -1
  58. package/lib/model/ContactGroup.d.ts +1 -1
  59. package/lib/model/Credit.d.ts +1 -0
  60. package/lib/model/Flight.d.ts +5 -5
  61. package/lib/model/FlightPlan.d.ts +1 -1
  62. package/lib/model/FlightRisk.d.ts +5 -5
  63. package/lib/model/Group.d.ts +1 -1
  64. package/lib/model/Maintenance.d.ts +1 -1
  65. package/lib/model/MaintenancesFilter.d.ts +1 -1
  66. package/lib/model/PostFlightInfo.d.ts +1 -1
  67. package/lib/model/RiskAssessment.d.ts +1 -1
  68. package/lib/model/StudentSheet.d.ts +1 -1
  69. package/lib/model/SyllabusTrack.d.ts +1 -1
  70. package/lib/model/TokenData.d.ts +1 -1
  71. package/lib/model/UsersFilter.d.ts +1 -1
  72. package/lib/model/index.d.ts +127 -127
  73. package/lib/services/AccountsEndPoint.d.ts +7 -7
  74. package/lib/services/AirplanesEndPoint.d.ts +7 -7
  75. package/lib/services/AuditLogsEndPoint.d.ts +1 -1
  76. package/lib/services/BookingSlotsEndPoint.d.ts +2 -2
  77. package/lib/services/BookingsEndPoint.d.ts +4 -4
  78. package/lib/services/CampaignsEndPoint.d.ts +1 -1
  79. package/lib/services/ContactsEndPoint.d.ts +13 -13
  80. package/lib/services/ContactsGroupsEndPoint.d.ts +2 -2
  81. package/lib/services/CreditsEndPoint.d.ts +1 -1
  82. package/lib/services/DocumentsEndPoint.d.ts +2 -2
  83. package/lib/services/FlightsEndPoint.d.ts +11 -11
  84. package/lib/services/LeadsEndPoint.d.ts +4 -4
  85. package/lib/services/LookupsEndPoint.d.ts +2 -2
  86. package/lib/services/MessageConfirmsEndPoint.d.ts +2 -2
  87. package/lib/services/MyAuthEndPoint.d.ts +1 -1
  88. package/lib/services/MyBookingsEndPoint.d.ts +4 -4
  89. package/lib/services/MyCertificatesEndPoint.d.ts +2 -2
  90. package/lib/services/MyFlightsEndPoint.d.ts +5 -5
  91. package/lib/services/MyInfoEndPoint.d.ts +1 -1
  92. package/lib/services/MyMessagesEndPoint.d.ts +2 -2
  93. package/lib/services/MyStudentsEndPoint.d.ts +1 -1
  94. package/lib/services/SyllabusEndPoint.d.ts +3 -3
  95. package/lib/services/SystemConfigsEndPoint.d.ts +1 -1
  96. package/lib/services/UserEndPoint.d.ts +1 -1
  97. package/lib/services/UsersEndPoint.d.ts +3 -3
  98. package/lib/services/index.d.ts +25 -25
  99. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"aya-flights-ngx-goox-lib.mjs","sources":["../../../projects/ngx-goox-lib2/src/lib/model/CampaignStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/ErrorCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/FilterFlag.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightCategoryCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightClassCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/TimePeriodCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/AccountTypeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/AirplaneValidationFlag.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightPurposeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightStateCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightTypeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/MedicalCertClassCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/ModuleCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/AccountStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/ConfirmStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/LeadStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/OperatorCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/StatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/TicketStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/ADSBSourceFlag.ts","../../../projects/ngx-goox-lib2/src/lib/model/PaymentMethodCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/PermissionFlag.ts","../../../projects/ngx-goox-lib2/src/lib/model/UserRoleFlag.ts","../../../projects/ngx-goox-lib2/src/lib/model/UserTypeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/BillingStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/BookingStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/CurrencyCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/MaintenanceActionCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/MessageTypeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/NotificationTypeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/PriorityCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/ADSBCategoryCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/AirplaneStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/InstructionTypeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/LessonSubjectCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/LessonTypeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/SyllabusStageCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/TransactionTypeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/TypeRatingFlag.ts","../../../projects/ngx-goox-lib2/src/lib/model/AssessmentCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/BookingTypeFlag.ts","../../../projects/ngx-goox-lib2/src/lib/model/CampaignTypeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/UserStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/ValidationFlag.ts","../../../projects/ngx-goox-lib2/src/lib/model/LicenseKindFlag.ts","../../../projects/ngx-goox-lib2/src/lib/model/ContactsFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/Location.ts","../../../projects/ngx-goox-lib2/src/lib/model/TafReport.ts","../../../projects/ngx-goox-lib2/src/lib/model/Permission.ts","../../../projects/ngx-goox-lib2/src/lib/model/Engine.ts","../../../projects/ngx-goox-lib2/src/lib/model/BaseEntityEx.ts","../../../projects/ngx-goox-lib2/src/lib/model/ColumnDef.ts","../../../projects/ngx-goox-lib2/src/lib/model/BookingSlots.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightRisk.ts","../../../projects/ngx-goox-lib2/src/lib/model/Lead.ts","../../../projects/ngx-goox-lib2/src/lib/model/errorStruct.ts","../../../projects/ngx-goox-lib2/src/lib/model/PreFlightInfo.ts","../../../projects/ngx-goox-lib2/src/lib/model/DocumentRevision.ts","../../../projects/ngx-goox-lib2/src/lib/model/PilotQualificationsRisks.ts","../../../projects/ngx-goox-lib2/src/lib/model/SpecialRisks.ts","../../../projects/ngx-goox-lib2/src/lib/model/Metar.ts","../../../projects/ngx-goox-lib2/src/lib/model/BaseRestResponse.ts","../../../projects/ngx-goox-lib2/src/lib/model/AnyKeyValue.ts","../../../projects/ngx-goox-lib2/src/lib/model/IntKeyValue.ts","../../../projects/ngx-goox-lib2/src/lib/model/LeadAction.ts","../../../projects/ngx-goox-lib2/src/lib/model/Maintenance.ts","../../../projects/ngx-goox-lib2/src/lib/model/SyllabusTrack.ts","../../../projects/ngx-goox-lib2/src/lib/model/SystemConfig.ts","../../../projects/ngx-goox-lib2/src/lib/model/ActionResponse.ts","../../../projects/ngx-goox-lib2/src/lib/model/EntitiesRequest.ts","../../../projects/ngx-goox-lib2/src/lib/model/Json.ts","../../../projects/ngx-goox-lib2/src/lib/model/JsonDoc.ts","../../../projects/ngx-goox-lib2/src/lib/model/SimpleEntity.ts","../../../projects/ngx-goox-lib2/src/lib/model/LoginParams.ts","../../../projects/ngx-goox-lib2/src/lib/model/BookingSlotsSet.ts","../../../projects/ngx-goox-lib2/src/lib/model/Lesson.ts","../../../projects/ngx-goox-lib2/src/lib/model/RiskAssessment.ts","../../../projects/ngx-goox-lib2/src/lib/model/Notification.ts","../../../projects/ngx-goox-lib2/src/lib/model/Entities.ts","../../../projects/ngx-goox-lib2/src/lib/model/EntityAction.ts","../../../projects/ngx-goox-lib2/src/lib/model/Address.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightPassenger.ts","../../../projects/ngx-goox-lib2/src/lib/model/Magneto.ts","../../../projects/ngx-goox-lib2/src/lib/model/BookingSlot.ts","../../../projects/ngx-goox-lib2/src/lib/model/AuditLogFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/CreditsFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/Airplane.ts","../../../projects/ngx-goox-lib2/src/lib/model/DepartureRisks.ts","../../../projects/ngx-goox-lib2/src/lib/model/Price.ts","../../../projects/ngx-goox-lib2/src/lib/model/Timestamp.ts","../../../projects/ngx-goox-lib2/src/lib/model/UsersFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/Booking.ts","../../../projects/ngx-goox-lib2/src/lib/model/Flight.ts","../../../projects/ngx-goox-lib2/src/lib/model/TOLData.ts","../../../projects/ngx-goox-lib2/src/lib/model/Lookup.ts","../../../projects/ngx-goox-lib2/src/lib/model/User.ts","../../../projects/ngx-goox-lib2/src/lib/model/EntityResponse.ts","../../../projects/ngx-goox-lib2/src/lib/model/EntitiesResponse.ts","../../../projects/ngx-goox-lib2/src/lib/model/Point.ts","../../../projects/ngx-goox-lib2/src/lib/model/Fuel.ts","../../../projects/ngx-goox-lib2/src/lib/model/Distribution.ts","../../../projects/ngx-goox-lib2/src/lib/model/TripRisks.ts","../../../projects/ngx-goox-lib2/src/lib/model/FollowUpAction.ts","../../../projects/ngx-goox-lib2/src/lib/model/StudentSheet.ts","../../../projects/ngx-goox-lib2/src/lib/model/EntityRequest.ts","../../../projects/ngx-goox-lib2/src/lib/model/AccountsFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/CertificatesFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/StorageItem.ts","../../../projects/ngx-goox-lib2/src/lib/model/AuditLog.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightBilling.ts","../../../projects/ngx-goox-lib2/src/lib/model/Group.ts","../../../projects/ngx-goox-lib2/src/lib/model/BaseEntity.ts","../../../projects/ngx-goox-lib2/src/lib/model/IntEnumValue.ts","../../../projects/ngx-goox-lib2/src/lib/model/Propeller.ts","../../../projects/ngx-goox-lib2/src/lib/model/WBConfig.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightsFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/MaintenancesFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/Campaign.ts","../../../projects/ngx-goox-lib2/src/lib/model/Contact.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightTicket.ts","../../../projects/ngx-goox-lib2/src/lib/model/MessageConfirm.ts","../../../projects/ngx-goox-lib2/src/lib/model/Syllabus.ts","../../../projects/ngx-goox-lib2/src/lib/model/SystemMessage.ts","../../../projects/ngx-goox-lib2/src/lib/model/TimeFrame.ts","../../../projects/ngx-goox-lib2/src/lib/model/ADSBState.ts","../../../projects/ngx-goox-lib2/src/lib/model/SyllabusFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/CrewDutyDayRisks.ts","../../../projects/ngx-goox-lib2/src/lib/model/DestinationRisks.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightPlan.ts","../../../projects/ngx-goox-lib2/src/lib/model/LogBookRecord.ts","../../../projects/ngx-goox-lib2/src/lib/model/LookupGroup.ts","../../../projects/ngx-goox-lib2/src/lib/model/BookingPlan.ts","../../../projects/ngx-goox-lib2/src/lib/model/Boundaries.ts","../../../projects/ngx-goox-lib2/src/lib/model/AirplanesFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/PostFlightInfo.ts","../../../projects/ngx-goox-lib2/src/lib/model/TokenData.ts","../../../projects/ngx-goox-lib2/src/lib/model/Account.ts","../../../projects/ngx-goox-lib2/src/lib/model/Billing.ts","../../../projects/ngx-goox-lib2/src/lib/model/LocalTime.ts","../../../projects/ngx-goox-lib2/src/lib/model/TimeDataPoint.ts","../../../projects/ngx-goox-lib2/src/lib/model/BaseFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/LeadsFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/MetarReport.ts","../../../projects/ngx-goox-lib2/src/lib/model/Certificate.ts","../../../projects/ngx-goox-lib2/src/lib/model/ContactGroup.ts","../../../projects/ngx-goox-lib2/src/lib/model/Document.ts","../../../projects/ngx-goox-lib2/src/lib/model/Tuple.ts","../../../projects/ngx-goox-lib2/src/lib/model/TimeSeries.ts","../../../projects/ngx-goox-lib2/src/lib/model/BookingsFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/StringKeyValue.ts","../../../projects/ngx-goox-lib2/src/lib/model/Credit.ts","../../../projects/ngx-goox-lib2/src/lib/model/BillingRecord.ts","../../../projects/ngx-goox-lib2/src/lib/model/WeatherRisks.ts","../../../projects/ngx-goox-lib2/src/lib/model/Mitigation.ts","../../../projects/ngx-goox-lib2/src/config.ts","../../../projects/ngx-goox-lib2/src/rest-utils.ts","../../../projects/ngx-goox-lib2/src/lib/services/MyStudentsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/LeadsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/SyllabusEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/UserEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/MyCreditsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/AuditLogsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/LookupsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/SystemConfigsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/MyBookingsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/MyFlightsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/MyMessagesEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/BookingSlotsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/SystemEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/McpToolsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/AccountsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/AirplanesEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/DocumentsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/FlightsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/MaintenancesEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/MessageConfirmsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/MyAuthEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/MyInfoEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/FlightTicketsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/GroupsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/UsersEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/CampaignsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/CertificatesEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/BookingsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/ContactsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/CreditsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/PriceListEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/SystemMessagesEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/MyCertificatesEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/ContactsGroupsEndPoint.ts","../../../projects/ngx-goox-lib2/src/ngx-goox-lib.module.ts","../../../projects/ngx-goox-lib2/src/public-api.ts","../../../projects/ngx-goox-lib2/src/aya-flights-ngx-goox-lib.ts"],"sourcesContent":["\nimport { Tuple } from '.';\n\n\n// CampaignStatusCode represents the campaign status: PLANNING | ACTIVE | COMPLETED ...\nexport enum CampaignStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Planned campaign [1] \n PLANNING = 1,\n\n // Active campaign [2] \n ACTIVE = 2,\n\n // `Completed campaign [3] \n COMPLETED = 3,\n\n // Suspended (about to be deleted) [4] \n SUSPENDED = 4,\n\n}\n\n// Return list of CampaignStatusCode values and their display names\nexport function GetCampaignStatusCodes() : Tuple<CampaignStatusCode, string>[] {\n\tlet result : Tuple<CampaignStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<CampaignStatusCode, string>(CampaignStatusCode.PLANNING, 'CampaignStatusCode.PLANNING'))\n\tresult.push(new Tuple<CampaignStatusCode, string>(CampaignStatusCode.ACTIVE, 'CampaignStatusCode.ACTIVE'))\n\tresult.push(new Tuple<CampaignStatusCode, string>(CampaignStatusCode.COMPLETED, 'CampaignStatusCode.COMPLETED'))\n\tresult.push(new Tuple<CampaignStatusCode, string>(CampaignStatusCode.SUSPENDED, 'CampaignStatusCode.SUSPENDED'))\n\t\n return result;\n}\n\n// Return map of CampaignStatusCode values and their display names\nexport function MapCampaignStatusCodes() : Map<CampaignStatusCode, string> {\n let result = new Map<CampaignStatusCode, string>();\n result.set(CampaignStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(CampaignStatusCode.PLANNING, 'Planning');\n\tresult.set(CampaignStatusCode.ACTIVE, 'Active');\n\tresult.set(CampaignStatusCode.COMPLETED, 'Completed');\n\tresult.set(CampaignStatusCode.SUSPENDED, 'Suspended');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ErrorCode represents a general error\nexport enum ErrorCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // General server error [-1] \n GENERAL_ERROR = -1,\n\n // Unauthenticated [-2] \n UNAUTHENTICATED = -2,\n\n // Unauthorized [-3] \n UNAUTHORIZED = -3,\n\n // Not found [-2] \n NOT_FOUND = -10,\n\n // The form is intended only for pilots on this flight [-1001] \n FLIGHT_PILOTS_ONLY = -1001,\n\n // The form is intended only for pilot in command of this flight [-1002] \n FLIGHT_PIC_ONLY = -1002,\n\n // Pre-flight form was already reported [-1010] \n PREFLIGHT_ALREADY_REPORTED = -1010,\n\n // Post-flight form was already reported [-1011] \n POSTFLIGHT_ALREADY_REPORTED = -1011,\n\n // W&B Error: Exceed Max Takeoff Weight [-1021] \n WB_EXCEED_MTOW = -1021,\n\n // W&B Error: Exceed Center Of Gravity [-1022] \n WB_EXCEED_CG = -1022,\n\n // W&B Error: Exceed Baggage Weight [-1023] \n WB_EXCEED_BAGGAGE = -1023,\n\n // W&B Error: Exceed minimal Fuel level [-1024] \n WB_MIN_FUEL = -1024,\n\n}\n\n// Return list of ErrorCode values and their display names\nexport function GetErrorCodes() : Tuple<ErrorCode, string>[] {\n\tlet result : Tuple<ErrorCode, string>[] = [];\n \n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.GENERAL_ERROR, 'ErrorCode.GENERAL_ERROR'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.UNAUTHENTICATED, 'ErrorCode.UNAUTHENTICATED'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.UNAUTHORIZED, 'ErrorCode.UNAUTHORIZED'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.NOT_FOUND, 'ErrorCode.NOT_FOUND'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.FLIGHT_PILOTS_ONLY, 'ErrorCode.FLIGHT_PILOTS_ONLY'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.FLIGHT_PIC_ONLY, 'ErrorCode.FLIGHT_PIC_ONLY'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.PREFLIGHT_ALREADY_REPORTED, 'ErrorCode.PREFLIGHT_ALREADY_REPORTED'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.POSTFLIGHT_ALREADY_REPORTED, 'ErrorCode.POSTFLIGHT_ALREADY_REPORTED'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.WB_EXCEED_MTOW, 'ErrorCode.WB_EXCEED_MTOW'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.WB_EXCEED_CG, 'ErrorCode.WB_EXCEED_CG'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.WB_EXCEED_BAGGAGE, 'ErrorCode.WB_EXCEED_BAGGAGE'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.WB_MIN_FUEL, 'ErrorCode.WB_MIN_FUEL'))\n\t\n return result;\n}\n\n// Return map of ErrorCode values and their display names\nexport function MapErrorCodes() : Map<ErrorCode, string> {\n let result = new Map<ErrorCode, string>();\n result.set(ErrorCode.UNDEFINED, 'Undefined');\n\tresult.set(ErrorCode.GENERAL_ERROR, 'General Error');\n\tresult.set(ErrorCode.UNAUTHENTICATED, 'Unauthenticated');\n\tresult.set(ErrorCode.UNAUTHORIZED, 'Unauthorized');\n\tresult.set(ErrorCode.NOT_FOUND, 'Not Found');\n\tresult.set(ErrorCode.FLIGHT_PILOTS_ONLY, 'Flight Pilots Only');\n\tresult.set(ErrorCode.FLIGHT_PIC_ONLY, 'Flight Pic Only');\n\tresult.set(ErrorCode.PREFLIGHT_ALREADY_REPORTED, 'Preflight Already Reported');\n\tresult.set(ErrorCode.POSTFLIGHT_ALREADY_REPORTED, 'Postflight Already Reported');\n\tresult.set(ErrorCode.WB_EXCEED_MTOW, 'Wb Exceed Mtow');\n\tresult.set(ErrorCode.WB_EXCEED_CG, 'Wb Exceed Cg');\n\tresult.set(ErrorCode.WB_EXCEED_BAGGAGE, 'Wb Exceed Baggage');\n\tresult.set(ErrorCode.WB_MIN_FUEL, 'Wb Min Fuel');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FilterFlag represents combination of filtered fields\nexport enum FilterFlag {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Global search [1] \n SEARCH = 1,\n\n // F2 [2] \n F2 = 2,\n\n // F3 [4] \n F3 = 4,\n\n // F4 [8] \n F4 = 8,\n\n // F5 [16] \n F5 = 16,\n\n // F6 [32] \n F6 = 32,\n\n // F7 [64] \n F7 = 64,\n\n // F8 [128] \n F8 = 128,\n\n // F9 [256] \n F9 = 256,\n\n // F10 [512] \n F10 = 512,\n\n // F11 [1024] \n F11 = 1024,\n\n // F12 [2048] \n F12 = 2048,\n\n // F13 [4096] \n F13 = 4096,\n\n // F14 [8192] \n F14 = 8192,\n\n // F15 [16384] \n F15 = 16384,\n\n // F16 [32768] \n F16 = 32768,\n\n // F17 [65536] \n F17 = 65536,\n\n // F18 [131072] \n F18 = 131072,\n\n // F19 [262144] \n F19 = 262144,\n\n // F20 [524288] \n F20 = 524288,\n\n // F21 [1048576] \n F21 = 1048576,\n\n // F22 [2097152] \n F22 = 2097152,\n\n // F23 [4194304] \n F23 = 4194304,\n\n // F24 [8388608] \n F24 = 8388608,\n\n // F25 [16777216] \n F25 = 16777216,\n\n}\n\n// Return list of FilterFlag values and their display names\nexport function GetFilterFlags() : Tuple<FilterFlag, string>[] {\n\tlet result : Tuple<FilterFlag, string>[] = [];\n \n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.SEARCH, 'FilterFlag.SEARCH'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F2, 'FilterFlag.F2'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F3, 'FilterFlag.F3'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F4, 'FilterFlag.F4'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F5, 'FilterFlag.F5'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F6, 'FilterFlag.F6'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F7, 'FilterFlag.F7'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F8, 'FilterFlag.F8'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F9, 'FilterFlag.F9'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F10, 'FilterFlag.F10'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F11, 'FilterFlag.F11'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F12, 'FilterFlag.F12'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F13, 'FilterFlag.F13'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F14, 'FilterFlag.F14'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F15, 'FilterFlag.F15'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F16, 'FilterFlag.F16'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F17, 'FilterFlag.F17'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F18, 'FilterFlag.F18'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F19, 'FilterFlag.F19'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F20, 'FilterFlag.F20'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F21, 'FilterFlag.F21'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F22, 'FilterFlag.F22'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F23, 'FilterFlag.F23'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F24, 'FilterFlag.F24'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F25, 'FilterFlag.F25'))\n\t\n return result;\n}\n\n// Return map of FilterFlag values and their display names\nexport function MapFilterFlags() : Map<FilterFlag, string> {\n let result = new Map<FilterFlag, string>();\n result.set(FilterFlag.UNDEFINED, 'Undefined');\n\tresult.set(FilterFlag.SEARCH, 'Search');\n\tresult.set(FilterFlag.F2, 'F2');\n\tresult.set(FilterFlag.F3, 'F3');\n\tresult.set(FilterFlag.F4, 'F4');\n\tresult.set(FilterFlag.F5, 'F5');\n\tresult.set(FilterFlag.F6, 'F6');\n\tresult.set(FilterFlag.F7, 'F7');\n\tresult.set(FilterFlag.F8, 'F8');\n\tresult.set(FilterFlag.F9, 'F9');\n\tresult.set(FilterFlag.F10, 'F10');\n\tresult.set(FilterFlag.F11, 'F11');\n\tresult.set(FilterFlag.F12, 'F12');\n\tresult.set(FilterFlag.F13, 'F13');\n\tresult.set(FilterFlag.F14, 'F14');\n\tresult.set(FilterFlag.F15, 'F15');\n\tresult.set(FilterFlag.F16, 'F16');\n\tresult.set(FilterFlag.F17, 'F17');\n\tresult.set(FilterFlag.F18, 'F18');\n\tresult.set(FilterFlag.F19, 'F19');\n\tresult.set(FilterFlag.F20, 'F20');\n\tresult.set(FilterFlag.F21, 'F21');\n\tresult.set(FilterFlag.F22, 'F22');\n\tresult.set(FilterFlag.F23, 'F23');\n\tresult.set(FilterFlag.F24, 'F24');\n\tresult.set(FilterFlag.F25, 'F25');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightCategoryCode represents a more specific flight class\nexport enum FlightCategoryCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // ----------------------------- PRIVATE --------------------------------------------------------------------------- General private Flight [32] \n PRIVATE = 32,\n\n // General Commercial Flight [64] \n COMMERCIAL = 64,\n\n // Commercial Areal Photography [65] \n COMMERCIAL_PHOTO = 65,\n\n // Commercial TAXI Flight [66] \n COMMERCIAL_TAXI = 66,\n\n // Commercial other flight [67] \n COMMERCIAL_OTHER = 67,\n\n // Commercial transfer flight [68] \n COMMERCIAL_TRANSFER = 68,\n\n // Introductory Flight [128] \n INTRODUCTORY = 128,\n\n // General Examination Flight [256] \n EXAM = 256,\n\n // Annual Proficiency Exam [257] \n EXAM_ANN_PROFICIENCY = 257,\n\n // Annual IFR Exam [258] \n EXAM_ANN_IFR = 258,\n\n // CAA PPL Exam [259] \n EXAM_CAA_PPL = 259,\n\n // CAA CPL Exam [260] \n EXAM_CAA_CPL = 260,\n\n // CAA CFI Exam [261] \n EXAM_CAA_CFI = 261,\n\n // CAA CFI Exam [262] \n EXAM_CAA_IFR = 262,\n\n // CAA CONVERSION Exam [263] \n EXAM_CAA_CONVERSION = 263,\n\n // ----------------------------- INSTRUCTION PLANS ----------------------------------------------------------------- General Instruction Flight [512] \n INSTRUCTION = 512,\n\n // PPL Instruction plan [513] \n INSTRUCTION_PPL = 513,\n\n // CPL Instruction plan [514] \n INSTRUCTION_CPL = 514,\n\n // CFI Instruction plan [515] \n INSTRUCTION_CFI = 515,\n\n // IFR Instruction plan [516] \n INSTRUCTION_IFR = 516,\n\n // Ultralight Conversion plan [517] \n INSTRUCTION_UL_CONV = 517,\n\n // Helicopter Conversion plan [518] \n INSTRUCTION_COPTER_CONV = 518,\n\n // CPL 5 Hours Conversion plan [519] \n INSTRUCTION_CPL_5 = 519,\n\n // IFR 5 Hours Conversion plan [520] \n INSTRUCTION_IFR_5 = 520,\n\n // CPL 10 Hours Conversion plan [521] \n INSTRUCTION_CPL_10 = 521,\n\n // IFR 10 Hours Conversion plan [522] \n INSTRUCTION_IFR_10 = 522,\n\n // CPL 15 Hours Conversion plan [523] \n INSTRUCTION_CPL_15 = 523,\n\n // IFR 15 Hours Conversion plan [524] \n INSTRUCTION_IFR_15 = 524,\n\n // CPL 20 Hours Conversion plan [525] \n INSTRUCTION_CPL_20 = 525,\n\n // IFR 20 Hours Conversion plan [526] \n INSTRUCTION_IFR_20 = 526,\n\n // PPL 25 Hours short plan [527] \n INSTRUCTION_PPL_25 = 527,\n\n // Add airplane rating [540] \n INSTRUCTION_ADD_RATING = 540,\n\n // General Maintenance[1024] \n MAINTENANCE = 1024,\n\n // Maintenance Engine running [1025] \n MAINTENANCE_ENGINE_RUNNING = 1025,\n\n // Maintenance Transfer [1026] \n MAINTENANCE_TRANSFER = 1026,\n\n // Other [2048] \n OTHER = 2048,\n\n}\n\n// Return list of FlightCategoryCode values and their display names\nexport function GetFlightCategoryCodes() : Tuple<FlightCategoryCode, string>[] {\n\tlet result : Tuple<FlightCategoryCode, string>[] = [];\n \n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.PRIVATE, 'FlightCategoryCode.PRIVATE'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.COMMERCIAL, 'FlightCategoryCode.COMMERCIAL'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.COMMERCIAL_PHOTO, 'FlightCategoryCode.COMMERCIAL_PHOTO'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.COMMERCIAL_TAXI, 'FlightCategoryCode.COMMERCIAL_TAXI'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.COMMERCIAL_OTHER, 'FlightCategoryCode.COMMERCIAL_OTHER'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.COMMERCIAL_TRANSFER, 'FlightCategoryCode.COMMERCIAL_TRANSFER'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INTRODUCTORY, 'FlightCategoryCode.INTRODUCTORY'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM, 'FlightCategoryCode.EXAM'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_ANN_PROFICIENCY, 'FlightCategoryCode.EXAM_ANN_PROFICIENCY'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_ANN_IFR, 'FlightCategoryCode.EXAM_ANN_IFR'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_PPL, 'FlightCategoryCode.EXAM_CAA_PPL'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_CPL, 'FlightCategoryCode.EXAM_CAA_CPL'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_CFI, 'FlightCategoryCode.EXAM_CAA_CFI'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_IFR, 'FlightCategoryCode.EXAM_CAA_IFR'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_CONVERSION, 'FlightCategoryCode.EXAM_CAA_CONVERSION'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION, 'FlightCategoryCode.INSTRUCTION'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_PPL, 'FlightCategoryCode.INSTRUCTION_PPL'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL, 'FlightCategoryCode.INSTRUCTION_CPL'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CFI, 'FlightCategoryCode.INSTRUCTION_CFI'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR, 'FlightCategoryCode.INSTRUCTION_IFR'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_UL_CONV, 'FlightCategoryCode.INSTRUCTION_UL_CONV'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_COPTER_CONV, 'FlightCategoryCode.INSTRUCTION_COPTER_CONV'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL_5, 'FlightCategoryCode.INSTRUCTION_CPL_5'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR_5, 'FlightCategoryCode.INSTRUCTION_IFR_5'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL_10, 'FlightCategoryCode.INSTRUCTION_CPL_10'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR_10, 'FlightCategoryCode.INSTRUCTION_IFR_10'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL_15, 'FlightCategoryCode.INSTRUCTION_CPL_15'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR_15, 'FlightCategoryCode.INSTRUCTION_IFR_15'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL_20, 'FlightCategoryCode.INSTRUCTION_CPL_20'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR_20, 'FlightCategoryCode.INSTRUCTION_IFR_20'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_PPL_25, 'FlightCategoryCode.INSTRUCTION_PPL_25'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_ADD_RATING, 'FlightCategoryCode.INSTRUCTION_ADD_RATING'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.MAINTENANCE, 'FlightCategoryCode.MAINTENANCE'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.MAINTENANCE_ENGINE_RUNNING, 'FlightCategoryCode.MAINTENANCE_ENGINE_RUNNING'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.MAINTENANCE_TRANSFER, 'FlightCategoryCode.MAINTENANCE_TRANSFER'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.OTHER, 'FlightCategoryCode.OTHER'))\n\t\n return result;\n}\n\n// Return map of FlightCategoryCode values and their display names\nexport function MapFlightCategoryCodes() : Map<FlightCategoryCode, string> {\n let result = new Map<FlightCategoryCode, string>();\n result.set(FlightCategoryCode.UNDEFINED, 'Undefined');\n\tresult.set(FlightCategoryCode.PRIVATE, 'Private');\n\tresult.set(FlightCategoryCode.COMMERCIAL, 'Commercial');\n\tresult.set(FlightCategoryCode.COMMERCIAL_PHOTO, 'Commercial Photo');\n\tresult.set(FlightCategoryCode.COMMERCIAL_TAXI, 'Commercial Taxi');\n\tresult.set(FlightCategoryCode.COMMERCIAL_OTHER, 'Commercial Other');\n\tresult.set(FlightCategoryCode.COMMERCIAL_TRANSFER, 'Commercial Transfer');\n\tresult.set(FlightCategoryCode.INTRODUCTORY, 'Introductory');\n\tresult.set(FlightCategoryCode.EXAM, 'Exam');\n\tresult.set(FlightCategoryCode.EXAM_ANN_PROFICIENCY, 'Exam Ann Proficiency');\n\tresult.set(FlightCategoryCode.EXAM_ANN_IFR, 'Exam Ann Ifr');\n\tresult.set(FlightCategoryCode.EXAM_CAA_PPL, 'Exam Caa Ppl');\n\tresult.set(FlightCategoryCode.EXAM_CAA_CPL, 'Exam Caa Cpl');\n\tresult.set(FlightCategoryCode.EXAM_CAA_CFI, 'Exam Caa Cfi');\n\tresult.set(FlightCategoryCode.EXAM_CAA_IFR, 'Exam Caa Ifr');\n\tresult.set(FlightCategoryCode.EXAM_CAA_CONVERSION, 'Exam Caa Conversion');\n\tresult.set(FlightCategoryCode.INSTRUCTION, 'Instruction');\n\tresult.set(FlightCategoryCode.INSTRUCTION_PPL, 'Instruction Ppl');\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL, 'Instruction Cpl');\n\tresult.set(FlightCategoryCode.INSTRUCTION_CFI, 'Instruction Cfi');\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR, 'Instruction Ifr');\n\tresult.set(FlightCategoryCode.INSTRUCTION_UL_CONV, 'Instruction Ul Conv');\n\tresult.set(FlightCategoryCode.INSTRUCTION_COPTER_CONV, 'Instruction Copter Conv');\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL_5, 'Instruction Cpl 5');\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR_5, 'Instruction Ifr 5');\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL_10, 'Instruction Cpl 10');\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR_10, 'Instruction Ifr 10');\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL_15, 'Instruction Cpl 15');\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR_15, 'Instruction Ifr 15');\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL_20, 'Instruction Cpl 20');\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR_20, 'Instruction Ifr 20');\n\tresult.set(FlightCategoryCode.INSTRUCTION_PPL_25, 'Instruction Ppl 25');\n\tresult.set(FlightCategoryCode.INSTRUCTION_ADD_RATING, 'Instruction Add Rating');\n\tresult.set(FlightCategoryCode.MAINTENANCE, 'Maintenance');\n\tresult.set(FlightCategoryCode.MAINTENANCE_ENGINE_RUNNING, 'Maintenance Engine Running');\n\tresult.set(FlightCategoryCode.MAINTENANCE_TRANSFER, 'Maintenance Transfer');\n\tresult.set(FlightCategoryCode.OTHER, 'Other');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightClassCode represents a flight Class: GENERAL | PRIVATE | COMMERCIAL ...\nexport enum FlightClassCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Private Flight [32] \n PRIVATE = 32,\n\n // Commercial Flight [64] \n COMMERCIAL = 64,\n\n // Introductory Flight [128] \n INTRODUCTORY = 128,\n\n // Examination Flight [256] \n EXAM = 256,\n\n // Instruction Flight [512] \n INSTRUCTION = 512,\n\n // Maintenance[1024] \n MAINTENANCE = 1024,\n\n // Other Class (elaborate on next field) [2048] \n OTHER = 2048,\n\n}\n\n// Return list of FlightClassCode values and their display names\nexport function GetFlightClassCodes() : Tuple<FlightClassCode, string>[] {\n\tlet result : Tuple<FlightClassCode, string>[] = [];\n \n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.PRIVATE, 'FlightClassCode.PRIVATE'))\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.COMMERCIAL, 'FlightClassCode.COMMERCIAL'))\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.INTRODUCTORY, 'FlightClassCode.INTRODUCTORY'))\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.EXAM, 'FlightClassCode.EXAM'))\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.INSTRUCTION, 'FlightClassCode.INSTRUCTION'))\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.MAINTENANCE, 'FlightClassCode.MAINTENANCE'))\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.OTHER, 'FlightClassCode.OTHER'))\n\t\n return result;\n}\n\n// Return map of FlightClassCode values and their display names\nexport function MapFlightClassCodes() : Map<FlightClassCode, string> {\n let result = new Map<FlightClassCode, string>();\n result.set(FlightClassCode.UNDEFINED, 'Undefined');\n\tresult.set(FlightClassCode.PRIVATE, 'Private');\n\tresult.set(FlightClassCode.COMMERCIAL, 'Commercial');\n\tresult.set(FlightClassCode.INTRODUCTORY, 'Introductory');\n\tresult.set(FlightClassCode.EXAM, 'Exam');\n\tresult.set(FlightClassCode.INSTRUCTION, 'Instruction');\n\tresult.set(FlightClassCode.MAINTENANCE, 'Maintenance');\n\tresult.set(FlightClassCode.OTHER, 'Other');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightStatusCode represents a flight status can be changed by the operator: ...\nexport enum FlightStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Registered flight but not started (launched) [1] \n REGISTERED = 1,\n\n // Active (after pre-flight form) [2] \n ACTIVE = 2,\n\n // Completed (Done - after post-flight form) [3] \n COMPLETED = 3,\n\n // Cancelled by Aya [4] \n CANCELLED = 4,\n\n // Aborted - cancelled by client [5] \n ABORTED = 5,\n\n // Pending deletion [6] \n DELETE = 6,\n\n}\n\n// Return list of FlightStatusCode values and their display names\nexport function GetFlightStatusCodes() : Tuple<FlightStatusCode, string>[] {\n\tlet result : Tuple<FlightStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.REGISTERED, 'FlightStatusCode.REGISTERED'))\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.ACTIVE, 'FlightStatusCode.ACTIVE'))\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.COMPLETED, 'FlightStatusCode.COMPLETED'))\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.CANCELLED, 'FlightStatusCode.CANCELLED'))\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.ABORTED, 'FlightStatusCode.ABORTED'))\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.DELETE, 'FlightStatusCode.DELETE'))\n\t\n return result;\n}\n\n// Return map of FlightStatusCode values and their display names\nexport function MapFlightStatusCodes() : Map<FlightStatusCode, string> {\n let result = new Map<FlightStatusCode, string>();\n result.set(FlightStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(FlightStatusCode.REGISTERED, 'Registered');\n\tresult.set(FlightStatusCode.ACTIVE, 'Active');\n\tresult.set(FlightStatusCode.COMPLETED, 'Completed');\n\tresult.set(FlightStatusCode.CANCELLED, 'Cancelled');\n\tresult.set(FlightStatusCode.ABORTED, 'Aborted');\n\tresult.set(FlightStatusCode.DELETE, 'Delete');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// TimePeriodCode represents a code for a time period (e.g., Minute, Hour, Day).\nexport enum TimePeriodCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Minute [1] \n MINUTE = 1,\n\n // Hour [2] \n HOUR = 2,\n\n // Day [3] \n DAY = 3,\n\n // Week [4] \n WEEK = 4,\n\n // Month [5] \n MONTH = 5,\n\n}\n\n// Return list of TimePeriodCode values and their display names\nexport function GetTimePeriodCodes() : Tuple<TimePeriodCode, string>[] {\n\tlet result : Tuple<TimePeriodCode, string>[] = [];\n \n\tresult.push(new Tuple<TimePeriodCode, string>(TimePeriodCode.MINUTE, 'TimePeriodCode.MINUTE'))\n\tresult.push(new Tuple<TimePeriodCode, string>(TimePeriodCode.HOUR, 'TimePeriodCode.HOUR'))\n\tresult.push(new Tuple<TimePeriodCode, string>(TimePeriodCode.DAY, 'TimePeriodCode.DAY'))\n\tresult.push(new Tuple<TimePeriodCode, string>(TimePeriodCode.WEEK, 'TimePeriodCode.WEEK'))\n\tresult.push(new Tuple<TimePeriodCode, string>(TimePeriodCode.MONTH, 'TimePeriodCode.MONTH'))\n\t\n return result;\n}\n\n// Return map of TimePeriodCode values and their display names\nexport function MapTimePeriodCodes() : Map<TimePeriodCode, string> {\n let result = new Map<TimePeriodCode, string>();\n result.set(TimePeriodCode.UNDEFINED, 'Undefined');\n\tresult.set(TimePeriodCode.MINUTE, 'Minute');\n\tresult.set(TimePeriodCode.HOUR, 'Hour');\n\tresult.set(TimePeriodCode.DAY, 'Day');\n\tresult.set(TimePeriodCode.WEEK, 'Week');\n\tresult.set(TimePeriodCode.MONTH, 'Month');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// AccountTypeCode represents the account type: STUDENT | PRIVATE | STAFF | BUSINESS ...\nexport enum AccountTypeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Student account [1] \n STUDENT = 1,\n\n // Private account [2] \n PRIVATE = 2,\n\n // External Instructor account [3] \n INSTRUCTOR = 3,\n\n // Staff member account [4] \n STAFF = 4,\n\n // Business account [5] \n BUSINESS = 5,\n\n}\n\n// Return list of AccountTypeCode values and their display names\nexport function GetAccountTypeCodes() : Tuple<AccountTypeCode, string>[] {\n\tlet result : Tuple<AccountTypeCode, string>[] = [];\n \n\tresult.push(new Tuple<AccountTypeCode, string>(AccountTypeCode.STUDENT, 'AccountTypeCode.STUDENT'))\n\tresult.push(new Tuple<AccountTypeCode, string>(AccountTypeCode.PRIVATE, 'AccountTypeCode.PRIVATE'))\n\tresult.push(new Tuple<AccountTypeCode, string>(AccountTypeCode.INSTRUCTOR, 'AccountTypeCode.INSTRUCTOR'))\n\tresult.push(new Tuple<AccountTypeCode, string>(AccountTypeCode.STAFF, 'AccountTypeCode.STAFF'))\n\tresult.push(new Tuple<AccountTypeCode, string>(AccountTypeCode.BUSINESS, 'AccountTypeCode.BUSINESS'))\n\t\n return result;\n}\n\n// Return map of AccountTypeCode values and their display names\nexport function MapAccountTypeCodes() : Map<AccountTypeCode, string> {\n let result = new Map<AccountTypeCode, string>();\n result.set(AccountTypeCode.UNDEFINED, 'Undefined');\n\tresult.set(AccountTypeCode.STUDENT, 'Student');\n\tresult.set(AccountTypeCode.PRIVATE, 'Private');\n\tresult.set(AccountTypeCode.INSTRUCTOR, 'Instructor');\n\tresult.set(AccountTypeCode.STAFF, 'Staff');\n\tresult.set(AccountTypeCode.BUSINESS, 'Business');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// AirplaneValidationFlag represents combination of airplane validations\nexport enum AirplaneValidationFlag {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Valid airworthiness (isairplanevalidairworthiness_c) [1] \n AIRWORTHINESS = 1,\n\n // Valid airplane insurance (isairplanevalidinsurance_c) [2] \n INSURANCE = 2,\n\n // Valid flight manual (isairplanevalidflightmanual_c) [4] \n FLIGHT_MANUAL = 4,\n\n // Valid radio station license (isairplanevalidradiostation_c) [8] \n RADIO_STATION = 8,\n\n // Certification Of Registration (isairplanevalidcertofregis_c)[16] \n REGISTRATION_CERT = 16,\n\n // Valid first-aid kit (isairplanevalidfirstaidkit_c) [32] \n FIRST_AID_KIT = 32,\n\n // Valid fire extinguisher (isairplanevalidfireextinguis_c) [64] \n FIRE_EXTINGUISHER = 64,\n\n // Valid operation spec (isairplanevalidoperationspec_c) [128] \n OPERATION_SPEC = 128,\n\n // Valid 337 certificate for camera hole (isairplanevalid337cameraho_c) [256] \n VALID_337_CAMERA = 256,\n\n // Valid 337 certificate for exhaust (isairplanevalid337exhaust_c) [512] \n VALID_337_EXHAUST = 512,\n\n // Valid stc camera hole (isairplanevalidstccameraho_c) [1024] \n VALID_STC_CAMERA = 1024,\n\n // Valid stc certificate for exhaust (isairplanevalidstcexhaust_c) [2048] \n VALID_STC_EXHAUST = 2048,\n\n // Valid flight logbook (isairplanevalidflightlogboo_c) [4096] \n FLIGHT_LOGBOOK = 4096,\n\n // Valid air operator certificate AOC (isairplanevalidairoperatorce_c) [8192] \n AIR_OPERATOR = 8192,\n\n // Aircraft weight certificate (isairplanevalidaircraftweigh_c) [16384] \n AIRCRAFT_WEIGHT = 16384,\n\n // Valid propeller overhaul (isairplanevalidpropellerover_c) [32768] \n PROPELLER_OVERHAUL = 32768,\n\n // Single engine overhaul (isairplanevalidsingleengineo_c) [65536] \n SINGLE_ENGINE_OVERHAUL = 65536,\n\n // Left engine overhaul (isairplanevalidleftengineove_c) [131072] \n LEFT_ENGINE_OVERHAUL = 131072,\n\n // Right engine overhaul (isairplanevalidrightengineov_c) [262144] \n RIGHT_ENGINE_OVERHAUL = 262144,\n\n // Left engine propeller overhaul (isairplanevalidleftenginepro_c) [524288] \n LEFT_PROPELLER_OVERHAUL = 524288,\n\n // Right engine propeller overhaul (isairplanevalidrightenginepr_c) [1048576] \n RIGHT_PROPELLER_OVERHAUL = 1048576,\n\n // CVFR_ATS aeronautical maps (isairplanevalidcvfr_atsaeron_c) [2097152] \n CVFR_ATS = 2097152,\n\n // Weight and Balance Form (isairplanevalidweightandbaln_c) [4194304] \n WEIGHT_BALANCE_FORM = 4194304,\n\n // Airplane checklist (isairplanevalidairplanechec_c) [8388608] \n CHECK_LIST = 8388608,\n\n // Noise Certificate (isairplanevalidnoisecertifi_c) [16777216] \n NOISE_CERT = 16777216,\n\n}\n\n// Return list of AirplaneValidationFlag values and their display names\nexport function GetAirplaneValidationFlags() : Tuple<AirplaneValidationFlag, string>[] {\n\tlet result : Tuple<AirplaneValidationFlag, string>[] = [];\n \n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.AIRWORTHINESS, 'AirplaneValidationFlag.AIRWORTHINESS'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.INSURANCE, 'AirplaneValidationFlag.INSURANCE'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.FLIGHT_MANUAL, 'AirplaneValidationFlag.FLIGHT_MANUAL'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.RADIO_STATION, 'AirplaneValidationFlag.RADIO_STATION'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.REGISTRATION_CERT, 'AirplaneValidationFlag.REGISTRATION_CERT'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.FIRST_AID_KIT, 'AirplaneValidationFlag.FIRST_AID_KIT'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.FIRE_EXTINGUISHER, 'AirplaneValidationFlag.FIRE_EXTINGUISHER'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.OPERATION_SPEC, 'AirplaneValidationFlag.OPERATION_SPEC'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.VALID_337_CAMERA, 'AirplaneValidationFlag.VALID_337_CAMERA'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.VALID_337_EXHAUST, 'AirplaneValidationFlag.VALID_337_EXHAUST'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.VALID_STC_CAMERA, 'AirplaneValidationFlag.VALID_STC_CAMERA'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.VALID_STC_EXHAUST, 'AirplaneValidationFlag.VALID_STC_EXHAUST'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.FLIGHT_LOGBOOK, 'AirplaneValidationFlag.FLIGHT_LOGBOOK'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.AIR_OPERATOR, 'AirplaneValidationFlag.AIR_OPERATOR'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.AIRCRAFT_WEIGHT, 'AirplaneValidationFlag.AIRCRAFT_WEIGHT'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.PROPELLER_OVERHAUL, 'AirplaneValidationFlag.PROPELLER_OVERHAUL'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.SINGLE_ENGINE_OVERHAUL, 'AirplaneValidationFlag.SINGLE_ENGINE_OVERHAUL'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.LEFT_ENGINE_OVERHAUL, 'AirplaneValidationFlag.LEFT_ENGINE_OVERHAUL'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.RIGHT_ENGINE_OVERHAUL, 'AirplaneValidationFlag.RIGHT_ENGINE_OVERHAUL'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.LEFT_PROPELLER_OVERHAUL, 'AirplaneValidationFlag.LEFT_PROPELLER_OVERHAUL'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.RIGHT_PROPELLER_OVERHAUL, 'AirplaneValidationFlag.RIGHT_PROPELLER_OVERHAUL'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.CVFR_ATS, 'AirplaneValidationFlag.CVFR_ATS'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.WEIGHT_BALANCE_FORM, 'AirplaneValidationFlag.WEIGHT_BALANCE_FORM'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.CHECK_LIST, 'AirplaneValidationFlag.CHECK_LIST'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.NOISE_CERT, 'AirplaneValidationFlag.NOISE_CERT'))\n\t\n return result;\n}\n\n// Return map of AirplaneValidationFlag values and their display names\nexport function MapAirplaneValidationFlags() : Map<AirplaneValidationFlag, string> {\n let result = new Map<AirplaneValidationFlag, string>();\n result.set(AirplaneValidationFlag.UNDEFINED, 'Undefined');\n\tresult.set(AirplaneValidationFlag.AIRWORTHINESS, 'Airworthiness');\n\tresult.set(AirplaneValidationFlag.INSURANCE, 'Insurance');\n\tresult.set(AirplaneValidationFlag.FLIGHT_MANUAL, 'Flight Manual');\n\tresult.set(AirplaneValidationFlag.RADIO_STATION, 'Radio Station');\n\tresult.set(AirplaneValidationFlag.REGISTRATION_CERT, 'Registration Cert');\n\tresult.set(AirplaneValidationFlag.FIRST_AID_KIT, 'First Aid Kit');\n\tresult.set(AirplaneValidationFlag.FIRE_EXTINGUISHER, 'Fire Extinguisher');\n\tresult.set(AirplaneValidationFlag.OPERATION_SPEC, 'Operation Spec');\n\tresult.set(AirplaneValidationFlag.VALID_337_CAMERA, 'Valid 337 Camera');\n\tresult.set(AirplaneValidationFlag.VALID_337_EXHAUST, 'Valid 337 Exhaust');\n\tresult.set(AirplaneValidationFlag.VALID_STC_CAMERA, 'Valid Stc Camera');\n\tresult.set(AirplaneValidationFlag.VALID_STC_EXHAUST, 'Valid Stc Exhaust');\n\tresult.set(AirplaneValidationFlag.FLIGHT_LOGBOOK, 'Flight Logbook');\n\tresult.set(AirplaneValidationFlag.AIR_OPERATOR, 'Air Operator');\n\tresult.set(AirplaneValidationFlag.AIRCRAFT_WEIGHT, 'Aircraft Weight');\n\tresult.set(AirplaneValidationFlag.PROPELLER_OVERHAUL, 'Propeller Overhaul');\n\tresult.set(AirplaneValidationFlag.SINGLE_ENGINE_OVERHAUL, 'Single Engine Overhaul');\n\tresult.set(AirplaneValidationFlag.LEFT_ENGINE_OVERHAUL, 'Left Engine Overhaul');\n\tresult.set(AirplaneValidationFlag.RIGHT_ENGINE_OVERHAUL, 'Right Engine Overhaul');\n\tresult.set(AirplaneValidationFlag.LEFT_PROPELLER_OVERHAUL, 'Left Propeller Overhaul');\n\tresult.set(AirplaneValidationFlag.RIGHT_PROPELLER_OVERHAUL, 'Right Propeller Overhaul');\n\tresult.set(AirplaneValidationFlag.CVFR_ATS, 'Cvfr Ats');\n\tresult.set(AirplaneValidationFlag.WEIGHT_BALANCE_FORM, 'Weight Balance Form');\n\tresult.set(AirplaneValidationFlag.CHECK_LIST, 'Check List');\n\tresult.set(AirplaneValidationFlag.NOISE_CERT, 'Noise Cert');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightPurposeCode represents a flight purpose: GENERAL | PRIVATE | COMMERCIAL ...\nexport enum FlightPurposeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Introductory Flight [1] \n INTRODUCTORY = 1,\n\n // Flight Instruction Lesson [2] \n INSTRUCTION = 2,\n\n // Airplane Rental Flight [3] \n RENTAL = 3,\n\n // Private Flight [4] \n PRIVATE = 4,\n\n // Vertical Photographic [5] \n VERTICAL_PHOTO = 5,\n\n // Diagonal Photographic [6] \n DIAGONAL_PHOTO = 6,\n\n // Round Flight [7] \n ROUND = 7,\n\n // Initial / Recurrent CAA Test [8] \n CAA_TEST = 8,\n\n // Transfer Flight (to transfer airplane) [9] \n TRANSFER = 9,\n\n // Commercial air taxi to transfer passengers [10] \n AIR_TAXI = 10,\n\n // Engine Running [11] \n ENGINE_RUNNING = 11,\n\n // Other purpose (elaborate on next field) [12] \n OTHER = 12,\n\n}\n\n// Return list of FlightPurposeCode values and their display names\nexport function GetFlightPurposeCodes() : Tuple<FlightPurposeCode, string>[] {\n\tlet result : Tuple<FlightPurposeCode, string>[] = [];\n \n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.INTRODUCTORY, 'FlightPurposeCode.INTRODUCTORY'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.INSTRUCTION, 'FlightPurposeCode.INSTRUCTION'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.RENTAL, 'FlightPurposeCode.RENTAL'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.PRIVATE, 'FlightPurposeCode.PRIVATE'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.VERTICAL_PHOTO, 'FlightPurposeCode.VERTICAL_PHOTO'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.DIAGONAL_PHOTO, 'FlightPurposeCode.DIAGONAL_PHOTO'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.ROUND, 'FlightPurposeCode.ROUND'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.CAA_TEST, 'FlightPurposeCode.CAA_TEST'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.TRANSFER, 'FlightPurposeCode.TRANSFER'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.AIR_TAXI, 'FlightPurposeCode.AIR_TAXI'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.ENGINE_RUNNING, 'FlightPurposeCode.ENGINE_RUNNING'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.OTHER, 'FlightPurposeCode.OTHER'))\n\t\n return result;\n}\n\n// Return map of FlightPurposeCode values and their display names\nexport function MapFlightPurposeCodes() : Map<FlightPurposeCode, string> {\n let result = new Map<FlightPurposeCode, string>();\n result.set(FlightPurposeCode.UNDEFINED, 'Undefined');\n\tresult.set(FlightPurposeCode.INTRODUCTORY, 'Introductory');\n\tresult.set(FlightPurposeCode.INSTRUCTION, 'Instruction');\n\tresult.set(FlightPurposeCode.RENTAL, 'Rental');\n\tresult.set(FlightPurposeCode.PRIVATE, 'Private');\n\tresult.set(FlightPurposeCode.VERTICAL_PHOTO, 'Vertical Photo');\n\tresult.set(FlightPurposeCode.DIAGONAL_PHOTO, 'Diagonal Photo');\n\tresult.set(FlightPurposeCode.ROUND, 'Round');\n\tresult.set(FlightPurposeCode.CAA_TEST, 'Caa Test');\n\tresult.set(FlightPurposeCode.TRANSFER, 'Transfer');\n\tresult.set(FlightPurposeCode.AIR_TAXI, 'Air Taxi');\n\tresult.set(FlightPurposeCode.ENGINE_RUNNING, 'Engine Running');\n\tresult.set(FlightPurposeCode.OTHER, 'Other');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightStateCode represents a flight state which can't be modified manually: PENDING | ACTIVE | COMPLETED ...\nexport enum FlightStateCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Pending (Not started) [1] \n PENDING = 1,\n\n // Active (on flight) [2] \n ACTIVE = 2,\n\n // Completed (Done) [3] \n COMPLETED = 3,\n\n // Cancelled [4] \n CANCELLED = 4,\n\n}\n\n// Return list of FlightStateCode values and their display names\nexport function GetFlightStateCodes() : Tuple<FlightStateCode, string>[] {\n\tlet result : Tuple<FlightStateCode, string>[] = [];\n \n\tresult.push(new Tuple<FlightStateCode, string>(FlightStateCode.PENDING, 'FlightStateCode.PENDING'))\n\tresult.push(new Tuple<FlightStateCode, string>(FlightStateCode.ACTIVE, 'FlightStateCode.ACTIVE'))\n\tresult.push(new Tuple<FlightStateCode, string>(FlightStateCode.COMPLETED, 'FlightStateCode.COMPLETED'))\n\tresult.push(new Tuple<FlightStateCode, string>(FlightStateCode.CANCELLED, 'FlightStateCode.CANCELLED'))\n\t\n return result;\n}\n\n// Return map of FlightStateCode values and their display names\nexport function MapFlightStateCodes() : Map<FlightStateCode, string> {\n let result = new Map<FlightStateCode, string>();\n result.set(FlightStateCode.UNDEFINED, 'Undefined');\n\tresult.set(FlightStateCode.PENDING, 'Pending');\n\tresult.set(FlightStateCode.ACTIVE, 'Active');\n\tresult.set(FlightStateCode.COMPLETED, 'Completed');\n\tresult.set(FlightStateCode.CANCELLED, 'Cancelled');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightTypeCode represents a flight type: GENERAL | PRIVATE | COMMERCIAL ...\nexport enum FlightTypeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // General Purpose Flight [1] \n GENERAL = 1,\n\n // CVFR - Controlled Visual Flight Rules [100] \n CVFR = 100,\n\n // IFR - Instruments Flight Rules [101] \n IFR = 101,\n\n // Navigation Flight [102] \n NAV = 102,\n\n // Night Flight [103] \n NIGHT = 103,\n\n}\n\n// Return list of FlightTypeCode values and their display names\nexport function GetFlightTypeCodes() : Tuple<FlightTypeCode, string>[] {\n\tlet result : Tuple<FlightTypeCode, string>[] = [];\n \n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.GENERAL, 'FlightTypeCode.GENERAL'))\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.CVFR, 'FlightTypeCode.CVFR'))\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.IFR, 'FlightTypeCode.IFR'))\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.NAV, 'FlightTypeCode.NAV'))\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.NIGHT, 'FlightTypeCode.NIGHT'))\n\t\n return result;\n}\n\n// Return map of FlightTypeCode values and their display names\nexport function MapFlightTypeCodes() : Map<FlightTypeCode, string> {\n let result = new Map<FlightTypeCode, string>();\n result.set(FlightTypeCode.UNDEFINED, 'Undefined');\n\tresult.set(FlightTypeCode.GENERAL, 'General');\n\tresult.set(FlightTypeCode.CVFR, 'Cvfr');\n\tresult.set(FlightTypeCode.IFR, 'Ifr');\n\tresult.set(FlightTypeCode.NAV, 'Nav');\n\tresult.set(FlightTypeCode.NIGHT, 'Night');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// MedicalCertClassCode represents the FAA medical certificate class\nexport enum MedicalCertClassCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // First-Class Medical Certificate - Required for ATP [1] \n CLASS_ATP = 1,\n\n // Second-Class Medical Certificate - Required for CPL [2] \n CLASS_CPL = 2,\n\n // Third-Class Medical Certificate - Required for PPL, SPL [3] \n CLASS_PPL = 3,\n\n}\n\n// Return list of MedicalCertClassCode values and their display names\nexport function GetMedicalCertClassCodes() : Tuple<MedicalCertClassCode, string>[] {\n\tlet result : Tuple<MedicalCertClassCode, string>[] = [];\n \n\tresult.push(new Tuple<MedicalCertClassCode, string>(MedicalCertClassCode.CLASS_ATP, 'MedicalCertClassCode.CLASS_ATP'))\n\tresult.push(new Tuple<MedicalCertClassCode, string>(MedicalCertClassCode.CLASS_CPL, 'MedicalCertClassCode.CLASS_CPL'))\n\tresult.push(new Tuple<MedicalCertClassCode, string>(MedicalCertClassCode.CLASS_PPL, 'MedicalCertClassCode.CLASS_PPL'))\n\t\n return result;\n}\n\n// Return map of MedicalCertClassCode values and their display names\nexport function MapMedicalCertClassCodes() : Map<MedicalCertClassCode, string> {\n let result = new Map<MedicalCertClassCode, string>();\n result.set(MedicalCertClassCode.UNDEFINED, 'Undefined');\n\tresult.set(MedicalCertClassCode.CLASS_ATP, 'Class Atp');\n\tresult.set(MedicalCertClassCode.CLASS_CPL, 'Class Cpl');\n\tresult.set(MedicalCertClassCode.CLASS_PPL, 'Class Ppl');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ModuleCode represents a module in the system\nexport enum ModuleCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Audit Log [1] \n AUDIT_LOG = 1,\n\n // Users [2] \n USERS = 2,\n\n // Groups [3] \n GROUPS = 3,\n\n // Accounts [4] \n ACCOUNTS = 4,\n\n // Contacts [5] \n CONTACTS = 5,\n\n // Leads [6] \n LEADS = 6,\n\n // Campaigns [7] \n CAMPAIGNS = 7,\n\n // Certificates [8] \n CERTIFICATES = 8,\n\n // Messages (for Read & Confirm) [9] \n MESSAGES = 9,\n\n // Flight log [10] \n FLIGHTS = 10,\n\n // Flight tickets [11] \n FLIGHT_TICKETS = 11,\n\n // Airplanes [12] \n AIRPLANES = 12,\n\n // Airworthiness (maintenance) [13] \n AIRWORTHINESS = 13,\n\n}\n\n// Return list of ModuleCode values and their display names\nexport function GetModuleCodes() : Tuple<ModuleCode, string>[] {\n\tlet result : Tuple<ModuleCode, string>[] = [];\n \n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.AUDIT_LOG, 'ModuleCode.AUDIT_LOG'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.USERS, 'ModuleCode.USERS'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.GROUPS, 'ModuleCode.GROUPS'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.ACCOUNTS, 'ModuleCode.ACCOUNTS'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.CONTACTS, 'ModuleCode.CONTACTS'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.LEADS, 'ModuleCode.LEADS'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.CAMPAIGNS, 'ModuleCode.CAMPAIGNS'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.CERTIFICATES, 'ModuleCode.CERTIFICATES'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.MESSAGES, 'ModuleCode.MESSAGES'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.FLIGHTS, 'ModuleCode.FLIGHTS'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.FLIGHT_TICKETS, 'ModuleCode.FLIGHT_TICKETS'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.AIRPLANES, 'ModuleCode.AIRPLANES'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.AIRWORTHINESS, 'ModuleCode.AIRWORTHINESS'))\n\t\n return result;\n}\n\n// Return map of ModuleCode values and their display names\nexport function MapModuleCodes() : Map<ModuleCode, string> {\n let result = new Map<ModuleCode, string>();\n result.set(ModuleCode.UNDEFINED, 'Undefined');\n\tresult.set(ModuleCode.AUDIT_LOG, 'Audit Log');\n\tresult.set(ModuleCode.USERS, 'Users');\n\tresult.set(ModuleCode.GROUPS, 'Groups');\n\tresult.set(ModuleCode.ACCOUNTS, 'Accounts');\n\tresult.set(ModuleCode.CONTACTS, 'Contacts');\n\tresult.set(ModuleCode.LEADS, 'Leads');\n\tresult.set(ModuleCode.CAMPAIGNS, 'Campaigns');\n\tresult.set(ModuleCode.CERTIFICATES, 'Certificates');\n\tresult.set(ModuleCode.MESSAGES, 'Messages');\n\tresult.set(ModuleCode.FLIGHTS, 'Flights');\n\tresult.set(ModuleCode.FLIGHT_TICKETS, 'Flight Tickets');\n\tresult.set(ModuleCode.AIRPLANES, 'Airplanes');\n\tresult.set(ModuleCode.AIRWORTHINESS, 'Airworthiness');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// AccountStatusCode represents the account status: ACTIVE | INACTIVE | BLOCKED ...\nexport enum AccountStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Active account in the system [1] \n ACTIVE = 1,\n\n // Inactive account in the system [2] \n INACTIVE = 2,\n\n // Blocked account [3] \n BLOCKED = 3,\n\n // Suspended account (about to be deleted) [4] \n SUSPENDED = 4,\n\n}\n\n// Return list of AccountStatusCode values and their display names\nexport function GetAccountStatusCodes() : Tuple<AccountStatusCode, string>[] {\n\tlet result : Tuple<AccountStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<AccountStatusCode, string>(AccountStatusCode.ACTIVE, 'AccountStatusCode.ACTIVE'))\n\tresult.push(new Tuple<AccountStatusCode, string>(AccountStatusCode.INACTIVE, 'AccountStatusCode.INACTIVE'))\n\tresult.push(new Tuple<AccountStatusCode, string>(AccountStatusCode.BLOCKED, 'AccountStatusCode.BLOCKED'))\n\tresult.push(new Tuple<AccountStatusCode, string>(AccountStatusCode.SUSPENDED, 'AccountStatusCode.SUSPENDED'))\n\t\n return result;\n}\n\n// Return map of AccountStatusCode values and their display names\nexport function MapAccountStatusCodes() : Map<AccountStatusCode, string> {\n let result = new Map<AccountStatusCode, string>();\n result.set(AccountStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(AccountStatusCode.ACTIVE, 'Active');\n\tresult.set(AccountStatusCode.INACTIVE, 'Inactive');\n\tresult.set(AccountStatusCode.BLOCKED, 'Blocked');\n\tresult.set(AccountStatusCode.SUSPENDED, 'Suspended');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ConfirmStatusCode represents the contact confirmation status: PENDING | APPROVED | REJECTED ...\nexport enum ConfirmStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Pending not read yet [1] \n PENDING = 1,\n\n // Approved by the contact [2] \n APPROVED = 2,\n\n // Rejected by the contact [3] \n REJECTED = 3,\n\n}\n\n// Return list of ConfirmStatusCode values and their display names\nexport function GetConfirmStatusCodes() : Tuple<ConfirmStatusCode, string>[] {\n\tlet result : Tuple<ConfirmStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<ConfirmStatusCode, string>(ConfirmStatusCode.PENDING, 'ConfirmStatusCode.PENDING'))\n\tresult.push(new Tuple<ConfirmStatusCode, string>(ConfirmStatusCode.APPROVED, 'ConfirmStatusCode.APPROVED'))\n\tresult.push(new Tuple<ConfirmStatusCode, string>(ConfirmStatusCode.REJECTED, 'ConfirmStatusCode.REJECTED'))\n\t\n return result;\n}\n\n// Return map of ConfirmStatusCode values and their display names\nexport function MapConfirmStatusCodes() : Map<ConfirmStatusCode, string> {\n let result = new Map<ConfirmStatusCode, string>();\n result.set(ConfirmStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(ConfirmStatusCode.PENDING, 'Pending');\n\tresult.set(ConfirmStatusCode.APPROVED, 'Approved');\n\tresult.set(ConfirmStatusCode.REJECTED, 'Rejected');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// LeadStatusCode represents the lead status: NEW | INPROCESS | ASSIGNED ...\nexport enum LeadStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // New Lead [1] \n NEW = 1,\n\n // Lead in process [2] \n INPROCESS = 2,\n\n // Lead Assigned [3] \n ASSIGNED = 3,\n\n // Lead converted [4] \n CONVERTED = 4,\n\n // Lead irrelevant [5] \n IRRELEVANT = 5,\n\n // Lead redirected [6] \n REDIRECTED = 6,\n\n // Followup action required after successful conversion [7] \n FOLLOWUP = 7,\n\n}\n\n// Return list of LeadStatusCode values and their display names\nexport function GetLeadStatusCodes() : Tuple<LeadStatusCode, string>[] {\n\tlet result : Tuple<LeadStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.NEW, 'LeadStatusCode.NEW'))\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.INPROCESS, 'LeadStatusCode.INPROCESS'))\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.ASSIGNED, 'LeadStatusCode.ASSIGNED'))\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.CONVERTED, 'LeadStatusCode.CONVERTED'))\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.IRRELEVANT, 'LeadStatusCode.IRRELEVANT'))\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.REDIRECTED, 'LeadStatusCode.REDIRECTED'))\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.FOLLOWUP, 'LeadStatusCode.FOLLOWUP'))\n\t\n return result;\n}\n\n// Return map of LeadStatusCode values and their display names\nexport function MapLeadStatusCodes() : Map<LeadStatusCode, string> {\n let result = new Map<LeadStatusCode, string>();\n result.set(LeadStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(LeadStatusCode.NEW, 'New');\n\tresult.set(LeadStatusCode.INPROCESS, 'Inprocess');\n\tresult.set(LeadStatusCode.ASSIGNED, 'Assigned');\n\tresult.set(LeadStatusCode.CONVERTED, 'Converted');\n\tresult.set(LeadStatusCode.IRRELEVANT, 'Irrelevant');\n\tresult.set(LeadStatusCode.REDIRECTED, 'Redirected');\n\tresult.set(LeadStatusCode.FOLLOWUP, 'Followup');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// OperatorCode represents a math operator\nexport enum OperatorCode {\n\n}\n\n// Return list of OperatorCode values and their display names\nexport function GetOperatorCodes() : Tuple<OperatorCode, string>[] {\n\tlet result : Tuple<OperatorCode, string>[] = [];\n \n return result;\n}\n\n// Return map of OperatorCode values and their display names\nexport function MapOperatorCodes() : Map<OperatorCode, string> {\n let result = new Map<OperatorCode, string>();\n \n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// StatusCode represents a general workflow status: PENDING | IN_PROGRESS | DONE ...\nexport enum StatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Flow not started yet [1] \n PENDING = 1,\n\n // Flow in process [2] \n IN_PROCESS = 2,\n\n // Flow completed [3] \n COMPLETED = 3,\n\n // Flow cancelled by user [4] \n CANCELLED = 4,\n\n // Flow automatically cancelled by the system [5] \n AUTO_CANCELLED = 5,\n\n}\n\n// Return list of StatusCode values and their display names\nexport function GetStatusCodes() : Tuple<StatusCode, string>[] {\n\tlet result : Tuple<StatusCode, string>[] = [];\n \n\tresult.push(new Tuple<StatusCode, string>(StatusCode.PENDING, 'StatusCode.PENDING'))\n\tresult.push(new Tuple<StatusCode, string>(StatusCode.IN_PROCESS, 'StatusCode.IN_PROCESS'))\n\tresult.push(new Tuple<StatusCode, string>(StatusCode.COMPLETED, 'StatusCode.COMPLETED'))\n\tresult.push(new Tuple<StatusCode, string>(StatusCode.CANCELLED, 'StatusCode.CANCELLED'))\n\tresult.push(new Tuple<StatusCode, string>(StatusCode.AUTO_CANCELLED, 'StatusCode.AUTO_CANCELLED'))\n\t\n return result;\n}\n\n// Return map of StatusCode values and their display names\nexport function MapStatusCodes() : Map<StatusCode, string> {\n let result = new Map<StatusCode, string>();\n result.set(StatusCode.UNDEFINED, 'Undefined');\n\tresult.set(StatusCode.PENDING, 'Pending');\n\tresult.set(StatusCode.IN_PROCESS, 'In Process');\n\tresult.set(StatusCode.COMPLETED, 'Completed');\n\tresult.set(StatusCode.CANCELLED, 'Cancelled');\n\tresult.set(StatusCode.AUTO_CANCELLED, 'Auto Cancelled');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// TicketStatusCode represents a flight ticket status: ...\nexport enum TicketStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Pending [1] \n PENDING = 1,\n\n // Sent to client [2] \n SENT = 2,\n\n}\n\n// Return list of TicketStatusCode values and their display names\nexport function GetTicketStatusCodes() : Tuple<TicketStatusCode, string>[] {\n\tlet result : Tuple<TicketStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<TicketStatusCode, string>(TicketStatusCode.PENDING, 'TicketStatusCode.PENDING'))\n\tresult.push(new Tuple<TicketStatusCode, string>(TicketStatusCode.SENT, 'TicketStatusCode.SENT'))\n\t\n return result;\n}\n\n// Return map of TicketStatusCode values and their display names\nexport function MapTicketStatusCodes() : Map<TicketStatusCode, string> {\n let result = new Map<TicketStatusCode, string>();\n result.set(TicketStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(TicketStatusCode.PENDING, 'Pending');\n\tresult.set(TicketStatusCode.SENT, 'Sent');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ADSBSourceFlag represents the ADSB source types: ADS-B | ASTERIX | MLAT | FLARM\nexport enum ADSBSourceFlag {\n\n // ADS-B [0] \n ADSB = 0,\n\n // ASTERIX [1] \n ASTERIX = 1,\n\n // MLAT [2] \n MLAT = 2,\n\n // FLARM [3] \n FLARM = 3,\n\n}\n\n// Return list of ADSBSourceFlag values and their display names\nexport function GetADSBSourceFlags() : Tuple<ADSBSourceFlag, string>[] {\n\tlet result : Tuple<ADSBSourceFlag, string>[] = [];\n result.push(new Tuple<ADSBSourceFlag, string>(ADSBSourceFlag.ADSB, 'ADSBSourceFlag.ADSB'))\n\tresult.push(new Tuple<ADSBSourceFlag, string>(ADSBSourceFlag.ASTERIX, 'ADSBSourceFlag.ASTERIX'))\n\tresult.push(new Tuple<ADSBSourceFlag, string>(ADSBSourceFlag.MLAT, 'ADSBSourceFlag.MLAT'))\n\tresult.push(new Tuple<ADSBSourceFlag, string>(ADSBSourceFlag.FLARM, 'ADSBSourceFlag.FLARM'))\n\t\n return result;\n}\n\n// Return map of ADSBSourceFlag values and their display names\nexport function MapADSBSourceFlags() : Map<ADSBSourceFlag, string> {\n let result = new Map<ADSBSourceFlag, string>();\n result.set(ADSBSourceFlag.ADSB, 'Adsb');\n\tresult.set(ADSBSourceFlag.ASTERIX, 'Asterix');\n\tresult.set(ADSBSourceFlag.MLAT, 'Mlat');\n\tresult.set(ADSBSourceFlag.FLARM, 'Flarm');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// PaymentMethodCode represents a payment method: CASH | CHECK | BANK TRANSFER | CREDIT ...\nexport enum PaymentMethodCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // None paid [1] \n NONE = 1,\n\n // Credit client balance [2] \n CREDIT_CLIENT = 2,\n\n // Paid with credit card [3] \n CARD = 3,\n\n // Paid with check [4] \n CHECK = 4,\n\n // Paid with cash [5] \n CASH = 5,\n\n // Paid with bank transfer [6] \n BANK = 6,\n\n}\n\n// Return list of PaymentMethodCode values and their display names\nexport function GetPaymentMethodCodes() : Tuple<PaymentMethodCode, string>[] {\n\tlet result : Tuple<PaymentMethodCode, string>[] = [];\n \n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.NONE, 'PaymentMethodCode.NONE'))\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.CREDIT_CLIENT, 'PaymentMethodCode.CREDIT_CLIENT'))\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.CARD, 'PaymentMethodCode.CARD'))\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.CHECK, 'PaymentMethodCode.CHECK'))\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.CASH, 'PaymentMethodCode.CASH'))\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.BANK, 'PaymentMethodCode.BANK'))\n\t\n return result;\n}\n\n// Return map of PaymentMethodCode values and their display names\nexport function MapPaymentMethodCodes() : Map<PaymentMethodCode, string> {\n let result = new Map<PaymentMethodCode, string>();\n result.set(PaymentMethodCode.UNDEFINED, 'Undefined');\n\tresult.set(PaymentMethodCode.NONE, 'None');\n\tresult.set(PaymentMethodCode.CREDIT_CLIENT, 'Credit Client');\n\tresult.set(PaymentMethodCode.CARD, 'Card');\n\tresult.set(PaymentMethodCode.CHECK, 'Check');\n\tresult.set(PaymentMethodCode.CASH, 'Cash');\n\tresult.set(PaymentMethodCode.BANK, 'Bank');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// PermissionFlag represents combination of permissions: READ | CREATE | UPDATE | DELETE | MANAGE\nexport enum PermissionFlag {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Read [1] \n READ = 1,\n\n // Create [2] \n CREATE = 2,\n\n // Update [4] \n UPDATE = 4,\n\n // Delete [8] \n DELETE = 8,\n\n // Manage [16] \n MANAGE = 16,\n\n // All permissions combined \n ALL = 31,\n\n}\n\n// Return list of PermissionFlag values and their display names\nexport function GetPermissionFlags() : Tuple<PermissionFlag, string>[] {\n\tlet result : Tuple<PermissionFlag, string>[] = [];\n \n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.READ, 'PermissionFlag.READ'))\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.CREATE, 'PermissionFlag.CREATE'))\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.UPDATE, 'PermissionFlag.UPDATE'))\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.DELETE, 'PermissionFlag.DELETE'))\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.MANAGE, 'PermissionFlag.MANAGE'))\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.ALL, 'PermissionFlag.ALL'))\n\t\n return result;\n}\n\n// Return map of PermissionFlag values and their display names\nexport function MapPermissionFlags() : Map<PermissionFlag, string> {\n let result = new Map<PermissionFlag, string>();\n result.set(PermissionFlag.UNDEFINED, 'Undefined');\n\tresult.set(PermissionFlag.READ, 'Read');\n\tresult.set(PermissionFlag.CREATE, 'Create');\n\tresult.set(PermissionFlag.UPDATE, 'Update');\n\tresult.set(PermissionFlag.DELETE, 'Delete');\n\tresult.set(PermissionFlag.MANAGE, 'Manage');\n\tresult.set(PermissionFlag.ALL, 'All');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// UserRoleFlag represents combination of roles: STUDENT | PILOT | INSTRUCTOR | SALES | OPERATIONS | MANAGER\nexport enum UserRoleFlag {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Student [1] \n STUDENT = 1,\n\n // Pilot [2] \n PILOT = 2,\n\n // Flight Instructor [4] \n INSTRUCTOR = 4,\n\n // Sales [8] \n SALES = 8,\n\n // Operations [16] \n OPERATIONS = 16,\n\n // Maintenance [32] \n MAINTENANCE = 32,\n\n // Manager [1024] \n MANAGER = 1024,\n\n // All roles combined \n ALL = 2047,\n\n}\n\n// Return list of UserRoleFlag values and their display names\nexport function GetUserRoleFlags() : Tuple<UserRoleFlag, string>[] {\n\tlet result : Tuple<UserRoleFlag, string>[] = [];\n \n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.STUDENT, 'UserRoleFlag.STUDENT'))\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.PILOT, 'UserRoleFlag.PILOT'))\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.INSTRUCTOR, 'UserRoleFlag.INSTRUCTOR'))\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.SALES, 'UserRoleFlag.SALES'))\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.OPERATIONS, 'UserRoleFlag.OPERATIONS'))\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.MAINTENANCE, 'UserRoleFlag.MAINTENANCE'))\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.MANAGER, 'UserRoleFlag.MANAGER'))\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.ALL, 'UserRoleFlag.ALL'))\n\t\n return result;\n}\n\n// Return map of UserRoleFlag values and their display names\nexport function MapUserRoleFlags() : Map<UserRoleFlag, string> {\n let result = new Map<UserRoleFlag, string>();\n result.set(UserRoleFlag.UNDEFINED, 'Undefined');\n\tresult.set(UserRoleFlag.STUDENT, 'Student');\n\tresult.set(UserRoleFlag.PILOT, 'Pilot');\n\tresult.set(UserRoleFlag.INSTRUCTOR, 'Instructor');\n\tresult.set(UserRoleFlag.SALES, 'Sales');\n\tresult.set(UserRoleFlag.OPERATIONS, 'Operations');\n\tresult.set(UserRoleFlag.MAINTENANCE, 'Maintenance');\n\tresult.set(UserRoleFlag.MANAGER, 'Manager');\n\tresult.set(UserRoleFlag.ALL, 'All');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// UserTypeCode represents the user type: SYSADMIN | SUPPORT | USER ...\nexport enum UserTypeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // System administrator has access to all accounts and permissions to perform all actions [1] \n SYSADMIN = 1,\n\n // Support user has view permissions only for all accounts that enabled option Enable Support [2] \n SUPPORT = 2,\n\n // Account user - has access to specific accounts with role based access control [3] \n USER = 3,\n\n // Service Account - to be used by other systems to perform actions using the API (can't login as a user to the portal) [4] \n SERVICE = 4,\n\n}\n\n// Return list of UserTypeCode values and their display names\nexport function GetUserTypeCodes() : Tuple<UserTypeCode, string>[] {\n\tlet result : Tuple<UserTypeCode, string>[] = [];\n \n\tresult.push(new Tuple<UserTypeCode, string>(UserTypeCode.SYSADMIN, 'UserTypeCode.SYSADMIN'))\n\tresult.push(new Tuple<UserTypeCode, string>(UserTypeCode.SUPPORT, 'UserTypeCode.SUPPORT'))\n\tresult.push(new Tuple<UserTypeCode, string>(UserTypeCode.USER, 'UserTypeCode.USER'))\n\tresult.push(new Tuple<UserTypeCode, string>(UserTypeCode.SERVICE, 'UserTypeCode.SERVICE'))\n\t\n return result;\n}\n\n// Return map of UserTypeCode values and their display names\nexport function MapUserTypeCodes() : Map<UserTypeCode, string> {\n let result = new Map<UserTypeCode, string>();\n result.set(UserTypeCode.UNDEFINED, 'Undefined');\n\tresult.set(UserTypeCode.SYSADMIN, 'Sysadmin');\n\tresult.set(UserTypeCode.SUPPORT, 'Support');\n\tresult.set(UserTypeCode.USER, 'User');\n\tresult.set(UserTypeCode.SERVICE, 'Service');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// BillingStatusCode represents a flight billing status: ...\nexport enum BillingStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Unapproved [1] \n UNAPPROVED = 1,\n\n // Approved [2] \n APPROVED = 2,\n\n // Auto invoice created [3] \n CREATED_INVOICE = 3,\n\n // Auto invoice pending [4] \n PENDING_INVOICE = 4,\n\n // Manual invoice [5] \n MANUAL_INVOICE = 5,\n\n // Closed [6] \n CLOSED = 6,\n\n // Credit Client [7] \n CREDIT = 7,\n\n // Cancelled invoice [8] \n CANCELLED = 8,\n\n // Irrelevant status [9] \n CANCELLED_BY_CLIENT = 9,\n\n // Irrelevant status [10] \n IRRELEVANT = 10,\n\n}\n\n// Return list of BillingStatusCode values and their display names\nexport function GetBillingStatusCodes() : Tuple<BillingStatusCode, string>[] {\n\tlet result : Tuple<BillingStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.UNAPPROVED, 'BillingStatusCode.UNAPPROVED'))\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.APPROVED, 'BillingStatusCode.APPROVED'))\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CREATED_INVOICE, 'BillingStatusCode.CREATED_INVOICE'))\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.PENDING_INVOICE, 'BillingStatusCode.PENDING_INVOICE'))\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.MANUAL_INVOICE, 'BillingStatusCode.MANUAL_INVOICE'))\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CLOSED, 'BillingStatusCode.CLOSED'))\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CREDIT, 'BillingStatusCode.CREDIT'))\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CANCELLED, 'BillingStatusCode.CANCELLED'))\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CANCELLED_BY_CLIENT, 'BillingStatusCode.CANCELLED_BY_CLIENT'))\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.IRRELEVANT, 'BillingStatusCode.IRRELEVANT'))\n\t\n return result;\n}\n\n// Return map of BillingStatusCode values and their display names\nexport function MapBillingStatusCodes() : Map<BillingStatusCode, string> {\n let result = new Map<BillingStatusCode, string>();\n result.set(BillingStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(BillingStatusCode.UNAPPROVED, 'Unapproved');\n\tresult.set(BillingStatusCode.APPROVED, 'Approved');\n\tresult.set(BillingStatusCode.CREATED_INVOICE, 'Created Invoice');\n\tresult.set(BillingStatusCode.PENDING_INVOICE, 'Pending Invoice');\n\tresult.set(BillingStatusCode.MANUAL_INVOICE, 'Manual Invoice');\n\tresult.set(BillingStatusCode.CLOSED, 'Closed');\n\tresult.set(BillingStatusCode.CREDIT, 'Credit');\n\tresult.set(BillingStatusCode.CANCELLED, 'Cancelled');\n\tresult.set(BillingStatusCode.CANCELLED_BY_CLIENT, 'Cancelled By Client');\n\tresult.set(BillingStatusCode.IRRELEVANT, 'Irrelevant');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// BookingStatusCode represents the booking status: PENDING | APPROVED | CANCELLED | REJECTED | OVERDUE ...\nexport enum BookingStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Pending booking (requested but not approved) [1] \n PENDING = 1,\n\n // Booking request approved [2] \n APPROVED = 2,\n\n // Booking rejected by the staff [3] \n REJECTED = 3,\n\n // Booking confirmed by by the client [4] \n CONFIRMED = 4,\n\n // Booking cancelled by by the client [5] \n CANCELLED = 5,\n\n // Booking fulfilled and flight was launched by the staff [6] \n FLIGHT_LAUNCHED = 6,\n\n // Booking cancelled by the client [7] \n FLIGHT_CANCELLED = 7,\n\n // Booking completed - flight was launched [8] \n FLIGHT_COMPLETED = 8,\n\n // Flight was aborted by client [9] \n FLIGHT_ABORTED = 9,\n\n}\n\n// Return list of BookingStatusCode values and their display names\nexport function GetBookingStatusCodes() : Tuple<BookingStatusCode, string>[] {\n\tlet result : Tuple<BookingStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.PENDING, 'BookingStatusCode.PENDING'))\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.APPROVED, 'BookingStatusCode.APPROVED'))\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.REJECTED, 'BookingStatusCode.REJECTED'))\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.CONFIRMED, 'BookingStatusCode.CONFIRMED'))\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.CANCELLED, 'BookingStatusCode.CANCELLED'))\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.FLIGHT_LAUNCHED, 'BookingStatusCode.FLIGHT_LAUNCHED'))\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.FLIGHT_CANCELLED, 'BookingStatusCode.FLIGHT_CANCELLED'))\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.FLIGHT_COMPLETED, 'BookingStatusCode.FLIGHT_COMPLETED'))\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.FLIGHT_ABORTED, 'BookingStatusCode.FLIGHT_ABORTED'))\n\t\n return result;\n}\n\n// Return map of BookingStatusCode values and their display names\nexport function MapBookingStatusCodes() : Map<BookingStatusCode, string> {\n let result = new Map<BookingStatusCode, string>();\n result.set(BookingStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(BookingStatusCode.PENDING, 'Pending');\n\tresult.set(BookingStatusCode.APPROVED, 'Approved');\n\tresult.set(BookingStatusCode.REJECTED, 'Rejected');\n\tresult.set(BookingStatusCode.CONFIRMED, 'Confirmed');\n\tresult.set(BookingStatusCode.CANCELLED, 'Cancelled');\n\tresult.set(BookingStatusCode.FLIGHT_LAUNCHED, 'Flight Launched');\n\tresult.set(BookingStatusCode.FLIGHT_CANCELLED, 'Flight Cancelled');\n\tresult.set(BookingStatusCode.FLIGHT_COMPLETED, 'Flight Completed');\n\tresult.set(BookingStatusCode.FLIGHT_ABORTED, 'Flight Aborted');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// CurrencyCode represents the currency: ILS | USD | EUR ...\nexport enum CurrencyCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // ILS [1] \n ILS = 1,\n\n // USD [2] \n USD = 2,\n\n // EURO [3] \n EUR = 3,\n\n}\n\n// Return list of CurrencyCode values and their display names\nexport function GetCurrencyCodes() : Tuple<CurrencyCode, string>[] {\n\tlet result : Tuple<CurrencyCode, string>[] = [];\n \n\tresult.push(new Tuple<CurrencyCode, string>(CurrencyCode.ILS, 'CurrencyCode.ILS'))\n\tresult.push(new Tuple<CurrencyCode, string>(CurrencyCode.USD, 'CurrencyCode.USD'))\n\tresult.push(new Tuple<CurrencyCode, string>(CurrencyCode.EUR, 'CurrencyCode.EUR'))\n\t\n return result;\n}\n\n// Return map of CurrencyCode values and their display names\nexport function MapCurrencyCodes() : Map<CurrencyCode, string> {\n let result = new Map<CurrencyCode, string>();\n result.set(CurrencyCode.UNDEFINED, 'Undefined');\n\tresult.set(CurrencyCode.ILS, 'Ils');\n\tresult.set(CurrencyCode.USD, 'Usd');\n\tresult.set(CurrencyCode.EUR, 'Eur');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// MaintenanceActionCode represents a maintenance action\nexport enum MaintenanceActionCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // No action required [1] \n NONE = 1,\n\n // Inspection action [2] \n INSPECTION = 2,\n\n // Overhaul action [3] \n OVERHAUL = 3,\n\n // Reissue certificate [4] \n REISSUE = 4,\n\n // Replace component [5] \n REPLACEMENT = 5,\n\n // Weight action [6] \n WEIGHT = 6,\n\n}\n\n// Return list of MaintenanceActionCode values and their display names\nexport function GetMaintenanceActionCodes() : Tuple<MaintenanceActionCode, string>[] {\n\tlet result : Tuple<MaintenanceActionCode, string>[] = [];\n \n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.NONE, 'MaintenanceActionCode.NONE'))\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.INSPECTION, 'MaintenanceActionCode.INSPECTION'))\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.OVERHAUL, 'MaintenanceActionCode.OVERHAUL'))\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.REISSUE, 'MaintenanceActionCode.REISSUE'))\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.REPLACEMENT, 'MaintenanceActionCode.REPLACEMENT'))\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.WEIGHT, 'MaintenanceActionCode.WEIGHT'))\n\t\n return result;\n}\n\n// Return map of MaintenanceActionCode values and their display names\nexport function MapMaintenanceActionCodes() : Map<MaintenanceActionCode, string> {\n let result = new Map<MaintenanceActionCode, string>();\n result.set(MaintenanceActionCode.UNDEFINED, 'Undefined');\n\tresult.set(MaintenanceActionCode.NONE, 'None');\n\tresult.set(MaintenanceActionCode.INSPECTION, 'Inspection');\n\tresult.set(MaintenanceActionCode.OVERHAUL, 'Overhaul');\n\tresult.set(MaintenanceActionCode.REISSUE, 'Reissue');\n\tresult.set(MaintenanceActionCode.REPLACEMENT, 'Replacement');\n\tresult.set(MaintenanceActionCode.WEIGHT, 'Weight');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// MessageTypeCode represents the message type: ALERT | INFO | POLICY\nexport enum MessageTypeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Company information [1] \n INFO = 1,\n\n // Memorandum [2] \n MEMO = 2,\n\n // Distribution and Reissue procedures [3] \n EXTERNAL_PROCEDURE = 3,\n\n // Internal procedures [4] \n INTERNAL_PROCEDURE = 4,\n\n // Incident_OR_Hazard Report_Low_Human_Mitigation required [5] \n INCIDENT = 5,\n\n // Policy and Procedural Changes [6] \n POLICY = 6,\n\n // Repair Stations Audit_IANR_OPS 344_2 [7] \n REPAIR = 7,\n\n}\n\n// Return list of MessageTypeCode values and their display names\nexport function GetMessageTypeCodes() : Tuple<MessageTypeCode, string>[] {\n\tlet result : Tuple<MessageTypeCode, string>[] = [];\n \n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.INFO, 'MessageTypeCode.INFO'))\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.MEMO, 'MessageTypeCode.MEMO'))\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.EXTERNAL_PROCEDURE, 'MessageTypeCode.EXTERNAL_PROCEDURE'))\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.INTERNAL_PROCEDURE, 'MessageTypeCode.INTERNAL_PROCEDURE'))\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.INCIDENT, 'MessageTypeCode.INCIDENT'))\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.POLICY, 'MessageTypeCode.POLICY'))\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.REPAIR, 'MessageTypeCode.REPAIR'))\n\t\n return result;\n}\n\n// Return map of MessageTypeCode values and their display names\nexport function MapMessageTypeCodes() : Map<MessageTypeCode, string> {\n let result = new Map<MessageTypeCode, string>();\n result.set(MessageTypeCode.UNDEFINED, 'Undefined');\n\tresult.set(MessageTypeCode.INFO, 'Info');\n\tresult.set(MessageTypeCode.MEMO, 'Memo');\n\tresult.set(MessageTypeCode.EXTERNAL_PROCEDURE, 'External Procedure');\n\tresult.set(MessageTypeCode.INTERNAL_PROCEDURE, 'Internal Procedure');\n\tresult.set(MessageTypeCode.INCIDENT, 'Incident');\n\tresult.set(MessageTypeCode.POLICY, 'Policy');\n\tresult.set(MessageTypeCode.REPAIR, 'Repair');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// NotificationTypeCode represents the notification type: GENERAL | FLIGHTS | CERTIFICATE | UNREAD | BALANCE ...\nexport enum NotificationTypeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // General notification [1] \n GENERAL = 1,\n\n // Notification for un-completed flight [2] \n FLIGHTS = 2,\n\n // Notification about certificate (expired / about to expire) [4] \n CERTIFICATE = 4,\n\n // Notification about read and confirm [8] \n UNREAD = 8,\n\n // Notification about negative balance [16] \n BALANCE = 16,\n\n}\n\n// Return list of NotificationTypeCode values and their display names\nexport function GetNotificationTypeCodes() : Tuple<NotificationTypeCode, string>[] {\n\tlet result : Tuple<NotificationTypeCode, string>[] = [];\n \n\tresult.push(new Tuple<NotificationTypeCode, string>(NotificationTypeCode.GENERAL, 'NotificationTypeCode.GENERAL'))\n\tresult.push(new Tuple<NotificationTypeCode, string>(NotificationTypeCode.FLIGHTS, 'NotificationTypeCode.FLIGHTS'))\n\tresult.push(new Tuple<NotificationTypeCode, string>(NotificationTypeCode.CERTIFICATE, 'NotificationTypeCode.CERTIFICATE'))\n\tresult.push(new Tuple<NotificationTypeCode, string>(NotificationTypeCode.UNREAD, 'NotificationTypeCode.UNREAD'))\n\tresult.push(new Tuple<NotificationTypeCode, string>(NotificationTypeCode.BALANCE, 'NotificationTypeCode.BALANCE'))\n\t\n return result;\n}\n\n// Return map of NotificationTypeCode values and their display names\nexport function MapNotificationTypeCodes() : Map<NotificationTypeCode, string> {\n let result = new Map<NotificationTypeCode, string>();\n result.set(NotificationTypeCode.UNDEFINED, 'Undefined');\n\tresult.set(NotificationTypeCode.GENERAL, 'General');\n\tresult.set(NotificationTypeCode.FLIGHTS, 'Flights');\n\tresult.set(NotificationTypeCode.CERTIFICATE, 'Certificate');\n\tresult.set(NotificationTypeCode.UNREAD, 'Unread');\n\tresult.set(NotificationTypeCode.BALANCE, 'Balance');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// PriorityCode represents a priority: LOW | MEDIUM | HIGH\nexport enum PriorityCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // No priority [1] \n NONE = 1,\n\n // Low priority [2] \n LOW = 2,\n\n // Medium priority [3] \n MEDIUM = 3,\n\n // High priority [4] \n HIGH = 4,\n\n}\n\n// Return list of PriorityCode values and their display names\nexport function GetPriorityCodes() : Tuple<PriorityCode, string>[] {\n\tlet result : Tuple<PriorityCode, string>[] = [];\n \n\tresult.push(new Tuple<PriorityCode, string>(PriorityCode.NONE, 'PriorityCode.NONE'))\n\tresult.push(new Tuple<PriorityCode, string>(PriorityCode.LOW, 'PriorityCode.LOW'))\n\tresult.push(new Tuple<PriorityCode, string>(PriorityCode.MEDIUM, 'PriorityCode.MEDIUM'))\n\tresult.push(new Tuple<PriorityCode, string>(PriorityCode.HIGH, 'PriorityCode.HIGH'))\n\t\n return result;\n}\n\n// Return map of PriorityCode values and their display names\nexport function MapPriorityCodes() : Map<PriorityCode, string> {\n let result = new Map<PriorityCode, string>();\n result.set(PriorityCode.UNDEFINED, 'Undefined');\n\tresult.set(PriorityCode.NONE, 'None');\n\tresult.set(PriorityCode.LOW, 'Low');\n\tresult.set(PriorityCode.MEDIUM, 'Medium');\n\tresult.set(PriorityCode.HIGH, 'High');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ADSBCategoryCode represents the ADSB category types: ADS-B | ASTERIX | MLAT | FLARM\nexport enum ADSBCategoryCode {\n\n // No information at all [0] \n UNDEFINED = 0,\n\n // No ADS-B Emitter Category Information [1] \n NO_ADSB = 1,\n\n // Light (< 15500 lbs) [2] \n LIGHT = 2,\n\n // Small (15500 to 75000 lbs) [3] \n SMALL = 3,\n\n // Large (75000 to 300000 lbs) [4] \n LARGE = 4,\n\n // Very large aircraft (such as B-757) [5] \n HIGH_VORTEX = 5,\n\n // (> 300000 lbs) [6] \n HEAVY = 6,\n\n}\n\n// Return list of ADSBCategoryCode values and their display names\nexport function GetADSBCategoryCodes() : Tuple<ADSBCategoryCode, string>[] {\n\tlet result : Tuple<ADSBCategoryCode, string>[] = [];\n \n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.NO_ADSB, 'ADSBCategoryCode.NO_ADSB'))\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.LIGHT, 'ADSBCategoryCode.LIGHT'))\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.SMALL, 'ADSBCategoryCode.SMALL'))\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.LARGE, 'ADSBCategoryCode.LARGE'))\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.HIGH_VORTEX, 'ADSBCategoryCode.HIGH_VORTEX'))\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.HEAVY, 'ADSBCategoryCode.HEAVY'))\n\t\n return result;\n}\n\n// Return map of ADSBCategoryCode values and their display names\nexport function MapADSBCategoryCodes() : Map<ADSBCategoryCode, string> {\n let result = new Map<ADSBCategoryCode, string>();\n result.set(ADSBCategoryCode.UNDEFINED, 'Undefined');\n\tresult.set(ADSBCategoryCode.NO_ADSB, 'No Adsb');\n\tresult.set(ADSBCategoryCode.LIGHT, 'Light');\n\tresult.set(ADSBCategoryCode.SMALL, 'Small');\n\tresult.set(ADSBCategoryCode.LARGE, 'Large');\n\tresult.set(ADSBCategoryCode.HIGH_VORTEX, 'High Vortex');\n\tresult.set(ADSBCategoryCode.HEAVY, 'Heavy');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// AirplaneStatusCode represents the airplane status: ACTIVE | INACTIVE | MAINTENANCE ...\nexport enum AirplaneStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Active airplane [1] \n ACTIVE = 1,\n\n // Airplane inactive due to maintenance [2] \n MAINTENANCE = 2,\n\n // Suspended airplane (do not show since it is no longer operated by the the company) [3] \n SUSPENDED = 3,\n\n}\n\n// Return list of AirplaneStatusCode values and their display names\nexport function GetAirplaneStatusCodes() : Tuple<AirplaneStatusCode, string>[] {\n\tlet result : Tuple<AirplaneStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<AirplaneStatusCode, string>(AirplaneStatusCode.ACTIVE, 'AirplaneStatusCode.ACTIVE'))\n\tresult.push(new Tuple<AirplaneStatusCode, string>(AirplaneStatusCode.MAINTENANCE, 'AirplaneStatusCode.MAINTENANCE'))\n\tresult.push(new Tuple<AirplaneStatusCode, string>(AirplaneStatusCode.SUSPENDED, 'AirplaneStatusCode.SUSPENDED'))\n\t\n return result;\n}\n\n// Return map of AirplaneStatusCode values and their display names\nexport function MapAirplaneStatusCodes() : Map<AirplaneStatusCode, string> {\n let result = new Map<AirplaneStatusCode, string>();\n result.set(AirplaneStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(AirplaneStatusCode.ACTIVE, 'Active');\n\tresult.set(AirplaneStatusCode.MAINTENANCE, 'Maintenance');\n\tresult.set(AirplaneStatusCode.SUSPENDED, 'Suspended');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// InstructionTypeCode represents a flight instruction type: FLIGHT | CLASS | SIMULATOR ...\nexport enum InstructionTypeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Instruction during a Flight [1] \n FLIGHT = 1,\n\n // Instruction in the class [2] \n CLASS = 2,\n\n // Instruction in the simulator [3] \n SIMULATOR = 3,\n\n}\n\n// Return list of InstructionTypeCode values and their display names\nexport function GetInstructionTypeCodes() : Tuple<InstructionTypeCode, string>[] {\n\tlet result : Tuple<InstructionTypeCode, string>[] = [];\n \n\tresult.push(new Tuple<InstructionTypeCode, string>(InstructionTypeCode.FLIGHT, 'InstructionTypeCode.FLIGHT'))\n\tresult.push(new Tuple<InstructionTypeCode, string>(InstructionTypeCode.CLASS, 'InstructionTypeCode.CLASS'))\n\tresult.push(new Tuple<InstructionTypeCode, string>(InstructionTypeCode.SIMULATOR, 'InstructionTypeCode.SIMULATOR'))\n\t\n return result;\n}\n\n// Return map of InstructionTypeCode values and their display names\nexport function MapInstructionTypeCodes() : Map<InstructionTypeCode, string> {\n let result = new Map<InstructionTypeCode, string>();\n result.set(InstructionTypeCode.UNDEFINED, 'Undefined');\n\tresult.set(InstructionTypeCode.FLIGHT, 'Flight');\n\tresult.set(InstructionTypeCode.CLASS, 'Class');\n\tresult.set(InstructionTypeCode.SIMULATOR, 'Simulator');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// LessonSubjectCode represents a flight lesson subject:\nexport enum LessonSubjectCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // \"1 השפעת הגאים ומנופי בקרה. משך: 40 ד\" \n PPL_01 = 1,\n\n // \"2 הכנה לטיסה, הסעה, טיסה ישרה ואופקית. משך: 40 ד\" \n PPL_02 = 2,\n\n // \"3 הסעה, טיסה ישרה ואופקית, נסיקה. משך: 40 ד\" \n PPL_03 = 3,\n\n // \"4 מצבי יסוד - ישרה ואופקית נסיקה וגלישה. משך: 40 ד\" \n PPL_04 = 4,\n\n // \"5 מעברים רגילים ומורכבים בטיסה ישרה. משך: 50 ד\" \n PPL_05 = 5,\n\n // \"6 פניות קלות (נסיקה גלישה), בינוניות וחדות. משך: 50 ד\" \n PPL_06 = 6,\n\n // \"7 מעברים רגילים ומורכבים בפניה. משך: 40 ד\" \n PPL_07 = 7,\n\n // \"8 שינויי מהירות בטיסה ישרה ואופקית, והזדקרויות ישרות. משך: 40 ד\" \n PPL_08 = 8,\n\n // \"9 הזדקרויות בטיסה ישרה ובפניות והזדקרות עם נפילת כנף. משך: 40 ד\" \n PPL_09 = 9,\n\n // \"10 נחיתות אונס מגבהים שונים+החלצות ממצב של נפילת כנף תוך כדי הזדקרות. משך: 40 ד\" \n PPL_10 = 10,\n\n // \"11 הקפה. משך: 40 ד\" \n PPL_11 = 11,\n\n // \"12 חזרה כללית: הקפות המראה ונחיתה. משך: 40 ד\" \n PPL_12 = 12,\n\n // \"13 חזרה כללית: הקפות המראה ונחיתה. משך: 1:00 ש\" \n PPL_13 = 13,\n\n // \"14 חזרה כללית: הקפות המראה ונחיתה. משך: 50 ד\" \n PPL_14 = 14,\n\n // \"15 חזרה כללית + הקפות המראה קצרה ונחיתה קצרה. משך: 50 ד\" \n PPL_15 = 15,\n\n // \"16 טיסת בדיקה לקראת טיסת יחיד-טיסה כללית ובהקפה. משך המבחן 1:00. טיסת הסולו ראשונה: הקפה אחת, משך 10 ד\" \n PPL_16 = 16,\n\n // \"17 הקפות: הדרכה וטיסת יחיד. משך: הדרכה 15 ד; סולו 1:00 ש\" \n PPL_17 = 17,\n\n // \"18 הקפות: הדרכה וטיסת יחיד. משך: הדרכה 15 ד; סולו 1:00 ש\" \n PPL_18 = 18,\n\n // \"19 הקפות: הדרכה וטיסת יחיד. משך: הדרכה 15 ד; סולו 1:00 ש\" \n PPL_19 = 19,\n\n // \"20 הקפות: הדרכה וטיסת יחיד. משך: הדרכה 15 ד; סולו 1:00 ש\" \n PPL_20 = 20,\n\n // \"21 הקפות, נחיתות דיוק, חירום. הדרכה 15 ד; סולו 1:00 ש\" \n PPL_21 = 21,\n\n // \"22 הקפות, טיסה כללית, חירום. הדרכה 50 ד; הקפות- סולו 50 ד\" \n PPL_22 = 22,\n\n // \"23 הקפות, טיסה כללית, חירום. הדרכה 30 ד; סולו אזור 50 ד\" \n PPL_23 = 23,\n\n // \"24 טיסה כללית, חירום. הדרכה 10 ד; סולו אזור 50 ד\" \n PPL_24 = 24,\n\n // \"25 שעור 1: טיסת מכשירים בסיסית-מצבי טיסה יסודיים. משך 45 ד\" \n PPL_25 = 25,\n\n // \"26 שעור 2: טיסת מכשירים בסיסית-מעברים בטיסה ישרה. משך 45 ד\" \n PPL_26 = 26,\n\n // \"27 שעור 3: פניות בינוניות אופקיות ופניות בשעור1. משך: 45 ד\" \n PPL_27 = 27,\n\n // \"28 שעור 4: לוח מוגבל ומצבים מוזרים. משך: 45 ד\" \n PPL_28 = 28,\n\n // \"29 - טיסת נווט מגע + נחיתת ביניים. משך הנווט 1:20 ש\" \n PPL_29 = 29,\n\n // \"30 - טיסת נווט מגע, אבדן התמצאות ונ״א + שימוש בעזרי רדיו לנווט. נחיתות ביניים בנתיב בשני שדות זרים. משך הנווט 1:40 ש\" \n PPL_30 = 30,\n\n // \"31 נווטי מגע, שימוש בעזרי רדיו לנווט+נחיתות בשדות זרים. משך הנווטים בטיסות יחיד 3:00 ש; הדרכה לבדיקת רמה לפני כל נווט 10 ד\" \n PPL_31 = 31,\n\n // \"32 נווט יחיד ארוך-נווט מגע, שימוש בעזרי רדיו+נחיתה בשני שדות זרים מרוחקים משדה האם. משך: 2:30 שעות; הדרכה 10 דקות -בדיקת רמה\" \n PPL_32 = 32,\n\n // \"33 סולו – חזרה על כל תרגילי הטיסה ותהליכי חירום. משך: הדרכה 10 דקות + סולו 55 ד\" \n PPL_33 = 33,\n\n // \"34 שעור 1 לילה: טיסה כללית-מצבי טיסה. משך: 45 ד\" \n PPL_34 = 34,\n\n // \"35 שעור 2-לילה: מעברים רגילים+מורכבים בטיסה ישרה. משך: 45 ד\" \n PPL_35 = 35,\n\n // \"36 שעור 3 לילה: פניות נסיקה וגלישה ופניות בינוניות + אופקיות 30º הטייה ומעברים בפניה ושתי הקפות. משך: 45 ד\" \n PPL_36 = 36,\n\n // \"37 שעור 4 לילה: הקפות עם פנסי נחיתה וללא. משך: 45 ד\" \n PPL_37 = 37,\n\n // \"38 חזרה כללית לפני מבחן. משך: 45 ד\" \n PPL_38 = 38,\n\n // \"39 -סולו -חזרה כללית לפני מבחן. משך: 55 ד\" \n PPL_39 = 39,\n\n // 1 הסעה, מעברים מורכבים, פניות, שינוי מהירות, הקפה \n PPL_AZM_01 = 51,\n\n // 2 פניות חדות, שינוי מהירות, הזדקרות, נ\"א, הקפה \n PPL_AZM_02 = 52,\n\n // 3 הקפות \n PPL_AZM_03 = 53,\n\n // 4 מצבי חירום באיזור ובהקפה \n PPL_AZM_04 = 54,\n\n // 5 הקפות, חירומים, המראה ונחיתה קצרה \n PPL_AZM_05 = 55,\n\n // 6 הקפות, חירומים, המראה ונחיתה קצרה \n PPL_AZM_06 = 56,\n\n // 7 טיסת בדיקה לטיסת יחיד (מד\"ר) \n PPL_AZM_07 = 57,\n\n // 8 מכשירים - מצבי טיסה יסודיים \n PPL_AZM_08 = 58,\n\n // 9 מכשירים, פניות, שינוי מהירות, הזדקרויות \n PPL_AZM_09 = 59,\n\n // 10 טיסת נווט מגע ונחיתת ביניים, מצבי חירום, הקפות \n PPL_AZM_10 = 60,\n\n // 11 טיסת מכשירים לוח מוגבל, מצבים מוזרים, יירוט רדיאלים \n PPL_AZM_11 = 61,\n\n // 12 ניווט בטיסת יחיד \n PPL_AZM_12 = 62,\n\n // 13 ניווט בטיסת יחיד \n PPL_AZM_13 = 63,\n\n // 14 טיסת לילה, ניווט, הקפות, חירומים \n PPL_AZM_14 = 64,\n\n // 15 טיסת לילה, ניווט, הקפות, חירומים \n PPL_AZM_15 = 65,\n\n // 16 חזרה כללית (מד\"ר) \n PPL_AZM_16 = 66,\n\n // \"1 מצבי טיסה, מעברים, פניות, שינוי מהירות, הזדקרויות\" \n CPL_01 = 101,\n\n // \"2 תמרונים רגילים בטיסה (שיפור מיומנות)\" \n CPL_02 = 102,\n\n // \"3 הזדקרויות והיכרות עם תרגילי המיומנות הנדרשים בטיס מסחרי\" \n CPL_03 = 103,\n\n // \"4 תרגילי המיומנות הנדרשים מטייס מסחרי (שיפור מיומנות)\" \n CPL_04 = 104,\n\n // \"5 תפעול רגיל ותרגול חירומים\" \n CPL_05 = 105,\n\n // \"6 תפעול רגיל ותרגול חירומים (שיפור מיומנות)\" \n CPL_06 = 106,\n\n // \"7 תרגול הקפות במשקל המראה מירבי\" \n CPL_07 = 107,\n\n // \"8 תרגול הקפות ותפעול חרומים בהקפה\" \n CPL_08 = 108,\n\n // \"9 טיסת מכשירים בסיסית\" \n CPL_09 = 109,\n\n // \"10 טיסת ניווט בנתיבי התובלה הנמוכים\" \n CPL_10 = 110,\n\n // \"11 ישום שיטת ניווט (גובה נמוך)\" \n CPL_11 = 111,\n\n // \"12 ישום שיטת ניווט (גובה נמוך) ושיפור מיומנות\" \n CPL_12 = 112,\n\n // \"13 הכנה למבחן מעשי\" \n CPL_13 = 113,\n\n // 1 מצבים יסודיים, מעברים,פניות, שינוי מהירות, הזדקרויות, שעור פניה, מצבים מוזרים \n IFR_05_01 = 201,\n\n // 2 טיסה לפי רדיאלים \n IFR_05_02 = 202,\n\n // 3 SID, ניווט בנתיבי IFR, STAR, הנמכות מדויקות ולא מדויקות \n IFR_05_03 = 203,\n\n // 4 מסכמת, נתיב, SID,STAR, הנמכות מדויקות ולא מדויקות \n IFR_05_04 = 204,\n\n // 5 חזרה למבחן \n IFR_05_05 = 205,\n\n // 1 מצבים טיסה יסודיים - מדמה \n IFR_20_01 = 221,\n\n // 2 מצבי טיסה יסודיים \n IFR_20_02 = 222,\n\n // 3 הזדקרויות עד מצבים מוזרים - מדמה \n IFR_20_03 = 223,\n\n // 4 הזדקרויות עד מצבים מוזרים \n IFR_20_04 = 224,\n\n // 5 טיסה לפי רדיאלים - מדמה \n IFR_20_05 = 225,\n\n // 6 טיסה לפי רדיאלים \n IFR_20_06 = 226,\n\n // 7 מעגל המתנה וכניסות - מדמה \n IFR_20_07 = 227,\n\n // 8 SID, נתיבי IFR, STAR - מדמה \n IFR_20_08 = 228,\n\n // 9 SID, נתיבי IFR, STAR \n IFR_20_09 = 229,\n\n // 10 הנמכות מדויקות - מדמה \n IFR_20_10 = 230,\n\n // 11 הנמכות לא מדויקות - מדמה \n IFR_20_11 = 231,\n\n // 12 SID, נתיבי IFR, STAR, הנמכות מדויקות \n IFR_20_12 = 232,\n\n // 13 הנמכות לא מדויקות \n IFR_20_13 = 233,\n\n // 14 הנמכות שונות \n IFR_20_14 = 234,\n\n // 15 SID, נתיבי IFR, STAR, הנמכות שונות - מדמה \n IFR_20_15 = 235,\n\n // 16 טיסה מסכמת \n IFR_20_16 = 236,\n\n // 17 חזרה למבחן - מדמה \n IFR_20_17 = 237,\n\n // 18 חזרה למבחן \n IFR_20_18 = 238,\n\n}\n\n// Return list of LessonSubjectCode values and their display names\nexport function GetLessonSubjectCodes() : Tuple<LessonSubjectCode, string>[] {\n\tlet result : Tuple<LessonSubjectCode, string>[] = [];\n \n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_01, 'LessonSubjectCode.PPL_01'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_02, 'LessonSubjectCode.PPL_02'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_03, 'LessonSubjectCode.PPL_03'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_04, 'LessonSubjectCode.PPL_04'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_05, 'LessonSubjectCode.PPL_05'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_06, 'LessonSubjectCode.PPL_06'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_07, 'LessonSubjectCode.PPL_07'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_08, 'LessonSubjectCode.PPL_08'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_09, 'LessonSubjectCode.PPL_09'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_10, 'LessonSubjectCode.PPL_10'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_11, 'LessonSubjectCode.PPL_11'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_12, 'LessonSubjectCode.PPL_12'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_13, 'LessonSubjectCode.PPL_13'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_14, 'LessonSubjectCode.PPL_14'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_15, 'LessonSubjectCode.PPL_15'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_16, 'LessonSubjectCode.PPL_16'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_17, 'LessonSubjectCode.PPL_17'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_18, 'LessonSubjectCode.PPL_18'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_19, 'LessonSubjectCode.PPL_19'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_20, 'LessonSubjectCode.PPL_20'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_21, 'LessonSubjectCode.PPL_21'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_22, 'LessonSubjectCode.PPL_22'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_23, 'LessonSubjectCode.PPL_23'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_24, 'LessonSubjectCode.PPL_24'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_25, 'LessonSubjectCode.PPL_25'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_26, 'LessonSubjectCode.PPL_26'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_27, 'LessonSubjectCode.PPL_27'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_28, 'LessonSubjectCode.PPL_28'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_29, 'LessonSubjectCode.PPL_29'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_30, 'LessonSubjectCode.PPL_30'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_31, 'LessonSubjectCode.PPL_31'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_32, 'LessonSubjectCode.PPL_32'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_33, 'LessonSubjectCode.PPL_33'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_34, 'LessonSubjectCode.PPL_34'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_35, 'LessonSubjectCode.PPL_35'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_36, 'LessonSubjectCode.PPL_36'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_37, 'LessonSubjectCode.PPL_37'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_38, 'LessonSubjectCode.PPL_38'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_39, 'LessonSubjectCode.PPL_39'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_01, 'LessonSubjectCode.PPL_AZM_01'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_02, 'LessonSubjectCode.PPL_AZM_02'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_03, 'LessonSubjectCode.PPL_AZM_03'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_04, 'LessonSubjectCode.PPL_AZM_04'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_05, 'LessonSubjectCode.PPL_AZM_05'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_06, 'LessonSubjectCode.PPL_AZM_06'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_07, 'LessonSubjectCode.PPL_AZM_07'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_08, 'LessonSubjectCode.PPL_AZM_08'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_09, 'LessonSubjectCode.PPL_AZM_09'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_10, 'LessonSubjectCode.PPL_AZM_10'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_11, 'LessonSubjectCode.PPL_AZM_11'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_12, 'LessonSubjectCode.PPL_AZM_12'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_13, 'LessonSubjectCode.PPL_AZM_13'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_14, 'LessonSubjectCode.PPL_AZM_14'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_15, 'LessonSubjectCode.PPL_AZM_15'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_16, 'LessonSubjectCode.PPL_AZM_16'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_01, 'LessonSubjectCode.CPL_01'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_02, 'LessonSubjectCode.CPL_02'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_03, 'LessonSubjectCode.CPL_03'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_04, 'LessonSubjectCode.CPL_04'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_05, 'LessonSubjectCode.CPL_05'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_06, 'LessonSubjectCode.CPL_06'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_07, 'LessonSubjectCode.CPL_07'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_08, 'LessonSubjectCode.CPL_08'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_09, 'LessonSubjectCode.CPL_09'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_10, 'LessonSubjectCode.CPL_10'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_11, 'LessonSubjectCode.CPL_11'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_12, 'LessonSubjectCode.CPL_12'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_13, 'LessonSubjectCode.CPL_13'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_01, 'LessonSubjectCode.IFR_05_01'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_02, 'LessonSubjectCode.IFR_05_02'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_03, 'LessonSubjectCode.IFR_05_03'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_04, 'LessonSubjectCode.IFR_05_04'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_05, 'LessonSubjectCode.IFR_05_05'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_01, 'LessonSubjectCode.IFR_20_01'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_02, 'LessonSubjectCode.IFR_20_02'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_03, 'LessonSubjectCode.IFR_20_03'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_04, 'LessonSubjectCode.IFR_20_04'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_05, 'LessonSubjectCode.IFR_20_05'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_06, 'LessonSubjectCode.IFR_20_06'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_07, 'LessonSubjectCode.IFR_20_07'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_08, 'LessonSubjectCode.IFR_20_08'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_09, 'LessonSubjectCode.IFR_20_09'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_10, 'LessonSubjectCode.IFR_20_10'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_11, 'LessonSubjectCode.IFR_20_11'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_12, 'LessonSubjectCode.IFR_20_12'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_13, 'LessonSubjectCode.IFR_20_13'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_14, 'LessonSubjectCode.IFR_20_14'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_15, 'LessonSubjectCode.IFR_20_15'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_16, 'LessonSubjectCode.IFR_20_16'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_17, 'LessonSubjectCode.IFR_20_17'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_18, 'LessonSubjectCode.IFR_20_18'))\n\t\n return result;\n}\n\n// Return map of LessonSubjectCode values and their display names\nexport function MapLessonSubjectCodes() : Map<LessonSubjectCode, string> {\n let result = new Map<LessonSubjectCode, string>();\n result.set(LessonSubjectCode.UNDEFINED, 'Undefined');\n\tresult.set(LessonSubjectCode.PPL_01, 'Ppl 01');\n\tresult.set(LessonSubjectCode.PPL_02, 'Ppl 02');\n\tresult.set(LessonSubjectCode.PPL_03, 'Ppl 03');\n\tresult.set(LessonSubjectCode.PPL_04, 'Ppl 04');\n\tresult.set(LessonSubjectCode.PPL_05, 'Ppl 05');\n\tresult.set(LessonSubjectCode.PPL_06, 'Ppl 06');\n\tresult.set(LessonSubjectCode.PPL_07, 'Ppl 07');\n\tresult.set(LessonSubjectCode.PPL_08, 'Ppl 08');\n\tresult.set(LessonSubjectCode.PPL_09, 'Ppl 09');\n\tresult.set(LessonSubjectCode.PPL_10, 'Ppl 10');\n\tresult.set(LessonSubjectCode.PPL_11, 'Ppl 11');\n\tresult.set(LessonSubjectCode.PPL_12, 'Ppl 12');\n\tresult.set(LessonSubjectCode.PPL_13, 'Ppl 13');\n\tresult.set(LessonSubjectCode.PPL_14, 'Ppl 14');\n\tresult.set(LessonSubjectCode.PPL_15, 'Ppl 15');\n\tresult.set(LessonSubjectCode.PPL_16, 'Ppl 16');\n\tresult.set(LessonSubjectCode.PPL_17, 'Ppl 17');\n\tresult.set(LessonSubjectCode.PPL_18, 'Ppl 18');\n\tresult.set(LessonSubjectCode.PPL_19, 'Ppl 19');\n\tresult.set(LessonSubjectCode.PPL_20, 'Ppl 20');\n\tresult.set(LessonSubjectCode.PPL_21, 'Ppl 21');\n\tresult.set(LessonSubjectCode.PPL_22, 'Ppl 22');\n\tresult.set(LessonSubjectCode.PPL_23, 'Ppl 23');\n\tresult.set(LessonSubjectCode.PPL_24, 'Ppl 24');\n\tresult.set(LessonSubjectCode.PPL_25, 'Ppl 25');\n\tresult.set(LessonSubjectCode.PPL_26, 'Ppl 26');\n\tresult.set(LessonSubjectCode.PPL_27, 'Ppl 27');\n\tresult.set(LessonSubjectCode.PPL_28, 'Ppl 28');\n\tresult.set(LessonSubjectCode.PPL_29, 'Ppl 29');\n\tresult.set(LessonSubjectCode.PPL_30, 'Ppl 30');\n\tresult.set(LessonSubjectCode.PPL_31, 'Ppl 31');\n\tresult.set(LessonSubjectCode.PPL_32, 'Ppl 32');\n\tresult.set(LessonSubjectCode.PPL_33, 'Ppl 33');\n\tresult.set(LessonSubjectCode.PPL_34, 'Ppl 34');\n\tresult.set(LessonSubjectCode.PPL_35, 'Ppl 35');\n\tresult.set(LessonSubjectCode.PPL_36, 'Ppl 36');\n\tresult.set(LessonSubjectCode.PPL_37, 'Ppl 37');\n\tresult.set(LessonSubjectCode.PPL_38, 'Ppl 38');\n\tresult.set(LessonSubjectCode.PPL_39, 'Ppl 39');\n\tresult.set(LessonSubjectCode.PPL_AZM_01, 'Ppl Azm 01');\n\tresult.set(LessonSubjectCode.PPL_AZM_02, 'Ppl Azm 02');\n\tresult.set(LessonSubjectCode.PPL_AZM_03, 'Ppl Azm 03');\n\tresult.set(LessonSubjectCode.PPL_AZM_04, 'Ppl Azm 04');\n\tresult.set(LessonSubjectCode.PPL_AZM_05, 'Ppl Azm 05');\n\tresult.set(LessonSubjectCode.PPL_AZM_06, 'Ppl Azm 06');\n\tresult.set(LessonSubjectCode.PPL_AZM_07, 'Ppl Azm 07');\n\tresult.set(LessonSubjectCode.PPL_AZM_08, 'Ppl Azm 08');\n\tresult.set(LessonSubjectCode.PPL_AZM_09, 'Ppl Azm 09');\n\tresult.set(LessonSubjectCode.PPL_AZM_10, 'Ppl Azm 10');\n\tresult.set(LessonSubjectCode.PPL_AZM_11, 'Ppl Azm 11');\n\tresult.set(LessonSubjectCode.PPL_AZM_12, 'Ppl Azm 12');\n\tresult.set(LessonSubjectCode.PPL_AZM_13, 'Ppl Azm 13');\n\tresult.set(LessonSubjectCode.PPL_AZM_14, 'Ppl Azm 14');\n\tresult.set(LessonSubjectCode.PPL_AZM_15, 'Ppl Azm 15');\n\tresult.set(LessonSubjectCode.PPL_AZM_16, 'Ppl Azm 16');\n\tresult.set(LessonSubjectCode.CPL_01, 'Cpl 01');\n\tresult.set(LessonSubjectCode.CPL_02, 'Cpl 02');\n\tresult.set(LessonSubjectCode.CPL_03, 'Cpl 03');\n\tresult.set(LessonSubjectCode.CPL_04, 'Cpl 04');\n\tresult.set(LessonSubjectCode.CPL_05, 'Cpl 05');\n\tresult.set(LessonSubjectCode.CPL_06, 'Cpl 06');\n\tresult.set(LessonSubjectCode.CPL_07, 'Cpl 07');\n\tresult.set(LessonSubjectCode.CPL_08, 'Cpl 08');\n\tresult.set(LessonSubjectCode.CPL_09, 'Cpl 09');\n\tresult.set(LessonSubjectCode.CPL_10, 'Cpl 10');\n\tresult.set(LessonSubjectCode.CPL_11, 'Cpl 11');\n\tresult.set(LessonSubjectCode.CPL_12, 'Cpl 12');\n\tresult.set(LessonSubjectCode.CPL_13, 'Cpl 13');\n\tresult.set(LessonSubjectCode.IFR_05_01, 'Ifr 05 01');\n\tresult.set(LessonSubjectCode.IFR_05_02, 'Ifr 05 02');\n\tresult.set(LessonSubjectCode.IFR_05_03, 'Ifr 05 03');\n\tresult.set(LessonSubjectCode.IFR_05_04, 'Ifr 05 04');\n\tresult.set(LessonSubjectCode.IFR_05_05, 'Ifr 05 05');\n\tresult.set(LessonSubjectCode.IFR_20_01, 'Ifr 20 01');\n\tresult.set(LessonSubjectCode.IFR_20_02, 'Ifr 20 02');\n\tresult.set(LessonSubjectCode.IFR_20_03, 'Ifr 20 03');\n\tresult.set(LessonSubjectCode.IFR_20_04, 'Ifr 20 04');\n\tresult.set(LessonSubjectCode.IFR_20_05, 'Ifr 20 05');\n\tresult.set(LessonSubjectCode.IFR_20_06, 'Ifr 20 06');\n\tresult.set(LessonSubjectCode.IFR_20_07, 'Ifr 20 07');\n\tresult.set(LessonSubjectCode.IFR_20_08, 'Ifr 20 08');\n\tresult.set(LessonSubjectCode.IFR_20_09, 'Ifr 20 09');\n\tresult.set(LessonSubjectCode.IFR_20_10, 'Ifr 20 10');\n\tresult.set(LessonSubjectCode.IFR_20_11, 'Ifr 20 11');\n\tresult.set(LessonSubjectCode.IFR_20_12, 'Ifr 20 12');\n\tresult.set(LessonSubjectCode.IFR_20_13, 'Ifr 20 13');\n\tresult.set(LessonSubjectCode.IFR_20_14, 'Ifr 20 14');\n\tresult.set(LessonSubjectCode.IFR_20_15, 'Ifr 20 15');\n\tresult.set(LessonSubjectCode.IFR_20_16, 'Ifr 20 16');\n\tresult.set(LessonSubjectCode.IFR_20_17, 'Ifr 20 17');\n\tresult.set(LessonSubjectCode.IFR_20_18, 'Ifr 20 18');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// LessonTypeCode represents a flight lesson type: GENERAL | PRIVATE | COMMERCIAL ...\nexport enum LessonTypeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // CVFR - Controlled Visual Flight Rules [100] \n CVFR = 100,\n\n // IFR - Instruments Flight Rules [101] \n IFR = 101,\n\n // Navigation Flight [102] \n NAV = 102,\n\n // Night Flight [103] \n NIGHT = 103,\n\n // General Instruction Flight [1] \n INSTRUCTION = 1,\n\n // Instruction Flight with CVFR [2] \n INSTRUCTION_CVFR = 2,\n\n // Instruction Flight with IFR [3] \n INSTRUCTION_IFR = 3,\n\n // Instruction Flight with Navigation [4] \n INSTRUCTION_NAV = 4,\n\n // Instruction Night Flight [5] \n INSTRUCTION_NIGHT = 5,\n\n // Other Flight [6] \n OTHER = 6,\n\n}\n\n// Return list of LessonTypeCode values and their display names\nexport function GetLessonTypeCodes() : Tuple<LessonTypeCode, string>[] {\n\tlet result : Tuple<LessonTypeCode, string>[] = [];\n \n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.CVFR, 'LessonTypeCode.CVFR'))\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.IFR, 'LessonTypeCode.IFR'))\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.NAV, 'LessonTypeCode.NAV'))\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.NIGHT, 'LessonTypeCode.NIGHT'))\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION, 'LessonTypeCode.INSTRUCTION'))\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION_CVFR, 'LessonTypeCode.INSTRUCTION_CVFR'))\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION_IFR, 'LessonTypeCode.INSTRUCTION_IFR'))\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION_NAV, 'LessonTypeCode.INSTRUCTION_NAV'))\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION_NIGHT, 'LessonTypeCode.INSTRUCTION_NIGHT'))\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.OTHER, 'LessonTypeCode.OTHER'))\n\t\n return result;\n}\n\n// Return map of LessonTypeCode values and their display names\nexport function MapLessonTypeCodes() : Map<LessonTypeCode, string> {\n let result = new Map<LessonTypeCode, string>();\n result.set(LessonTypeCode.UNDEFINED, 'Undefined');\n\tresult.set(LessonTypeCode.CVFR, 'Cvfr');\n\tresult.set(LessonTypeCode.IFR, 'Ifr');\n\tresult.set(LessonTypeCode.NAV, 'Nav');\n\tresult.set(LessonTypeCode.NIGHT, 'Night');\n\tresult.set(LessonTypeCode.INSTRUCTION, 'Instruction');\n\tresult.set(LessonTypeCode.INSTRUCTION_CVFR, 'Instruction Cvfr');\n\tresult.set(LessonTypeCode.INSTRUCTION_IFR, 'Instruction Ifr');\n\tresult.set(LessonTypeCode.INSTRUCTION_NAV, 'Instruction Nav');\n\tresult.set(LessonTypeCode.INSTRUCTION_NIGHT, 'Instruction Night');\n\tresult.set(LessonTypeCode.OTHER, 'Other');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// SyllabusStageCode represents the stage in a syllabus\nexport enum SyllabusStageCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // PPL Fundamentals [1] \n PPL_1 = 1,\n\n // PPL Patterns [2] \n PPL_2 = 2,\n\n // PPL Instruments [3] \n PPL_3 = 3,\n\n // PPL Navigation [4] \n PPL_4 = 4,\n\n // PPL Night [5] \n PPL_5 = 5,\n\n // Commercial [11] \n CPL_1 = 11,\n\n // IFR Flight [21] \n IFR_1 = 21,\n\n // IFR Fundamentals [22] \n IFR_2 = 22,\n\n // IFR Routes and Descents [23] \n IFR_3 = 23,\n\n // CFI Fundamentals [31] \n CFI_1 = 31,\n\n // CFI Patterns [32] \n CFI_2 = 32,\n\n // CFI Instruments [33] \n CFI_3 = 33,\n\n // CFI Navigation [34] \n CFI_4 = 34,\n\n // CFI Night [35] \n CFI_5 = 35,\n\n // Recap [100] \n RECAP = 100,\n\n}\n\n// Return list of SyllabusStageCode values and their display names\nexport function GetSyllabusStageCodes() : Tuple<SyllabusStageCode, string>[] {\n\tlet result : Tuple<SyllabusStageCode, string>[] = [];\n \n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.PPL_1, 'SyllabusStageCode.PPL_1'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.PPL_2, 'SyllabusStageCode.PPL_2'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.PPL_3, 'SyllabusStageCode.PPL_3'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.PPL_4, 'SyllabusStageCode.PPL_4'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.PPL_5, 'SyllabusStageCode.PPL_5'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.CPL_1, 'SyllabusStageCode.CPL_1'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.IFR_1, 'SyllabusStageCode.IFR_1'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.IFR_2, 'SyllabusStageCode.IFR_2'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.IFR_3, 'SyllabusStageCode.IFR_3'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.CFI_1, 'SyllabusStageCode.CFI_1'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.CFI_2, 'SyllabusStageCode.CFI_2'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.CFI_3, 'SyllabusStageCode.CFI_3'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.CFI_4, 'SyllabusStageCode.CFI_4'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.CFI_5, 'SyllabusStageCode.CFI_5'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.RECAP, 'SyllabusStageCode.RECAP'))\n\t\n return result;\n}\n\n// Return map of SyllabusStageCode values and their display names\nexport function MapSyllabusStageCodes() : Map<SyllabusStageCode, string> {\n let result = new Map<SyllabusStageCode, string>();\n result.set(SyllabusStageCode.UNDEFINED, 'Undefined');\n\tresult.set(SyllabusStageCode.PPL_1, 'Ppl 1');\n\tresult.set(SyllabusStageCode.PPL_2, 'Ppl 2');\n\tresult.set(SyllabusStageCode.PPL_3, 'Ppl 3');\n\tresult.set(SyllabusStageCode.PPL_4, 'Ppl 4');\n\tresult.set(SyllabusStageCode.PPL_5, 'Ppl 5');\n\tresult.set(SyllabusStageCode.CPL_1, 'Cpl 1');\n\tresult.set(SyllabusStageCode.IFR_1, 'Ifr 1');\n\tresult.set(SyllabusStageCode.IFR_2, 'Ifr 2');\n\tresult.set(SyllabusStageCode.IFR_3, 'Ifr 3');\n\tresult.set(SyllabusStageCode.CFI_1, 'Cfi 1');\n\tresult.set(SyllabusStageCode.CFI_2, 'Cfi 2');\n\tresult.set(SyllabusStageCode.CFI_3, 'Cfi 3');\n\tresult.set(SyllabusStageCode.CFI_4, 'Cfi 4');\n\tresult.set(SyllabusStageCode.CFI_5, 'Cfi 5');\n\tresult.set(SyllabusStageCode.RECAP, 'Recap');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// TransactionTypeCode represents the credit transaction type\nexport enum TransactionTypeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Payment for Flight auto charged by the system (Debit) - Auto calculated from flight diary [1] \n FLIGHT = 1,\n\n // Payment for Instruction (Debit) [2] \n INSTRUCTION = 2,\n\n // Payment for Purchasing a Product / Service (Debit) [3] \n PURCHASE = 3,\n\n // Credit from client (Credit) [4] \n PAYMENT = 4,\n\n // Bonus added to client (Credit) [5] \n BONUS = 5,\n\n // Refund for client (Credit) [6] \n REFUND = 6,\n\n // RESET credit balance for client (Credit / Debit) [7] \n RESET = 7,\n\n}\n\n// Return list of TransactionTypeCode values and their display names\nexport function GetTransactionTypeCodes() : Tuple<TransactionTypeCode, string>[] {\n\tlet result : Tuple<TransactionTypeCode, string>[] = [];\n \n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.FLIGHT, 'TransactionTypeCode.FLIGHT'))\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.INSTRUCTION, 'TransactionTypeCode.INSTRUCTION'))\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.PURCHASE, 'TransactionTypeCode.PURCHASE'))\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.PAYMENT, 'TransactionTypeCode.PAYMENT'))\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.BONUS, 'TransactionTypeCode.BONUS'))\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.REFUND, 'TransactionTypeCode.REFUND'))\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.RESET, 'TransactionTypeCode.RESET'))\n\t\n return result;\n}\n\n// Return map of TransactionTypeCode values and their display names\nexport function MapTransactionTypeCodes() : Map<TransactionTypeCode, string> {\n let result = new Map<TransactionTypeCode, string>();\n result.set(TransactionTypeCode.UNDEFINED, 'Undefined');\n\tresult.set(TransactionTypeCode.FLIGHT, 'Flight');\n\tresult.set(TransactionTypeCode.INSTRUCTION, 'Instruction');\n\tresult.set(TransactionTypeCode.PURCHASE, 'Purchase');\n\tresult.set(TransactionTypeCode.PAYMENT, 'Payment');\n\tresult.set(TransactionTypeCode.BONUS, 'Bonus');\n\tresult.set(TransactionTypeCode.REFUND, 'Refund');\n\tresult.set(TransactionTypeCode.RESET, 'Reset');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// TypeRatingFlag represents the combined types of licenses\nexport enum TypeRatingFlag {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Cessna 172P [32] \n C172P = 32,\n\n // Cessna 172XP [64] \n C172XP = 64,\n\n // Cessna 207 [128] \n C207 = 128,\n\n // Piper Chieftain / Navajo [256] \n PA31 = 256,\n\n}\n\n// Return list of TypeRatingFlag values and their display names\nexport function GetTypeRatingFlags() : Tuple<TypeRatingFlag, string>[] {\n\tlet result : Tuple<TypeRatingFlag, string>[] = [];\n \n\tresult.push(new Tuple<TypeRatingFlag, string>(TypeRatingFlag.C172P, 'TypeRatingFlag.C172P'))\n\tresult.push(new Tuple<TypeRatingFlag, string>(TypeRatingFlag.C172XP, 'TypeRatingFlag.C172XP'))\n\tresult.push(new Tuple<TypeRatingFlag, string>(TypeRatingFlag.C207, 'TypeRatingFlag.C207'))\n\tresult.push(new Tuple<TypeRatingFlag, string>(TypeRatingFlag.PA31, 'TypeRatingFlag.PA31'))\n\t\n return result;\n}\n\n// Return map of TypeRatingFlag values and their display names\nexport function MapTypeRatingFlags() : Map<TypeRatingFlag, string> {\n let result = new Map<TypeRatingFlag, string>();\n result.set(TypeRatingFlag.UNDEFINED, 'Undefined');\n\tresult.set(TypeRatingFlag.C172P, 'C172p');\n\tresult.set(TypeRatingFlag.C172XP, 'C172xp');\n\tresult.set(TypeRatingFlag.C207, 'C207');\n\tresult.set(TypeRatingFlag.PA31, 'Pa31');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// AssessmentCode represents the assessment score: EXCELLENT | SATISFACTORY | INCOMPLETE ...\nexport enum AssessmentCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Satisfactory [1] \n SATISFACTORY = 1,\n\n // Unsatisfactory [2] \n UNSATISFACTORY = 2,\n\n // Incomplete [3] \n INCOMPLETE = 3,\n\n}\n\n// Return list of AssessmentCode values and their display names\nexport function GetAssessmentCodes() : Tuple<AssessmentCode, string>[] {\n\tlet result : Tuple<AssessmentCode, string>[] = [];\n \n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.SATISFACTORY, 'AssessmentCode.SATISFACTORY'))\n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.UNSATISFACTORY, 'AssessmentCode.UNSATISFACTORY'))\n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.INCOMPLETE, 'AssessmentCode.INCOMPLETE'))\n\t\n return result;\n}\n\n// Return map of AssessmentCode values and their display names\nexport function MapAssessmentCodes() : Map<AssessmentCode, string> {\n let result = new Map<AssessmentCode, string>();\n result.set(AssessmentCode.UNDEFINED, 'Undefined');\n\tresult.set(AssessmentCode.SATISFACTORY, 'Satisfactory');\n\tresult.set(AssessmentCode.UNSATISFACTORY, 'Unsatisfactory');\n\tresult.set(AssessmentCode.INCOMPLETE, 'Incomplete');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// BookingTypeFlag represents the booking type: LESSON | PATTERN | RENTAL | WORK | SIM ...\nexport enum BookingTypeFlag {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Flight lesson [1] \n LESSON = 1,\n\n // Flight lesson for patterns [2] \n PATTERNS = 2,\n\n // Book for rental [3] \n RENTAL = 3,\n\n // Book for Introductory Flight [4] \n INTRODUCTORY = 4,\n\n // Book for Simulator [5] \n SIMULATOR = 5,\n\n // Book for aerial photography mission [6] \n PHOTO = 6,\n\n // Book for other mission [7] \n MISSION = 7,\n\n // Book for maintenance [8] \n MAINTENANCE = 8,\n\n}\n\n// Return list of BookingTypeFlag values and their display names\nexport function GetBookingTypeFlags() : Tuple<BookingTypeFlag, string>[] {\n\tlet result : Tuple<BookingTypeFlag, string>[] = [];\n \n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.LESSON, 'BookingTypeFlag.LESSON'))\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.PATTERNS, 'BookingTypeFlag.PATTERNS'))\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.RENTAL, 'BookingTypeFlag.RENTAL'))\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.INTRODUCTORY, 'BookingTypeFlag.INTRODUCTORY'))\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.SIMULATOR, 'BookingTypeFlag.SIMULATOR'))\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.PHOTO, 'BookingTypeFlag.PHOTO'))\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.MISSION, 'BookingTypeFlag.MISSION'))\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.MAINTENANCE, 'BookingTypeFlag.MAINTENANCE'))\n\t\n return result;\n}\n\n// Return map of BookingTypeFlag values and their display names\nexport function MapBookingTypeFlags() : Map<BookingTypeFlag, string> {\n let result = new Map<BookingTypeFlag, string>();\n result.set(BookingTypeFlag.UNDEFINED, 'Undefined');\n\tresult.set(BookingTypeFlag.LESSON, 'Lesson');\n\tresult.set(BookingTypeFlag.PATTERNS, 'Patterns');\n\tresult.set(BookingTypeFlag.RENTAL, 'Rental');\n\tresult.set(BookingTypeFlag.INTRODUCTORY, 'Introductory');\n\tresult.set(BookingTypeFlag.SIMULATOR, 'Simulator');\n\tresult.set(BookingTypeFlag.PHOTO, 'Photo');\n\tresult.set(BookingTypeFlag.MISSION, 'Mission');\n\tresult.set(BookingTypeFlag.MAINTENANCE, 'Maintenance');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// CampaignTypeCode represents the campaign type: WEB | EMAIL | TELESALES\nexport enum CampaignTypeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Web [1] \n WEB = 1,\n\n // Mail [2] \n EMAIL = 2,\n\n // Telephone Sales [3] \n TELESALES = 3,\n\n}\n\n// Return list of CampaignTypeCode values and their display names\nexport function GetCampaignTypeCodes() : Tuple<CampaignTypeCode, string>[] {\n\tlet result : Tuple<CampaignTypeCode, string>[] = [];\n \n\tresult.push(new Tuple<CampaignTypeCode, string>(CampaignTypeCode.WEB, 'CampaignTypeCode.WEB'))\n\tresult.push(new Tuple<CampaignTypeCode, string>(CampaignTypeCode.EMAIL, 'CampaignTypeCode.EMAIL'))\n\tresult.push(new Tuple<CampaignTypeCode, string>(CampaignTypeCode.TELESALES, 'CampaignTypeCode.TELESALES'))\n\t\n return result;\n}\n\n// Return map of CampaignTypeCode values and their display names\nexport function MapCampaignTypeCodes() : Map<CampaignTypeCode, string> {\n let result = new Map<CampaignTypeCode, string>();\n result.set(CampaignTypeCode.UNDEFINED, 'Undefined');\n\tresult.set(CampaignTypeCode.WEB, 'Web');\n\tresult.set(CampaignTypeCode.EMAIL, 'Email');\n\tresult.set(CampaignTypeCode.TELESALES, 'Telesales');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// UserStatusCode represents the user status: PENDING | ACTIVE | BLOCKED ...\nexport enum UserStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // User is registered and pending verification [1] \n PENDING = 1,\n\n // Active user in the system [2] \n ACTIVE = 2,\n\n // Blocked user (only account system can unblock the user) [3] \n BLOCKED = 3,\n\n // Suspended user (about to be deleted) [4] \n SUSPENDED = 4,\n\n}\n\n// Return list of UserStatusCode values and their display names\nexport function GetUserStatusCodes() : Tuple<UserStatusCode, string>[] {\n\tlet result : Tuple<UserStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<UserStatusCode, string>(UserStatusCode.PENDING, 'UserStatusCode.PENDING'))\n\tresult.push(new Tuple<UserStatusCode, string>(UserStatusCode.ACTIVE, 'UserStatusCode.ACTIVE'))\n\tresult.push(new Tuple<UserStatusCode, string>(UserStatusCode.BLOCKED, 'UserStatusCode.BLOCKED'))\n\tresult.push(new Tuple<UserStatusCode, string>(UserStatusCode.SUSPENDED, 'UserStatusCode.SUSPENDED'))\n\t\n return result;\n}\n\n// Return map of UserStatusCode values and their display names\nexport function MapUserStatusCodes() : Map<UserStatusCode, string> {\n let result = new Map<UserStatusCode, string>();\n result.set(UserStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(UserStatusCode.PENDING, 'Pending');\n\tresult.set(UserStatusCode.ACTIVE, 'Active');\n\tresult.set(UserStatusCode.BLOCKED, 'Blocked');\n\tresult.set(UserStatusCode.SUSPENDED, 'Suspended');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ValidationFlag represents combination of validations\nexport enum ValidationFlag {\n\n // Other [0] \n UNDEFINED = 0,\n\n // Valid medical certificate [1] \n MEDICAL_CERT = 1,\n\n // Valid pilot license [2] \n PILOT_LICENSE = 2,\n\n // Single Engine Certificate [4] \n SINGLE_ENG_CERT = 4,\n\n // Dual Engine Certificate [8] \n DUAL_ENG_CERT = 8,\n\n // 666 Instruments Certificate [16] \n INST_666_CERT = 16,\n\n // REC Instruments Certificate [32] \n INST_REC_CERT = 32,\n\n // Route exam [512] \n ROUTE_EXAM = 512,\n\n // International [2048] \n INTERNATIONAL = 2048,\n\n // English Proficiency [4096] \n ENGLISH_PROF = 4096,\n\n // Instructor license [8192] \n INSTRUCTOR_LICENSE = 8192,\n\n // Company Examiner ? [32768] \n COMPANY_EXAMIN = 32768,\n\n // Radio Certificate [65536] \n RT_CERT = 65536,\n\n}\n\n// Return list of ValidationFlag values and their display names\nexport function GetValidationFlags() : Tuple<ValidationFlag, string>[] {\n\tlet result : Tuple<ValidationFlag, string>[] = [];\n \n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.MEDICAL_CERT, 'ValidationFlag.MEDICAL_CERT'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.PILOT_LICENSE, 'ValidationFlag.PILOT_LICENSE'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.SINGLE_ENG_CERT, 'ValidationFlag.SINGLE_ENG_CERT'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.DUAL_ENG_CERT, 'ValidationFlag.DUAL_ENG_CERT'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.INST_666_CERT, 'ValidationFlag.INST_666_CERT'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.INST_REC_CERT, 'ValidationFlag.INST_REC_CERT'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.ROUTE_EXAM, 'ValidationFlag.ROUTE_EXAM'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.INTERNATIONAL, 'ValidationFlag.INTERNATIONAL'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.ENGLISH_PROF, 'ValidationFlag.ENGLISH_PROF'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.INSTRUCTOR_LICENSE, 'ValidationFlag.INSTRUCTOR_LICENSE'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.COMPANY_EXAMIN, 'ValidationFlag.COMPANY_EXAMIN'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.RT_CERT, 'ValidationFlag.RT_CERT'))\n\t\n return result;\n}\n\n// Return map of ValidationFlag values and their display names\nexport function MapValidationFlags() : Map<ValidationFlag, string> {\n let result = new Map<ValidationFlag, string>();\n result.set(ValidationFlag.UNDEFINED, 'Undefined');\n\tresult.set(ValidationFlag.MEDICAL_CERT, 'Medical Cert');\n\tresult.set(ValidationFlag.PILOT_LICENSE, 'Pilot License');\n\tresult.set(ValidationFlag.SINGLE_ENG_CERT, 'Single Eng Cert');\n\tresult.set(ValidationFlag.DUAL_ENG_CERT, 'Dual Eng Cert');\n\tresult.set(ValidationFlag.INST_666_CERT, 'Inst 666 Cert');\n\tresult.set(ValidationFlag.INST_REC_CERT, 'Inst Rec Cert');\n\tresult.set(ValidationFlag.ROUTE_EXAM, 'Route Exam');\n\tresult.set(ValidationFlag.INTERNATIONAL, 'International');\n\tresult.set(ValidationFlag.ENGLISH_PROF, 'English Prof');\n\tresult.set(ValidationFlag.INSTRUCTOR_LICENSE, 'Instructor License');\n\tresult.set(ValidationFlag.COMPANY_EXAMIN, 'Company Examin');\n\tresult.set(ValidationFlag.RT_CERT, 'Rt Cert');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// LicenseKindFlag represents the combined types of licenses\nexport enum LicenseKindFlag {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Student Pilot License [1] \n SPL = 1,\n\n // Light Aircraft Pilot License (Ultralight) [2] \n LAPL = 2,\n\n // Private Pilot License [4] \n PPL = 4,\n\n // Instrument Rating [8] \n IR = 8,\n\n // Night Rating [16] \n NR = 16,\n\n // Multi Engine Rating [32] \n ME = 32,\n\n // Commercial Pilot License [64] \n CPL = 64,\n\n // Airline Transport Pilot License [128] \n ATP = 128,\n\n // Certified Flight Instructor [256] \n CFI = 256,\n\n // Certified Flight Instructor - Instruments [512] \n CFII = 512,\n\n // Flight Test Examiner [1024] \n FTE = 1024,\n\n}\n\n// Return list of LicenseKindFlag values and their display names\nexport function GetLicenseKindFlags() : Tuple<LicenseKindFlag, string>[] {\n\tlet result : Tuple<LicenseKindFlag, string>[] = [];\n \n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.SPL, 'LicenseKindFlag.SPL'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.LAPL, 'LicenseKindFlag.LAPL'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.PPL, 'LicenseKindFlag.PPL'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.IR, 'LicenseKindFlag.IR'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.NR, 'LicenseKindFlag.NR'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.ME, 'LicenseKindFlag.ME'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.CPL, 'LicenseKindFlag.CPL'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.ATP, 'LicenseKindFlag.ATP'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.CFI, 'LicenseKindFlag.CFI'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.CFII, 'LicenseKindFlag.CFII'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.FTE, 'LicenseKindFlag.FTE'))\n\t\n return result;\n}\n\n// Return map of LicenseKindFlag values and their display names\nexport function MapLicenseKindFlags() : Map<LicenseKindFlag, string> {\n let result = new Map<LicenseKindFlag, string>();\n result.set(LicenseKindFlag.UNDEFINED, 'Undefined');\n\tresult.set(LicenseKindFlag.SPL, 'Spl');\n\tresult.set(LicenseKindFlag.LAPL, 'Lapl');\n\tresult.set(LicenseKindFlag.PPL, 'Ppl');\n\tresult.set(LicenseKindFlag.IR, 'Ir');\n\tresult.set(LicenseKindFlag.NR, 'Nr');\n\tresult.set(LicenseKindFlag.ME, 'Me');\n\tresult.set(LicenseKindFlag.CPL, 'Cpl');\n\tresult.set(LicenseKindFlag.ATP, 'Atp');\n\tresult.set(LicenseKindFlag.CFI, 'Cfi');\n\tresult.set(LicenseKindFlag.CFII, 'Cfii');\n\tresult.set(LicenseKindFlag.FTE, 'Fte');\n\t\n return result;\n}\n","\nimport { StatusCode } from './StatusCode';\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { TypeRatingFlag } from './TypeRatingFlag';\nimport { LicenseKindFlag } from './LicenseKindFlag';\n\n// ContactsFilter list of fields to filter contacts\nexport class ContactsFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by status(es) \n\tpublic status: StatusCode[];\n\n\t// Flag indicating if this contact is a pilot \n\tpublic isPilot: boolean;\n\n\t// Filter by instruction plan \n\tpublic plan: FlightCategoryCode[];\n\n\t// Filter by airplane type ratings allowed for this pilot \n\tpublic typesRating: TypeRatingFlag[];\n\n\t// Filter by license types and additional ratings \n\tpublic licenseKinds: LicenseKindFlag[];\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, status?: StatusCode[], isPilot?: boolean, plan?: FlightCategoryCode[], typesRating?: TypeRatingFlag[], licenseKinds?: LicenseKindFlag[], sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (status !== undefined) { this.status = status; }\n if (isPilot !== undefined) { this.isPilot = isPilot; }\n if (plan !== undefined) { this.plan = plan; }\n if (typesRating !== undefined) { this.typesRating = typesRating; }\n if (licenseKinds !== undefined) { this.licenseKinds = licenseKinds; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\n\n// Location model represents WGS-84 location\nexport class Location {\n\n\t// WGS-84 longitude in decimal degrees \n\tpublic lon: number;\n\n\t// WGS-84 latitude in decimal degrees \n\tpublic lat: number;\n\n\t// Barometric altitude in meters \n\tpublic alt: number;\n\n constructor(lon?: number, lat?: number, alt?: number) { \n if (lon !== undefined) { this.lon = lon; }\n if (lat !== undefined) { this.lat = lat; }\n if (alt !== undefined) { this.alt = alt; }\n }\n\n}\n\n\n","\n\n// TafReport encapsulates TAF report data\nexport class TafReport {\n\n\t// Report ID \n\tpublic id: string;\n\n\t// ICAO Name of the airport / area \n\tpublic station: string;\n\n\t// Valid from date \n\tpublic validFrom: string;\n\n\t// Raw METAR content \n\tpublic content: string;\n\n\t// Human-readable description of the METAR \n\tpublic description: string;\n\n constructor(id?: string, station?: string, validFrom?: string, content?: string, description?: string) { \n if (id !== undefined) { this.id = id; }\n if (station !== undefined) { this.station = station; }\n if (validFrom !== undefined) { this.validFrom = validFrom; }\n if (content !== undefined) { this.content = content; }\n if (description !== undefined) { this.description = description; }\n }\n\n}\n\n\n","\nimport { ModuleCode } from './ModuleCode';\nimport { PermissionFlag } from './PermissionFlag';\n\n// Permission model used to map list of permissions to a module\nexport class Permission {\n\n\t// Module code \n\tpublic module: ModuleCode;\n\n\t// Permissions (flag) \n\tpublic permissions: PermissionFlag;\n\n constructor(module?: ModuleCode, permissions?: PermissionFlag) { \n if (module !== undefined) { this.module = module; }\n if (permissions !== undefined) { this.permissions = permissions; }\n }\n\n}\n\n\n","\n\n// Engine model represents engine metrics\nexport class Engine {\n\n\t// Engine total time [hours] \n\tpublic totalTime: number;\n\n\t// Overhaul time frequency [hours] \n\tpublic overhaulFrequency: number;\n\n\t// Overhaul next due [hours] \n\tpublic overhaulNextDue: number;\n\n\t// Time remaining till the next Overhaul [hours] \n\tpublic hoursToOverhaul: number;\n\n\t// Last airframe Overhaul [hours] \n\tpublic lastAirframeOverhaul: number;\n\n constructor(totalTime?: number, overhaulFrequency?: number, overhaulNextDue?: number, hoursToOverhaul?: number, lastAirframeOverhaul?: number) { \n if (totalTime !== undefined) { this.totalTime = totalTime; }\n if (overhaulFrequency !== undefined) { this.overhaulFrequency = overhaulFrequency; }\n if (overhaulNextDue !== undefined) { this.overhaulNextDue = overhaulNextDue; }\n if (hoursToOverhaul !== undefined) { this.hoursToOverhaul = hoursToOverhaul; }\n if (lastAirframeOverhaul !== undefined) { this.lastAirframeOverhaul = lastAirframeOverhaul; }\n }\n\n}\n\n\n","\n\n// BaseEntityEx is an extended base Entity with custom attributes.\n// It includes all fields from BaseEntity and adds support for a status Flag and a generic properties map (Props).\n// This is useful for entities that need soft-delete capabilities (via Flag) or extensible fields (via Props).\nexport class BaseEntityEx {\n\n\t// Id is the unique object identifier \n\tpublic id: string;\n\n\t// CreatedOn is the timestamp when the object was created [Epoch milliseconds Timestamp] \n\tpublic createdOn: number;\n\n\t// UpdatedOn is the timestamp when the object was last updated [Epoch milliseconds Timestamp] \n\tpublic updatedOn: number;\n\n\t// Flag represents the entity status (e.g. -1 = deleted, 0 = active) \n\tpublic flag: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(id?: string, createdOn?: number, updatedOn?: number, flag?: number, props?: Record<string,any>) { \n if (id !== undefined) { this.id = id; }\n if (createdOn !== undefined) { this.createdOn = createdOn; }\n if (updatedOn !== undefined) { this.updatedOn = updatedOn; }\n if (flag !== undefined) { this.flag = flag; }\n if (props !== undefined) { this.props = props; }\n }\n\n\n}\n\n\n","\n\n// ColumnDef model represents table column definition\nexport class ColumnDef {\n\n\t// Column field icon \n\tpublic icon: string;\n\n\t// Column field name \n\tpublic name: string;\n\n\t// Column field type \n\tpublic type: string;\n\n\t// Display format hint \n\tpublic format: string;\n\n\t// Sort order 0: no sort, 1: sort asc, -1 sort desc \n\tpublic sort: number;\n\n\t// Filter operand \n\tpublic filterOp: number;\n\n\t// Filter by value \n\tpublic filter: any;\n\n constructor(icon?: string, name?: string, type?: string, format?: string, sort?: number, filterOp?: number, filter?: any) { \n if (icon !== undefined) { this.icon = icon; }\n if (name !== undefined) { this.name = name; }\n if (type !== undefined) { this.type = type; }\n if (format !== undefined) { this.format = format; }\n if (sort !== undefined) { this.sort = sort; }\n if (filterOp !== undefined) { this.filterOp = filterOp; }\n if (filter !== undefined) { this.filter = filter; }\n }\n\n}\n\n\n","\nimport { BookingSlot } from './BookingSlot';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// BookingSlots entity is a collection of slots per day\nexport class BookingSlots extends BaseEntityEx {\n\n\t// Slots day \n\tpublic day: number;\n\n\t// List of slots in this period \n\tpublic slots: BookingSlot[];\n\n}\n\nexport function GetBookingSlotsColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"day\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"slots\", \"BookingSlot\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { WeatherRisks } from './WeatherRisks';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { PilotQualificationsRisks } from './PilotQualificationsRisks';\nimport { CrewDutyDayRisks } from './CrewDutyDayRisks';\nimport { DepartureRisks } from './DepartureRisks';\nimport { SpecialRisks } from './SpecialRisks';\nimport { Mitigation } from './Mitigation';\nimport { DestinationRisks } from './DestinationRisks';\nimport { TripRisks } from './TripRisks';\nimport { ColumnDef } from './ColumnDef';\n\n// FlightRisk entity is a data extension for a single flight listing risk assessments and mitigation\n// The ID should be identical to the flight ID\nexport class FlightRisk extends BaseEntityEx {\n\n\t// Risk assessment time \n\tpublic timestamp: number;\n\n\t// Pilot Qualifications and and Experience risks \n\tpublic pilotQualifications: PilotQualificationsRisks;\n\n\t// Crew Duty Day risks \n\tpublic crewDutyDay: CrewDutyDayRisks;\n\n\t// Departure risks \n\tpublic departure: DepartureRisks;\n\n\t// Destination risks \n\tpublic destination: DestinationRisks;\n\n\t// Trip risks \n\tpublic trip: TripRisks;\n\n\t// Weather risks \n\tpublic weather: WeatherRisks;\n\n\t// Other special risks \n\tpublic other: SpecialRisks;\n\n\t// Risks mitigation strategy \n\tpublic mitigation: Mitigation;\n\n}\n\nexport function GetFlightRiskColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"timestamp\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"pilotQualifications\", \"PilotQualificationsRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"crewDutyDay\", \"CrewDutyDayRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"departure\", \"DepartureRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"DestinationRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"trip\", \"TripRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"weather\", \"WeatherRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"other\", \"SpecialRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mitigation\", \"Mitigation\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { Address } from './Address';\nimport { LeadStatusCode } from './LeadStatusCode';\nimport { FollowUpAction } from './FollowUpAction';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Lead entity is a lead in the CRM system\nexport class Lead extends BaseEntityEx {\n\n\t// First name \n\tpublic firstName: string;\n\n\t// Last name \n\tpublic lastName: string;\n\n\t// Account description \n\tpublic description: string;\n\n\t// Office / Landline phone \n\tpublic phone: string;\n\n\t// Office / Landline fax \n\tpublic fax: string;\n\n\t// Mobile phone \n\tpublic mobile: string;\n\n\t// Email address \n\tpublic email: string;\n\n\t// Primary address \n\tpublic primaryAddress: Address;\n\n\t// Lead source \n\tpublic leadSource: string;\n\n\t// Lead source description \n\tpublic leadSourceDescription: string;\n\n\t// Campaign Id \n\tpublic campaignId: string;\n\n\t// Lead status: UNDEFINED | NEW | INPROCESS | ASSIGNED | ... \n\tpublic status: LeadStatusCode;\n\n\t// Referred by \n\tpublic referredBy: string;\n\n\t// Notes \n\tpublic notes: string;\n\n\t// Assigned to user \n\tpublic assignedTo: string;\n\n\t// Lead follow-up actions \n\tpublic actions: FollowUpAction[];\n\n\t// Booking Id reference for the introductory flight \n\tpublic bookingReference: string;\n\n}\n\nexport function GetLeadColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"firstName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"lastName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"phone\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fax\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"primaryAddress\", \"Address\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"leadSource\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"leadSourceDescription\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"campaignId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"LeadStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"referredBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"notes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"assignedTo\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"actions\", \"FollowUpAction\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"bookingReference\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// errorStruct is the default implementation of the Error interface.\nexport class errorStruct {\n\n\t// code is the numeric error code \n\tpublic code: number;\n\n\t// text is the error message \n\tpublic text: string;\n\n constructor(code?: number, text?: string) { \n if (code !== undefined) { this.code = code; }\n if (text !== undefined) { this.text = text; }\n }\n\n}\n\n\n","\nimport { FlightTypeCode } from './FlightTypeCode';\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { FlightPurposeCode } from './FlightPurposeCode';\n\n// PreFlightInfo data structure to be used by the pre-flight form\nexport class PreFlightInfo {\n\n\t// Flight number as string \n\tpublic flightId: string;\n\n\t// Flight number \n\tpublic flightNumber: number;\n\n\t// Airplane Name \n\tpublic airplane: string;\n\n\t// Total hours left to inspection \n\tpublic hoursToInspection: number;\n\n\t// Takeoff Planned time \n\tpublic takeoffPlannedTime: number;\n\n\t// Takeoff actual time \n\tpublic takeoffActualTime: number;\n\n\t// Takeoff field \n\tpublic takeoffField: string;\n\n\t// Landing field \n\tpublic landingField: string;\n\n\t// Purpose of the flight \n\tpublic purpose: FlightPurposeCode;\n\n\t// In case of OTHER, Purpose of the flight \n\tpublic purposeOt: string;\n\n\t// Flight type: PRIVATE | COMMERCIAL ... \n\tpublic type: FlightTypeCode;\n\n\t// Flight Instruction Plan of the student \n\tpublic instructionPlan: FlightCategoryCode;\n\n\t// Flight destination \n\tpublic destination: string;\n\n\t// Secondary call sign \n\tpublic secondaryCallSign: string;\n\n\t// Captain / Instructor ID \n\tpublic captainId: string;\n\n\t// First Officer ID \n\tpublic firstOfficerId: string;\n\n\t// Captain / Instructor name \n\tpublic captainName: string;\n\n\t// First Officer name \n\tpublic firstOfficerName: string;\n\n\t// Estimated fuel on board (GALLONS) \n\tpublic estimatedFuelOnBoard: number;\n\n\t// Estimated time on the air (minutes) \n\tpublic estimatedEndurance: number;\n\n\t// Actual fuel on board (GALLONS) \n\tpublic actualFuelOnBoard: number;\n\n\t// Actual oil level (QUARTZ) \n\tpublic actualOilOnBoard: number;\n\n\t// Passengers names \n\tpublic passengers: string[];\n\n\t// Crew members (name:role) \n\tpublic crew: string[];\n\n\t// Weight and Balance configuration \n\tpublic wbConfig: string;\n\n\t// Weight and Balance manual specification \n\tpublic wbManual: string;\n\n\t// Lesson topic ID by the syllabus \n\tpublic lessonTopicId: string;\n\n\t// First Officer / Student flight counter \n\tpublic lessonFlightCounter: number;\n\n\t// Pre Flight notes \n\tpublic preFlightNotes: string;\n\n\t// Flight operation notes \n\tpublic operationNotes: string;\n\n\t// This form was already reported \n\tpublic reportedBy: string;\n\n constructor(flightId?: string, flightNumber?: number, airplane?: string, hoursToInspection?: number, takeoffPlannedTime?: number, takeoffActualTime?: number, takeoffField?: string, landingField?: string, purpose?: FlightPurposeCode, purposeOt?: string, type?: FlightTypeCode, instructionPlan?: FlightCategoryCode, destination?: string, secondaryCallSign?: string, captainId?: string, firstOfficerId?: string, captainName?: string, firstOfficerName?: string, estimatedFuelOnBoard?: number, estimatedEndurance?: number, actualFuelOnBoard?: number, actualOilOnBoard?: number, passengers?: string[], crew?: string[], wBConfig?: string, wBManual?: string, lessonTopicId?: string, lessonFlightCounter?: number, preFlightNotes?: string, operationNotes?: string, reportedBy?: string) { \n if (flightId !== undefined) { this.flightId = flightId; }\n if (flightNumber !== undefined) { this.flightNumber = flightNumber; }\n if (airplane !== undefined) { this.airplane = airplane; }\n if (hoursToInspection !== undefined) { this.hoursToInspection = hoursToInspection; }\n if (takeoffPlannedTime !== undefined) { this.takeoffPlannedTime = takeoffPlannedTime; }\n if (takeoffActualTime !== undefined) { this.takeoffActualTime = takeoffActualTime; }\n if (takeoffField !== undefined) { this.takeoffField = takeoffField; }\n if (landingField !== undefined) { this.landingField = landingField; }\n if (purpose !== undefined) { this.purpose = purpose; }\n if (purposeOt !== undefined) { this.purposeOt = purposeOt; }\n if (type !== undefined) { this.type = type; }\n if (instructionPlan !== undefined) { this.instructionPlan = instructionPlan; }\n if (destination !== undefined) { this.destination = destination; }\n if (secondaryCallSign !== undefined) { this.secondaryCallSign = secondaryCallSign; }\n if (captainId !== undefined) { this.captainId = captainId; }\n if (firstOfficerId !== undefined) { this.firstOfficerId = firstOfficerId; }\n if (captainName !== undefined) { this.captainName = captainName; }\n if (firstOfficerName !== undefined) { this.firstOfficerName = firstOfficerName; }\n if (estimatedFuelOnBoard !== undefined) { this.estimatedFuelOnBoard = estimatedFuelOnBoard; }\n if (estimatedEndurance !== undefined) { this.estimatedEndurance = estimatedEndurance; }\n if (actualFuelOnBoard !== undefined) { this.actualFuelOnBoard = actualFuelOnBoard; }\n if (actualOilOnBoard !== undefined) { this.actualOilOnBoard = actualOilOnBoard; }\n if (passengers !== undefined) { this.passengers = passengers; }\n if (crew !== undefined) { this.crew = crew; }\n if (wBConfig !== undefined) { this.wbConfig = wBConfig; }\n if (wBManual !== undefined) { this.wbManual = wBManual; }\n if (lessonTopicId !== undefined) { this.lessonTopicId = lessonTopicId; }\n if (lessonFlightCounter !== undefined) { this.lessonFlightCounter = lessonFlightCounter; }\n if (preFlightNotes !== undefined) { this.preFlightNotes = preFlightNotes; }\n if (operationNotes !== undefined) { this.operationNotes = operationNotes; }\n if (reportedBy !== undefined) { this.reportedBy = reportedBy; }\n }\n\n}\n\n\n","\n\n// DocumentRevision entity represents a document revision in the system\nexport class DocumentRevision {\n\n\t// Document revision Id \n\tpublic id: string;\n\n\t// Document revision file name \n\tpublic name: string;\n\n\t// Document revision \n\tpublic revision: string;\n\n\t// Document revision URL \n\tpublic url: string;\n\n\t// Document revision creator \n\tpublic createdBy: string;\n\n\t// Document revision creation time [epoch time milliseconds] \n\tpublic createdOn: number;\n\n\t// Document revision MIME type \n\tpublic mimeType: string;\n\n constructor(id?: string, name?: string, revision?: string, url?: string, createdBy?: string, createdOn?: number, mimeType?: string) { \n if (id !== undefined) { this.id = id; }\n if (name !== undefined) { this.name = name; }\n if (revision !== undefined) { this.revision = revision; }\n if (url !== undefined) { this.url = url; }\n if (createdBy !== undefined) { this.createdBy = createdBy; }\n if (createdOn !== undefined) { this.createdOn = createdOn; }\n if (mimeType !== undefined) { this.mimeType = mimeType; }\n }\n\n}\n\n\n","\n\n// PilotQualificationsRisks group of pilot qualifications risk values\nexport class PilotQualificationsRisks {\n\n\t// Captain with less than 200 hours in aircraft type \n\tpublic captLess200Hr: number;\n\n\t// Captain with less than 100 hours in the last 90 days \n\tpublic captLess100Hr90d: number;\n\n\t// First Officer with less than 200 hours in aircraft type \n\tpublic firstOfLess200Hr: number;\n\n\t// First Officer with less than 100 hours in the last 90 days \n\tpublic firstOfLess100Hr90d: number;\n\n constructor(captLess200Hr?: number, captLess100Hr90d?: number, firstOfLess200Hr?: number, firstOfLess100Hr90d?: number) { \n if (captLess200Hr !== undefined) { this.captLess200Hr = captLess200Hr; }\n if (captLess100Hr90d !== undefined) { this.captLess100Hr90d = captLess100Hr90d; }\n if (firstOfLess200Hr !== undefined) { this.firstOfLess200Hr = firstOfLess200Hr; }\n if (firstOfLess100Hr90d !== undefined) { this.firstOfLess100Hr90d = firstOfLess100Hr90d; }\n }\n\n}\n\n\n","\n\n// SpecialRisks group of special / other risk values\nexport class SpecialRisks {\n\n\t// Special Flight Permit operation (ferry permit) \n\tpublic specialFlightPermit: number;\n\n\t// MEL / CDL Items (items related to safety of flight) \n\tpublic specialMelCdlItems: number;\n\n\t// Special flight limitations based on AFM equipment limitations \n\tpublic specialFlightLimitAfm: number;\n\n constructor(specialFlightPermit?: number, specialMelCdlItems?: number, specialFlightLimitAfm?: number) { \n if (specialFlightPermit !== undefined) { this.specialFlightPermit = specialFlightPermit; }\n if (specialMelCdlItems !== undefined) { this.specialMelCdlItems = specialMelCdlItems; }\n if (specialFlightLimitAfm !== undefined) { this.specialFlightLimitAfm = specialFlightLimitAfm; }\n }\n\n}\n\n\n","\nimport { MetarReport } from './MetarReport';\nimport { TafReport } from './TafReport';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Metar entity encapsulates METAR and TAF reports\nexport class Metar extends BaseEntityEx {\n\n\t// List of METAR reports \n\tpublic metarReports: MetarReport[];\n\n\t// List of TAF reports \n\tpublic tafReports: TafReport[];\n\n}\n\nexport function GetMetarColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"metarReports\", \"MetarReport\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"tafReports\", \"TafReport\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// BaseRestResponse is a common structure for all response types\nexport class BaseRestResponse {\n\n\t// Error code (0 for success) \n\tpublic code: number;\n\n\t// Error message \n\tpublic error: string;\n\n constructor(code?: number, error?: string) { \n if (code !== undefined) { this.code = code; }\n if (error !== undefined) { this.error = error; }\n }\n\n}\n\n\n","\n\n// AnyKeyValue model used as a string key-value pair\nexport class AnyKeyValue {\n\n\t// Tuple key \n\tpublic key: string;\n\n\t// Tuple value \n\tpublic value: any;\n\n constructor(key?: string, value?: any) { \n if (key !== undefined) { this.key = key; }\n if (value !== undefined) { this.value = value; }\n }\n\n}\n\n\n","\n\n// IntKeyValue model used as a string key- (int)value pair\nexport class IntKeyValue {\n\n\t// Tuple key \n\tpublic key: string;\n\n\t// Tuple value \n\tpublic value: number;\n\n constructor(key?: string, value?: number) { \n if (key !== undefined) { this.key = key; }\n if (value !== undefined) { this.value = value; }\n }\n\n}\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// LeadAction entity is a followup action record\nexport class LeadAction extends BaseEntityEx {\n\n\t// Lead ID \n\tpublic leadId: string;\n\n\t// When followup action was reported [Epoch milliseconds] \n\tpublic reportedOn: number;\n\n\t// Who did the followup action \n\tpublic reportedBy: string;\n\n\t// Action description \n\tpublic description: string;\n\n}\n\nexport function GetLeadActionColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"leadId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"reportedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"reportedBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { StatusCode } from './StatusCode';\nimport { MaintenanceActionCode } from './MaintenanceActionCode';\nimport { ColumnDef } from './ColumnDef';\n\n// Maintenance entity is an airplane airworthiness certificate\nexport class Maintenance extends BaseEntityEx {\n\n\t// Maintenance name \n\tpublic name: string;\n\n\t// Maintenance description \n\tpublic description: string;\n\n\t// Linked airplane ID \n\tpublic airplaneId: string;\n\n\t// Linked document ID \n\tpublic documentId: string;\n\n\t// Airplane hobs counter \n\tpublic hobs: number;\n\n\t// Airplane next hobs for inspection \n\tpublic nextHobs: number;\n\n\t// Airplane tachometer counter \n\tpublic tach: number;\n\n\t// Airplane next tachometer for inspection \n\tpublic nextTach: number;\n\n\t// Maintenance Certificate is valid until the timestamp [epoch time milliseconds] \n\tpublic validUntil: number;\n\n\t// Maintenance workflow status: UNDEFINED | PENDING | IN_PROCESS | COMPLETED ... \n\tpublic status: StatusCode;\n\n\t// Airworthiness component code \n\tpublic component: string;\n\n\t// Airworthiness action code \n\tpublic action: MaintenanceActionCode;\n\n\t// Time of notification sent to contact [epoch time milliseconds] \n\tpublic notifyAt: number;\n\n\t// Notification subject \n\tpublic subject: string;\n\n\t// Notification message \n\tpublic message: string;\n\n}\n\nexport function GetMaintenanceColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"documentId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hobs\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"nextHobs\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"tach\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"nextTach\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"validUntil\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"StatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"component\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"action\", \"MaintenanceActionCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"notifyAt\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"subject\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"message\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { InstructionTypeCode } from './InstructionTypeCode';\nimport { SyllabusStageCode } from './SyllabusStageCode';\nimport { AssessmentCode } from './AssessmentCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// SyllabusTrack entity is tracking syllabus items by contacts\nexport class SyllabusTrack extends BaseEntityEx {\n\n\t// Lesson topic from the instruction plan syllabus \n\tpublic topicId: string;\n\n\t// Syllabus plan (Flight category) \n\tpublic plan: FlightCategoryCode;\n\n\t// Topic instruction type (FLIGHT | CLASS | SIMULATOR) \n\tpublic type: InstructionTypeCode;\n\n\t// Topic stage in the syllabus (group) \n\tpublic stage: SyllabusStageCode;\n\n\t// Topic sequence number \n\tpublic seq: string;\n\n\t// Topic index number \n\tpublic num: number;\n\n\t// Topic name \n\tpublic name: string;\n\n\t// Topic duration (in minutes) \n\tpublic duration: number;\n\n\t// Contact (Student) ID \n\tpublic studentId: string;\n\n\t// Instructor ID \n\tpublic instructorId: string;\n\n\t// Instructor assessment (score) enum - lesson_score \n\tpublic assessment: AssessmentCode;\n\n\t// Link to flight ID (if it is a flight / simulator) \n\tpublic flightId: string;\n\n\t// Link to flight ID (if it is a flight / simulator) \n\tpublic flightNum: number;\n\n\t// Link to flight ID (if it is a flight / simulator) \n\tpublic flightName: string;\n\n\t// The timestamp when the topic was approved [Epoch milliseconds Timestamp] \n\tpublic approvedOn: number;\n\n\t// Total instructed flight time \n\tpublic instructedFlightTime: number;\n\n\t// Total Instrument flight time \n\tpublic instrumentsFlightTime: number;\n\n\t// Total student Solo flight time \n\tpublic soloFlightTime: number;\n\n\t// Total instructed navigation flight time \n\tpublic instructedNavTime: number;\n\n\t// Total student Solo navigation flight time \n\tpublic soloNavTime: number;\n\n\t// Total student night flight time \n\tpublic nightFlightTime: number;\n\n\t// Total flight time \n\tpublic totalFlightTime: number;\n\n\t// Total flight Hobbs \n\tpublic totalHobbs: number;\n\n}\n\nexport function GetSyllabusTrackColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"topicId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"plan\", \"FlightCategoryCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"InstructionTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"stage\", \"SyllabusStageCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"seq\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"num\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"duration\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"studentId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"instructorId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"assessment\", \"AssessmentCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNum\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"approvedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"instructedFlightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"instrumentsFlightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"soloFlightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"instructedNavTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"soloNavTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"nightFlightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalFlightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalHobbs\", \"number\", \"decimal\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// SystemConfig is a global System Configuration variable\nexport class SystemConfig extends BaseEntityEx {\n\n\t// String value \n\tpublic strVal: string;\n\n\t// Int value \n\tpublic intVal: number;\n\n}\n\nexport function GetSystemConfigColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"strVal\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"intVal\", \"number\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { BaseRestResponse } from './BaseRestResponse';\nimport { ColumnDef } from './ColumnDef';\n\n// ActionResponse message is returned for any action on entity with no return data (e.d. delete)\nexport class ActionResponse extends BaseRestResponse {\n\n\t// The entity key (Id) \n\tpublic key: string;\n\n\t// Additional data \n\tpublic data: string;\n\n}\n\nexport function GetActionResponseColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"key\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"data\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// EntitiesRequest message is returned for any action returning multiple entities\nexport class EntitiesRequest<T> {\n\n\t// List of objects in the current result set \n\tpublic list: T[];\n\n constructor(list?: T[]) { \n if (list !== undefined) { this.list = list; }\n }\n\n}\n\n\n","\n\n// Json Represent arbitrary JSON fields collection\n// It is a map of string to any, used for flexible data structures.\nexport class Json {\n\n constructor() { \n }\n\n}\n\n\n","\n\n// JsonDoc is a Json document to store in Document object store (Postgres, ElasticSearch, Couchbase ...)\n// It serves as a generic container for JSON data with a unique identifier.\nexport class JsonDoc {\n\n\t// Id is the unique identifier of the document \n\tpublic id: string;\n\n\t// Data is the raw JSON string content \n\tpublic data: string;\n\n constructor(id?: string, data?: string) { \n if (id !== undefined) { this.id = id; }\n if (data !== undefined) { this.data = data; }\n }\n\n}\n\n\n","\n\n// SimpleEntity is a generic wrapper to express a primitive type as an Entity.\n// It is useful when you need to treat a simple value (like a string or int) as a full-fledged Entity\n// in the system, for example when passing it to functions that expect an Entity interface.\nexport class SimpleEntity<T> {\n\n\t// Value is the wrapped entity value \n\tpublic value: T;\n\n constructor(value?: T) { \n if (value !== undefined) { this.value = value; }\n }\n\n}\n\n\n","\n\n// LoginParams model used for authorize user by email or by SMS\nexport class LoginParams {\n\n\t// User email for login authentication or mail verification \n\tpublic email: string;\n\n\t// User mobile phone for SMS verification \n\tpublic mobile: string;\n\n\t// User token if he wsa already authenticated \n\tpublic token: string;\n\n constructor(email?: string, mobile?: string, token?: string) { \n if (email !== undefined) { this.email = email; }\n if (mobile !== undefined) { this.mobile = mobile; }\n if (token !== undefined) { this.token = token; }\n }\n\n}\n\n\n","\nimport { BookingSlot } from './BookingSlot';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// BookingSlotsSet entity is a collection of slots per month to add or to remove\nexport class BookingSlotsSet extends BaseEntityEx {\n\n\t// Slots set year \n\tpublic year: number;\n\n\t// Slots set month (1..12) \n\tpublic month: number;\n\n\t// List of slots to add \n\tpublic addSlots: BookingSlot[];\n\n\t// List of slots to remove \n\tpublic delSlots: BookingSlot[];\n\n}\n\nexport function GetBookingSlotsSetColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"year\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"month\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"addSlots\", \"BookingSlot\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"delSlots\", \"BookingSlot\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { FlightTypeCode } from './FlightTypeCode';\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { AssessmentCode } from './AssessmentCode';\n\n// Lesson includes flight instruction lesson details\nexport class Lesson {\n\n\t// Lesson number - lesson_number \n\tpublic number: number;\n\n\t// Lesson type: INSTRUCTION | INSTRUCTION_CVFR | INSTRUCTION_IFR ... \n\tpublic type: FlightTypeCode;\n\n\t// Flight instruction plan \n\tpublic instructionPlan: FlightCategoryCode;\n\n\t// Lesson topic from the instruction plan syllabus \n\tpublic topicId: string;\n\n\t// Instructor assessment (score) enum - lesson_score \n\tpublic assessment: AssessmentCode;\n\n\t// Pilot / Instructor comments after flight \n\tpublic comments: string;\n\n\t// First Officer / Student flight counter - student_flights_count \n\tpublic flightCounter: number;\n\n\t// Total instructed flight time - from hobbs \n\tpublic instructedFlightTime: number;\n\n\t// Total Instrument flight time \n\tpublic instrumentsFlightTime: number;\n\n\t// Total student Solo flight time \n\tpublic soloFlightTime: number;\n\n\t// Total instructed navigation flight time \n\tpublic instructedNavTime: number;\n\n\t// Total student Solo navigation flight time \n\tpublic soloNavTime: number;\n\n\t// Total student night flight time \n\tpublic nightTime: number;\n\n constructor(number?: number, type?: FlightTypeCode, instructionPlan?: FlightCategoryCode, topicId?: string, assessment?: AssessmentCode, comments?: string, flightCounter?: number, instructedFlightTime?: number, instrumentsFlightTime?: number, soloFlightTime?: number, instructedNavTime?: number, soloNavTime?: number, nightTime?: number) { \n if (number !== undefined) { this.number = number; }\n if (type !== undefined) { this.type = type; }\n if (instructionPlan !== undefined) { this.instructionPlan = instructionPlan; }\n if (topicId !== undefined) { this.topicId = topicId; }\n if (assessment !== undefined) { this.assessment = assessment; }\n if (comments !== undefined) { this.comments = comments; }\n if (flightCounter !== undefined) { this.flightCounter = flightCounter; }\n if (instructedFlightTime !== undefined) { this.instructedFlightTime = instructedFlightTime; }\n if (instrumentsFlightTime !== undefined) { this.instrumentsFlightTime = instrumentsFlightTime; }\n if (soloFlightTime !== undefined) { this.soloFlightTime = soloFlightTime; }\n if (instructedNavTime !== undefined) { this.instructedNavTime = instructedNavTime; }\n if (soloNavTime !== undefined) { this.soloNavTime = soloNavTime; }\n if (nightTime !== undefined) { this.nightTime = nightTime; }\n }\n\n}\n\n\n","\nimport { WeatherRisks } from './WeatherRisks';\nimport { SpecialRisks } from './SpecialRisks';\nimport { Mitigation } from './Mitigation';\nimport { PilotQualificationsRisks } from './PilotQualificationsRisks';\nimport { CrewDutyDayRisks } from './CrewDutyDayRisks';\nimport { DepartureRisks } from './DepartureRisks';\nimport { DestinationRisks } from './DestinationRisks';\nimport { TripRisks } from './TripRisks';\n\n// RiskAssessment Risk Assessment Tool & Mitigation Strategies\nexport class RiskAssessment {\n\n\t// Risk assessment time \n\tpublic timestamp: number;\n\n\t// Pilot Qualifications and and Experience risks \n\tpublic pilotQualifications: PilotQualificationsRisks;\n\n\t// Crew Duty Day risks \n\tpublic crewDutyDay: CrewDutyDayRisks;\n\n\t// Departure risks \n\tpublic departure: DepartureRisks;\n\n\t// Destination risks \n\tpublic destination: DestinationRisks;\n\n\t// Trip risks \n\tpublic trip: TripRisks;\n\n\t// Weather risks \n\tpublic weather: WeatherRisks;\n\n\t// Other special risks \n\tpublic other: SpecialRisks;\n\n\t// Risks mitigation strategy \n\tpublic mitigation: Mitigation;\n\n constructor(timestamp?: number, pilotQualifications?: PilotQualificationsRisks, crewDutyDay?: CrewDutyDayRisks, departure?: DepartureRisks, destination?: DestinationRisks, trip?: TripRisks, weather?: WeatherRisks, other?: SpecialRisks, mitigation?: Mitigation) { \n if (timestamp !== undefined) { this.timestamp = timestamp; }\n if (pilotQualifications !== undefined) { this.pilotQualifications = pilotQualifications; }\n if (crewDutyDay !== undefined) { this.crewDutyDay = crewDutyDay; }\n if (departure !== undefined) { this.departure = departure; }\n if (destination !== undefined) { this.destination = destination; }\n if (trip !== undefined) { this.trip = trip; }\n if (weather !== undefined) { this.weather = weather; }\n if (other !== undefined) { this.other = other; }\n if (mitigation !== undefined) { this.mitigation = mitigation; }\n }\n\n}\n\n\n","\nimport { NotificationTypeCode } from './NotificationTypeCode';\nimport { PriorityCode } from './PriorityCode';\nimport { StringKeyValue } from './StringKeyValue';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Notification user notification entry\nexport class Notification extends BaseEntityEx {\n\n\t// Notification type: GENERAL | FLIGHTS | CERTIFICATE | UNREAD | BALANCE ... \n\tpublic type: NotificationTypeCode;\n\n\t// Airplane type (model, variant) \n\tpublic description: string;\n\n\t// Notification severity: LOW | MEDIUM | HIGH \n\tpublic severity: PriorityCode;\n\n\t// list of related items (ID, NAME) \n\tpublic items: StringKeyValue[];\n\n\t// number of items in the list \n\tpublic count: number;\n\n}\n\nexport function GetNotificationColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"NotificationTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"severity\", \"PriorityCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"items\", \"StringKeyValue\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"count\", \"number\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// Entities is a generic wrapper to express a list of primitive or complex types as an Entity.\n// It allows a collection of items to be treated as a single Entity unit.\nexport class Entities<T> {\n\n\t// Values is the list of wrapped entities or values \n\tpublic values: T[];\n\n constructor(values?: T[]) { \n if (values !== undefined) { this.values = values; }\n }\n\n}\n\n\n","\n\n// EntityAction represents the type of action performed on an entity.\nexport class EntityAction {\n\n constructor() { \n }\n\n}\n\n\n","\n\n// Address model represents an address\nexport class Address {\n\n\t// Street address \n\tpublic street: string;\n\n\t// City \n\tpublic city: string;\n\n\t// State (if applicable) \n\tpublic state: string;\n\n\t// Local zip code (postal cod) \n\tpublic zipCode: string;\n\n\t// Country name \n\tpublic country: string;\n\n constructor(street?: string, city?: string, state?: string, zipCode?: string, country?: string) { \n if (street !== undefined) { this.street = street; }\n if (city !== undefined) { this.city = city; }\n if (state !== undefined) { this.state = state; }\n if (zipCode !== undefined) { this.zipCode = zipCode; }\n if (country !== undefined) { this.country = country; }\n }\n\n}\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// FlightPassenger entity is a passenger in the flight\nexport class FlightPassenger extends BaseEntityEx {\n\n\t// Flight ID \n\tpublic flightId: string;\n\n\t// Flight Number \n\tpublic flightNumber: number;\n\n\t// Passenger name \n\tpublic name: string;\n\n\t// Passenger Mobile phone \n\tpublic mobile: string;\n\n\t// Passenger Email address \n\tpublic email: string;\n\n}\n\nexport function GetFlightPassengerColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// Magneto model represents magneto metrics\nexport class Magneto {\n\n\t// Inspection frequency [hours] \n\tpublic inspectionFrequency: number;\n\n\t// Last Inspection [hours] \n\tpublic lastInspectionHours: number;\n\n\t// Next Inspection [hours] \n\tpublic nextInspectionHours: number;\n\n\t// Remaining hours to the next inspection \n\tpublic remainingHours: number;\n\n constructor(inspectionFrequency?: number, lastInspectionHours?: number, nextInspectionHours?: number, remainingHours?: number) { \n if (inspectionFrequency !== undefined) { this.inspectionFrequency = inspectionFrequency; }\n if (lastInspectionHours !== undefined) { this.lastInspectionHours = lastInspectionHours; }\n if (nextInspectionHours !== undefined) { this.nextInspectionHours = nextInspectionHours; }\n if (remainingHours !== undefined) { this.remainingHours = remainingHours; }\n }\n\n}\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// BookingSlot entity is a slot for booking a flight\nexport class BookingSlot extends BaseEntityEx {\n\n\t// Slot start time \n\tpublic from: number;\n\n\t// Slot end time \n\tpublic to: number;\n\n\t// Slot is open for reservation \n\tpublic isOpen: boolean;\n\n\t// Slot is available \n\tpublic isFree: boolean;\n\n\t// Account ID (who took the slot) \n\tpublic accountId: string;\n\n\t// Contact ID (who took the slot) \n\tpublic contactId: string;\n\n\t// Booking ID (Booking reference) \n\tpublic bookingId: string;\n\n}\n\nexport function GetBookingSlotColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"from\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"to\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"isOpen\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isFree\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"bookingId\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { TimeFrame } from './TimeFrame';\n\n// AuditLogFilter list of fields to filter audit log entries\nexport class AuditLogFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by time frame \n\tpublic period: TimeFrame;\n\n\t// Filter by User ID \n\tpublic userId: string;\n\n\t// Filter by action \n\tpublic action: string;\n\n\t// Filter by item type \n\tpublic itemType: string;\n\n\t// Filter by item ID \n\tpublic itemId: string;\n\n\t// Filter by item name \n\tpublic itemName: string;\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, period?: TimeFrame, userId?: string, action?: string, itemType?: string, itemId?: string, itemName?: string, sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (period !== undefined) { this.period = period; }\n if (userId !== undefined) { this.userId = userId; }\n if (action !== undefined) { this.action = action; }\n if (itemType !== undefined) { this.itemType = itemType; }\n if (itemId !== undefined) { this.itemId = itemId; }\n if (itemName !== undefined) { this.itemName = itemName; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\nimport { TransactionTypeCode } from './TransactionTypeCode';\nimport { TimeFrame } from './TimeFrame';\n\n// CreditsFilter list of fields to filter credits\nexport class CreditsFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by account \n\tpublic accountId: string;\n\n\t// Filter by flight \n\tpublic flightId: string;\n\n\t// Filter by transaction type(s) \n\tpublic type: TransactionTypeCode[];\n\n\t// Filter by time frame of transaction time \n\tpublic period: TimeFrame;\n\n\t// Filter by reference \n\tpublic reference: string;\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, accountId?: string, flightId?: string, type?: TransactionTypeCode[], period?: TimeFrame, reference?: string, sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (accountId !== undefined) { this.accountId = accountId; }\n if (flightId !== undefined) { this.flightId = flightId; }\n if (type !== undefined) { this.type = type; }\n if (period !== undefined) { this.period = period; }\n if (reference !== undefined) { this.reference = reference; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\nimport { Fuel } from './Fuel';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { AirplaneValidationFlag } from './AirplaneValidationFlag';\nimport { Magneto } from './Magneto';\nimport { Propeller } from './Propeller';\nimport { WBConfig } from './WBConfig';\nimport { TypeRatingFlag } from './TypeRatingFlag';\nimport { AirplaneStatusCode } from './AirplaneStatusCode';\nimport { Engine } from './Engine';\nimport { ColumnDef } from './ColumnDef';\n\n// Airplane entity represents an airplane\nexport class Airplane extends BaseEntityEx {\n\n\t// Name \n\tpublic name: string;\n\n\t// Description \n\tpublic description: string;\n\n\t// Airplane model \n\tpublic model: string;\n\n\t// Airplane serial number \n\tpublic serialNo: string;\n\n\t// Airplane type rating \n\tpublic typeRating: TypeRatingFlag;\n\n\t// Airplane status \n\tpublic status: AirplaneStatusCode;\n\n\t// Auto-calculated flag to mark if the airplane is active (available) or not \n\tpublic isActive: boolean;\n\n\t// Airplane hobs counter \n\tpublic hobs: number;\n\n\t// Airplane tachometer counter \n\tpublic tach: number;\n\n\t// Airplane next tachometer for inspection \n\tpublic nextTach: number;\n\n\t// Airplane air time (hours) \n\tpublic airTime: number;\n\n\t// Airplane customer number \n\tpublic customerNo: string;\n\n\t// Airworthiness flags \n\tpublic airworthiness: AirplaneValidationFlag;\n\n\t// Airworthiness required flags for the airplane to be active \n\tpublic required: AirplaneValidationFlag;\n\n\t// Fixed value to first flight \n\tpublic fixedValueToFirstFlight: number;\n\n\t// AC total time \n\tpublic acTotalTime: number;\n\n\t// Single / Left Engine indicators \n\tpublic engine: Engine;\n\n\t// Left Magneto indicators \n\tpublic leftMagneto: Magneto;\n\n\t// Right Magneto indicators \n\tpublic rightMagneto: Magneto;\n\n\t// Single / Left Propeller indicators \n\tpublic propeller: Propeller;\n\n\t// Fuel indicators \n\tpublic fuel: Fuel;\n\n\t// Airplane related documents \n\tpublic documents: string[];\n\n\t// Weight and Balance configuration parameters \n\tpublic wbConfig: WBConfig;\n\n}\n\nexport function GetAirplaneColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"model\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"serialNo\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"typeRating\", \"TypeRatingFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"AirplaneStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isActive\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hobs\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"tach\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"nextTach\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"airTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"customerNo\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airworthiness\", \"AirplaneValidationFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"required\", \"AirplaneValidationFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fixedValueToFirstFlight\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"acTotalTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"engine\", \"Engine\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"leftMagneto\", \"Magneto\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"rightMagneto\", \"Magneto\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"propeller\", \"Propeller\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fuel\", \"Fuel\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"documents\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"wbConfig\", \"WBConfig\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// DepartureRisks group of departure risk values\nexport class DepartureRisks {\n\n\t// Mountainous airport \n\tpublic mountainousAirport: number;\n\n\t// Control tower not operational at ETD \n\tpublic towerNotOperationalAtEtd: number;\n\n\t// Departure - Non-towered airport \n\tpublic nonToweredAirport: number;\n\n\t// Departure - Wet Runway \n\tpublic wetRunway: number;\n\n\t// Departure - Contaminated Runway \n\tpublic contaminatedRunway: number;\n\n constructor(mountainousAirport?: number, towerNotOperationalAtEtd?: number, nonToweredAirport?: number, wetRunway?: number, contaminatedRunway?: number) { \n if (mountainousAirport !== undefined) { this.mountainousAirport = mountainousAirport; }\n if (towerNotOperationalAtEtd !== undefined) { this.towerNotOperationalAtEtd = towerNotOperationalAtEtd; }\n if (nonToweredAirport !== undefined) { this.nonToweredAirport = nonToweredAirport; }\n if (wetRunway !== undefined) { this.wetRunway = wetRunway; }\n if (contaminatedRunway !== undefined) { this.contaminatedRunway = contaminatedRunway; }\n }\n\n}\n\n\n","\nimport { FlightPurposeCode } from './FlightPurposeCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Price entity is a single pricing of an airplane per flight purpose in the price list\nexport class Price extends BaseEntityEx {\n\n\t// Price item name \n\tpublic name: string;\n\n\t// Airplane ID \n\tpublic airplaneId: string;\n\n\t// Special price for a specific account (* for all accounts) \n\tpublic accountId: string;\n\n\t// Special price for a specific purpose (UNDEFINED for all) \n\tpublic purpose: FlightPurposeCode;\n\n\t// Cost of the airplane per flight purpose \n\tpublic cost: number;\n\n}\n\nexport function GetPriceColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"cost\", \"number\", \"decimal\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// Timestamp represents Epoch milliseconds timestamp.\n// It is the primary time representation in the system, allowing for easy serialization and arithmetic.\nexport class Timestamp {\n\n constructor() { \n }\n\n}\n\n\n","\nimport { TimeFrame } from './TimeFrame';\nimport { UserTypeCode } from './UserTypeCode';\nimport { UserStatusCode } from './UserStatusCode';\n\n// UsersFilter list of fields to filter users\nexport class UsersFilter {\n\n\t// Filter by text search on name / id / email (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by type(s) \n\tpublic type: UserTypeCode[];\n\n\t// Filter by status(s) \n\tpublic status: UserStatusCode[];\n\n\t// Filter by time frame of last sign in \n\tpublic lastSignIn: TimeFrame;\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, type?: UserTypeCode[], status?: UserStatusCode[], lastSignIn?: TimeFrame, sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (type !== undefined) { this.type = type; }\n if (status !== undefined) { this.status = status; }\n if (lastSignIn !== undefined) { this.lastSignIn = lastSignIn; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\nimport { BookingTypeFlag } from './BookingTypeFlag';\nimport { BookingStatusCode } from './BookingStatusCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Booking entity is a flight booking request to secure an airplane for specific time slot\nexport class Booking extends BaseEntityEx {\n\n\t// Booking name (datetime - accountName) \n\tpublic name: string;\n\n\t// Account ID \n\tpublic accountId: string;\n\n\t// Contact ID - it would be the PIC unless it is flight lesson which in this case it would be SIC \n\tpublic contactId: string;\n\n\t// Captain (PIC) - for flight lesson, it should be the instructor \n\tpublic captain: string;\n\n\t// First Officer (SIC) - for flight lesson, it should be the instructor \n\tpublic firstOfficer: string;\n\n\t// The user who requested the booking \n\tpublic requestedBy: string;\n\n\t// Additional notes provided by the user \n\tpublic requestedNotes: string;\n\n\t// Type of booking - to be replaced by Flight purpose \n\tpublic type: BookingTypeFlag;\n\n\t// Flag to indicate if this booking includes pattern slot (only in case of flight lesson) \n\tpublic isPatterns: boolean;\n\n\t// Airplane ID (when the booking is approved) \n\tpublic airplaneId: string;\n\n\t// When to ask for the airplane [Epoch milliseconds] \n\tpublic placementOn: number;\n\n\t// When to return the airplane [Epoch milliseconds] \n\tpublic placementTo: number;\n\n\t// Status of booking: PENDING | ASSIGNED | CANCELLED | REJECTED ... \n\tpublic status: BookingStatusCode;\n\n\t// Booking comments provided by the staff \n\tpublic comments: string;\n\n\t// Flight destination \n\tpublic destination: string;\n\n\t// Flight ID related to this booking request \n\tpublic flightId: string;\n\n\t// Slot ID related to this booking request (for patterns request only) \n\tpublic slotId: string;\n\n\t// Lead ID related to this booking request (for introductory flights only) \n\tpublic leadId: string;\n\n}\n\nexport function GetBookingColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captain\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficer\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"requestedBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"requestedNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"BookingTypeFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isPatterns\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"placementOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"placementTo\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"BookingStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"comments\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"slotId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"leadId\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { FlightPurposeCode } from './FlightPurposeCode';\nimport { FlightClassCode } from './FlightClassCode';\nimport { FlightTypeCode } from './FlightTypeCode';\nimport { FlightStatusCode } from './FlightStatusCode';\nimport { BillingStatusCode } from './BillingStatusCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { TOLData } from './TOLData';\nimport { Lesson } from './Lesson';\nimport { ColumnDef } from './ColumnDef';\n\n// Flight entity is a single flight in the airplane\nexport class Flight extends BaseEntityEx {\n\n\t// Flight name \n\tpublic name: string;\n\n\t// Flight description \n\tpublic description: string;\n\n\t// Flight number \n\tpublic flightNumber: number;\n\n\t// Flight number as string \n\tpublic flightString: string;\n\n\t// Flight takeoff time (same as Takeoff.Planned) \n\tpublic flightTime: number;\n\n\t// Flight destination \n\tpublic destination: string;\n\n\t// Flag to indicate if this flight includes pattern slot (only in case of flight lesson) \n\tpublic isPatterns: boolean;\n\n\t// Account ID \n\tpublic accountId: string;\n\n\t// Airplane ID \n\tpublic airplaneId: string;\n\n\t// Captain / Instructor contact ID \n\tpublic captain: string;\n\n\t// First Officer / Student contact ID \n\tpublic firstOfficer: string;\n\n\t// Passengers names \n\tpublic passengers: string[];\n\n\t// Crew members (name:role) \n\tpublic crew: string[];\n\n\t// Purpose of the flight \n\tpublic purpose: FlightPurposeCode;\n\n\t// In case of OTHER, Purpose of the flight \n\tpublic purposeOt: string;\n\n\t// Flight class - replace purpose \n\tpublic flightClass: FlightClassCode;\n\n\t// Flight sub-class - replace purpose \n\tpublic flightCategory: FlightCategoryCode;\n\n\t// Flight type: CVFR | IFR \n\tpublic type: FlightTypeCode;\n\n\t// Flight status: REGISTERED | DELETE | CANCELLED ... \n\tpublic status: FlightStatusCode;\n\n\t// Billing status \n\tpublic billingStatus: BillingStatusCode;\n\n\t// Flight attending time [YYYY-MM-DD HH:mm] \n\tpublic attendingTime: string;\n\n\t// Flight boarding time [YYYY-MM-DD HH:mm] \n\tpublic boardingTime: string;\n\n\t// Takeoff data \n\tpublic takeoff: TOLData;\n\n\t// Landing data \n\tpublic landing: TOLData;\n\n\t// Weight and Balance configuration \n\tpublic wbConfig: string;\n\n\t// Weight and Balance manual specification \n\tpublic wbManual: string;\n\n\t// Pre Flight notes \n\tpublic preFlightNotes: string;\n\n\t// Flight operation notes \n\tpublic operationNotes: string;\n\n\t// Fuel level \n\tpublic fuelLevel: number;\n\n\t// Oil level \n\tpublic oilLevel: number;\n\n\t// Flight lesson attributes \n\tpublic lesson: Lesson;\n\n\t// Pilot certification check ? \n\tpublic pilotCertCheck: number;\n\n\t// Contact Id of the pre-flight form reporter \n\tpublic preFlightReporter: string;\n\n\t// Contact Id of the post-flight form reporter \n\tpublic postFlightReporter: string;\n\n\t// Contact Id of the post-flight instructor form reporter \n\tpublic instructorReporter: string;\n\n\t// Booking Id reference \n\tpublic bookingReference: string;\n\n}\n\nexport function GetFlightColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightString\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightTime\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isPatterns\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captain\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficer\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"passengers\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"crew\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purposeOt\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightClass\", \"FlightClassCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightCategory\", \"FlightCategoryCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"FlightTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"FlightStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"billingStatus\", \"BillingStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"attendingTime\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"boardingTime\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"takeoff\", \"TOLData\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"landing\", \"TOLData\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"wbConfig\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"wbManual\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"preFlightNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"operationNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fuelLevel\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"oilLevel\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"lesson\", \"Lesson\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"pilotCertCheck\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"preFlightReporter\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"postFlightReporter\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"instructorReporter\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"bookingReference\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// TOLData is Takeoff and landing data\nexport class TOLData {\n\n\t// Planned Time [epoch time milliseconds] \n\tpublic planned: number;\n\n\t// Actual Time [epoch time milliseconds] \n\tpublic time: number;\n\n\t// Hobs count \n\tpublic hobs: number;\n\n\t// Tachometer count \n\tpublic tach: number;\n\n\t// Airport / Field \n\tpublic field: string;\n\n\t// Field Timezone provided as IANA Time zone abbreviation (e.g. IST, CET) or by UTC offset (e.g. +02:00) \n\tpublic timezone: string;\n\n constructor(planned?: number, time?: number, hobs?: number, tach?: number, field?: string, timezone?: string) { \n if (planned !== undefined) { this.planned = planned; }\n if (time !== undefined) { this.time = time; }\n if (hobs !== undefined) { this.hobs = hobs; }\n if (tach !== undefined) { this.tach = tach; }\n if (field !== undefined) { this.field = field; }\n if (timezone !== undefined) { this.timezone = timezone; }\n }\n\n}\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Lookup entity is a key-value string lookup (used as a configurable, open enum)\n// Id of the lookup is in the format of [key]@[domain]\nexport class Lookup extends BaseEntityEx {\n\n\t// Lookup domain \n\tpublic domain: string;\n\n\t// Group \n\tpublic group: string;\n\n\t// Action that was performed \n\tpublic key: string;\n\n\t// Item string value \n\tpublic value: string;\n\n\t// Item numeric value (for ordering) \n\tpublic counter: number;\n\n}\n\nexport function GetLookupColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"domain\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"group\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"key\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"value\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"counter\", \"number\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { UserTypeCode } from './UserTypeCode';\nimport { UserRoleFlag } from './UserRoleFlag';\nimport { UserStatusCode } from './UserStatusCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// User represents a human / system operator that has access to the system, and can perform operations\n// User authentication is done by an external identity provider\nexport class User extends BaseEntityEx {\n\n\t// User name \n\tpublic name: string;\n\n\t// User email \n\tpublic email: string;\n\n\t// User mobile phone number (for notification and validation) \n\tpublic mobile: string;\n\n\t// User type: UNDEFINED | SYSADMIN | SUPPORT | USER \n\tpublic type: UserTypeCode;\n\n\t// User roles flags \n\tpublic roles: UserRoleFlag;\n\n\t// User permissions groups \n\tpublic groups: string[];\n\n\t// User status: UNDEFINED | PENDING | ACTIVE | BLOCKED | SUSPENDED \n\tpublic status: UserStatusCode;\n\n\t// User last successful sign in timestamp [epoch time milliseconds] \n\tpublic lastSignIn: number;\n\n}\n\nexport function GetUserColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"UserTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"roles\", \"UserRoleFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"groups\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"UserStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"lastSignIn\", \"number\", \"datetime\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { BaseRestResponse } from './BaseRestResponse';\nimport { ColumnDef } from './ColumnDef';\n\n// EntityResponse message is returned for any create/update action on entity\nexport class EntityResponse<T> extends BaseRestResponse {\n\n\t// The entity \n\tpublic entity: T;\n\n}\n\nexport function GetEntityResponseColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"entity\", \"T\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { BaseRestResponse } from './BaseRestResponse';\nimport { ColumnDef } from './ColumnDef';\n\n// EntitiesResponse message is returned for any action returning multiple entities\nexport class EntitiesResponse<T> extends BaseRestResponse {\n\n\t// Current page (Bulk) number \n\tpublic page: number;\n\n\t// Size of page (items in bulk) \n\tpublic size: number;\n\n\t// Total number of pages \n\tpublic pages: number;\n\n\t// Total number of items in the query \n\tpublic total: number;\n\n\t// List of objects in the current result set \n\tpublic list: T[];\n\n}\n\nexport function GetEntitiesResponseColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"page\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"size\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"pages\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"total\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"list\", \"T\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// Point model represents a pont on 2D area\nexport class Point {\n\n\t// X axis value \n\tpublic x: number;\n\n\t// Y axis value \n\tpublic y: number;\n\n constructor(x?: number, y?: number) { \n if (x !== undefined) { this.x = x; }\n if (y !== undefined) { this.y = y; }\n }\n\n}\n\n\n","\n\n// Fuel model represents fuel metrics\nexport class Fuel {\n\n\t// Fuel tank size [Liters] \n\tpublic tankSize: number;\n\n\t// Fuel consumption \n\tpublic consumption: number;\n\n\t// Fuel cost \n\tpublic cost: number;\n\n\t// Estimated fuel in tank \n\tpublic estimatedFuelInTank: number;\n\n\t// Estimated endurance \n\tpublic estimatedEndurance: number;\n\n\t// Last updated on \n\tpublic lastUpdatedOn: number;\n\n\t// Last updated by flight number \n\tpublic lastUpdatedByFlight: number;\n\n constructor(tankSize?: number, consumption?: number, cost?: number, estimatedFuelInTank?: number, estimatedEndurance?: number, lastUpdatedOn?: number, lastUpdatedByFlight?: number) { \n if (tankSize !== undefined) { this.tankSize = tankSize; }\n if (consumption !== undefined) { this.consumption = consumption; }\n if (cost !== undefined) { this.cost = cost; }\n if (estimatedFuelInTank !== undefined) { this.estimatedFuelInTank = estimatedFuelInTank; }\n if (estimatedEndurance !== undefined) { this.estimatedEndurance = estimatedEndurance; }\n if (lastUpdatedOn !== undefined) { this.lastUpdatedOn = lastUpdatedOn; }\n if (lastUpdatedByFlight !== undefined) { this.lastUpdatedByFlight = lastUpdatedByFlight; }\n }\n\n}\n\n\n","\nimport { Tuple } from './Tuple';\n\n// Distribution model represents a grouped counts of elements of generic type int (usually enum)\nexport class Distribution<K,V> {\n\n\t// Distribution name \n\tpublic name: string;\n\n\t// Total count (of all elements) \n\tpublic total: V;\n\n\t// Map of int element to its count \n\tpublic values: Tuple<K, V>[];\n\n constructor(name?: string, total?: V, values?: Tuple<K, V>[]) { \n if (name !== undefined) { this.name = name; }\n if (total !== undefined) { this.total = total; }\n if (values !== undefined) { this.values = values; }\n }\n\n}\n\n\n","\n\n// TripRisks group of trip risk values\nexport class TripRisks {\n\n\t// Trip - Twilight operation \n\tpublic twilightOperation: number;\n\n\t// Trip - nighttime operation \n\tpublic nightTimeOperation: number;\n\n\t// Trip - Repositioning flight (no passengers or cargo) \n\tpublic repositioningFlight: number;\n\n\t// Pop-up trip (less than 4 hours notice) \n\tpublic popupTripLess4HrsNotice: number;\n\n\t// International trip \n\tpublic internationalTrip: number;\n\n constructor(twilightOperation?: number, nightTimeOperation?: number, repositioningFlight?: number, popupTripLess4HrsNotice?: number, internationalTrip?: number) { \n if (twilightOperation !== undefined) { this.twilightOperation = twilightOperation; }\n if (nightTimeOperation !== undefined) { this.nightTimeOperation = nightTimeOperation; }\n if (repositioningFlight !== undefined) { this.repositioningFlight = repositioningFlight; }\n if (popupTripLess4HrsNotice !== undefined) { this.popupTripLess4HrsNotice = popupTripLess4HrsNotice; }\n if (internationalTrip !== undefined) { this.internationalTrip = internationalTrip; }\n }\n\n}\n\n\n","\n\n// FollowUpAction model represents lead follow-up action\nexport class FollowUpAction {\n\n\t// When followup action was reported [Epoch milliseconds] \n\tpublic reportedOn: number;\n\n\t// Who did the followup action \n\tpublic reportedBy: string;\n\n\t// Action description \n\tpublic description: string;\n\n constructor(reportedOn?: number, reportedBy?: string, description?: string) { \n if (reportedOn !== undefined) { this.reportedOn = reportedOn; }\n if (reportedBy !== undefined) { this.reportedBy = reportedBy; }\n if (description !== undefined) { this.description = description; }\n }\n\n}\n\n\n","\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { Syllabus } from './Syllabus';\nimport { SyllabusStageCode } from './SyllabusStageCode';\nimport { SyllabusTrack } from './SyllabusTrack';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// StudentSheet entity is an aggregation of all student flight lessons\nexport class StudentSheet extends BaseEntityEx {\n\n\t// Syllabus plan (Flight category) \n\tpublic plan: FlightCategoryCode;\n\n\t// Airplane type \n\tpublic airplaneType: string;\n\n\t// Student Account ID \n\tpublic accountId: string;\n\n\t// Student contact ID \n\tpublic studentId: string;\n\n\t// Student name \n\tpublic studentName: string;\n\n\t// ID number \n\tpublic idNumber: string;\n\n\t// Pilot license number\tFlightTopics []SyllabusTopic `json:\"flightTopics\"` // Flight topics \n\tpublic pilotLicense: string;\n\n\t// Flight topics \n\tpublic flightTopics: Syllabus[];\n\n\t// Class topics \n\tpublic classTopics: Syllabus[];\n\n\t// Simulator topics \n\tpublic simTopics: Syllabus[];\n\n\t// Topic stages in the syllabus (group) \n\tpublic stages: SyllabusStageCode[];\n\n\t// Syllabus topics tracking (flights + sim + class) \n\tpublic tracking: SyllabusTrack[];\n\n\t// Total instructed flight time \n\tpublic totalInstructedFlightTime: number;\n\n\t// Total Instrument flight time \n\tpublic totalInstrumentsFlightTime: number;\n\n\t// Total student Solo flight time \n\tpublic totalSoloFlightTime: number;\n\n\t// Total instructed navigation flight time \n\tpublic totalInstructedNavTime: number;\n\n\t// Total student Solo navigation flight time \n\tpublic totalSoloNavTime: number;\n\n\t// Total student night flight time \n\tpublic totalNightFlightTime: number;\n\n\t// Total flight time \n\tpublic totalFlightTime: number;\n\n}\n\nexport function GetStudentSheetColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"plan\", \"FlightCategoryCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneType\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"studentId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"studentName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"idNumber\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"pilotLicense\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightTopics\", \"Syllabus\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"classTopics\", \"Syllabus\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"simTopics\", \"Syllabus\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"stages\", \"SyllabusStageCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"tracking\", \"SyllabusTrack\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"totalInstructedFlightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalInstrumentsFlightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalSoloFlightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalInstructedNavTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalSoloNavTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalNightFlightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalFlightTime\", \"number\", \"decimal\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// EntityRequest message is returned for any create/update action on entity\nexport class EntityRequest<T> {\n\n\t// The entity \n\tpublic entity: T;\n\n constructor(entity?: T) { \n if (entity !== undefined) { this.entity = entity; }\n }\n\n}\n\n\n","\nimport { AccountStatusCode } from './AccountStatusCode';\nimport { AccountTypeCode } from './AccountTypeCode';\n\n// AccountsFilter list of fields to filter accounts\nexport class AccountsFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// by status(s) \n\tpublic status: AccountStatusCode[];\n\n\t// by type(s) \n\tpublic type: AccountTypeCode[];\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, status?: AccountStatusCode[], type?: AccountTypeCode[], sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (status !== undefined) { this.status = status; }\n if (type !== undefined) { this.type = type; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\nimport { StatusCode } from './StatusCode';\nimport { ValidationFlag } from './ValidationFlag';\nimport { TimeFrame } from './TimeFrame';\n\n// CertificatesFilter list of fields to filter certificates\nexport class CertificatesFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by contact ID \n\tpublic contactId: string;\n\n\t// Filter by status(es) \n\tpublic status: StatusCode[];\n\n\t// Filter by validation type(es) \n\tpublic type: ValidationFlag[];\n\n\t// Filter by time frame of valid until \n\tpublic valid: TimeFrame;\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, contactId?: string, status?: StatusCode[], type?: ValidationFlag[], valid?: TimeFrame, sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (contactId !== undefined) { this.contactId = contactId; }\n if (status !== undefined) { this.status = status; }\n if (type !== undefined) { this.type = type; }\n if (valid !== undefined) { this.valid = valid; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// StorageItem data structure represent a file or folder in a storage system\nexport class StorageItem extends BaseEntityEx {\n\n\t// Storage item name \n\tpublic name: string;\n\n\t// Storage item path \n\tpublic path: string;\n\n\t// Storage item icon \n\tpublic icon: string;\n\n\t// Storage item \n\tpublic size: number;\n\n\t// MIME Type \n\tpublic mimeType: string;\n\n\t// Is folder \n\tpublic isFolder: boolean;\n\n}\n\nexport function GetStorageItemColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"path\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"icon\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"size\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mimeType\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isFolder\", \"boolean\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { UserTypeCode } from './UserTypeCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// AuditLog entity is a log entry in the audit log to track users / service account actions\nexport class AuditLog extends BaseEntityEx {\n\n\t// User Id \n\tpublic userId: string;\n\n\t// User type: UNDEFINED | SYSADMIN | USER | SERVICE_ACCOUNT \n\tpublic userType: UserTypeCode;\n\n\t// Action that was performed \n\tpublic action: string;\n\n\t// Item type \n\tpublic itemType: string;\n\n\t// Item Id \n\tpublic itemId: string;\n\n\t// Item Name \n\tpublic itemName: string;\n\n\t// Item value before change [Json] \n\tpublic beforeChange: string;\n\n\t// Item delta after change [Json] \n\tpublic afterChange: string;\n\n}\n\nexport function GetAuditLogColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"userId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"userType\", \"UserTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"action\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"itemType\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"itemId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"itemName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"beforeChange\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"afterChange\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { BillingRecord } from './BillingRecord';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// FlightBilling entity is a data extension for a single flight listing all billing details of this flight\n// The ID should be identical to the flight ID\nexport class FlightBilling extends BaseEntityEx {\n\n\t// Billing invoice records \n\tpublic invoiceRecords: BillingRecord[];\n\n\t// Billing invoice issue date [epoch time milliseconds] \n\tpublic invoiceDate: number;\n\n\t// Discount percentage (0 .. 100) - percentage_discount \n\tpublic discountPercentage: number;\n\n\t// Total before VAT - total_charge_c \n\tpublic totalBeforeVat: number;\n\n\t// Total including VAT - total_charge_inc_vat_bef_dis_c \n\tpublic totalAfterVat: number;\n\n\t// Total charge including VAT after discount - total_charge_includes_vat_c \n\tpublic totalAfterDiscount: number;\n\n\t// Pilot payment - pilot_requested_payment_c \n\tpublic pilotPayment: number;\n\n\t// Pilot payment status - pilot_payment_status_c \n\tpublic pilotPaymentStatus: string;\n\n\t// Pilot payment - lbl_first_officer_payment_c \n\tpublic firstOfficerPayment: number;\n\n\t// Pilot payment status - lbl_firts_officer_payment_st_c \n\tpublic firstOfficerPaymentStatus: string;\n\n}\n\nexport function GetFlightBillingColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"invoiceRecords\", \"BillingRecord\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"invoiceDate\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"discountPercentage\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"totalBeforeVat\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalAfterVat\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalAfterDiscount\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"pilotPayment\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"pilotPaymentStatus\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficerPayment\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficerPaymentStatus\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { Permission } from './Permission';\nimport { StringKeyValue } from './StringKeyValue';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Group represents a group of users to share permissions\nexport class Group extends BaseEntityEx {\n\n\t// Group name \n\tpublic name: string;\n\n\t// Group email \n\tpublic email: string;\n\n\t// List of permissions \n\tpublic permissions: Permission[];\n\n\t// List of group members (id->name pairs) - not persistent \n\tpublic members: StringKeyValue[];\n\n}\n\nexport function GetGroupColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"permissions\", \"Permission\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"members\", \"StringKeyValue\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// BaseEntity is a base structure for any concrete Entity.\n// It provides common fields like Id, CreatedOn, and UpdatedOn that are standard across most entities.\n// Embed this struct in your domain entities to inherit these standard fields and basic behavior.\nexport class BaseEntity {\n\n\t// Id is the unique object identifier \n\tpublic id: string;\n\n\t// CreatedOn is the timestamp when the object was created [Epoch milliseconds Timestamp] \n\tpublic createdOn: number;\n\n\t// UpdatedOn is the timestamp when the object was last updated [Epoch milliseconds Timestamp] \n\tpublic updatedOn: number;\n\n constructor(id?: string, createdOn?: number, updatedOn?: number) { \n if (id !== undefined) { this.id = id; }\n if (createdOn !== undefined) { this.createdOn = createdOn; }\n if (updatedOn !== undefined) { this.updatedOn = updatedOn; }\n }\n\n}\n\n\n","\n\n// IntEnumValue model used as an enum key- (int)value pair\nexport class IntEnumValue {\n\n\t// Tuple key \n\tpublic key: number;\n\n\t// Tuple value \n\tpublic value: number;\n\n constructor(key?: number, value?: number) { \n if (key !== undefined) { this.key = key; }\n if (value !== undefined) { this.value = value; }\n }\n\n}\n\n\n","\n\n// Propeller model represents propeller metrics\nexport class Propeller {\n\n\t// Propeller total time [hours] \n\tpublic totalTime: number;\n\n\t// Overhaul time frequency [hours] \n\tpublic overhaulFrequency: number;\n\n\t// Overhaul next due [hours] \n\tpublic overhaulNextDue: number;\n\n\t// Time remaining till the next Overhaul [hours] \n\tpublic hoursToOverhaul: number;\n\n\t// Last airframe Overhaul [hours] \n\tpublic lastAirframeOverhaul: number;\n\n constructor(totalTime?: number, overhaulFrequency?: number, overhaulNextDue?: number, hoursToOverhaul?: number, lastAirframeOverhaul?: number) { \n if (totalTime !== undefined) { this.totalTime = totalTime; }\n if (overhaulFrequency !== undefined) { this.overhaulFrequency = overhaulFrequency; }\n if (overhaulNextDue !== undefined) { this.overhaulNextDue = overhaulNextDue; }\n if (hoursToOverhaul !== undefined) { this.hoursToOverhaul = hoursToOverhaul; }\n if (lastAirframeOverhaul !== undefined) { this.lastAirframeOverhaul = lastAirframeOverhaul; }\n }\n\n}\n\n\n","\nimport { Point } from './Point';\n\n// WBConfig model represents weight and balance configuration\nexport class WBConfig {\n\n\t// Max takeoff weight [Lb] \n\tpublic maxTakeoffWeight: number;\n\n\t// Empty airplane weight [Lb] \n\tpublic airplaneWeight: number;\n\n\t// Front baggage area Weight [Lb] \n\tpublic frontBaggageWeight: number;\n\n\t// Rear baggage area Weight [Lb] \n\tpublic rearBaggageWeight: number;\n\n\t// Total (both) baggage areas Weight [Lb] \n\tpublic totalBaggageWeight: number;\n\n\t// Max usable fuel (Gallon) \n\tpublic maxUsableFuel: number;\n\n\t// Self airplane C.G. arm [inch] \n\tpublic selfArm: number;\n\n\t// Fuel tank C.G. arm [inch] \n\tpublic fuelTankArm: number;\n\n\t// Front seats C.G. arm [inch] \n\tpublic pilotsArm: number;\n\n\t// Rear seats C.G. arm [inch] \n\tpublic passengersArm: number;\n\n\t// Front baggage area C.G. arm [inch] \n\tpublic frontBaggageArm: number;\n\n\t// Rear baggage area C.G. arm [inch] \n\tpublic rearBaggageArm: number;\n\n\t// Max rear C.G. [inch] \n\tpublic maxRearArm: number;\n\n\t// Max front C.G. arm [inch] \n\tpublic maxFrontArm: number;\n\n\t// List of points representing the normal C.G envelope \n\tpublic normalEnvelope: Point[];\n\n\t// List of points representing the utility C.G envelope \n\tpublic utilityEnvelope: Point[];\n\n constructor(maxTakeoffWeight?: number, airplaneWeight?: number, frontBaggageWeight?: number, rearBaggageWeight?: number, totalBaggageWeight?: number, maxUsableFuel?: number, selfArm?: number, fuelTankArm?: number, pilotsArm?: number, passengersArm?: number, frontBaggageArm?: number, rearBaggageArm?: number, maxRearArm?: number, maxFrontArm?: number, normalEnvelope?: Point[], utilityEnvelope?: Point[]) { \n if (maxTakeoffWeight !== undefined) { this.maxTakeoffWeight = maxTakeoffWeight; }\n if (airplaneWeight !== undefined) { this.airplaneWeight = airplaneWeight; }\n if (frontBaggageWeight !== undefined) { this.frontBaggageWeight = frontBaggageWeight; }\n if (rearBaggageWeight !== undefined) { this.rearBaggageWeight = rearBaggageWeight; }\n if (totalBaggageWeight !== undefined) { this.totalBaggageWeight = totalBaggageWeight; }\n if (maxUsableFuel !== undefined) { this.maxUsableFuel = maxUsableFuel; }\n if (selfArm !== undefined) { this.selfArm = selfArm; }\n if (fuelTankArm !== undefined) { this.fuelTankArm = fuelTankArm; }\n if (pilotsArm !== undefined) { this.pilotsArm = pilotsArm; }\n if (passengersArm !== undefined) { this.passengersArm = passengersArm; }\n if (frontBaggageArm !== undefined) { this.frontBaggageArm = frontBaggageArm; }\n if (rearBaggageArm !== undefined) { this.rearBaggageArm = rearBaggageArm; }\n if (maxRearArm !== undefined) { this.maxRearArm = maxRearArm; }\n if (maxFrontArm !== undefined) { this.maxFrontArm = maxFrontArm; }\n if (normalEnvelope !== undefined) { this.normalEnvelope = normalEnvelope; }\n if (utilityEnvelope !== undefined) { this.utilityEnvelope = utilityEnvelope; }\n }\n\n}\n\n\n","\nimport { TimeFrame } from './TimeFrame';\nimport { FlightTypeCode } from './FlightTypeCode';\nimport { FlightStatusCode } from './FlightStatusCode';\nimport { BillingStatusCode } from './BillingStatusCode';\nimport { FlightPurposeCode } from './FlightPurposeCode';\n\n// FlightsFilter list of fields to filter flights\nexport class FlightsFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by time frame \n\tpublic period: TimeFrame;\n\n\t// Filter by account ID \n\tpublic accountId: string;\n\n\t// Filter by Contact ID (captain or first officer) \n\tpublic contactId: string;\n\n\t// Filter by airplane ID \n\tpublic airplaneId: string;\n\n\t// Filter by type(s) \n\tpublic type: FlightTypeCode[];\n\n\t// Filter by status(s) \n\tpublic status: FlightStatusCode[];\n\n\t// Filter by billing status \n\tpublic billing: BillingStatusCode[];\n\n\t// Filter by purpose of flight \n\tpublic purpose: FlightPurposeCode[];\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, period?: TimeFrame, accountId?: string, contactId?: string, airplaneId?: string, type?: FlightTypeCode[], status?: FlightStatusCode[], billing?: BillingStatusCode[], purpose?: FlightPurposeCode[], sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (period !== undefined) { this.period = period; }\n if (accountId !== undefined) { this.accountId = accountId; }\n if (contactId !== undefined) { this.contactId = contactId; }\n if (airplaneId !== undefined) { this.airplaneId = airplaneId; }\n if (type !== undefined) { this.type = type; }\n if (status !== undefined) { this.status = status; }\n if (billing !== undefined) { this.billing = billing; }\n if (purpose !== undefined) { this.purpose = purpose; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\nimport { TimeFrame } from './TimeFrame';\nimport { MaintenanceActionCode } from './MaintenanceActionCode';\nimport { StatusCode } from './StatusCode';\n\n// MaintenancesFilter list of fields to filter maintenance\nexport class MaintenancesFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by airplane ID \n\tpublic airplaneId: string;\n\n\t// Filter by action(s) \n\tpublic action: MaintenanceActionCode[];\n\n\t// Filter by status(s) \n\tpublic status: StatusCode[];\n\n\t// Filter by time frame of valid time \n\tpublic valid: TimeFrame;\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, airplaneId?: string, action?: MaintenanceActionCode[], status?: StatusCode[], valid?: TimeFrame, sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (airplaneId !== undefined) { this.airplaneId = airplaneId; }\n if (action !== undefined) { this.action = action; }\n if (status !== undefined) { this.status = status; }\n if (valid !== undefined) { this.valid = valid; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\nimport { CampaignTypeCode } from './CampaignTypeCode';\nimport { CampaignStatusCode } from './CampaignStatusCode';\nimport { CurrencyCode } from './CurrencyCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Campaign entity represents a marketing campaign in the system\nexport class Campaign extends BaseEntityEx {\n\n\t// Campaign name \n\tpublic name: string;\n\n\t// Campaign type: UNDEFINED | WEB | MAIL | TELE \n\tpublic type: CampaignTypeCode;\n\n\t// Campaign status: UNDEFINED | PLANNED | ACTIVE | COMPLETED \n\tpublic status: CampaignStatusCode;\n\n\t// Campaign content \n\tpublic content: string;\n\n\t// Campaign start date \n\tpublic startDate: number;\n\n\t// Campaign end date \n\tpublic endDate: number;\n\n\t// Campaign budget \n\tpublic budget: number;\n\n\t// Base rate \n\tpublic baseRate: number;\n\n\t// Refer URL \n\tpublic referUrl: string;\n\n\t// Actual campaign cost \n\tpublic expectedCost: number;\n\n\t// Actual campaign cost \n\tpublic actualCost: number;\n\n\t// Currency code \n\tpublic currency: CurrencyCode;\n\n}\n\nexport function GetCampaignColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"CampaignTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"CampaignStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"content\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"startDate\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"endDate\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"budget\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"baseRate\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"referUrl\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"expectedCost\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"actualCost\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"currency\", \"CurrencyCode\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { Address } from './Address';\nimport { TypeRatingFlag } from './TypeRatingFlag';\nimport { LicenseKindFlag } from './LicenseKindFlag';\nimport { MedicalCertClassCode } from './MedicalCertClassCode';\nimport { ValidationFlag } from './ValidationFlag';\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { AccountStatusCode } from './AccountStatusCode';\nimport { ColumnDef } from './ColumnDef';\n\n// Contact entity is a billing account in the system\nexport class Contact extends BaseEntityEx {\n\n\t// Related billing account ID \n\tpublic accountId: string;\n\n\t// Contact name \n\tpublic name: string;\n\n\t// Contact english name \n\tpublic enName: string;\n\n\t// Contact description \n\tpublic description: string;\n\n\t// Title in the contact \n\tpublic title: string;\n\n\t// Contact birthday \n\tpublic birthDay: number;\n\n\t// Contact status: UNDEFINED | ACTIVE | INACTIVE | BLOCKED | SUSPEND \n\tpublic status: AccountStatusCode;\n\n\t// Office / Landline phone \n\tpublic phone: string;\n\n\t// Mobile phone \n\tpublic mobile: string;\n\n\t// Email address \n\tpublic email: string;\n\n\t// Contact address \n\tpublic address: Address;\n\n\t// Contact groups \n\tpublic groups: string[];\n\n\t// ID number \n\tpublic idNumber: string;\n\n\t// Pilot license number \n\tpublic pilotLicense: string;\n\n\t// Airplanes type ratings allowed for this pilot \n\tpublic typesRating: TypeRatingFlag;\n\n\t// List of license types and additional ratings \n\tpublic licenseKinds: LicenseKindFlag;\n\n\t// Medical certificate class \n\tpublic medicalCertificate: MedicalCertClassCode;\n\n\t// Enum flags - list of certifications and validations \n\tpublic validations: ValidationFlag;\n\n\t// Enum flags - list of certifications and validations \n\tpublic warningFlags: ValidationFlag;\n\n\t// Flag indicating if this contact is a valid pilot \n\tpublic isPilot: boolean;\n\n\t// Flight instructor Id \n\tpublic instructor: string;\n\n\t// Flight Instruction Plan \n\tpublic instructionPlan: FlightCategoryCode;\n\n\t// Last time the user signed to the system \n\tpublic lastSignIn: number;\n\n\t// Start to fly on [epoch time milliseconds] \n\tpublic startToFlyDate: number;\n\n\t// Authorized to fly by user at time \n\tpublic authorizedToFlyBy: string;\n\n\t// Authorized photographer by user at timeValidations \n\tpublic authorizedPhotographyBy: string;\n\n\t// Flag for various updates \n\tpublic updateFlags: number;\n\n}\n\nexport function GetContactColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"enName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"title\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"birthDay\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"AccountStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"phone\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"address\", \"Address\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"groups\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"idNumber\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"pilotLicense\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"typesRating\", \"TypeRatingFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"licenseKinds\", \"LicenseKindFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"medicalCertificate\", \"MedicalCertClassCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"validations\", \"ValidationFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"warningFlags\", \"ValidationFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isPilot\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"instructor\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"instructionPlan\", \"FlightCategoryCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"lastSignIn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"startToFlyDate\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"authorizedToFlyBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"authorizedPhotographyBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"updateFlags\", \"number\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { TicketStatusCode } from './TicketStatusCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// FlightTicket entity is a single flight in the airplane\nexport class FlightTicket extends BaseEntityEx {\n\n\t// Flight ticket name \n\tpublic name: string;\n\n\t// Flight ticket description \n\tpublic description: string;\n\n\t// Flight ticket number \n\tpublic ticketNumber: number;\n\n\t// Flight number \n\tpublic flightNumber: number;\n\n\t// Flight Id \n\tpublic flightId: string;\n\n\t// Flight ticket status: PENDING | SENT ... \n\tpublic status: TicketStatusCode;\n\n\t// Customer name \n\tpublic customerName: string;\n\n\t// Customer email \n\tpublic customerEmail: string;\n\n\t// Customer mobile phone \n\tpublic customerMobile: string;\n\n}\n\nexport function GetFlightTicketColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"ticketNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"TicketStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"customerName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"customerEmail\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"customerMobile\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { ConfirmStatusCode } from './ConfirmStatusCode';\nimport { MessageTypeCode } from './MessageTypeCode';\nimport { PriorityCode } from './PriorityCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// MessageConfirm entity is a system message confirmation by users\nexport class MessageConfirm extends BaseEntityEx {\n\n\t// System Message ID \n\tpublic messageId: string;\n\n\t// Linked contact ID \n\tpublic contactId: string;\n\n\t// Contact reply status \n\tpublic replyStatus: ConfirmStatusCode;\n\n\t// Time of reply sent by the contact [epoch time milliseconds] \n\tpublic replyOn: number;\n\n\t// Message subject [Calculated field, not stored] \n\tpublic subject: string;\n\n\t// Message type [Calculated field, not stored] \n\tpublic type: MessageTypeCode;\n\n\t// Message priority [Calculated field, not stored] \n\tpublic priority: PriorityCode;\n\n}\n\nexport function GetMessageConfirmColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"messageId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"replyStatus\", \"ConfirmStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"replyOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"subject\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"MessageTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"priority\", \"PriorityCode\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { InstructionTypeCode } from './InstructionTypeCode';\nimport { SyllabusStageCode } from './SyllabusStageCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Syllabus entity is instruction plan topics\nexport class Syllabus extends BaseEntityEx {\n\n\t// Syllabus plan (Flight category) \n\tpublic plan: FlightCategoryCode;\n\n\t// Topic instruction type (FLIGHT | CLASS | SIMULATOR) \n\tpublic type: InstructionTypeCode;\n\n\t// Topic stage in the syllabus (group) \n\tpublic stage: SyllabusStageCode;\n\n\t// Topic sequence number \n\tpublic seq: string;\n\n\t// Topic index number \n\tpublic num: number;\n\n\t// Topic name \n\tpublic name: string;\n\n\t// Topic duration (in minutes) \n\tpublic duration: number;\n\n}\n\nexport function GetSyllabusColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"plan\", \"FlightCategoryCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"InstructionTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"stage\", \"SyllabusStageCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"seq\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"num\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"duration\", \"number\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { PriorityCode } from './PriorityCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { MessageTypeCode } from './MessageTypeCode';\nimport { ColumnDef } from './ColumnDef';\n\n// SystemMessage entity is a system message notification that all pilots must read and confirm\nexport class SystemMessage extends BaseEntityEx {\n\n\t// Message subject \n\tpublic subject: string;\n\n\t// Message description \n\tpublic description: string;\n\n\t// Message type \n\tpublic type: MessageTypeCode;\n\n\t// Message priority \n\tpublic priority: PriorityCode;\n\n\t// Contact groups to send the message \n\tpublic groups: string[];\n\n\t// When the message was published [epoch time milliseconds] \n\tpublic publishedOn: number;\n\n}\n\nexport function GetSystemMessageColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"subject\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"MessageTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"priority\", \"PriorityCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"groups\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"publishedOn\", \"number\", \"datetime\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// TimeFrame represents a time interval with a start and end timestamp.\nexport class TimeFrame {\n\n\t// From is the start timestamp \n\tpublic from: number;\n\n\t// To is the end timestamp \n\tpublic to: number;\n\n constructor(from?: number, to?: number) { \n if (from !== undefined) { this.from = from; }\n if (to !== undefined) { this.to = to; }\n }\n\n}\n\n\n","\nimport { Location } from './Location';\n\n// ADSBState model represents the ADSB real time state of an airplane\nexport class ADSBState {\n\n\t// Unique ICAO 24-bit address of the transponder in hex string representation \n\tpublic icaoAddr: string;\n\n\t// Callsign of the vehicle (8 chars). Can be null if no callsign has been received \n\tpublic callsign: string;\n\n\t// Country name inferred from the ICAO 24-bit address \n\tpublic origin: string;\n\n\t// Unix timestamp (seconds) for the last position update. Can be null if no position report was received by OpenSky within the past 15s \n\tpublic timePosition: number;\n\n\t// Unix timestamp (seconds) for the last update in general. This field is updated for any new, valid message received from the transponder \n\tpublic lastContact: number;\n\n\t// WGS-84 location and Geometric altitude \n\tpublic location: Location;\n\n\t// Boolean value which indicates if the position was retrieved from a surface position report \n\tpublic on_ground: boolean;\n\n\t// Velocity over ground in m/s. Can be null. \n\tpublic velocity: number;\n\n\t// True track in decimal degrees clockwise from north (north=0°). Can be null. \n\tpublic track: number;\n\n\t// Vertical rate in m/s. A positive value indicates that the airplane is climbing, a negative value indicates that it descends. Can be null \n\tpublic vertical: number;\n\n\t// IDs of the receivers which contributed to this state vector. Is null if no filtering for sensor was used in the request \n\tpublic sensors: number[];\n\n\t// Barometric altitude in meters. Can be null. \n\tpublic barometer: number;\n\n\t// The transponder code aka Squawk \n\tpublic squawk: string;\n\n\t// Whether flight status indicates special purpose indicator \n\tpublic spi: boolean;\n\n constructor(icaoAddr?: string, callsign?: string, origin?: string, timePosition?: number, lastContact?: number, location?: Location, onGround?: boolean, velocity?: number, track?: number, vertical?: number, sensors?: number[], barometer?: number, squawk?: string, sPI?: boolean) { \n if (icaoAddr !== undefined) { this.icaoAddr = icaoAddr; }\n if (callsign !== undefined) { this.callsign = callsign; }\n if (origin !== undefined) { this.origin = origin; }\n if (timePosition !== undefined) { this.timePosition = timePosition; }\n if (lastContact !== undefined) { this.lastContact = lastContact; }\n if (location !== undefined) { this.location = location; }\n if (onGround !== undefined) { this.on_ground = onGround; }\n if (velocity !== undefined) { this.velocity = velocity; }\n if (track !== undefined) { this.track = track; }\n if (vertical !== undefined) { this.vertical = vertical; }\n if (sensors !== undefined) { this.sensors = sensors; }\n if (barometer !== undefined) { this.barometer = barometer; }\n if (squawk !== undefined) { this.squawk = squawk; }\n if (sPI !== undefined) { this.spi = sPI; }\n }\n\n}\n\n\n","\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { InstructionTypeCode } from './InstructionTypeCode';\n\n// SyllabusFilter list of fields to filter syllabus\nexport class SyllabusFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by Syllabus plan(s) \n\tpublic plan: FlightCategoryCode[];\n\n\t// Filter by Lesson type(s) \n\tpublic type: InstructionTypeCode[];\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, plan?: FlightCategoryCode[], type?: InstructionTypeCode[], sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (plan !== undefined) { this.plan = plan; }\n if (type !== undefined) { this.type = type; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\n\n// CrewDutyDayRisks group of crew duty risk values\nexport class CrewDutyDayRisks {\n\n\t// Crew duty day greater than 12 hours \n\tpublic crewDutyDayOver12Hrs: number;\n\n\t// Flight time greater than 8 hours during the duty day \n\tpublic flightTimeOver8Hrs: number;\n\n\t// Crew rest period less than 10 hours prior to the duty day \n\tpublic crewRestLess10Hrs: number;\n\n constructor(crewDutyDayOver12Hrs?: number, flightTimeOver8Hrs?: number, crewRestLess10Hrs?: number) { \n if (crewDutyDayOver12Hrs !== undefined) { this.crewDutyDayOver12Hrs = crewDutyDayOver12Hrs; }\n if (flightTimeOver8Hrs !== undefined) { this.flightTimeOver8Hrs = flightTimeOver8Hrs; }\n if (crewRestLess10Hrs !== undefined) { this.crewRestLess10Hrs = crewRestLess10Hrs; }\n }\n\n}\n\n\n","\n\n// DestinationRisks group of destination risk values\nexport class DestinationRisks {\n\n\t// Mountainous airport \n\tpublic mountainousAirport: number;\n\n\t// Control tower not operational at ETA \n\tpublic towerNotOperationalAtEta: number;\n\n\t// Destination - Non-towered airport \n\tpublic nonToweredAirport: number;\n\n\t// Destination - Wet Runway \n\tpublic wetRunway: number;\n\n\t// Destination - Contaminated Runway \n\tpublic contaminatedRunway: number;\n\n\t// Stopping distance greater than 80% of available runway \n\tpublic stoppingDistanceOver80p: number;\n\n\t// Runway braking action less than good - rv_runw_brakin_actionless_t_c \n\tpublic runwayBreakingLessGood: number;\n\n\t// Approach w/o vertical guidance (best available approach) - rv_approach_w_o_vertical_gui_c \n\tpublic approachWoVerticalGuide: number;\n\n\t// Circling approach (best available approach) - rv_circling_approach_best_av_c \n\tpublic circlingApproach: number;\n\n\t// No published approaches - rv_no_published_approaches_c \n\tpublic noPublishedApproaches: number;\n\n\t// Alternate airport not selected - rv_alternate_airport_not_sel_c \n\tpublic noAlternateAirport: number;\n\n\t// Destination - Elevation of primary airport greater than 5,000 ft. MSL - rv_destelevtio_of_primary_ai_c \n\tpublic airportElevOver5KFts: number;\n\n constructor(mountainousAirport?: number, towerNotOperationalAtEta?: number, nonToweredAirport?: number, wetRunway?: number, contaminatedRunway?: number, stoppingDistanceOver80p?: number, runwayBreakingLessGood?: number, approachWoVerticalGuide?: number, circlingApproach?: number, noPublishedApproaches?: number, noAlternateAirport?: number, airportElevOver5KFts?: number) { \n if (mountainousAirport !== undefined) { this.mountainousAirport = mountainousAirport; }\n if (towerNotOperationalAtEta !== undefined) { this.towerNotOperationalAtEta = towerNotOperationalAtEta; }\n if (nonToweredAirport !== undefined) { this.nonToweredAirport = nonToweredAirport; }\n if (wetRunway !== undefined) { this.wetRunway = wetRunway; }\n if (contaminatedRunway !== undefined) { this.contaminatedRunway = contaminatedRunway; }\n if (stoppingDistanceOver80p !== undefined) { this.stoppingDistanceOver80p = stoppingDistanceOver80p; }\n if (runwayBreakingLessGood !== undefined) { this.runwayBreakingLessGood = runwayBreakingLessGood; }\n if (approachWoVerticalGuide !== undefined) { this.approachWoVerticalGuide = approachWoVerticalGuide; }\n if (circlingApproach !== undefined) { this.circlingApproach = circlingApproach; }\n if (noPublishedApproaches !== undefined) { this.noPublishedApproaches = noPublishedApproaches; }\n if (noAlternateAirport !== undefined) { this.noAlternateAirport = noAlternateAirport; }\n if (airportElevOver5KFts !== undefined) { this.airportElevOver5KFts = airportElevOver5KFts; }\n }\n\n}\n\n\n","\nimport { FlightTypeCode } from './FlightTypeCode';\nimport { FlightStatusCode } from './FlightStatusCode';\nimport { FlightStateCode } from './FlightStateCode';\nimport { FlightPurposeCode } from './FlightPurposeCode';\nimport { TOLData } from './TOLData';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// FlightPlan entity is a subset of flight for flight planning tools\nexport class FlightPlan extends BaseEntityEx {\n\n\t// Flight name \n\tpublic name: string;\n\n\t// Flight description \n\tpublic description: string;\n\n\t// Flight number \n\tpublic flightNumber: number;\n\n\t// Flight number as string \n\tpublic flightString: string;\n\n\t// Flight takeoff time (same as Takeoff.Planned) \n\tpublic flightTime: number;\n\n\t// Flight destination \n\tpublic destination: string;\n\n\t// Account ID \n\tpublic accountId: string;\n\n\t// Account Name \n\tpublic accountName: string;\n\n\t// Airplane ID \n\tpublic airplaneId: string;\n\n\t// Airplane ID \n\tpublic airplaneName: string;\n\n\t// Flight type: PRIVATE | COMMERCIAL ... \n\tpublic type: FlightTypeCode;\n\n\t// Flight status: REGISTERED | DELETE | CANCELLED ... \n\tpublic status: FlightStatusCode;\n\n\t// Flight actual state PENDING | ACTIVE | COMPLETED (can't be manually modified): ... \n\tpublic state: FlightStateCode;\n\n\t// Purpose of the flight \n\tpublic purpose: FlightPurposeCode;\n\n\t// In case of OTHER, Purpose of the flight \n\tpublic purposeOt: string;\n\n\t// Captain ID \n\tpublic captainId: string;\n\n\t// Captain Name \n\tpublic captainName: string;\n\n\t// First Officer / Student contact Id \n\tpublic firstOfficerId: string;\n\n\t// First Officer / Student contact Name \n\tpublic firstOfficerName: string;\n\n\t// Passengers names \n\tpublic passengers: string[];\n\n\t// Crew members (name:role) \n\tpublic crew: string[];\n\n\t// Takeoff data \n\tpublic takeoff: TOLData;\n\n\t// Landing data \n\tpublic landing: TOLData;\n\n}\n\nexport function GetFlightPlanColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightString\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightTime\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"FlightTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"FlightStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"state\", \"FlightStateCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purposeOt\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captainId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captainName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficerId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficerName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"passengers\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"crew\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"takeoff\", \"TOLData\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"landing\", \"TOLData\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// LogBookRecord entity is a pilot's log book record\nexport class LogBookRecord extends BaseEntityEx {\n\n\t// Account ID \n\tpublic accountId: string;\n\n\t// Contact ID \n\tpublic contactId: string;\n\n\t// When the flight started [Epoch milliseconds] (1a) \n\tpublic date: number;\n\n\t// Airplane type (model, variant) \n\tpublic airplaneType: string;\n\n\t// Airplane registration number (tail number) \n\tpublic airplaneReg: string;\n\n\t// Takeoff field \n\tpublic takeoffField: string;\n\n\t// Landing field on the way \n\tpublic viaField: string;\n\n\t// Landing field \n\tpublic landingField: string;\n\n\t// Departure time [Epoch milliseconds] \n\tpublic departure: number;\n\n\t// Arrival time [Epoch milliseconds] \n\tpublic arrival: number;\n\n\t// Single Engine Pilot-In-Command \n\tpublic singleEnginePic: number;\n\n\t// Single Engine Second-In-Command \n\tpublic singleEngineSic: number;\n\n\t// Multi Engine Pilot-In-Command \n\tpublic multiEnginePic: number;\n\n\t// Multi Engine Second-In-Command \n\tpublic multiEngineSic: number;\n\n\t// Hours in daytime \n\tpublic dayTime: number;\n\n\t// Hours in nighttime \n\tpublic nightTime: number;\n\n\t// Instruments flight time \n\tpublic ifrTime: number;\n\n\t// Simulator time \n\tpublic simulator: number;\n\n\t// Remarks \n\tpublic remarks: string;\n\n}\n\nexport function GetLogBookRecordColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"date\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneType\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneReg\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"takeoffField\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"viaField\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"landingField\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"departure\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"arrival\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"singleEnginePic\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"singleEngineSic\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"multiEnginePic\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"multiEngineSic\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"dayTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"nightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"ifrTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"simulator\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"remarks\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { Lookup } from './Lookup';\nimport { BaseEntity } from './BaseEntity';\nimport { ColumnDef } from './ColumnDef';\n\n// LookupGroup entity is a group of lookup entries\nexport class LookupGroup extends BaseEntity {\n\n\t// Group \n\tpublic group: string;\n\n\t// Item type \n\tpublic value: Lookup[];\n\n}\n\nexport function GetLookupGroupColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"group\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"value\", \"Lookup\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { BookingTypeFlag } from './BookingTypeFlag';\nimport { BookingStatusCode } from './BookingStatusCode';\nimport { FlightPurposeCode } from './FlightPurposeCode';\nimport { FlightStatusCode } from './FlightStatusCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// BookingPlan entity is a subset of booking and flight union for booking planning tools\nexport class BookingPlan extends BaseEntityEx {\n\n\t// Name \n\tpublic name: string;\n\n\t// Description \n\tpublic description: string;\n\n\t// Flag to mark entry as flight or booking \n\tpublic isFlight: boolean;\n\n\t// Account ID \n\tpublic accountId: string;\n\n\t// Account Name \n\tpublic accountName: string;\n\n\t// Airplane ID \n\tpublic airplaneId: string;\n\n\t// Airplane ID \n\tpublic airplaneName: string;\n\n\t// Type of booking \n\tpublic type: BookingTypeFlag;\n\n\t// Status of booking \n\tpublic status: BookingStatusCode;\n\n\t// When to ask for the airplane [Epoch milliseconds] \n\tpublic placementOn: number;\n\n\t// When to return the airplane [Epoch milliseconds] \n\tpublic placementTo: number;\n\n\t// Flight number (for flights only) \n\tpublic flightNumber: number;\n\n\t// Flight ID (for flights only) \n\tpublic flightId: string;\n\n\t// Purpose of the flight (for flights only) \n\tpublic flightPurpose: FlightPurposeCode;\n\n\t// Status of flight (for flights only) \n\tpublic flightStatus: FlightStatusCode;\n\n}\n\nexport function GetBookingPlanColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isFlight\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"BookingTypeFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"BookingStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"placementOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"placementTo\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightPurpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightStatus\", \"FlightStatusCode\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// Boundaries model represents an timeframe boundaries\nexport class Boundaries {\n\n\t// Lower time boundaries \n\tpublic start: number;\n\n\t// Upper time boundaries \n\tpublic end: number;\n\n constructor(start?: number, end?: number) { \n if (start !== undefined) { this.start = start; }\n if (end !== undefined) { this.end = end; }\n }\n\n}\n\n\n","\nimport { AirplaneStatusCode } from './AirplaneStatusCode';\n\n// AirplanesFilter list of fields to filter airplanes\nexport class AirplanesFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by status(s) \n\tpublic status: AirplaneStatusCode[];\n\n\t// Filter by active flag \n\tpublic isActive: boolean;\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, status?: AirplaneStatusCode[], isActive?: boolean, sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (status !== undefined) { this.status = status; }\n if (isActive !== undefined) { this.isActive = isActive; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\nimport { FlightTypeCode } from './FlightTypeCode';\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { AssessmentCode } from './AssessmentCode';\nimport { FlightPurposeCode } from './FlightPurposeCode';\n\n// PostFlightInfo data structure to be used by the post-flight form\nexport class PostFlightInfo {\n\n\t// Flight number as string \n\tpublic flightId: string;\n\n\t// Flight number \n\tpublic flightNumber: number;\n\n\t// Airplane Name \n\tpublic airplane: string;\n\n\t// Total hours left to inspection \n\tpublic hoursToInspection: number;\n\n\t// Purpose of the flight \n\tpublic purpose: FlightPurposeCode;\n\n\t// Flight type: PRIVATE | COMMERCIAL ... \n\tpublic type: FlightTypeCode;\n\n\t// Flight Instruction Plan of the student \n\tpublic instructionPlan: FlightCategoryCode;\n\n\t// Takeoff Planned time \n\tpublic takeoffPlannedTime: number;\n\n\t// Takeoff actual time \n\tpublic takeoffActualTime: number;\n\n\t// Takeoff field \n\tpublic takeoffField: string;\n\n\t// Takeoff hobbs \n\tpublic takeoffHobbs: number;\n\n\t// Landing Planned time \n\tpublic landingPlannedTime: number;\n\n\t// Landing actual time \n\tpublic landingActualTime: number;\n\n\t// Landing field \n\tpublic landingField: string;\n\n\t// Landing hobbs \n\tpublic landingHobbs: number;\n\n\t// Landing tach \n\tpublic landingTach: number;\n\n\t// Previous tach - to ensure current tach is higher than previous \n\tpublic previousTach: number;\n\n\t// Captain / Instructor ID \n\tpublic captainId: string;\n\n\t// First Officer ID \n\tpublic firstOfficerId: string;\n\n\t// Captain / Instructor name \n\tpublic captainName: string;\n\n\t// First Officer name \n\tpublic firstOfficerName: string;\n\n\t// Flight destination \n\tpublic destination: string;\n\n\t// Actual fuel on board (GALLONS) \n\tpublic actualFuelOnBoard: number;\n\n\t// Actual oil level (QUARTZ) \n\tpublic actualOilOnBoard: number;\n\n\t// Lesson number - lesson_number \n\tpublic lessonNumber: number;\n\n\t// Lesson topic ID by the syllabus \n\tpublic lessonTopicId: string;\n\n\t// First Officer / Student flight counter - student_flights_count \n\tpublic lessonFlightCounter: number;\n\n\t// Instructor assessment (score) enum - lesson_score \n\tpublic assessment: AssessmentCode;\n\n\t// Total instructed flight time - from hobbs \n\tpublic instructedFlightTime: number;\n\n\t// Total Instrument flight time \n\tpublic instrumentsFlightTime: number;\n\n\t// Total student Solo flight time \n\tpublic soloFlightTime: number;\n\n\t// Total instructed navigation flight time \n\tpublic instructedNavTime: number;\n\n\t// Total student Solo navigation flight time \n\tpublic soloNavTime: number;\n\n\t// Total student night flight time \n\tpublic nightTime: number;\n\n\t// Pilot / Instructor comments after flight \n\tpublic lessonComments: string;\n\n\t// Flight description - post flight notes \n\tpublic description: string;\n\n\t// This form was already reported \n\tpublic reportedBy: string;\n\n constructor(flightId?: string, flightNumber?: number, airplane?: string, hoursToInspection?: number, purpose?: FlightPurposeCode, type?: FlightTypeCode, instructionPlan?: FlightCategoryCode, takeoffPlannedTime?: number, takeoffActualTime?: number, takeoffField?: string, takeoffHobbs?: number, landingPlannedTime?: number, landingActualTime?: number, landingField?: string, landingHobbs?: number, landingTach?: number, previousTach?: number, captainId?: string, firstOfficerId?: string, captainName?: string, firstOfficerName?: string, destination?: string, actualFuelOnBoard?: number, actualOilOnBoard?: number, lessonNumber?: number, lessonTopicId?: string, lessonFlightCounter?: number, lessonAssessment?: AssessmentCode, instructedFlightTime?: number, instrumentsFlightTime?: number, soloFlightTime?: number, instructedNavTime?: number, soloNavTime?: number, nightTime?: number, lessonComments?: string, description?: string, reportedBy?: string) { \n if (flightId !== undefined) { this.flightId = flightId; }\n if (flightNumber !== undefined) { this.flightNumber = flightNumber; }\n if (airplane !== undefined) { this.airplane = airplane; }\n if (hoursToInspection !== undefined) { this.hoursToInspection = hoursToInspection; }\n if (purpose !== undefined) { this.purpose = purpose; }\n if (type !== undefined) { this.type = type; }\n if (instructionPlan !== undefined) { this.instructionPlan = instructionPlan; }\n if (takeoffPlannedTime !== undefined) { this.takeoffPlannedTime = takeoffPlannedTime; }\n if (takeoffActualTime !== undefined) { this.takeoffActualTime = takeoffActualTime; }\n if (takeoffField !== undefined) { this.takeoffField = takeoffField; }\n if (takeoffHobbs !== undefined) { this.takeoffHobbs = takeoffHobbs; }\n if (landingPlannedTime !== undefined) { this.landingPlannedTime = landingPlannedTime; }\n if (landingActualTime !== undefined) { this.landingActualTime = landingActualTime; }\n if (landingField !== undefined) { this.landingField = landingField; }\n if (landingHobbs !== undefined) { this.landingHobbs = landingHobbs; }\n if (landingTach !== undefined) { this.landingTach = landingTach; }\n if (previousTach !== undefined) { this.previousTach = previousTach; }\n if (captainId !== undefined) { this.captainId = captainId; }\n if (firstOfficerId !== undefined) { this.firstOfficerId = firstOfficerId; }\n if (captainName !== undefined) { this.captainName = captainName; }\n if (firstOfficerName !== undefined) { this.firstOfficerName = firstOfficerName; }\n if (destination !== undefined) { this.destination = destination; }\n if (actualFuelOnBoard !== undefined) { this.actualFuelOnBoard = actualFuelOnBoard; }\n if (actualOilOnBoard !== undefined) { this.actualOilOnBoard = actualOilOnBoard; }\n if (lessonNumber !== undefined) { this.lessonNumber = lessonNumber; }\n if (lessonTopicId !== undefined) { this.lessonTopicId = lessonTopicId; }\n if (lessonFlightCounter !== undefined) { this.lessonFlightCounter = lessonFlightCounter; }\n if (lessonAssessment !== undefined) { this.assessment = lessonAssessment; }\n if (instructedFlightTime !== undefined) { this.instructedFlightTime = instructedFlightTime; }\n if (instrumentsFlightTime !== undefined) { this.instrumentsFlightTime = instrumentsFlightTime; }\n if (soloFlightTime !== undefined) { this.soloFlightTime = soloFlightTime; }\n if (instructedNavTime !== undefined) { this.instructedNavTime = instructedNavTime; }\n if (soloNavTime !== undefined) { this.soloNavTime = soloNavTime; }\n if (nightTime !== undefined) { this.nightTime = nightTime; }\n if (lessonComments !== undefined) { this.lessonComments = lessonComments; }\n if (description !== undefined) { this.description = description; }\n if (reportedBy !== undefined) { this.reportedBy = reportedBy; }\n }\n\n}\n\n\n","\nimport { UserTypeCode } from './UserTypeCode';\nimport { UserStatusCode } from './UserStatusCode';\n\n// TokenData model represents user in account which is encrypted with the JWT token\nexport class TokenData {\n\n\t// Authenticated subject ID (can be user, or service account) \n\tpublic subjectId: string;\n\n\t// Subject type: UNDEFINED | SYSADMIN | USER | SERVICE_ACCOUNT \n\tpublic subjectType: UserTypeCode;\n\n\t// User status: UNDEFINED | PENDING | ACTIVE | BLOCKED | SUSPENDED \n\tpublic status: UserStatusCode;\n\n\t// Token expiration [Epoch milliseconds Timestamp] \n\tpublic expiresIn: number;\n\n constructor(subjectId?: string, subjectType?: UserTypeCode, status?: UserStatusCode, expiresIn?: number) { \n if (subjectId !== undefined) { this.subjectId = subjectId; }\n if (subjectType !== undefined) { this.subjectType = subjectType; }\n if (status !== undefined) { this.status = status; }\n if (expiresIn !== undefined) { this.expiresIn = expiresIn; }\n }\n\n}\n\n\n","\nimport { AccountTypeCode } from './AccountTypeCode';\nimport { AccountStatusCode } from './AccountStatusCode';\nimport { Address } from './Address';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Account entity is a billing account in the system\nexport class Account extends BaseEntityEx {\n\n\t// Account name \n\tpublic name: string;\n\n\t// Account english name \n\tpublic enName: string;\n\n\t// Account type: STUDENT | PRIVATE | BUSINESS ... \n\tpublic type: AccountTypeCode;\n\n\t// Account description \n\tpublic description: string;\n\n\t// Account status: UNDEFINED | ACTIVE | INACTIVE | BLOCKED | SUSPENDED \n\tpublic status: AccountStatusCode;\n\n\t// Office / Landline phone \n\tpublic phone: string;\n\n\t// Mobile phone \n\tpublic mobile: string;\n\n\t// Email address \n\tpublic email: string;\n\n\t// Address \n\tpublic address: Address;\n\n\t// Campaign Id \n\tpublic campaignId: string;\n\n\t// Current account credit balance \n\tpublic currentCredit: number;\n\n\t// Current account Hobbs balance \n\tpublic currentHobbs: number;\n\n\t// Base rate for billing \n\tpublic baseRate: number;\n\n\t// Permanent discount (percentage) \n\tpublic discount: number;\n\n\t// Green invoice Id \n\tpublic invoiceId: string;\n\n}\n\nexport function GetAccountColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"enName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"AccountTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"AccountStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"phone\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"address\", \"Address\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"campaignId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"currentCredit\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"currentHobbs\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"baseRate\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"discount\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"invoiceId\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { BillingRecord } from './BillingRecord';\n\n// Billing includes flight billing information\nexport class Billing {\n\n\t// Billing invoice records \n\tpublic invoiceRecords: BillingRecord[];\n\n\t// Billing invoice issue date [epoch time milliseconds] \n\tpublic invoiceDate: number;\n\n\t// Discount percentage (0 .. 100) - percentage_discount \n\tpublic discountPercentage: number;\n\n\t// Total before VAT - total_charge_c \n\tpublic totalBeforeVat: number;\n\n\t// Total including VAT - total_charge_inc_vat_bef_dis_c \n\tpublic totalAfterVat: number;\n\n\t// Total charge including VAT after discount - total_charge_includes_vat_c \n\tpublic totalAfterDiscount: number;\n\n\t// Pilot payment - pilot_requested_payment_c \n\tpublic pilotPayment: number;\n\n\t// Pilot payment status - pilot_payment_status_c \n\tpublic pilotPaymentStatus: string;\n\n\t// Pilot payment - lbl_first_officer_payment_c \n\tpublic firstOfficerPayment: number;\n\n\t// Pilot payment status - lbl_firts_officer_payment_st_c \n\tpublic firstOfficerPaymentStatus: string;\n\n constructor(invoiceRecords?: BillingRecord[], invoiceDate?: number, discountPercentage?: number, totalBeforeVAT?: number, totalAfterVAT?: number, totalAfterDiscount?: number, pilotPayment?: number, pilotPaymentStatus?: string, firstOfficerPayment?: number, firstOfficerPaymentStatus?: string) { \n if (invoiceRecords !== undefined) { this.invoiceRecords = invoiceRecords; }\n if (invoiceDate !== undefined) { this.invoiceDate = invoiceDate; }\n if (discountPercentage !== undefined) { this.discountPercentage = discountPercentage; }\n if (totalBeforeVAT !== undefined) { this.totalBeforeVat = totalBeforeVAT; }\n if (totalAfterVAT !== undefined) { this.totalAfterVat = totalAfterVAT; }\n if (totalAfterDiscount !== undefined) { this.totalAfterDiscount = totalAfterDiscount; }\n if (pilotPayment !== undefined) { this.pilotPayment = pilotPayment; }\n if (pilotPaymentStatus !== undefined) { this.pilotPaymentStatus = pilotPaymentStatus; }\n if (firstOfficerPayment !== undefined) { this.firstOfficerPayment = firstOfficerPayment; }\n if (firstOfficerPaymentStatus !== undefined) { this.firstOfficerPaymentStatus = firstOfficerPaymentStatus; }\n }\n\n}\n\n\n","\n\n// LocalTime represents the time (year, month, day, hour, minute, second) as number in the following format: YYYYMMDDhhmmss.\n// It is useful for storing time in a compact, human-readable integer format that preserves sorting order.\nexport class LocalTime {\n\n constructor() { \n }\n\n}\n\n\n","\n\n// TimeDataPoint represents a generic data point associated with a timestamp.\nexport class TimeDataPoint<V> {\n\n\t// Timestamp of the data point \n\tpublic timestamp: number;\n\n\t// Value of the data point \n\tpublic value: V;\n\n constructor(timestamp?: number, value?: V) { \n if (timestamp !== undefined) { this.timestamp = timestamp; }\n if (value !== undefined) { this.value = value; }\n }\n\n}\n\n\n","\n\n// BaseFilter is a common structure for all filters\nexport class BaseFilter {\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\nimport { LeadStatusCode } from './LeadStatusCode';\n\n// LeadsFilter list of fields to filter leads\nexport class LeadsFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by status(s) \n\tpublic status: LeadStatusCode[];\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, status?: LeadStatusCode[], sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (status !== undefined) { this.status = status; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\n\n// MetarReport encapsulates METAR report data\nexport class MetarReport {\n\n\t// Report ID \n\tpublic id: string;\n\n\t// ICAO Name of the airport / area \n\tpublic station: string;\n\n\t// Valid from date \n\tpublic validFrom: string;\n\n\t// Raw METAR content \n\tpublic content: string;\n\n\t// Human-readable description of the METAR \n\tpublic description: string;\n\n constructor(id?: string, station?: string, validFrom?: string, content?: string, description?: string) { \n if (id !== undefined) { this.id = id; }\n if (station !== undefined) { this.station = station; }\n if (validFrom !== undefined) { this.validFrom = validFrom; }\n if (content !== undefined) { this.content = content; }\n if (description !== undefined) { this.description = description; }\n }\n\n}\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ValidationFlag } from './ValidationFlag';\nimport { StatusCode } from './StatusCode';\nimport { ColumnDef } from './ColumnDef';\n\n// Certificate entity is a contact certificate required for active pilot\nexport class Certificate extends BaseEntityEx {\n\n\t// Certificate name \n\tpublic name: string;\n\n\t// Type for certificate (based on Validation flag) \n\tpublic type: ValidationFlag;\n\n\t// Certificate description \n\tpublic description: string;\n\n\t// Linked contact ID \n\tpublic contactId: string;\n\n\t// Linked document ID \n\tpublic documentId: string;\n\n\t// Certificate is valid until the timestamp [epoch time milliseconds] \n\tpublic validUntil: number;\n\n\t// Certificate workflow status: UNDEFINED | PENDING | IN_PROCESS | COMPLETED ... \n\tpublic status: StatusCode;\n\n\t// Time of notification sent to contact [epoch time milliseconds] \n\tpublic notifyAt: number;\n\n\t// Notification subject \n\tpublic subject: string;\n\n\t// Notification message \n\tpublic message: string;\n\n}\n\nexport function GetCertificateColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"ValidationFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"documentId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"validUntil\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"StatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"notifyAt\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"subject\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"message\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { StringKeyValue } from './StringKeyValue';\nimport { ColumnDef } from './ColumnDef';\n\n// ContactGroup represents a group of contacts to share messages\nexport class ContactGroup extends BaseEntityEx {\n\n\t// Group name \n\tpublic name: string;\n\n\t// List of group members (id->name pairs) - not persistent \n\tpublic contacts: StringKeyValue[];\n\n}\n\nexport function GetContactGroupColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contacts\", \"StringKeyValue\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { DocumentRevision } from './DocumentRevision';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Document entity represents a document in the system\nexport class Document extends BaseEntityEx {\n\n\t// Document name \n\tpublic name: string;\n\n\t// Document description \n\tpublic description: string;\n\n\t// Entity linked to the document (in the format of: [type]:[id]) \n\tpublic linkedEntity: string;\n\n\t// Document creator \n\tpublic createdBy: string;\n\n\t// Document active from [epoch time milliseconds] \n\tpublic activeFrom: number;\n\n\t// Document active until [epoch time milliseconds] \n\tpublic activeUntil: number;\n\n\t// Document category \n\tpublic category: string;\n\n\t// Document Revisions \n\tpublic revisions: DocumentRevision[];\n\n\t// Active (current) revision \n\tpublic activeRevision: string;\n\n\t// Active revision URL \n\tpublic activeUrl: string;\n\n\t// Active revision MIME type \n\tpublic activeMimeType: string;\n\n}\n\nexport function GetDocumentColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"linkedEntity\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"activeFrom\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"activeUntil\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"category\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"revisions\", \"DocumentRevision\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"activeRevision\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"activeUrl\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"activeMimeType\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// Tuple represents a generic key-value pair.\n// It is useful for storing associated data where a full map is not needed or order matters.\n// Type Parameters:\n// - K: The type of the key.\n// - V: The type of the value.\nexport class Tuple<K,V> {\n\n\t// Key is the first element of the tuple \n\tpublic key: K;\n\n\t// Value is the second element of the tuple \n\tpublic value: V;\n\n constructor(key?: K, value?: V) { \n if (key !== undefined) { this.key = key; }\n if (value !== undefined) { this.value = value; }\n }\n\n}\n\n\n","\nimport { TimeFrame } from './TimeFrame';\nimport { TimeDataPoint } from './TimeDataPoint';\n\n// TimeSeries represents a named collection of data points over a specific time range.\nexport class TimeSeries<T> {\n\n\t// Name of the time series \n\tpublic name: string;\n\n\t// Range covers the start and end time of the series \n\tpublic range: TimeFrame;\n\n\t// Values contains the data points \n\tpublic values: TimeDataPoint<T>[];\n\n constructor(name?: string, range?: TimeFrame, values?: TimeDataPoint<T>[]) { \n if (name !== undefined) { this.name = name; }\n if (range !== undefined) { this.range = range; }\n if (values !== undefined) { this.values = values; }\n }\n\n}\n\n\n","\nimport { TimeFrame } from './TimeFrame';\nimport { BookingStatusCode } from './BookingStatusCode';\n\n// BookingsFilter list of fields to filter bookings\nexport class BookingsFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by time frame \n\tpublic period: TimeFrame;\n\n\t// Filter by Account ID \n\tpublic accountId: string;\n\n\t// Filter by Contact ID \n\tpublic contactId: string;\n\n\t// Filter by Airplane ID (when the booking is approved) \n\tpublic airplaneId: string;\n\n\t// Filter by Status(es) of booking \n\tpublic status: BookingStatusCode[];\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, period?: TimeFrame, accountId?: string, contactId?: string, airplaneId?: string, status?: BookingStatusCode[], sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (period !== undefined) { this.period = period; }\n if (accountId !== undefined) { this.accountId = accountId; }\n if (contactId !== undefined) { this.contactId = contactId; }\n if (airplaneId !== undefined) { this.airplaneId = airplaneId; }\n if (status !== undefined) { this.status = status; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\n\n// StringKeyValue model used as a string key-value pair\nexport class StringKeyValue {\n\n\t// Tuple key \n\tpublic key: string;\n\n\t// Tuple value \n\tpublic value: string;\n\n constructor(key?: string, value?: string) { \n if (key !== undefined) { this.key = key; }\n if (value !== undefined) { this.value = value; }\n }\n\n}\n\n\n","\nimport { TransactionTypeCode } from './TransactionTypeCode';\nimport { CurrencyCode } from './CurrencyCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Credit entity is an accounting action\nexport class Credit extends BaseEntityEx {\n\n\t// Credit name \n\tpublic name: string;\n\n\t// Credit description \n\tpublic description: string;\n\n\t// Credit transaction type: FLIGHT | BONUS | PURCHASE | REFUND ... \n\tpublic type: TransactionTypeCode;\n\n\t// Billing units - Hobbs \n\tpublic units: number;\n\n\t// Price per Unit - \n\tpublic unitPrice: number;\n\n\t// Total before VAT \n\tpublic beforeVat: number;\n\n\t// Amount \n\tpublic amount: number;\n\n\t// Base rate factor (ignore if 0) \n\tpublic baseRate: number;\n\n\t// Permanent discount at the time of the credit (percentage) \n\tpublic discount: number;\n\n\t// Currency \n\tpublic currency: CurrencyCode;\n\n\t// Linked to account \n\tpublic accountId: string;\n\n\t// Linked to flight \n\tpublic flightId: string;\n\n\t// User ID who updated this entry (can be \"system\") \n\tpublic updatedBy: string;\n\n\t// Time of the transaction [Epoch milliseconds Timestamp] \n\tpublic transactionOn: number;\n\n\t// Reference of the transaction \n\tpublic reference: string;\n\n\t// Linked document ID \n\tpublic documentId: string;\n\n}\n\nexport function GetCreditColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"TransactionTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"units\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"unitPrice\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"beforeVat\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"amount\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"baseRate\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"discount\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"currency\", \"CurrencyCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"updatedBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"transactionOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"reference\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"documentId\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// BillingRecord is a single record in the total billing of the flight\nexport class BillingRecord {\n\n\t// Billing record key - for \n\tpublic key: number;\n\n\t// Billing units - quantity_c / quantity_2_c \n\tpublic units: number;\n\n\t// Price per Unit - price_c / price_2_c \n\tpublic unitPrice: number;\n\n\t// Base factor (0 means no factor) \n\tpublic baseRate: number;\n\n\t// Description for Invoice - invoice_description_c / invoice_description_2_c \n\tpublic description: string;\n\n\t// Flag to indicate if VAT included (false) or Exempt (true) \n\tpublic exempt: boolean;\n\n constructor(key?: number, units?: number, unitPrice?: number, baseRate?: number, description?: string, exempt?: boolean) { \n if (key !== undefined) { this.key = key; }\n if (units !== undefined) { this.units = units; }\n if (unitPrice !== undefined) { this.unitPrice = unitPrice; }\n if (baseRate !== undefined) { this.baseRate = baseRate; }\n if (description !== undefined) { this.description = description; }\n if (exempt !== undefined) { this.exempt = exempt; }\n }\n\n}\n\n\n","\n\n// WeatherRisks group of weather risk values\nexport class WeatherRisks {\n\n\t// No weather reporting at destination \n\tpublic noWeatherReporting: number;\n\n\t// Thunderstorms at departure and/or destination \n\tpublic thunderstormsExpected: number;\n\n\t// Heavy rain at departure and/or destination \n\tpublic heavyRainExpected: number;\n\n\t// Frozen precipitation at departure and/or destination \n\tpublic frozenPrecipitation: number;\n\n\t// Ceiling / visibility at destination less than 500 ft. / 2 nm \n\tpublic ceilingVisibilityLess500Fts: number;\n\n\t// Cold weather operation \n\tpublic coldWeatherOperation: number;\n\n\t// Icing (moderate-severe) \n\tpublic moderateSeverIcing: number;\n\n\t// Surface winds greater than 30 knots \n\tpublic surfaceWindsOver30Knts: number;\n\n\t// Crosswinds greater than 15 knots \n\tpublic crosswindsOver15Knots: number;\n\n\t// Severe turbulence expected \n\tpublic severeTurbulenceExpected: number;\n\n constructor(noWeatherReporting?: number, thunderstormsExpected?: number, heavyRainExpected?: number, frozenPrecipitation?: number, ceilingVisibilityLess500Fts?: number, coldWeatherOperation?: number, moderateSeverIcing?: number, surfaceWindsOver30Knots?: number, crosswindsOver15Knots?: number, severeTurbulenceExpected?: number) { \n if (noWeatherReporting !== undefined) { this.noWeatherReporting = noWeatherReporting; }\n if (thunderstormsExpected !== undefined) { this.thunderstormsExpected = thunderstormsExpected; }\n if (heavyRainExpected !== undefined) { this.heavyRainExpected = heavyRainExpected; }\n if (frozenPrecipitation !== undefined) { this.frozenPrecipitation = frozenPrecipitation; }\n if (ceilingVisibilityLess500Fts !== undefined) { this.ceilingVisibilityLess500Fts = ceilingVisibilityLess500Fts; }\n if (coldWeatherOperation !== undefined) { this.coldWeatherOperation = coldWeatherOperation; }\n if (moderateSeverIcing !== undefined) { this.moderateSeverIcing = moderateSeverIcing; }\n if (surfaceWindsOver30Knots !== undefined) { this.surfaceWindsOver30Knts = surfaceWindsOver30Knots; }\n if (crosswindsOver15Knots !== undefined) { this.crosswindsOver15Knots = crosswindsOver15Knots; }\n if (severeTurbulenceExpected !== undefined) { this.severeTurbulenceExpected = severeTurbulenceExpected; }\n }\n\n}\n\n\n","\n\n// Mitigation risks mitigation strategy\nexport class Mitigation {\n\n\t// Operations Manager evaluation \n\tpublic operationManagerEval: boolean;\n\n\t// Document mitigation \n\tpublic documentMitigation: boolean;\n\n\t// Mitigation strategies - Risk Assessment Tool \n\tpublic mitigationStrategy: string;\n\n\t// Manager name \n\tpublic managerName: string;\n\n\t// Manager ID number \n\tpublic idNumber: string;\n\n\t// Flight cannot be conducted under noted conditions \n\tpublic flightNotApproved: boolean;\n\n\t// Mitigation followup actions \n\tpublic followUpActions: string;\n\n constructor(operationManagerEval?: boolean, documentMitigation?: boolean, mitigationStrategy?: string, managerName?: string, idNumber?: string, flightNotApproved?: boolean, followUpActions?: string) { \n if (operationManagerEval !== undefined) { this.operationManagerEval = operationManagerEval; }\n if (documentMitigation !== undefined) { this.documentMitigation = documentMitigation; }\n if (mitigationStrategy !== undefined) { this.mitigationStrategy = mitigationStrategy; }\n if (managerName !== undefined) { this.managerName = managerName; }\n if (idNumber !== undefined) { this.idNumber = idNumber; }\n if (flightNotApproved !== undefined) { this.flightNotApproved = flightNotApproved; }\n if (followUpActions !== undefined) { this.followUpActions = followUpActions; }\n }\n\n}\n\n\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { InjectionToken } from '@angular/core';\nimport { Injectable } from '@angular/core';\n\n//@Injectable()\nexport class AppConfig {\n api: string = '';\n}\n\nexport const APP_CONFIG = new InjectionToken<AppConfig>('CLIENT_LIB_APP_CONFIG');\n\nexport function provideClientLib(config: AppConfig): EnvironmentProviders {\n return makeEnvironmentProviders([\n { provide: APP_CONFIG, useValue: config },\n ]);\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpRequest } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\n\nconst httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n 'Cache-Control': 'no-cache, no-store',\n 'Access-Control-Allow-Origin': '*',\n 'Access-Control-Allow-Headers': 'Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, X-API-KEY, X-ACCESS-TOKEN, X-TIMEZONE, accept, origin, Cache-Control, X-Requested-With, Authorization, Content-Disposition, Content-Filename',\n })\n};\n\n// Utility class for all REST services with common functions\n@Injectable({\n providedIn: 'root'\n})\nexport class RestUtils {\n\n // Constructor with injected authentication service\n constructor(private http: HttpClient) { }\n\n // Upload is HTTP POST action but the body is File object\n upload<T>(file: File, url: string, ...params: string[]) {\n\n const resourceUrl = this.buildUrl(url, ...params);\n\n const formData: FormData = new FormData();\n formData.append('fileKey', file, file.name);\n\n const req = new HttpRequest('POST', resourceUrl, formData, {\n reportProgress: false,\n responseType: 'json',\n });\n return this.http.request<T>(req);\n }\n\n // Download is HTTP GET action but the content is a blob\n download(fileName: string, url: string, ...params: string[]) {\n const resourceUrl = this.buildUrl(url, ...params);\n\n let downloadLink = fileName\n\n // extract file name\n params.forEach(p => {\n let arr = p.split('=');\n if (arr.length > 1) {\n if (arr[0].toLowerCase() === 'filename') {\n downloadLink = arr[1];\n }\n }\n });\n\n // Set content type for: json / csv / xml / pdf /xslx\n let contentType = this.getMimeType(downloadLink);\n\n return this.http.get(resourceUrl, {\n responseType: 'blob',\n reportProgress: true,\n observe: 'events',\n headers: new HttpHeaders({ 'Content-Type': contentType })\n });\n }\n\n // Download2 is an alternative option to download\n download2(fileName: string, url: string, ...params: string[]) {\n\n let downloadLink = fileName\n\n // extract file name\n params.forEach(p => {\n let arr = p.split('=');\n if (arr.length > 1) {\n if (arr[0].toLowerCase() === 'filename') {\n downloadLink = arr[1];\n }\n }\n });\n\n let contentType = this.getMimeType(fileName);\n\n const link = document.createElement('a');\n link.href = this.buildUrl(url, ...params);\n link.download = downloadLink;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n }\n\n // HTTP GET action\n get<T>(url: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.get<T>(resourceUrl, httpOptions)\n }\n\n // HTTP POST action\n post<T>(url: string, body?: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.post<T>(resourceUrl, body, httpOptions)\n }\n\n // HTTP PUT action\n put<T>(url: string, body?: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.put<T>(resourceUrl, body, httpOptions)\n }\n\n // HTTP PATCH action\n patch<T>(url: string, body?: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.patch<T>(resourceUrl, body, httpOptions)\n }\n\n // HTTP DELETE action\n delete<T>(url: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.delete<T>(resourceUrl, httpOptions)\n }\n\n // Construct URL with parameters\n private buildUrl(url: string, ...params: string[]) {\n return (params === null) ? url : (params.length === 0) ? url : `${url}${params && params.length > 0 ? '?'+params.join('&') : ''}`;\n }\n\n // Return MIME type based on file extension\n private getMimeType(fileName: string): string {\n // Set content type for: json / csv / xml / pdf /xslx\n let contentType = 'application/json';\n if (fileName.toLowerCase().endsWith('jpg') || fileName.toLowerCase().endsWith('jpeg')) {\n contentType = 'image/jpeg';\n } else if (fileName.toLowerCase().endsWith('png')) {\n contentType = 'image/png';\n } else if (fileName.toLowerCase().endsWith('tif') || fileName.toLowerCase().endsWith('tiff')) {\n contentType = 'image/tiff';\n } else if (fileName.toLowerCase().endsWith('csv')) {\n contentType = 'text/csv';\n } else if (fileName.toLowerCase().endsWith('xml')) {\n contentType = 'text/xml';\n } else if (fileName.toLowerCase().endsWith('pdf')) {\n contentType = 'application/pdf';\n } else if (fileName.toLowerCase().endsWith('xlsx')) {\n contentType = \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\n }\n return contentType\n }\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { Contact } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { Flight } from '../model';\nimport { EntityResponse } from '../model';\n\n// MyStudentsEndPoint Services for instructor's students \n@Injectable({\n providedIn: 'root'\n})\nexport class MyStudentsEndPoint {\n\n // URL to web api\n private baseUrl = '/my/students';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get a single student by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Contact>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * List my students by query\n */\n list() {\n return this.rest.get<EntitiesResponse<Contact>>(`${this.baseUrl}`);\n }\n\n /**\n * Find contact related flights for student sheet (all flights of type LESSON that the student is captain of first officer)\n */\n getStudentSheet(id?: string, sort?: string) {\n const params = [];\n if (sort != null) { params.push(`sort=${sort}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/${id}/student-sheet`, ...params);\n }\n\n /**\n * Download student sheet as XLSX document\n */\n downloadStudentSheetXlsx(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/${id}/student-sheet/xlsx`);\n }\n\n /**\n * Download student sheet as CSV document\n */\n downloadStudentSheetCsv(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/${id}/student-sheet/csv`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { LeadStatusCode } from '../model';\nimport { ActionResponse } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { TimeSeries } from '../model';\nimport { LeadAction } from '../model';\nimport { Booking } from '../model';\nimport { Point } from '../model';\nimport { Lead } from '../model';\nimport { IntEnumValue } from '../model';\nimport { IntKeyValue } from '../model';\n\n// LeadsEndPoint Services for leads actions \n@Injectable({\n providedIn: 'root'\n})\nexport class LeadsEndPoint {\n\n // URL to web api\n private baseUrl = '/leads';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty lead template\n */\n new() {\n return this.rest.post<EntityResponse<Lead>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new lead\n */\n create(body?: Lead) {\n return this.rest.post<EntityResponse<Lead>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing lead\n */\n update(body?: Lead) {\n return this.rest.put<EntityResponse<Lead>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing lead\n */\n changeStatus(id?: string, status?: LeadStatusCode) {\n return this.rest.put<EntityResponse<Lead>>(`${this.baseUrl}/${id}/status/${status}`, '');\n }\n\n /**\n * Delete lead and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single lead by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Lead>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find leads by query\n */\n find(search?: string, status?: LeadStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Lead>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find lead count histogram over time\n */\n histogram(from?: number, to?: number, search?: string, status?: LeadStatusCode[]) {\n const params = [];\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n\n\t\treturn this.rest.get<EntityResponse<TimeSeries<number>>>(`${this.baseUrl}/histogram`, ...params);\n }\n\n /**\n * Add follow-up lead action\n */\n addFollowUpAction(id?: string, description?: string) {\n const params = [];\n if (description != null) { params.push(`description=${description}`); }\n\n\t\treturn this.rest.post<EntityResponse<Lead>>(`${this.baseUrl}/${id}/follow-up-actions`, '', ...params);\n }\n\n /**\n * Create new lead action\n */\n createAction(body?: LeadAction) {\n return this.rest.post<EntityResponse<LeadAction>>(`${this.baseUrl}/actions`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing lead action\n */\n updateAction(body?: LeadAction) {\n return this.rest.put<EntityResponse<LeadAction>>(`${this.baseUrl}/actions`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete lead action\n */\n deleteAction(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/actions/${id}`);\n }\n\n /**\n * Get all lead actions\n */\n getActions(id?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<LeadAction>>(`${this.baseUrl}/${id}/actions`, ...params);\n }\n\n /**\n * Insert or update lead action and return list of all actions\n */\n upsertAndGetActions(body?: LeadAction) {\n return this.rest.post<EntitiesResponse<LeadAction>>(`${this.baseUrl}/upsert_and_get_actions`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete lead action and return list of all actions\n */\n deleteAndGetActions(id?: string) {\n return this.rest.delete<EntitiesResponse<LeadAction>>(`${this.baseUrl}/delete_and_get_actions/${id}`);\n }\n\n /**\n * Change the lead create time to make it pop in the provided time\n */\n snooze(id?: string, ts?: number) {\n return this.rest.put<EntityResponse<Lead>>(`${this.baseUrl}/${id}/snooze/${ts}`, '');\n }\n\n /**\n * Get bookings schedule for specific month, the result size is limited to 1000 entries\n */\n bookingsSchedule(year?: number, month?: number) {\n return this.rest.get<EntitiesResponse<Booking>>(`${this.baseUrl}/bookings-schedule`);\n }\n\n /**\n * Insert or update flight booking for this lead in the provided timestamp\n */\n setBooking(id?: string, ts?: number) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/bookings/${id}/${ts}`, '');\n }\n\n /**\n * Delete lead booking\n */\n deleteBooking(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/booking/${id}`);\n }\n\n /**\n * Get monthly daily leads for specific month, for sales insights\n */\n monthlyLeads(year?: number, month?: number) {\n return this.rest.get<EntityResponse<TimeSeries<Point>>>(`${this.baseUrl}/monthly-leads/${year}/${month}`);\n }\n\n /**\n * Get monthly leads distribution by status for specific month, for sales insights\n */\n countByStatus(year?: number, month?: number) {\n return this.rest.get<EntitiesResponse<IntEnumValue>>(`${this.baseUrl}/count-by-status/${year}/${month}`);\n }\n\n /**\n * Get monthly leads distribution by source for specific month, for sales insights\n */\n countBySource(year?: number, month?: number) {\n return this.rest.get<EntitiesResponse<IntKeyValue>>(`${this.baseUrl}/count-by-source/${year}/${month}`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { Syllabus } from '../model';\nimport { ActionResponse } from '../model';\nimport { FlightCategoryCode } from '../model';\nimport { InstructionTypeCode } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { EntityResponse } from '../model';\n\n// SyllabusEndPoint Services for syllabus \n@Injectable({\n providedIn: 'root'\n})\nexport class SyllabusEndPoint {\n\n // URL to web api\n private baseUrl = '/syllabus';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty syllabus template\n */\n new() {\n return this.rest.post<EntityResponse<Syllabus>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new syllabus\n */\n create(body?: Syllabus) {\n return this.rest.post<EntityResponse<Syllabus>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing Syllabus\n */\n update(body?: Syllabus) {\n return this.rest.put<EntityResponse<Syllabus>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete Syllabus and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single Syllabus by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Syllabus>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find Syllabus topics by query\n */\n find(search?: string, plan?: FlightCategoryCode[], type?: InstructionTypeCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (plan != null) { params.push(`plan=${plan}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Syllabus>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find Syllabus topics by query\n */\n getStudentPlan(id?: string) {\n return this.rest.get<EntitiesResponse<Syllabus>>(`${this.baseUrl}/spl-plan/${id}`);\n }\n\n /**\n * Sync Syllabus topics from student flights\n */\n syncStudentSyllabus(id?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/spl-plan/${id}/sync`, '');\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { LoginParams } from '../model';\nimport { EntityResponse } from '../model';\nimport { User } from '../model';\n\n// UserEndPoint Services for user registration and login \n@Injectable({\n providedIn: 'root'\n})\nexport class UserEndPoint {\n\n // URL to web api\n private baseUrl = '/user';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Authorize user, verify user exists in the system\n * The response includes access token valid for 20 minutes. The client side should renew the token before expiration using refresh-token method\n */\n authorize(body?: LoginParams) {\n return this.rest.post<EntityResponse<User>>(`${this.baseUrl}/authorize`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { Credit } from '../model';\nimport { EntitiesResponse } from '../model';\n\n// MyCreditsEndPoint Services for current user credits queries \n@Injectable({\n providedIn: 'root'\n})\nexport class MyCreditsEndPoint {\n\n // URL to web api\n private baseUrl = '/my/credits';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get a single credit by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Credit>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find my credits by query\n */\n find(sort?: string, page?: number, size?: number) {\n const params = [];\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Credit>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { TimeSeries } from '../model';\nimport { AuditLog } from '../model';\nimport { EntityResponse } from '../model';\nimport { EntitiesResponse } from '../model';\n\n// AuditLogsEndPoint Services for auditLogs actions \n@Injectable({\n providedIn: 'root'\n})\nexport class AuditLogsEndPoint {\n\n // URL to web api\n private baseUrl = '/audit_logs';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Create new auditLog\n */\n create(body?: AuditLog) {\n return this.rest.post<EntityResponse<AuditLog>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Get a single auditLog by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<AuditLog>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find auditLogs by query\n */\n find(from?: number, to?: number, userId?: string, action?: string, itemType?: string, itemId?: string, itemName?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (userId != null) { params.push(`userId=${userId}`); }\n if (action != null) { params.push(`action=${action}`); }\n if (itemType != null) { params.push(`itemType=${itemType}`); }\n if (itemId != null) { params.push(`itemId=${itemId}`); }\n if (itemName != null) { params.push(`itemName=${itemName}`); }\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<AuditLog>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find auditLogs count histogram over time\n */\n histogram(from?: number, to?: number, userId?: string, action?: string, itemType?: string, itemId?: string, itemName?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (userId != null) { params.push(`userId=${userId}`); }\n if (action != null) { params.push(`action=${action}`); }\n if (itemType != null) { params.push(`itemType=${itemType}`); }\n if (itemId != null) { params.push(`itemId=${itemId}`); }\n if (itemName != null) { params.push(`itemName=${itemName}`); }\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntityResponse<TimeSeries<number>>>(`${this.baseUrl}/histogram`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { Lookup } from '../model';\nimport { EntityResponse } from '../model';\nimport { ActionResponse } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { LookupGroup } from '../model';\n\n// LookupsEndPoint Services for lookups actions \n@Injectable({\n providedIn: 'root'\n})\nexport class LookupsEndPoint {\n\n // URL to web api\n private baseUrl = '/lookups';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Create new lookup\n */\n create(body?: Lookup) {\n return this.rest.post<EntityResponse<Lookup>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing lookup\n */\n update(body?: Lookup) {\n return this.rest.put<EntityResponse<Lookup>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete lookup and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single lookup by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Lookup>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find lookups by query\n */\n find(search?: string, domain?: string, group?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (domain != null) { params.push(`domain=${domain}`); }\n if (group != null) { params.push(`group=${group}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Lookup>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Group lookups by group\n */\n group(domain?: string) {\n const params = [];\n if (domain != null) { params.push(`domain=${domain}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<LookupGroup>>(`${this.baseUrl}/group`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { SystemConfig } from '../model';\nimport { EntityResponse } from '../model';\nimport { ActionResponse } from '../model';\nimport { EntitiesResponse } from '../model';\n\n// SystemConfigsEndPoint Services for systemConfigs actions \n@Injectable({\n providedIn: 'root'\n})\nexport class SystemConfigsEndPoint {\n\n // URL to web api\n private baseUrl = '/system_configs';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Create new systemConfig\n */\n create(body?: SystemConfig) {\n return this.rest.post<EntityResponse<SystemConfig>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing systemConfig\n */\n update(body?: SystemConfig) {\n return this.rest.put<EntityResponse<SystemConfig>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete systemConfig and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single systemConfig by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<SystemConfig>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find systemConfigs by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<SystemConfig>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { ActionResponse } from '../model';\nimport { BookingTypeFlag } from '../model';\nimport { Lookup } from '../model';\nimport { BookingSlot } from '../model';\nimport { Booking } from '../model';\nimport { BookingStatusCode } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { Airplane } from '../model';\n\n// MyBookingsEndPoint Services for current user bookings actions \n@Injectable({\n providedIn: 'root'\n})\nexport class MyBookingsEndPoint {\n\n // URL to web api\n private baseUrl = '/my/bookings';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Create new booking\n */\n create(body?: Booking) {\n return this.rest.post<EntityResponse<Booking>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing booking\n */\n update(body?: Booking) {\n return this.rest.put<EntityResponse<Booking>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete booking and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single booking by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Booking>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find my bookings by query\n */\n find(search?: string, airplaneId?: string, from?: number, to?: number, status?: BookingStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Booking>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Get list of booking airplanes according to booking type and date\n */\n getBookingAirplanes(type?: BookingTypeFlag) {\n const params = [];\n if (type != null) { params.push(`type=${type}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Lookup>>(`${this.baseUrl}/booking-airplanes`, ...params);\n }\n\n /**\n * Get all time slots (occupied and free) per airplane per day.\n * In case of type == PATTERNS, get the patterns slots combined with airplane availability\n */\n getDailySlots(year?: number, month?: number, day?: number, type?: BookingTypeFlag, airplaneId?: string) {\n const params = [];\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n if (day != null) { params.push(`day=${day}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingSlot>>(`${this.baseUrl}/daily-slots`, ...params);\n }\n\n /**\n * Find all instructors and mark the student's default instructor\n */\n findInstructors(search?: string) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Lookup>>(`${this.baseUrl}/instructors`, ...params);\n }\n\n /**\n * Find all active pilots\n */\n findPilots(search?: string) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Lookup>>(`${this.baseUrl}/pilots`, ...params);\n }\n\n /**\n * Find all airplanes\n */\n findAirplanes() {\n return this.rest.get<EntitiesResponse<Airplane>>(`${this.baseUrl}/airplanes`);\n }\n\n /**\n * Get a single airplane by id\n */\n getAirplane(id?: string) {\n return this.rest.get<EntityResponse<Airplane>>(`${this.baseUrl}/airplanes/${id}`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { FlightStatusCode } from '../model';\nimport { FlightPlan } from '../model';\nimport { InstructionTypeCode } from '../model';\nimport { Syllabus } from '../model';\nimport { PreFlightInfo } from '../model';\nimport { ActionResponse } from '../model';\nimport { PostFlightInfo } from '../model';\nimport { EntityResponse } from '../model';\nimport { Flight } from '../model';\nimport { FlightTypeCode } from '../model';\nimport { EntitiesResponse } from '../model';\n\n// MyFlightsEndPoint Services for user flights actions \n@Injectable({\n providedIn: 'root'\n})\nexport class MyFlightsEndPoint {\n\n // URL to web api\n private baseUrl = '/my/flights';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get a single flight by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Flight>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find my flights by query\n */\n find(search?: string, type?: FlightTypeCode[], status?: FlightStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Get flight plans data for gantt, the result size is limited to 1000 entries\n */\n gantt(from?: number, to?: number) {\n const params = [];\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightPlan>>(`${this.baseUrl}/gantt`, ...params);\n }\n\n /**\n * Get lesson topics based on the contact flight syllabus\n */\n topics(contact?: string, type?: InstructionTypeCode) {\n const params = [];\n if (contact != null) { params.push(`contact=${contact}`); }\n if (type != null) { params.push(`type=${type}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Syllabus>>(`${this.baseUrl}/topics`, ...params);\n }\n\n /**\n * Get pre-flight info by id\n */\n getPreFlight(id?: string) {\n return this.rest.get<EntityResponse<PreFlightInfo>>(`${this.baseUrl}/pre-flight/${id}`);\n }\n\n /**\n * Update flight with pre-flight info\n */\n setPreFlight(body?: PreFlightInfo) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/pre-flight`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Get post-flight info by id\n */\n getPostFlight(id?: string) {\n return this.rest.get<EntityResponse<PostFlightInfo>>(`${this.baseUrl}/post-flight/${id}`);\n }\n\n /**\n * Update flight with post-flight info\n */\n setPostFlight(body?: PostFlightInfo) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/post-flight`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Get post-flight assessment info by flight id\n */\n getPostFlightAssessment(id?: string) {\n return this.rest.get<EntityResponse<PostFlightInfo>>(`${this.baseUrl}/post-flight-assessment/${id}`);\n }\n\n /**\n * Update flight with post-flight assessment info\n */\n setPostFlightAssessment(body?: PostFlightInfo) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/post-flight-assessment`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Find contact related flights for student sheet (all flights of type LESSON that the student is captain of first officer)\n */\n getStudentSheet(sort?: string) {\n const params = [];\n if (sort != null) { params.push(`sort=${sort}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/student-sheet`, ...params);\n }\n\n /**\n * Download student sheet as XLSX document\n */\n downloadStudentSheetXlsx() {\n return this.rest.download(`export`,`${this.baseUrl}student-sheet/xlsx`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntitiesResponse } from '../model';\nimport { MessageConfirm } from '../model';\nimport { ActionResponse } from '../model';\nimport { EntityResponse } from '../model';\nimport { SystemMessage } from '../model';\n\n// MyMessagesEndPoint Services for read-and-confirm messages \n@Injectable({\n providedIn: 'root'\n})\nexport class MyMessagesEndPoint {\n\n // URL to web api\n private baseUrl = '/my/messages';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get a single message by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<SystemMessage>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find my Messages\n */\n find() {\n return this.rest.get<EntitiesResponse<MessageConfirm>>(`${this.baseUrl}`);\n }\n\n /**\n * Confirm messages by contact\n */\n confirm(id?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/${id}`, '');\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { BookingSlot } from '../model';\nimport { ActionResponse } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { BookingSlots } from '../model';\nimport { BookingSlotsSet } from '../model';\n\n// BookingSlotsEndPoint Services for bookingSlots actions \n@Injectable({\n providedIn: 'root'\n})\nexport class BookingSlotsEndPoint {\n\n // URL to web api\n private baseUrl = '/booking_slots';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty booking slot template\n */\n new() {\n return this.rest.post<EntityResponse<BookingSlot>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new bookingSlot\n */\n create(body?: BookingSlot) {\n return this.rest.post<EntityResponse<BookingSlot>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing bookingSlot\n */\n update(body?: BookingSlot) {\n return this.rest.put<EntityResponse<BookingSlot>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete bookingSlot and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single bookingSlot by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<BookingSlot>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find bookingSlots by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingSlot>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find Monthly slots (limit of 1000)\n */\n monthly(year?: number, month?: number) {\n const params = [];\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingSlot>>(`${this.baseUrl}/monthly`, ...params);\n }\n\n /**\n * Get all available monthly slots for patterns\n */\n monthlySlotOptions(year?: number, month?: number) {\n const params = [];\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingSlots>>(`${this.baseUrl}/monthly-slot-options`, ...params);\n }\n\n /**\n * Add or remove a bulk of monthly slots for patterns\n */\n setMonthlySlot(body?: BookingSlotsSet) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/monthly-slots`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Publish slots (make invisible slots to visible)\n */\n publish(id?: string[]) {\n const params = [];\n if (id != null) { params.push(`id=${id}`); }\n\n\t\treturn this.rest.post<ActionResponse>(`${this.baseUrl}/publish`, '', ...params);\n }\n\n /**\n * UnPublish slots (make visible slots to invisible)\n */\n unPublish(id?: string[]) {\n const params = [];\n if (id != null) { params.push(`id=${id}`); }\n\n\t\treturn this.rest.post<ActionResponse>(`${this.baseUrl}/unpublish`, '', ...params);\n }\n\n /**\n * Unbook slot will remove the booking item related to this slot, but if it is related to a flight, it will return an error\n */\n unBook(id?: string) {\n const params = [];\n if (id != null) { params.push(`id=${id}`); }\n\n\t\treturn this.rest.post<ActionResponse>(`${this.baseUrl}/unbook`, '', ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { ActionResponse } from '../model';\n\n// SystemEndPoint Services for general system queries \n@Injectable({\n providedIn: 'root'\n})\nexport class SystemEndPoint {\n\n // URL to web api\n private baseUrl = '/system';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Lookup returns entity name for entity id\n */\n lookup(entity?: string, id?: string) {\n return this.rest.get<ActionResponse>(`${this.baseUrl}/lookup/${entity}/${id}`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntitiesResponse } from '../model';\nimport { StringKeyValue } from '../model';\n\n// McpToolsEndPoint Services for user flights actions \n@Injectable({\n providedIn: 'root'\n})\nexport class McpToolsEndPoint {\n\n // URL to web api\n private baseUrl = '/mcp/tools';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Lookup accounts ID->Name mapping\n */\n accountsLookup(search?: string) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/accounts-lookup`, ...params);\n }\n\n /**\n * Lookup contacts ID->Name mapping\n */\n contactsLookup(search?: string) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/contacts-lookup`, ...params);\n }\n\n /**\n * Lookup airplanes ID->Name mapping\n */\n airplanesLookup(search?: string) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/airplanes-lookup`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { Account } from '../model';\nimport { ActionResponse } from '../model';\nimport { AccountStatusCode } from '../model';\nimport { AccountTypeCode } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { StringKeyValue } from '../model';\nimport { FlightTypeCode } from '../model';\nimport { FlightStatusCode } from '../model';\nimport { FlightStateCode } from '../model';\nimport { FlightPurposeCode } from '../model';\nimport { Flight } from '../model';\nimport { Credit } from '../model';\nimport { Document } from '../model';\n\n// AccountsEndPoint Services for user registration and login \n@Injectable({\n providedIn: 'root'\n})\nexport class AccountsEndPoint {\n\n // URL to web api\n private baseUrl = '/accounts';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty account template\n */\n new() {\n return this.rest.post<EntityResponse<Account>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new account\n */\n create(body?: Account) {\n return this.rest.post<EntityResponse<Account>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing account\n */\n update(body?: Account) {\n return this.rest.put<EntityResponse<Account>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete account and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single account by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Account>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find accounts by query\n */\n find(search?: string, status?: AccountStatusCode[], type?: AccountTypeCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Account>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup account ID->Name by filter\n */\n lookup(search?: string, status?: AccountStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n /**\n * Find account flights\n */\n findFlights(id?: string, search?: string, airplaneId?: string, type?: FlightTypeCode[], status?: FlightStatusCode[], state?: FlightStateCode[], purpose?: FlightPurposeCode[], from?: number, to?: number, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (state != null) { params.push(`state=${state}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/${id}/flights`, ...params);\n }\n\n /**\n * Find account credits\n */\n findCredits(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Credit>>(`${this.baseUrl}/${id}/credits`, ...params);\n }\n\n /**\n * Download account credit history as XLSX document\n */\n downloadCreditsXlsx(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/${id}/credits-download/xlsx`);\n }\n\n /**\n * Find related documents\n */\n findDocuments(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Document>>(`${this.baseUrl}/${id}/documents`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { Document } from '../model';\nimport { AirplaneStatusCode } from '../model';\nimport { FlightTypeCode } from '../model';\nimport { FlightStateCode } from '../model';\nimport { Flight } from '../model';\nimport { ActionResponse } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { StringKeyValue } from '../model';\nimport { StatusCode } from '../model';\nimport { MaintenanceActionCode } from '../model';\nimport { EntityResponse } from '../model';\nimport { Airplane } from '../model';\nimport { FlightStatusCode } from '../model';\nimport { FlightPurposeCode } from '../model';\nimport { Maintenance } from '../model';\n\n// AirplanesEndPoint Services for airplanes actions \n@Injectable({\n providedIn: 'root'\n})\nexport class AirplanesEndPoint {\n\n // URL to web api\n private baseUrl = '/airplanes';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * region Endpoint REST handlers ---------------------------------------------------------------------------------------\n * Get new and empty account template\n */\n new() {\n return this.rest.post<EntityResponse<Airplane>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new airplane\n */\n create(body?: Airplane) {\n return this.rest.post<EntityResponse<Airplane>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing airplane\n */\n update(body?: Airplane) {\n return this.rest.put<EntityResponse<Airplane>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing airplane's Weight and Balance configuration\n */\n updateWBConfig(body?: Airplane) {\n return this.rest.put<EntityResponse<Airplane>>(`${this.baseUrl}/wb-config`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete airplane and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single airplane by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Airplane>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find airplanes by query\n */\n find(search?: string, status?: AirplaneStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Airplane>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup airplanes ID->Name by filter\n */\n lookup(search?: string, status?: AirplaneStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n /**\n * Get minimal active airplanes data for hours statistics only\n */\n hours() {\n return this.rest.get<EntitiesResponse<Airplane>>(`${this.baseUrl}/hours`);\n }\n\n /**\n * Find airplane flights\n */\n findFlights(id?: string, search?: string, type?: FlightTypeCode[], status?: FlightStatusCode[], state?: FlightStateCode[], purpose?: FlightPurposeCode[], from?: number, to?: number, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (state != null) { params.push(`state=${state}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/${id}/flights`, ...params);\n }\n\n /**\n * Find airplane documents\n */\n findDocuments(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Document>>(`${this.baseUrl}/${id}/documents`, ...params);\n }\n\n /**\n * Find airplane maintenance log book\n */\n findMaintenance(id?: string, search?: string, status?: StatusCode[], action?: MaintenanceActionCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (action != null) { params.push(`action=${action}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Maintenance>>(`${this.baseUrl}/${id}/maintenance`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { Document } from '../model';\nimport { ActionResponse } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { StorageItem } from '../model';\n\n// DocumentsEndPoint Services for documents actions \n@Injectable({\n providedIn: 'root'\n})\nexport class DocumentsEndPoint {\n\n // URL to web api\n private baseUrl = '/documents';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty document template\n */\n new() {\n return this.rest.post<EntityResponse<Document>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new document\n */\n create(body?: Document) {\n return this.rest.post<EntityResponse<Document>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing document\n */\n update(body?: Document) {\n return this.rest.put<EntityResponse<Document>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete document and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single document by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Document>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find documents by query\n */\n find(search?: string, category?: string, linkedId?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (category != null) { params.push(`category=${category}`); }\n if (linkedId != null) { params.push(`linkedId=${linkedId}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Document>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Get a single document by linked entity ID\n */\n linkedDocument(id?: string) {\n return this.rest.get<EntityResponse<Document>>(`${this.baseUrl}/entity/${id}`);\n }\n\n /**\n * Get a list of files from the base storage\n */\n listFiles(root?: string) {\n const params = [];\n if (root != null) { params.push(`root=${root}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StorageItem>>(`${this.baseUrl}/files`, ...params);\n }\n\n /**\n * Get a list of files and folders from the folder in Google Drive defined as Library\n */\n broseLibrary(root?: string) {\n const params = [];\n if (root != null) { params.push(`root=${root}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StorageItem>>(`${this.baseUrl}/library`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { FlightPlan } from '../model';\nimport { Point } from '../model';\nimport { FlightClassCode } from '../model';\nimport { FlightTicket } from '../model';\nimport { PreFlightInfo } from '../model';\nimport { ActionResponse } from '../model';\nimport { AnyKeyValue } from '../model';\nimport { BillingStatusCode } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { PostFlightInfo } from '../model';\nimport { Entities } from '../model';\nimport { FlightStatusCode } from '../model';\nimport { FlightPurposeCode } from '../model';\nimport { TimeSeries } from '../model';\nimport { Distribution } from '../model';\nimport { Contact } from '../model';\nimport { EntityResponse } from '../model';\nimport { Flight } from '../model';\nimport { FlightTypeCode } from '../model';\n\n// FlightsEndPoint Services for flights actions \n@Injectable({\n providedIn: 'root'\n})\nexport class FlightsEndPoint {\n\n // URL to web api\n private baseUrl = '/flights';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty flight template\n */\n new() {\n return this.rest.post<EntityResponse<Flight>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Get new and empty flight template\n */\n newFromBooking(id?: string) {\n return this.rest.post<EntityResponse<Flight>>(`${this.baseUrl}/new-from-booking/${id}`, '');\n }\n\n /**\n * Create new flight\n */\n launch(body?: Flight) {\n return this.rest.post<EntityResponse<Flight>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update an existing flight\n */\n update(body?: Flight) {\n return this.rest.put<EntityResponse<Flight>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update a list of existing flights\n */\n bulkUpdate(body?: Entities<Flight>) {\n return this.rest.put<ActionResponse>(`${this.baseUrl}/bulk`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update an existing flight with partial data\n */\n partialUpdate(id?: string, body?: AnyKeyValue) {\n return this.rest.put<EntityResponse<Flight>>(`${this.baseUrl}/partial/${id}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete flight and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single flight by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Flight>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find flights by query\n */\n find(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, type?: FlightTypeCode[], status?: FlightStatusCode[], billing?: BillingStatusCode[], purpose?: FlightPurposeCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (billing != null) { params.push(`billing=${billing}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Download all flights by filter as XLSX document\n */\n downloadFlightsXlsx(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, type?: FlightTypeCode[], status?: FlightStatusCode[], billing?: BillingStatusCode[], purpose?: FlightPurposeCode[], sort?: string) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (billing != null) { params.push(`billing=${billing}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n\n\t\treturn this.rest.download(`export`,`${this.baseUrl}/flights-download/xlsx`, ...params);\n }\n\n /**\n * Find flights count histogram over time (up to last 30 days)\n */\n histogram(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, type?: FlightTypeCode[], status?: FlightStatusCode[], billing?: BillingStatusCode[], purpose?: FlightPurposeCode[]) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (billing != null) { params.push(`billing=${billing}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n\n\t\treturn this.rest.get<EntityResponse<TimeSeries<number>>>(`${this.baseUrl}/histogram`, ...params);\n }\n\n /**\n * Get flight plans data for gantt, the result size is limited to 1000 entries\n */\n gantt(from?: number, to?: number) {\n const params = [];\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightPlan>>(`${this.baseUrl}/gantt`, ...params);\n }\n\n /**\n * Get flight plans schedule for specific month, the result size is limited to 1000 entries\n */\n schedule(year?: number, month?: number) {\n const params = [];\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightPlan>>(`${this.baseUrl}/schedule`, ...params);\n }\n\n /**\n * Get monthly daily flight hours for specific month, for income forecast\n */\n monthlyHours(year?: number, month?: number, airplaneId?: string) {\n const params = [];\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n\n\t\treturn this.rest.get<EntityResponse<TimeSeries<Point>>>(`${this.baseUrl}/monthly-hours/${year}/${month}`, ...params);\n }\n\n /**\n * Get monthly flight hours distribution by class for specific month\n */\n monthlyHoursDistributionByClass(year?: number, month?: number, airplaneId?: string) {\n const params = [];\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n\n\t\treturn this.rest.get<EntityResponse<Distribution<FlightClassCode, number>>>(`${this.baseUrl}/monthly-hours-by-class/${year}/${month}`, ...params);\n }\n\n /**\n * Get monthly flight hours distribution by airplane for specific month\n */\n monthlyHoursDistributionByAirplane(year?: number, month?: number) {\n return this.rest.get<EntityResponse<Distribution<string, number>>>(`${this.baseUrl}/monthly-hours-by-airplane/${year}/${month}`);\n }\n\n /**\n * Get monthly flight number distribution by flight status for specific month\n */\n monthlyFlightsDistributionByStatus(year?: number, month?: number, airplaneId?: string) {\n const params = [];\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n\n\t\treturn this.rest.get<EntityResponse<Distribution<FlightStatusCode, number>>>(`${this.baseUrl}/monthly-flights-by-status/${year}/${month}`, ...params);\n }\n\n /**\n * Find list of contacts (pilot / first officer) on this flight\n */\n findContacts(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Contact>>(`${this.baseUrl}/${id}/contacts`, ...params);\n }\n\n /**\n * Find list of related flight tickets for this flight\n */\n findTickets(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightTicket>>(`${this.baseUrl}/${id}/tickets`, ...params);\n }\n\n /**\n * Send flight details by sms (pref-flight, post-flight)\n */\n sendFlightSMS(id?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/${id}/send-sms`, '');\n }\n\n /**\n * Send flight details by sms (pref-flight, post-flight)\n */\n sendFlightEmail(id?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/${id}/send-email`, '');\n }\n\n /**\n * Get pre-flight info by id\n */\n getPreFlight(id?: string) {\n return this.rest.get<EntityResponse<PreFlightInfo>>(`${this.baseUrl}/pre-flight/${id}`);\n }\n\n /**\n * Update flight with pre-flight info\n */\n setPreFlight(body?: PreFlightInfo) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/pre-flight`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Get post-flight info by id\n */\n getPostFlight(id?: string) {\n return this.rest.get<EntityResponse<PostFlightInfo>>(`${this.baseUrl}/post-flight/${id}`);\n }\n\n /**\n * Update flight with post-flight info\n */\n setPostFlight(body?: PostFlightInfo) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/post-flight`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { Maintenance } from '../model';\nimport { ActionResponse } from '../model';\nimport { MaintenanceActionCode } from '../model';\nimport { StatusCode } from '../model';\nimport { EntitiesResponse } from '../model';\n\n// MaintenancesEndPoint Services for maintenances actions \n@Injectable({\n providedIn: 'root'\n})\nexport class MaintenancesEndPoint {\n\n // URL to web api\n private baseUrl = '/maintenances';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty maintenance template\n */\n new() {\n return this.rest.post<EntityResponse<Maintenance>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new maintenance\n */\n create(body?: Maintenance) {\n return this.rest.post<EntityResponse<Maintenance>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing maintenance\n */\n update(body?: Maintenance) {\n return this.rest.put<EntityResponse<Maintenance>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete maintenance and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single maintenance by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Maintenance>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find maintenances by query\n */\n find(search?: string, airplaneId?: string, action?: MaintenanceActionCode[], status?: StatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (action != null) { params.push(`action=${action}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Maintenance>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Upload maintenance reference document\n */\n getUploadUrl(id?: string) {\n return `${this.baseUrl}/upload/${id}`;\n }\n\n /**\n * Download maintenances reference document\n */\n download(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/download/${id}`);\n }\n\n /**\n * Delete maintenances reference document\n */\n deleteReference(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}/reference`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { MessageConfirm } from '../model';\nimport { ActionResponse } from '../model';\nimport { MessageTypeCode } from '../model';\nimport { ConfirmStatusCode } from '../model';\nimport { PriorityCode } from '../model';\nimport { EntitiesResponse } from '../model';\n\n// MessageConfirmsEndPoint Services for messageConfirms actions \n@Injectable({\n providedIn: 'root'\n})\nexport class MessageConfirmsEndPoint {\n\n // URL to web api\n private baseUrl = '/message_confirms';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty messageConfirm template\n */\n new() {\n return this.rest.post<EntityResponse<MessageConfirm>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new messageConfirm\n */\n create(body?: MessageConfirm) {\n return this.rest.post<EntityResponse<MessageConfirm>>(`${this.baseUrl}/{id}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing messageConfirm\n */\n update(body?: MessageConfirm) {\n return this.rest.put<EntityResponse<MessageConfirm>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete messageConfirm and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single messageConfirm by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<MessageConfirm>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find messageConfirms by query\n */\n find(search?: string, messageId?: string, contactId?: string, type?: MessageTypeCode[], status?: ConfirmStatusCode[], priority?: PriorityCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (messageId != null) { params.push(`messageId=${messageId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (priority != null) { params.push(`priority=${priority}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<MessageConfirm>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find messages for contact\n */\n findContactMessages(id?: string) {\n return this.rest.get<EntitiesResponse<MessageConfirm>>(`${this.baseUrl}/${id}/messages`);\n }\n\n /**\n * Confirm messages by contact\n */\n confirmContactMessage(id?: string, msgId?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/${id}/messages/${msgId}`, '');\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { ActionResponse } from '../model';\nimport { EntityResponse } from '../model';\nimport { Contact } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { Notification } from '../model';\nimport { LoginParams } from '../model';\n\n// MyAuthEndPoint Services for contact simple authentication using SMS or Email \n@Injectable({\n providedIn: 'root'\n})\nexport class MyAuthEndPoint {\n\n // URL to web api\n private baseUrl = '/my/auth';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Authenticate contact\n */\n authenticate(body?: LoginParams) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/authenticate`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Authorize contact (the next version of authenticate which returns contact info including account type)\n */\n authorize(body?: LoginParams) {\n return this.rest.post<EntityResponse<Contact>>(`${this.baseUrl}/authorize`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Send SMS code\n */\n sendCode(body?: LoginParams) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/send-code`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Send SMS code\n */\n verifyCode(code?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/verify-code/${code}`, '');\n }\n\n /**\n * Get notifications for user - to show in the dashboard\n */\n getNotifications() {\n return this.rest.get<EntitiesResponse<Notification>>(`${this.baseUrl}/notifications`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { StorageItem } from '../model';\nimport { EntityResponse } from '../model';\nimport { Metar } from '../model';\nimport { EntitiesResponse } from '../model';\n\n// MyInfoEndPoint Services for pilot general info \n@Injectable({\n providedIn: 'root'\n})\nexport class MyInfoEndPoint {\n\n // URL to web api\n private baseUrl = '/my/info';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get a list of files and folders from the folder in Google Drive defined as Library\n */\n broseLibrary(folder?: string) {\n const params = [];\n if (folder != null) { params.push(`folder=${folder}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StorageItem>>(`${this.baseUrl}/library`, ...params);\n }\n\n /**\n * Get a list of files and folders from the folder in Google Drive defined as Library\n */\n downloadLibraryFile(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/library/${id}/download`);\n }\n\n /**\n * Get a list of METAR reports\n */\n metar() {\n return this.rest.get<EntityResponse<Metar>>(`${this.baseUrl}/metar`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { FlightTicket } from '../model';\nimport { ActionResponse } from '../model';\nimport { TicketStatusCode } from '../model';\nimport { EntitiesResponse } from '../model';\n\n// FlightTicketsEndPoint Services for flightTickets actions \n@Injectable({\n providedIn: 'root'\n})\nexport class FlightTicketsEndPoint {\n\n // URL to web api\n private baseUrl = '/flight_tickets';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty flightTicket template\n */\n new() {\n return this.rest.post<EntityResponse<FlightTicket>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new flightTicket\n */\n create(body?: FlightTicket) {\n return this.rest.post<EntityResponse<FlightTicket>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing flightTicket\n */\n update(body?: FlightTicket) {\n return this.rest.put<EntityResponse<FlightTicket>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete flightTicket and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single flightTicket by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<FlightTicket>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find flightTickets by query\n */\n find(search?: string, status?: TicketStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightTicket>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntitiesResponse } from '../model';\nimport { StringKeyValue } from '../model';\nimport { EntityResponse } from '../model';\nimport { Group } from '../model';\nimport { ActionResponse } from '../model';\n\n// GroupsEndPoint Services for groups actions \n@Injectable({\n providedIn: 'root'\n})\nexport class GroupsEndPoint {\n\n // URL to web api\n private baseUrl = '/groups';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty flight template\n */\n new() {\n return this.rest.post<EntityResponse<Group>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new group\n */\n create(body?: Group) {\n return this.rest.post<EntityResponse<Group>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing group\n */\n update(body?: Group) {\n return this.rest.put<EntityResponse<Group>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete group and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single group by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Group>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find groups by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Group>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup users ID->Name by filter\n */\n lookup(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { User } from '../model';\nimport { ActionResponse } from '../model';\nimport { UserTypeCode } from '../model';\nimport { UserStatusCode } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { StringKeyValue } from '../model';\n\n// UsersEndPoint Services for users actions \n@Injectable({\n providedIn: 'root'\n})\nexport class UsersEndPoint {\n\n // URL to web api\n private baseUrl = '/users';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty user template\n */\n new() {\n return this.rest.post<EntityResponse<User>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new user\n */\n create(body?: User) {\n return this.rest.post<EntityResponse<User>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing user\n */\n update(body?: User) {\n return this.rest.put<EntityResponse<User>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete user and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single user by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<User>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find users by query\n */\n find(search?: string, type?: UserTypeCode[], status?: UserStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<User>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup users ID->Name by filter\n */\n lookup(search?: string, type?: UserTypeCode[], status?: UserStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n /**\n * Lookup groups ID->Name\n */\n groupsLookup() {\n return this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/groups-lookup`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { StringKeyValue } from '../model';\nimport { EntityResponse } from '../model';\nimport { Campaign } from '../model';\nimport { ActionResponse } from '../model';\nimport { EntitiesResponse } from '../model';\n\n// CampaignsEndPoint Services for campaigns actions \n@Injectable({\n providedIn: 'root'\n})\nexport class CampaignsEndPoint {\n\n // URL to web api\n private baseUrl = '/campaigns';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty Campaign template\n */\n new() {\n return this.rest.post<EntityResponse<Campaign>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new campaign\n */\n create(body?: Campaign) {\n return this.rest.post<EntityResponse<Campaign>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing campaign\n */\n update(body?: Campaign) {\n return this.rest.put<EntityResponse<Campaign>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete campaign and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single campaign by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Campaign>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find campaigns by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Campaign>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup campaigns ID->Name by filter\n */\n lookup(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { Certificate } from '../model';\nimport { ActionResponse } from '../model';\nimport { StatusCode } from '../model';\nimport { EntitiesResponse } from '../model';\n\n// CertificatesEndPoint Services for certificates actions \n@Injectable({\n providedIn: 'root'\n})\nexport class CertificatesEndPoint {\n\n // URL to web api\n private baseUrl = '/certificates';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty certificate template\n */\n new() {\n return this.rest.post<EntityResponse<Certificate>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new certificate\n */\n create(body?: Certificate) {\n return this.rest.post<EntityResponse<Certificate>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing certificate\n */\n update(body?: Certificate) {\n return this.rest.put<EntityResponse<Certificate>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete certificate and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single certificate by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Certificate>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find certificates by query\n */\n find(contactId?: string, search?: string, status?: StatusCode[], valid?: boolean, sort?: string, page?: number, size?: number) {\n const params = [];\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (valid != null) { params.push(`valid=${valid}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Certificate>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Upload certificate reference document\n */\n getUploadUrl(id?: string) {\n return `${this.baseUrl}/upload/${id}`;\n }\n\n /**\n * Download certificate reference document\n */\n download(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/download/${id}`);\n }\n\n /**\n * Delete certificate reference document\n */\n deleteReference(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}/reference`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { BookingStatusCode } from '../model';\nimport { ActionResponse } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { TimeSeries } from '../model';\nimport { BookingPlan } from '../model';\nimport { Booking } from '../model';\nimport { BookingSlot } from '../model';\n\n// BookingsEndPoint Services for bookings actions \n@Injectable({\n providedIn: 'root'\n})\nexport class BookingsEndPoint {\n\n // URL to web api\n private baseUrl = '/bookings';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty account template\n */\n new() {\n return this.rest.post<EntityResponse<Booking>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new booking\n */\n create(body?: Booking) {\n return this.rest.post<EntityResponse<Booking>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing booking\n */\n update(body?: Booking) {\n return this.rest.put<EntityResponse<Booking>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Approve booking\n */\n updateStatus(id?: string, status?: BookingStatusCode) {\n return this.rest.put<EntityResponse<Booking>>(`${this.baseUrl}/status/${id}/${status}`, '');\n }\n\n /**\n * Delete booking and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single booking by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Booking>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find bookings by query\n */\n find(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, status?: BookingStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Booking>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find bookings count histogram over time (up to last 30 days)\n */\n histogram(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, status?: BookingStatusCode[]) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (status != null) { params.push(`status=${status}`); }\n\n\t\treturn this.rest.get<EntityResponse<TimeSeries<number>>>(`${this.baseUrl}/histogram`, ...params);\n }\n\n /**\n * Get bookings schedule for specific month, the result size is limited to 1000 entries\n */\n schedule(year?: number, month?: number) {\n const params = [];\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Booking>>(`${this.baseUrl}/schedule`, ...params);\n }\n\n /**\n * Find my bookings by query\n */\n myBookings(search?: string, airplaneId?: string, from?: number, to?: number, status?: BookingStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Booking>>(`${this.baseUrl}/my`, ...params);\n }\n\n /**\n * Get bookings plan data for specific day\n */\n getBookingPlan(year?: number, month?: number, day?: number) {\n const params = [];\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n if (day != null) { params.push(`day=${day}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingPlan>>(`${this.baseUrl}/plan`, ...params);\n }\n\n /**\n * Get bookings slots (free and booked) for specific day\n */\n getBookingSlots(year?: number, month?: number, day?: number) {\n const params = [];\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n if (day != null) { params.push(`day=${day}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingSlot>>(`${this.baseUrl}/slots`, ...params);\n }\n\n /**\n * Launch flight from booking ID and returns new bookings plan data for specific day\n */\n launchFromBooking(id?: string) {\n return this.rest.post<EntitiesResponse<BookingPlan>>(`${this.baseUrl}/launch-from-booking/${id}`, '');\n }\n\n /**\n * Launch flight from booking\n */\n launch(body?: Booking) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/launch`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Release patterns slot - detach the slot and make it free)\n */\n releaseSlot(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}/release-patterns-slot`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { Syllabus } from '../model';\nimport { StudentSheet } from '../model';\nimport { LicenseKindFlag } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { FlightStateCode } from '../model';\nimport { ActionResponse } from '../model';\nimport { FlightTypeCode } from '../model';\nimport { Document } from '../model';\nimport { EntityResponse } from '../model';\nimport { Contact } from '../model';\nimport { StatusCode } from '../model';\nimport { FlightCategoryCode } from '../model';\nimport { FlightStatusCode } from '../model';\nimport { Flight } from '../model';\nimport { MessageConfirm } from '../model';\nimport { TypeRatingFlag } from '../model';\nimport { StringKeyValue } from '../model';\nimport { Certificate } from '../model';\nimport { FlightPurposeCode } from '../model';\n\n// ContactsEndPoint Services for contacts actions \n@Injectable({\n providedIn: 'root'\n})\nexport class ContactsEndPoint {\n\n // URL to web api\n private baseUrl = '/contacts';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty contact template\n */\n new() {\n return this.rest.post<EntityResponse<Contact>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new contact\n */\n create(body?: Contact) {\n return this.rest.post<EntityResponse<Contact>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing contact\n */\n update(body?: Contact) {\n return this.rest.put<EntityResponse<Contact>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete contact and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single contact by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Contact>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find contacts by query\n */\n find(search?: string, status?: StatusCode[], isPilot?: boolean, plan?: FlightCategoryCode[], typesRating?: TypeRatingFlag[], licenseKind?: LicenseKindFlag[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (isPilot != null) { params.push(`isPilot=${isPilot}`); }\n if (plan != null) { params.push(`plan=${plan}`); }\n if (typesRating != null) { params.push(`typesRating=${typesRating}`); }\n if (licenseKind != null) { params.push(`licenseKind=${licenseKind}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Contact>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup contacts ID->Name by filter\n */\n lookup(search?: string, status?: StatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n /**\n * Lookup only contacts that are active pilots ID->Name by filter\n */\n lookupPilots(search?: string, status?: StatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup-pilots`, ...params);\n }\n\n /**\n * Recalculate contact validation flags (air-worthiness) based on certificates and rules\n */\n revalidate(id?: string) {\n return this.rest.post<EntityResponse<Contact>>(`${this.baseUrl}/${id}/revalidate`, '');\n }\n\n /**\n * Find contact certificates by query\n */\n findCertificates(id?: string, search?: string, status?: StatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Certificate>>(`${this.baseUrl}/${id}/certificates`, ...params);\n }\n\n /**\n * Find contact related flights by query\n */\n findFlights(id?: string, search?: string, type?: FlightTypeCode[], status?: FlightStatusCode[], state?: FlightStateCode[], purpose?: FlightPurposeCode[], from?: number, to?: number, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (state != null) { params.push(`state=${state}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/${id}/flights`, ...params);\n }\n\n /**\n * Find message confirmations for this contact\n */\n findConfirms(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<MessageConfirm>>(`${this.baseUrl}/${id}/confirms`, ...params);\n }\n\n /**\n * Find related documents for this contact\n */\n findDocuments(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Document>>(`${this.baseUrl}/${id}/documents`, ...params);\n }\n\n /**\n * Find contact related syllabus items\n */\n getSyllabus(id?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Syllabus>>(`${this.baseUrl}/${id}/syllabus`, ...params);\n }\n\n /**\n * Find contact related flights for student sheet (all flights of type LESSON that the student is captain of first officer)\n */\n getStudentFlights(id?: string, sort?: string) {\n const params = [];\n if (sort != null) { params.push(`sort=${sort}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/${id}/student-sheet`, ...params);\n }\n\n /**\n * Download student sheet as XLSX document\n */\n downloadStudentSheetXlsx(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/${id}/student-sheet/xlsx`);\n }\n\n /**\n * Download student sheet as CSV document\n */\n downloadStudentSheetCsv(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/${id}/student-sheet/csv`);\n }\n\n /**\n * Find contact related flights for student sheet (all flights of type LESSON that the student is captain of first officer)\n */\n getStudentSheet(id?: string, plan?: FlightCategoryCode) {\n const params = [];\n if (plan != null) { params.push(`plan=${plan}`); }\n\n\t\treturn this.rest.get<EntityResponse<StudentSheet>>(`${this.baseUrl}/${id}/sheet`, ...params);\n }\n\n /**\n * Sync Syllabus topics from student flights\n */\n syncStudentSyllabus(id?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/${id}/sync-syllabus`, '');\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { Credit } from '../model';\nimport { ActionResponse } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { EntityResponse } from '../model';\n\n// CreditsEndPoint Services for credits actions \n@Injectable({\n providedIn: 'root'\n})\nexport class CreditsEndPoint {\n\n // URL to web api\n private baseUrl = '/credits';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty credit template\n */\n new() {\n return this.rest.post<EntityResponse<Credit>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new credit\n */\n create(body?: Credit) {\n return this.rest.post<EntityResponse<Credit>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing credit\n */\n update(body?: Credit) {\n return this.rest.put<EntityResponse<Credit>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete credit and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single credit by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Credit>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find credits by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Credit>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Upload credit reference document\n */\n getUploadUrl(id?: string) {\n return `${this.baseUrl}/upload/${id}`;\n }\n\n /**\n * Download credit reference document\n */\n download(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/download/${id}`);\n }\n\n /**\n * Delete reference document\n */\n deleteReference(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}/reference`);\n }\n\n /**\n * Recalculate account credits for all flights\n */\n recalculateCreditsForFlights(accountId?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/fill-credits-for-flights/${accountId}`, '');\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { Price } from '../model';\nimport { ActionResponse } from '../model';\nimport { FlightPurposeCode } from '../model';\nimport { EntitiesResponse } from '../model';\n\n// PriceListEndPoint Services for price list \n@Injectable({\n providedIn: 'root'\n})\nexport class PriceListEndPoint {\n\n // URL to web api\n private baseUrl = '/price-list';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty price template\n */\n new() {\n return this.rest.post<EntityResponse<Price>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new price\n */\n create(body?: Price) {\n return this.rest.post<EntityResponse<Price>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing Price\n */\n update(body?: Price) {\n return this.rest.put<EntityResponse<Price>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete Price and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single Price by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Price>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find Prices by query\n */\n find(airplaneId?: string, purpose?: FlightPurposeCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Price>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { SystemMessage } from '../model';\nimport { ActionResponse } from '../model';\nimport { MessageTypeCode } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { MessageConfirm } from '../model';\n\n// SystemMessagesEndPoint Services for systemMessages actions \n@Injectable({\n providedIn: 'root'\n})\nexport class SystemMessagesEndPoint {\n\n // URL to web api\n private baseUrl = '/system_messages';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty systemMessage template\n */\n new() {\n return this.rest.post<EntityResponse<SystemMessage>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new systemMessage\n */\n create(body?: SystemMessage) {\n return this.rest.post<EntityResponse<SystemMessage>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing systemMessage\n */\n update(body?: SystemMessage) {\n return this.rest.put<EntityResponse<SystemMessage>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete systemMessage and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single systemMessage by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<SystemMessage>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find systemMessages by query\n */\n find(search?: string, type?: MessageTypeCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<SystemMessage>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find message confirmations\n */\n findConfirms(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<MessageConfirm>>(`${this.baseUrl}/${id}/confirms`, ...params);\n }\n\n /**\n * Publish message to all relevant contacts\n */\n publish(id?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/${id}/publish`, '');\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { Certificate } from '../model';\nimport { ActionResponse } from '../model';\nimport { StatusCode } from '../model';\nimport { EntitiesResponse } from '../model';\n\n// MyCertificatesEndPoint Services for current user certificates queries \n@Injectable({\n providedIn: 'root'\n})\nexport class MyCertificatesEndPoint {\n\n // URL to web api\n private baseUrl = '/my/certificates';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty certificate template\n */\n new() {\n return this.rest.post<EntityResponse<Certificate>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new certificate\n */\n create(body?: Certificate) {\n return this.rest.post<EntityResponse<Certificate>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing certificate\n */\n update(body?: Certificate) {\n return this.rest.put<EntityResponse<Certificate>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete certificate and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single certificate by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Certificate>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find certificates by query\n */\n find(search?: string, status?: StatusCode[], valid?: boolean, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (valid != null) { params.push(`valid=${valid}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Certificate>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Upload certificate reference document\n */\n getUploadUrl(id?: string) {\n return `${this.baseUrl}/upload/${id}`;\n }\n\n /**\n * Download certificate reference document\n */\n download(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/download/${id}`);\n }\n\n /**\n * Delete certificate reference document\n */\n deleteReference(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}/reference`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { ContactGroup } from '../model';\nimport { ActionResponse } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { StringKeyValue } from '../model';\n\n// ContactsGroupsEndPoint Services for contacts-groups actions \n@Injectable({\n providedIn: 'root'\n})\nexport class ContactsGroupsEndPoint {\n\n // URL to web api\n private baseUrl = '/contacts-groups';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty flight template\n */\n new() {\n return this.rest.post<EntityResponse<ContactGroup>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new group\n */\n create(body?: ContactGroup) {\n return this.rest.post<EntityResponse<ContactGroup>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing group\n */\n update(body?: ContactGroup) {\n return this.rest.put<EntityResponse<ContactGroup>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete group and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single group by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<ContactGroup>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find groups by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<ContactGroup>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup contacts-groups ID->Name by filter\n */\n lookup(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { provideHttpClient } from '@angular/common/http';\nimport { APP_CONFIG, AppConfig } from './config';\n\n@NgModule({\n imports: [CommonModule]\n})\nexport class NgxGooxLibModule {\n static forRoot(config: AppConfig): ModuleWithProviders<NgxGooxLibModule> {\n return {\n ngModule: NgxGooxLibModule,\n providers: [\n provideHttpClient(),\n { provide: APP_CONFIG, useValue: config }\n ]\n };\n }\n}\n","/*\n * Public API Surface of common\n */\n\nexport * from './lib/model';\nexport * from './lib/services';\nexport * from './config';\nexport * from './ngx-goox-lib.module'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.RestUtils"],"mappings":"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AA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CA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CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAA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"}
1
+ {"version":3,"file":"aya-flights-ngx-goox-lib.mjs","sources":["../../../projects/ngx-goox-lib2/src/lib/model/TypeRatingFlag.ts","../../../projects/ngx-goox-lib2/src/lib/model/AirplaneStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/FilterFlag.ts","../../../projects/ngx-goox-lib2/src/lib/model/NotificationTypeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/SyllabusStageCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/UserTypeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/BookingTypeFlag.ts","../../../projects/ngx-goox-lib2/src/lib/model/CampaignStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/ErrorCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightTypeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/InstructionTypeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/ADSBCategoryCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/AccountStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/BookingStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightCategoryCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/LeadStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/LessonTypeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/MedicalCertClassCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/ModuleCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/AssessmentCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/LicenseKindFlag.ts","../../../projects/ngx-goox-lib2/src/lib/model/PaymentMethodCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/StatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/TransactionTypeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/ADSBSourceFlag.ts","../../../projects/ngx-goox-lib2/src/lib/model/AccountTypeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/CampaignTypeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/MaintenanceActionCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/OperatorCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/ValidationFlag.ts","../../../projects/ngx-goox-lib2/src/lib/model/TimePeriodCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/BillingStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/ConfirmStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/PermissionFlag.ts","../../../projects/ngx-goox-lib2/src/lib/model/UserRoleFlag.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightClassCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightPurposeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/LessonSubjectCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/MessageTypeCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/PriorityCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/TicketStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/UserStatusCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/AirplaneValidationFlag.ts","../../../projects/ngx-goox-lib2/src/lib/model/CurrencyCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightStateCode.ts","../../../projects/ngx-goox-lib2/src/lib/model/LocalTime.ts","../../../projects/ngx-goox-lib2/src/lib/model/MetarReport.ts","../../../projects/ngx-goox-lib2/src/lib/model/BaseEntityEx.ts","../../../projects/ngx-goox-lib2/src/lib/model/ColumnDef.ts","../../../projects/ngx-goox-lib2/src/lib/model/StorageItem.ts","../../../projects/ngx-goox-lib2/src/lib/model/SpecialRisks.ts","../../../projects/ngx-goox-lib2/src/lib/model/JsonDoc.ts","../../../projects/ngx-goox-lib2/src/lib/model/PreFlightInfo.ts","../../../projects/ngx-goox-lib2/src/lib/model/Engine.ts","../../../projects/ngx-goox-lib2/src/lib/model/Magneto.ts","../../../projects/ngx-goox-lib2/src/lib/model/Booking.ts","../../../projects/ngx-goox-lib2/src/lib/model/Credit.ts","../../../projects/ngx-goox-lib2/src/lib/model/Distribution.ts","../../../projects/ngx-goox-lib2/src/lib/model/Billing.ts","../../../projects/ngx-goox-lib2/src/lib/model/BookingsFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/TimeDataPoint.ts","../../../projects/ngx-goox-lib2/src/lib/model/Entities.ts","../../../projects/ngx-goox-lib2/src/lib/model/ADSBState.ts","../../../projects/ngx-goox-lib2/src/lib/model/Permission.ts","../../../projects/ngx-goox-lib2/src/lib/model/BillingRecord.ts","../../../projects/ngx-goox-lib2/src/lib/model/WeatherRisks.ts","../../../projects/ngx-goox-lib2/src/lib/model/Mitigation.ts","../../../projects/ngx-goox-lib2/src/lib/model/AuditLogFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/CreditsFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/LoginParams.ts","../../../projects/ngx-goox-lib2/src/lib/model/RiskAssessment.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightPlan.ts","../../../projects/ngx-goox-lib2/src/lib/model/Maintenance.ts","../../../projects/ngx-goox-lib2/src/lib/model/MessageConfirm.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightPassenger.ts","../../../projects/ngx-goox-lib2/src/lib/model/BaseEntity.ts","../../../projects/ngx-goox-lib2/src/lib/model/CrewDutyDayRisks.ts","../../../projects/ngx-goox-lib2/src/lib/model/LeadAction.ts","../../../projects/ngx-goox-lib2/src/lib/model/LogBookRecord.ts","../../../projects/ngx-goox-lib2/src/lib/model/Syllabus.ts","../../../projects/ngx-goox-lib2/src/lib/model/BaseRestResponse.ts","../../../projects/ngx-goox-lib2/src/lib/model/ActionResponse.ts","../../../projects/ngx-goox-lib2/src/lib/model/UsersFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/IntKeyValue.ts","../../../projects/ngx-goox-lib2/src/lib/model/Location.ts","../../../projects/ngx-goox-lib2/src/lib/model/TokenData.ts","../../../projects/ngx-goox-lib2/src/lib/model/ContactGroup.ts","../../../projects/ngx-goox-lib2/src/lib/model/DocumentRevision.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightRisk.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightTicket.ts","../../../projects/ngx-goox-lib2/src/lib/model/Boundaries.ts","../../../projects/ngx-goox-lib2/src/lib/model/BaseFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/Propeller.ts","../../../projects/ngx-goox-lib2/src/lib/model/WBConfig.ts","../../../projects/ngx-goox-lib2/src/lib/model/Certificate.ts","../../../projects/ngx-goox-lib2/src/lib/model/DestinationRisks.ts","../../../projects/ngx-goox-lib2/src/lib/model/Metar.ts","../../../projects/ngx-goox-lib2/src/lib/model/EntitiesRequest.ts","../../../projects/ngx-goox-lib2/src/lib/model/Json.ts","../../../projects/ngx-goox-lib2/src/lib/model/TimeSeries.ts","../../../projects/ngx-goox-lib2/src/lib/model/AccountsFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/ContactsFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/MaintenancesFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/BookingSlotsSet.ts","../../../projects/ngx-goox-lib2/src/lib/model/Campaign.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightBilling.ts","../../../projects/ngx-goox-lib2/src/lib/model/CertificatesFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/BookingSlots.ts","../../../projects/ngx-goox-lib2/src/lib/model/LookupGroup.ts","../../../projects/ngx-goox-lib2/src/lib/model/SyllabusTrack.ts","../../../projects/ngx-goox-lib2/src/lib/model/SystemConfig.ts","../../../projects/ngx-goox-lib2/src/lib/model/SystemMessage.ts","../../../projects/ngx-goox-lib2/src/lib/model/EntityResponse.ts","../../../projects/ngx-goox-lib2/src/lib/model/EntityRequest.ts","../../../projects/ngx-goox-lib2/src/lib/model/AirplanesFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/Contact.ts","../../../projects/ngx-goox-lib2/src/lib/model/User.ts","../../../projects/ngx-goox-lib2/src/lib/model/PostFlightInfo.ts","../../../projects/ngx-goox-lib2/src/lib/model/BookingSlot.ts","../../../projects/ngx-goox-lib2/src/lib/model/Tuple.ts","../../../projects/ngx-goox-lib2/src/lib/model/EntityAction.ts","../../../projects/ngx-goox-lib2/src/lib/model/Timestamp.ts","../../../projects/ngx-goox-lib2/src/lib/model/TOLData.ts","../../../projects/ngx-goox-lib2/src/lib/model/Lesson.ts","../../../projects/ngx-goox-lib2/src/lib/model/Group.ts","../../../projects/ngx-goox-lib2/src/lib/model/Point.ts","../../../projects/ngx-goox-lib2/src/lib/model/AuditLog.ts","../../../projects/ngx-goox-lib2/src/lib/model/BookingPlan.ts","../../../projects/ngx-goox-lib2/src/lib/model/PilotQualificationsRisks.ts","../../../projects/ngx-goox-lib2/src/lib/model/FollowUpAction.ts","../../../projects/ngx-goox-lib2/src/lib/model/Price.ts","../../../projects/ngx-goox-lib2/src/lib/model/AnyKeyValue.ts","../../../projects/ngx-goox-lib2/src/lib/model/LeadsFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/TafReport.ts","../../../projects/ngx-goox-lib2/src/lib/model/Flight.ts","../../../projects/ngx-goox-lib2/src/lib/model/TripRisks.ts","../../../projects/ngx-goox-lib2/src/lib/model/Notification.ts","../../../projects/ngx-goox-lib2/src/lib/model/StudentSheet.ts","../../../projects/ngx-goox-lib2/src/lib/model/Airplane.ts","../../../projects/ngx-goox-lib2/src/lib/model/Lookup.ts","../../../projects/ngx-goox-lib2/src/lib/model/EntitiesResponse.ts","../../../projects/ngx-goox-lib2/src/lib/model/SimpleEntity.ts","../../../projects/ngx-goox-lib2/src/lib/model/Address.ts","../../../projects/ngx-goox-lib2/src/lib/model/SyllabusFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/Account.ts","../../../projects/ngx-goox-lib2/src/lib/model/Fuel.ts","../../../projects/ngx-goox-lib2/src/lib/model/Document.ts","../../../projects/ngx-goox-lib2/src/lib/model/errorStruct.ts","../../../projects/ngx-goox-lib2/src/lib/model/TimeFrame.ts","../../../projects/ngx-goox-lib2/src/lib/model/FlightsFilter.ts","../../../projects/ngx-goox-lib2/src/lib/model/IntEnumValue.ts","../../../projects/ngx-goox-lib2/src/lib/model/StringKeyValue.ts","../../../projects/ngx-goox-lib2/src/lib/model/DepartureRisks.ts","../../../projects/ngx-goox-lib2/src/lib/model/Lead.ts","../../../projects/ngx-goox-lib2/src/config.ts","../../../projects/ngx-goox-lib2/src/rest-utils.ts","../../../projects/ngx-goox-lib2/src/lib/services/ContactsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/ContactsGroupsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/DocumentsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/McpToolsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/MyBookingsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/MyFlightsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/BookingsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/MaintenancesEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/PriceListEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/MyStudentsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/LookupsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/MessageConfirmsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/MyAuthEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/MyCertificatesEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/MyInfoEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/MyMessagesEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/AccountsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/AuditLogsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/CreditsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/UsersEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/CertificatesEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/FlightTicketsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/SystemMessagesEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/BookingSlotsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/AirplanesEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/CampaignsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/SyllabusEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/SystemConfigsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/SystemEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/UserEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/FlightsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/GroupsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/LeadsEndPoint.ts","../../../projects/ngx-goox-lib2/src/lib/services/MyCreditsEndPoint.ts","../../../projects/ngx-goox-lib2/src/ngx-goox-lib.module.ts","../../../projects/ngx-goox-lib2/src/public-api.ts","../../../projects/ngx-goox-lib2/src/aya-flights-ngx-goox-lib.ts"],"sourcesContent":["\nimport { Tuple } from '.';\n\n\n// TypeRatingFlag represents the combined types of licenses\nexport enum TypeRatingFlag {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Cessna 172P [32] \n C172P = 32,\n\n // Cessna 172XP [64] \n C172XP = 64,\n\n // Cessna 207 [128] \n C207 = 128,\n\n // Piper Chieftain / Navajo [256] \n PA31 = 256,\n\n}\n\n// Return list of TypeRatingFlag values and their display names\nexport function GetTypeRatingFlags() : Tuple<TypeRatingFlag, string>[] {\n\tlet result : Tuple<TypeRatingFlag, string>[] = [];\n \n\tresult.push(new Tuple<TypeRatingFlag, string>(TypeRatingFlag.C172P, 'TypeRatingFlag.C172P'))\n\tresult.push(new Tuple<TypeRatingFlag, string>(TypeRatingFlag.C172XP, 'TypeRatingFlag.C172XP'))\n\tresult.push(new Tuple<TypeRatingFlag, string>(TypeRatingFlag.C207, 'TypeRatingFlag.C207'))\n\tresult.push(new Tuple<TypeRatingFlag, string>(TypeRatingFlag.PA31, 'TypeRatingFlag.PA31'))\n\t\n return result;\n}\n\n// Return map of TypeRatingFlag values and their display names\nexport function MapTypeRatingFlags() : Map<TypeRatingFlag, string> {\n let result = new Map<TypeRatingFlag, string>();\n result.set(TypeRatingFlag.UNDEFINED, 'Undefined');\n\tresult.set(TypeRatingFlag.C172P, 'C172p');\n\tresult.set(TypeRatingFlag.C172XP, 'C172xp');\n\tresult.set(TypeRatingFlag.C207, 'C207');\n\tresult.set(TypeRatingFlag.PA31, 'Pa31');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// AirplaneStatusCode represents the airplane status: ACTIVE | INACTIVE | MAINTENANCE ...\nexport enum AirplaneStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Active airplane [1] \n ACTIVE = 1,\n\n // Airplane inactive due to maintenance [2] \n MAINTENANCE = 2,\n\n // Suspended airplane (do not show since it is no longer operated by the the company) [3] \n SUSPENDED = 3,\n\n}\n\n// Return list of AirplaneStatusCode values and their display names\nexport function GetAirplaneStatusCodes() : Tuple<AirplaneStatusCode, string>[] {\n\tlet result : Tuple<AirplaneStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<AirplaneStatusCode, string>(AirplaneStatusCode.ACTIVE, 'AirplaneStatusCode.ACTIVE'))\n\tresult.push(new Tuple<AirplaneStatusCode, string>(AirplaneStatusCode.MAINTENANCE, 'AirplaneStatusCode.MAINTENANCE'))\n\tresult.push(new Tuple<AirplaneStatusCode, string>(AirplaneStatusCode.SUSPENDED, 'AirplaneStatusCode.SUSPENDED'))\n\t\n return result;\n}\n\n// Return map of AirplaneStatusCode values and their display names\nexport function MapAirplaneStatusCodes() : Map<AirplaneStatusCode, string> {\n let result = new Map<AirplaneStatusCode, string>();\n result.set(AirplaneStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(AirplaneStatusCode.ACTIVE, 'Active');\n\tresult.set(AirplaneStatusCode.MAINTENANCE, 'Maintenance');\n\tresult.set(AirplaneStatusCode.SUSPENDED, 'Suspended');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FilterFlag represents combination of filtered fields\nexport enum FilterFlag {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Global search [1] \n SEARCH = 1,\n\n // F2 [2] \n F2 = 2,\n\n // F3 [4] \n F3 = 4,\n\n // F4 [8] \n F4 = 8,\n\n // F5 [16] \n F5 = 16,\n\n // F6 [32] \n F6 = 32,\n\n // F7 [64] \n F7 = 64,\n\n // F8 [128] \n F8 = 128,\n\n // F9 [256] \n F9 = 256,\n\n // F10 [512] \n F10 = 512,\n\n // F11 [1024] \n F11 = 1024,\n\n // F12 [2048] \n F12 = 2048,\n\n // F13 [4096] \n F13 = 4096,\n\n // F14 [8192] \n F14 = 8192,\n\n // F15 [16384] \n F15 = 16384,\n\n // F16 [32768] \n F16 = 32768,\n\n // F17 [65536] \n F17 = 65536,\n\n // F18 [131072] \n F18 = 131072,\n\n // F19 [262144] \n F19 = 262144,\n\n // F20 [524288] \n F20 = 524288,\n\n // F21 [1048576] \n F21 = 1048576,\n\n // F22 [2097152] \n F22 = 2097152,\n\n // F23 [4194304] \n F23 = 4194304,\n\n // F24 [8388608] \n F24 = 8388608,\n\n // F25 [16777216] \n F25 = 16777216,\n\n}\n\n// Return list of FilterFlag values and their display names\nexport function GetFilterFlags() : Tuple<FilterFlag, string>[] {\n\tlet result : Tuple<FilterFlag, string>[] = [];\n \n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.SEARCH, 'FilterFlag.SEARCH'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F2, 'FilterFlag.F2'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F3, 'FilterFlag.F3'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F4, 'FilterFlag.F4'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F5, 'FilterFlag.F5'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F6, 'FilterFlag.F6'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F7, 'FilterFlag.F7'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F8, 'FilterFlag.F8'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F9, 'FilterFlag.F9'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F10, 'FilterFlag.F10'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F11, 'FilterFlag.F11'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F12, 'FilterFlag.F12'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F13, 'FilterFlag.F13'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F14, 'FilterFlag.F14'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F15, 'FilterFlag.F15'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F16, 'FilterFlag.F16'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F17, 'FilterFlag.F17'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F18, 'FilterFlag.F18'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F19, 'FilterFlag.F19'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F20, 'FilterFlag.F20'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F21, 'FilterFlag.F21'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F22, 'FilterFlag.F22'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F23, 'FilterFlag.F23'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F24, 'FilterFlag.F24'))\n\tresult.push(new Tuple<FilterFlag, string>(FilterFlag.F25, 'FilterFlag.F25'))\n\t\n return result;\n}\n\n// Return map of FilterFlag values and their display names\nexport function MapFilterFlags() : Map<FilterFlag, string> {\n let result = new Map<FilterFlag, string>();\n result.set(FilterFlag.UNDEFINED, 'Undefined');\n\tresult.set(FilterFlag.SEARCH, 'Search');\n\tresult.set(FilterFlag.F2, 'F2');\n\tresult.set(FilterFlag.F3, 'F3');\n\tresult.set(FilterFlag.F4, 'F4');\n\tresult.set(FilterFlag.F5, 'F5');\n\tresult.set(FilterFlag.F6, 'F6');\n\tresult.set(FilterFlag.F7, 'F7');\n\tresult.set(FilterFlag.F8, 'F8');\n\tresult.set(FilterFlag.F9, 'F9');\n\tresult.set(FilterFlag.F10, 'F10');\n\tresult.set(FilterFlag.F11, 'F11');\n\tresult.set(FilterFlag.F12, 'F12');\n\tresult.set(FilterFlag.F13, 'F13');\n\tresult.set(FilterFlag.F14, 'F14');\n\tresult.set(FilterFlag.F15, 'F15');\n\tresult.set(FilterFlag.F16, 'F16');\n\tresult.set(FilterFlag.F17, 'F17');\n\tresult.set(FilterFlag.F18, 'F18');\n\tresult.set(FilterFlag.F19, 'F19');\n\tresult.set(FilterFlag.F20, 'F20');\n\tresult.set(FilterFlag.F21, 'F21');\n\tresult.set(FilterFlag.F22, 'F22');\n\tresult.set(FilterFlag.F23, 'F23');\n\tresult.set(FilterFlag.F24, 'F24');\n\tresult.set(FilterFlag.F25, 'F25');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// NotificationTypeCode represents the notification type: GENERAL | FLIGHTS | CERTIFICATE | UNREAD | BALANCE ...\nexport enum NotificationTypeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // General notification [1] \n GENERAL = 1,\n\n // Notification for un-completed flight [2] \n FLIGHTS = 2,\n\n // Notification about certificate (expired / about to expire) [4] \n CERTIFICATE = 4,\n\n // Notification about read and confirm [8] \n UNREAD = 8,\n\n // Notification about negative balance [16] \n BALANCE = 16,\n\n}\n\n// Return list of NotificationTypeCode values and their display names\nexport function GetNotificationTypeCodes() : Tuple<NotificationTypeCode, string>[] {\n\tlet result : Tuple<NotificationTypeCode, string>[] = [];\n \n\tresult.push(new Tuple<NotificationTypeCode, string>(NotificationTypeCode.GENERAL, 'NotificationTypeCode.GENERAL'))\n\tresult.push(new Tuple<NotificationTypeCode, string>(NotificationTypeCode.FLIGHTS, 'NotificationTypeCode.FLIGHTS'))\n\tresult.push(new Tuple<NotificationTypeCode, string>(NotificationTypeCode.CERTIFICATE, 'NotificationTypeCode.CERTIFICATE'))\n\tresult.push(new Tuple<NotificationTypeCode, string>(NotificationTypeCode.UNREAD, 'NotificationTypeCode.UNREAD'))\n\tresult.push(new Tuple<NotificationTypeCode, string>(NotificationTypeCode.BALANCE, 'NotificationTypeCode.BALANCE'))\n\t\n return result;\n}\n\n// Return map of NotificationTypeCode values and their display names\nexport function MapNotificationTypeCodes() : Map<NotificationTypeCode, string> {\n let result = new Map<NotificationTypeCode, string>();\n result.set(NotificationTypeCode.UNDEFINED, 'Undefined');\n\tresult.set(NotificationTypeCode.GENERAL, 'General');\n\tresult.set(NotificationTypeCode.FLIGHTS, 'Flights');\n\tresult.set(NotificationTypeCode.CERTIFICATE, 'Certificate');\n\tresult.set(NotificationTypeCode.UNREAD, 'Unread');\n\tresult.set(NotificationTypeCode.BALANCE, 'Balance');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// SyllabusStageCode represents the stage in a syllabus\nexport enum SyllabusStageCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // PPL Fundamentals [1] \n PPL_1 = 1,\n\n // PPL Patterns [2] \n PPL_2 = 2,\n\n // PPL Instruments [3] \n PPL_3 = 3,\n\n // PPL Navigation [4] \n PPL_4 = 4,\n\n // PPL Night [5] \n PPL_5 = 5,\n\n // Commercial [11] \n CPL_1 = 11,\n\n // IFR Flight [21] \n IFR_1 = 21,\n\n // IFR Fundamentals [22] \n IFR_2 = 22,\n\n // IFR Routes and Descents [23] \n IFR_3 = 23,\n\n // CFI Fundamentals [31] \n CFI_1 = 31,\n\n // CFI Patterns [32] \n CFI_2 = 32,\n\n // CFI Instruments [33] \n CFI_3 = 33,\n\n // CFI Navigation [34] \n CFI_4 = 34,\n\n // CFI Night [35] \n CFI_5 = 35,\n\n // Recap [100] \n RECAP = 100,\n\n}\n\n// Return list of SyllabusStageCode values and their display names\nexport function GetSyllabusStageCodes() : Tuple<SyllabusStageCode, string>[] {\n\tlet result : Tuple<SyllabusStageCode, string>[] = [];\n \n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.PPL_1, 'SyllabusStageCode.PPL_1'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.PPL_2, 'SyllabusStageCode.PPL_2'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.PPL_3, 'SyllabusStageCode.PPL_3'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.PPL_4, 'SyllabusStageCode.PPL_4'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.PPL_5, 'SyllabusStageCode.PPL_5'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.CPL_1, 'SyllabusStageCode.CPL_1'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.IFR_1, 'SyllabusStageCode.IFR_1'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.IFR_2, 'SyllabusStageCode.IFR_2'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.IFR_3, 'SyllabusStageCode.IFR_3'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.CFI_1, 'SyllabusStageCode.CFI_1'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.CFI_2, 'SyllabusStageCode.CFI_2'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.CFI_3, 'SyllabusStageCode.CFI_3'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.CFI_4, 'SyllabusStageCode.CFI_4'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.CFI_5, 'SyllabusStageCode.CFI_5'))\n\tresult.push(new Tuple<SyllabusStageCode, string>(SyllabusStageCode.RECAP, 'SyllabusStageCode.RECAP'))\n\t\n return result;\n}\n\n// Return map of SyllabusStageCode values and their display names\nexport function MapSyllabusStageCodes() : Map<SyllabusStageCode, string> {\n let result = new Map<SyllabusStageCode, string>();\n result.set(SyllabusStageCode.UNDEFINED, 'Undefined');\n\tresult.set(SyllabusStageCode.PPL_1, 'Ppl 1');\n\tresult.set(SyllabusStageCode.PPL_2, 'Ppl 2');\n\tresult.set(SyllabusStageCode.PPL_3, 'Ppl 3');\n\tresult.set(SyllabusStageCode.PPL_4, 'Ppl 4');\n\tresult.set(SyllabusStageCode.PPL_5, 'Ppl 5');\n\tresult.set(SyllabusStageCode.CPL_1, 'Cpl 1');\n\tresult.set(SyllabusStageCode.IFR_1, 'Ifr 1');\n\tresult.set(SyllabusStageCode.IFR_2, 'Ifr 2');\n\tresult.set(SyllabusStageCode.IFR_3, 'Ifr 3');\n\tresult.set(SyllabusStageCode.CFI_1, 'Cfi 1');\n\tresult.set(SyllabusStageCode.CFI_2, 'Cfi 2');\n\tresult.set(SyllabusStageCode.CFI_3, 'Cfi 3');\n\tresult.set(SyllabusStageCode.CFI_4, 'Cfi 4');\n\tresult.set(SyllabusStageCode.CFI_5, 'Cfi 5');\n\tresult.set(SyllabusStageCode.RECAP, 'Recap');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// UserTypeCode represents the user type: SYSADMIN | SUPPORT | USER ...\nexport enum UserTypeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // System administrator has access to all accounts and permissions to perform all actions [1] \n SYSADMIN = 1,\n\n // Support user has view permissions only for all accounts that enabled option Enable Support [2] \n SUPPORT = 2,\n\n // Account user - has access to specific accounts with role based access control [3] \n USER = 3,\n\n // Service Account - to be used by other systems to perform actions using the API (can't login as a user to the portal) [4] \n SERVICE = 4,\n\n}\n\n// Return list of UserTypeCode values and their display names\nexport function GetUserTypeCodes() : Tuple<UserTypeCode, string>[] {\n\tlet result : Tuple<UserTypeCode, string>[] = [];\n \n\tresult.push(new Tuple<UserTypeCode, string>(UserTypeCode.SYSADMIN, 'UserTypeCode.SYSADMIN'))\n\tresult.push(new Tuple<UserTypeCode, string>(UserTypeCode.SUPPORT, 'UserTypeCode.SUPPORT'))\n\tresult.push(new Tuple<UserTypeCode, string>(UserTypeCode.USER, 'UserTypeCode.USER'))\n\tresult.push(new Tuple<UserTypeCode, string>(UserTypeCode.SERVICE, 'UserTypeCode.SERVICE'))\n\t\n return result;\n}\n\n// Return map of UserTypeCode values and their display names\nexport function MapUserTypeCodes() : Map<UserTypeCode, string> {\n let result = new Map<UserTypeCode, string>();\n result.set(UserTypeCode.UNDEFINED, 'Undefined');\n\tresult.set(UserTypeCode.SYSADMIN, 'Sysadmin');\n\tresult.set(UserTypeCode.SUPPORT, 'Support');\n\tresult.set(UserTypeCode.USER, 'User');\n\tresult.set(UserTypeCode.SERVICE, 'Service');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// BookingTypeFlag represents the booking type: LESSON | PATTERN | RENTAL | WORK | SIM ...\nexport enum BookingTypeFlag {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Flight lesson [1] \n LESSON = 1,\n\n // Flight lesson for patterns [2] \n PATTERNS = 2,\n\n // Book for rental [3] \n RENTAL = 3,\n\n // Book for Introductory Flight [4] \n INTRODUCTORY = 4,\n\n // Book for Simulator [5] \n SIMULATOR = 5,\n\n // Book for aerial photography mission [6] \n PHOTO = 6,\n\n // Book for other mission [7] \n MISSION = 7,\n\n // Book for maintenance [8] \n MAINTENANCE = 8,\n\n}\n\n// Return list of BookingTypeFlag values and their display names\nexport function GetBookingTypeFlags() : Tuple<BookingTypeFlag, string>[] {\n\tlet result : Tuple<BookingTypeFlag, string>[] = [];\n \n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.LESSON, 'BookingTypeFlag.LESSON'))\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.PATTERNS, 'BookingTypeFlag.PATTERNS'))\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.RENTAL, 'BookingTypeFlag.RENTAL'))\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.INTRODUCTORY, 'BookingTypeFlag.INTRODUCTORY'))\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.SIMULATOR, 'BookingTypeFlag.SIMULATOR'))\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.PHOTO, 'BookingTypeFlag.PHOTO'))\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.MISSION, 'BookingTypeFlag.MISSION'))\n\tresult.push(new Tuple<BookingTypeFlag, string>(BookingTypeFlag.MAINTENANCE, 'BookingTypeFlag.MAINTENANCE'))\n\t\n return result;\n}\n\n// Return map of BookingTypeFlag values and their display names\nexport function MapBookingTypeFlags() : Map<BookingTypeFlag, string> {\n let result = new Map<BookingTypeFlag, string>();\n result.set(BookingTypeFlag.UNDEFINED, 'Undefined');\n\tresult.set(BookingTypeFlag.LESSON, 'Lesson');\n\tresult.set(BookingTypeFlag.PATTERNS, 'Patterns');\n\tresult.set(BookingTypeFlag.RENTAL, 'Rental');\n\tresult.set(BookingTypeFlag.INTRODUCTORY, 'Introductory');\n\tresult.set(BookingTypeFlag.SIMULATOR, 'Simulator');\n\tresult.set(BookingTypeFlag.PHOTO, 'Photo');\n\tresult.set(BookingTypeFlag.MISSION, 'Mission');\n\tresult.set(BookingTypeFlag.MAINTENANCE, 'Maintenance');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// CampaignStatusCode represents the campaign status: PLANNING | ACTIVE | COMPLETED ...\nexport enum CampaignStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Planned campaign [1] \n PLANNING = 1,\n\n // Active campaign [2] \n ACTIVE = 2,\n\n // `Completed campaign [3] \n COMPLETED = 3,\n\n // Suspended (about to be deleted) [4] \n SUSPENDED = 4,\n\n}\n\n// Return list of CampaignStatusCode values and their display names\nexport function GetCampaignStatusCodes() : Tuple<CampaignStatusCode, string>[] {\n\tlet result : Tuple<CampaignStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<CampaignStatusCode, string>(CampaignStatusCode.PLANNING, 'CampaignStatusCode.PLANNING'))\n\tresult.push(new Tuple<CampaignStatusCode, string>(CampaignStatusCode.ACTIVE, 'CampaignStatusCode.ACTIVE'))\n\tresult.push(new Tuple<CampaignStatusCode, string>(CampaignStatusCode.COMPLETED, 'CampaignStatusCode.COMPLETED'))\n\tresult.push(new Tuple<CampaignStatusCode, string>(CampaignStatusCode.SUSPENDED, 'CampaignStatusCode.SUSPENDED'))\n\t\n return result;\n}\n\n// Return map of CampaignStatusCode values and their display names\nexport function MapCampaignStatusCodes() : Map<CampaignStatusCode, string> {\n let result = new Map<CampaignStatusCode, string>();\n result.set(CampaignStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(CampaignStatusCode.PLANNING, 'Planning');\n\tresult.set(CampaignStatusCode.ACTIVE, 'Active');\n\tresult.set(CampaignStatusCode.COMPLETED, 'Completed');\n\tresult.set(CampaignStatusCode.SUSPENDED, 'Suspended');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ErrorCode represents a general error\nexport enum ErrorCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // General server error [-1] \n GENERAL_ERROR = -1,\n\n // Unauthenticated [-2] \n UNAUTHENTICATED = -2,\n\n // Unauthorized [-3] \n UNAUTHORIZED = -3,\n\n // Not found [-2] \n NOT_FOUND = -10,\n\n // The form is intended only for pilots on this flight [-1001] \n FLIGHT_PILOTS_ONLY = -1001,\n\n // The form is intended only for pilot in command of this flight [-1002] \n FLIGHT_PIC_ONLY = -1002,\n\n // Pre-flight form was already reported [-1010] \n PREFLIGHT_ALREADY_REPORTED = -1010,\n\n // Post-flight form was already reported [-1011] \n POSTFLIGHT_ALREADY_REPORTED = -1011,\n\n // W&B Error: Exceed Max Takeoff Weight [-1021] \n WB_EXCEED_MTOW = -1021,\n\n // W&B Error: Exceed Center Of Gravity [-1022] \n WB_EXCEED_CG = -1022,\n\n // W&B Error: Exceed Baggage Weight [-1023] \n WB_EXCEED_BAGGAGE = -1023,\n\n // W&B Error: Exceed minimal Fuel level [-1024] \n WB_MIN_FUEL = -1024,\n\n}\n\n// Return list of ErrorCode values and their display names\nexport function GetErrorCodes() : Tuple<ErrorCode, string>[] {\n\tlet result : Tuple<ErrorCode, string>[] = [];\n \n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.GENERAL_ERROR, 'ErrorCode.GENERAL_ERROR'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.UNAUTHENTICATED, 'ErrorCode.UNAUTHENTICATED'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.UNAUTHORIZED, 'ErrorCode.UNAUTHORIZED'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.NOT_FOUND, 'ErrorCode.NOT_FOUND'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.FLIGHT_PILOTS_ONLY, 'ErrorCode.FLIGHT_PILOTS_ONLY'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.FLIGHT_PIC_ONLY, 'ErrorCode.FLIGHT_PIC_ONLY'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.PREFLIGHT_ALREADY_REPORTED, 'ErrorCode.PREFLIGHT_ALREADY_REPORTED'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.POSTFLIGHT_ALREADY_REPORTED, 'ErrorCode.POSTFLIGHT_ALREADY_REPORTED'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.WB_EXCEED_MTOW, 'ErrorCode.WB_EXCEED_MTOW'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.WB_EXCEED_CG, 'ErrorCode.WB_EXCEED_CG'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.WB_EXCEED_BAGGAGE, 'ErrorCode.WB_EXCEED_BAGGAGE'))\n\tresult.push(new Tuple<ErrorCode, string>(ErrorCode.WB_MIN_FUEL, 'ErrorCode.WB_MIN_FUEL'))\n\t\n return result;\n}\n\n// Return map of ErrorCode values and their display names\nexport function MapErrorCodes() : Map<ErrorCode, string> {\n let result = new Map<ErrorCode, string>();\n result.set(ErrorCode.UNDEFINED, 'Undefined');\n\tresult.set(ErrorCode.GENERAL_ERROR, 'General Error');\n\tresult.set(ErrorCode.UNAUTHENTICATED, 'Unauthenticated');\n\tresult.set(ErrorCode.UNAUTHORIZED, 'Unauthorized');\n\tresult.set(ErrorCode.NOT_FOUND, 'Not Found');\n\tresult.set(ErrorCode.FLIGHT_PILOTS_ONLY, 'Flight Pilots Only');\n\tresult.set(ErrorCode.FLIGHT_PIC_ONLY, 'Flight Pic Only');\n\tresult.set(ErrorCode.PREFLIGHT_ALREADY_REPORTED, 'Preflight Already Reported');\n\tresult.set(ErrorCode.POSTFLIGHT_ALREADY_REPORTED, 'Postflight Already Reported');\n\tresult.set(ErrorCode.WB_EXCEED_MTOW, 'Wb Exceed Mtow');\n\tresult.set(ErrorCode.WB_EXCEED_CG, 'Wb Exceed Cg');\n\tresult.set(ErrorCode.WB_EXCEED_BAGGAGE, 'Wb Exceed Baggage');\n\tresult.set(ErrorCode.WB_MIN_FUEL, 'Wb Min Fuel');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightTypeCode represents a flight type: GENERAL | PRIVATE | COMMERCIAL ...\nexport enum FlightTypeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // General Purpose Flight [1] \n GENERAL = 1,\n\n // CVFR - Controlled Visual Flight Rules [100] \n CVFR = 100,\n\n // IFR - Instruments Flight Rules [101] \n IFR = 101,\n\n // Navigation Flight [102] \n NAV = 102,\n\n // Night Flight [103] \n NIGHT = 103,\n\n}\n\n// Return list of FlightTypeCode values and their display names\nexport function GetFlightTypeCodes() : Tuple<FlightTypeCode, string>[] {\n\tlet result : Tuple<FlightTypeCode, string>[] = [];\n \n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.GENERAL, 'FlightTypeCode.GENERAL'))\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.CVFR, 'FlightTypeCode.CVFR'))\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.IFR, 'FlightTypeCode.IFR'))\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.NAV, 'FlightTypeCode.NAV'))\n\tresult.push(new Tuple<FlightTypeCode, string>(FlightTypeCode.NIGHT, 'FlightTypeCode.NIGHT'))\n\t\n return result;\n}\n\n// Return map of FlightTypeCode values and their display names\nexport function MapFlightTypeCodes() : Map<FlightTypeCode, string> {\n let result = new Map<FlightTypeCode, string>();\n result.set(FlightTypeCode.UNDEFINED, 'Undefined');\n\tresult.set(FlightTypeCode.GENERAL, 'General');\n\tresult.set(FlightTypeCode.CVFR, 'Cvfr');\n\tresult.set(FlightTypeCode.IFR, 'Ifr');\n\tresult.set(FlightTypeCode.NAV, 'Nav');\n\tresult.set(FlightTypeCode.NIGHT, 'Night');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// InstructionTypeCode represents a flight instruction type: FLIGHT | CLASS | SIMULATOR ...\nexport enum InstructionTypeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Instruction during a Flight [1] \n FLIGHT = 1,\n\n // Instruction in the class [2] \n CLASS = 2,\n\n // Instruction in the simulator [3] \n SIMULATOR = 3,\n\n}\n\n// Return list of InstructionTypeCode values and their display names\nexport function GetInstructionTypeCodes() : Tuple<InstructionTypeCode, string>[] {\n\tlet result : Tuple<InstructionTypeCode, string>[] = [];\n \n\tresult.push(new Tuple<InstructionTypeCode, string>(InstructionTypeCode.FLIGHT, 'InstructionTypeCode.FLIGHT'))\n\tresult.push(new Tuple<InstructionTypeCode, string>(InstructionTypeCode.CLASS, 'InstructionTypeCode.CLASS'))\n\tresult.push(new Tuple<InstructionTypeCode, string>(InstructionTypeCode.SIMULATOR, 'InstructionTypeCode.SIMULATOR'))\n\t\n return result;\n}\n\n// Return map of InstructionTypeCode values and their display names\nexport function MapInstructionTypeCodes() : Map<InstructionTypeCode, string> {\n let result = new Map<InstructionTypeCode, string>();\n result.set(InstructionTypeCode.UNDEFINED, 'Undefined');\n\tresult.set(InstructionTypeCode.FLIGHT, 'Flight');\n\tresult.set(InstructionTypeCode.CLASS, 'Class');\n\tresult.set(InstructionTypeCode.SIMULATOR, 'Simulator');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ADSBCategoryCode represents the ADSB category types: ADS-B | ASTERIX | MLAT | FLARM\nexport enum ADSBCategoryCode {\n\n // No information at all [0] \n UNDEFINED = 0,\n\n // No ADS-B Emitter Category Information [1] \n NO_ADSB = 1,\n\n // Light (< 15500 lbs) [2] \n LIGHT = 2,\n\n // Small (15500 to 75000 lbs) [3] \n SMALL = 3,\n\n // Large (75000 to 300000 lbs) [4] \n LARGE = 4,\n\n // Very large aircraft (such as B-757) [5] \n HIGH_VORTEX = 5,\n\n // (> 300000 lbs) [6] \n HEAVY = 6,\n\n}\n\n// Return list of ADSBCategoryCode values and their display names\nexport function GetADSBCategoryCodes() : Tuple<ADSBCategoryCode, string>[] {\n\tlet result : Tuple<ADSBCategoryCode, string>[] = [];\n \n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.NO_ADSB, 'ADSBCategoryCode.NO_ADSB'))\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.LIGHT, 'ADSBCategoryCode.LIGHT'))\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.SMALL, 'ADSBCategoryCode.SMALL'))\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.LARGE, 'ADSBCategoryCode.LARGE'))\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.HIGH_VORTEX, 'ADSBCategoryCode.HIGH_VORTEX'))\n\tresult.push(new Tuple<ADSBCategoryCode, string>(ADSBCategoryCode.HEAVY, 'ADSBCategoryCode.HEAVY'))\n\t\n return result;\n}\n\n// Return map of ADSBCategoryCode values and their display names\nexport function MapADSBCategoryCodes() : Map<ADSBCategoryCode, string> {\n let result = new Map<ADSBCategoryCode, string>();\n result.set(ADSBCategoryCode.UNDEFINED, 'Undefined');\n\tresult.set(ADSBCategoryCode.NO_ADSB, 'No Adsb');\n\tresult.set(ADSBCategoryCode.LIGHT, 'Light');\n\tresult.set(ADSBCategoryCode.SMALL, 'Small');\n\tresult.set(ADSBCategoryCode.LARGE, 'Large');\n\tresult.set(ADSBCategoryCode.HIGH_VORTEX, 'High Vortex');\n\tresult.set(ADSBCategoryCode.HEAVY, 'Heavy');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// AccountStatusCode represents the account status: ACTIVE | INACTIVE | BLOCKED ...\nexport enum AccountStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Active account in the system [1] \n ACTIVE = 1,\n\n // Inactive account in the system [2] \n INACTIVE = 2,\n\n // Blocked account [3] \n BLOCKED = 3,\n\n // Suspended account (about to be deleted) [4] \n SUSPENDED = 4,\n\n}\n\n// Return list of AccountStatusCode values and their display names\nexport function GetAccountStatusCodes() : Tuple<AccountStatusCode, string>[] {\n\tlet result : Tuple<AccountStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<AccountStatusCode, string>(AccountStatusCode.ACTIVE, 'AccountStatusCode.ACTIVE'))\n\tresult.push(new Tuple<AccountStatusCode, string>(AccountStatusCode.INACTIVE, 'AccountStatusCode.INACTIVE'))\n\tresult.push(new Tuple<AccountStatusCode, string>(AccountStatusCode.BLOCKED, 'AccountStatusCode.BLOCKED'))\n\tresult.push(new Tuple<AccountStatusCode, string>(AccountStatusCode.SUSPENDED, 'AccountStatusCode.SUSPENDED'))\n\t\n return result;\n}\n\n// Return map of AccountStatusCode values and their display names\nexport function MapAccountStatusCodes() : Map<AccountStatusCode, string> {\n let result = new Map<AccountStatusCode, string>();\n result.set(AccountStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(AccountStatusCode.ACTIVE, 'Active');\n\tresult.set(AccountStatusCode.INACTIVE, 'Inactive');\n\tresult.set(AccountStatusCode.BLOCKED, 'Blocked');\n\tresult.set(AccountStatusCode.SUSPENDED, 'Suspended');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// BookingStatusCode represents the booking status: PENDING | APPROVED | CANCELLED | REJECTED | OVERDUE ...\nexport enum BookingStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Pending booking (requested but not approved) [1] \n PENDING = 1,\n\n // Booking request approved [2] \n APPROVED = 2,\n\n // Booking rejected by the staff [3] \n REJECTED = 3,\n\n // Booking confirmed by by the client [4] \n CONFIRMED = 4,\n\n // Booking cancelled by by the client [5] \n CANCELLED = 5,\n\n // Booking fulfilled and flight was launched by the staff [6] \n FLIGHT_LAUNCHED = 6,\n\n // Booking cancelled by the client [7] \n FLIGHT_CANCELLED = 7,\n\n // Booking completed - flight was launched [8] \n FLIGHT_COMPLETED = 8,\n\n // Flight was aborted by client [9] \n FLIGHT_ABORTED = 9,\n\n}\n\n// Return list of BookingStatusCode values and their display names\nexport function GetBookingStatusCodes() : Tuple<BookingStatusCode, string>[] {\n\tlet result : Tuple<BookingStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.PENDING, 'BookingStatusCode.PENDING'))\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.APPROVED, 'BookingStatusCode.APPROVED'))\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.REJECTED, 'BookingStatusCode.REJECTED'))\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.CONFIRMED, 'BookingStatusCode.CONFIRMED'))\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.CANCELLED, 'BookingStatusCode.CANCELLED'))\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.FLIGHT_LAUNCHED, 'BookingStatusCode.FLIGHT_LAUNCHED'))\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.FLIGHT_CANCELLED, 'BookingStatusCode.FLIGHT_CANCELLED'))\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.FLIGHT_COMPLETED, 'BookingStatusCode.FLIGHT_COMPLETED'))\n\tresult.push(new Tuple<BookingStatusCode, string>(BookingStatusCode.FLIGHT_ABORTED, 'BookingStatusCode.FLIGHT_ABORTED'))\n\t\n return result;\n}\n\n// Return map of BookingStatusCode values and their display names\nexport function MapBookingStatusCodes() : Map<BookingStatusCode, string> {\n let result = new Map<BookingStatusCode, string>();\n result.set(BookingStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(BookingStatusCode.PENDING, 'Pending');\n\tresult.set(BookingStatusCode.APPROVED, 'Approved');\n\tresult.set(BookingStatusCode.REJECTED, 'Rejected');\n\tresult.set(BookingStatusCode.CONFIRMED, 'Confirmed');\n\tresult.set(BookingStatusCode.CANCELLED, 'Cancelled');\n\tresult.set(BookingStatusCode.FLIGHT_LAUNCHED, 'Flight Launched');\n\tresult.set(BookingStatusCode.FLIGHT_CANCELLED, 'Flight Cancelled');\n\tresult.set(BookingStatusCode.FLIGHT_COMPLETED, 'Flight Completed');\n\tresult.set(BookingStatusCode.FLIGHT_ABORTED, 'Flight Aborted');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightCategoryCode represents a more specific flight class\nexport enum FlightCategoryCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // ----------------------------- PRIVATE --------------------------------------------------------------------------- General private Flight [32] \n PRIVATE = 32,\n\n // General Commercial Flight [64] \n COMMERCIAL = 64,\n\n // Commercial Areal Photography [65] \n COMMERCIAL_PHOTO = 65,\n\n // Commercial TAXI Flight [66] \n COMMERCIAL_TAXI = 66,\n\n // Commercial other flight [67] \n COMMERCIAL_OTHER = 67,\n\n // Commercial transfer flight [68] \n COMMERCIAL_TRANSFER = 68,\n\n // Introductory Flight [128] \n INTRODUCTORY = 128,\n\n // General Examination Flight [256] \n EXAM = 256,\n\n // Annual Proficiency Exam [257] \n EXAM_ANN_PROFICIENCY = 257,\n\n // Annual IFR Exam [258] \n EXAM_ANN_IFR = 258,\n\n // CAA PPL Exam [259] \n EXAM_CAA_PPL = 259,\n\n // CAA CPL Exam [260] \n EXAM_CAA_CPL = 260,\n\n // CAA CFI Exam [261] \n EXAM_CAA_CFI = 261,\n\n // CAA CFI Exam [262] \n EXAM_CAA_IFR = 262,\n\n // CAA CONVERSION Exam [263] \n EXAM_CAA_CONVERSION = 263,\n\n // ----------------------------- INSTRUCTION PLANS ----------------------------------------------------------------- General Instruction Flight [512] \n INSTRUCTION = 512,\n\n // PPL Instruction plan [513] \n INSTRUCTION_PPL = 513,\n\n // CPL Instruction plan [514] \n INSTRUCTION_CPL = 514,\n\n // CFI Instruction plan [515] \n INSTRUCTION_CFI = 515,\n\n // IFR Instruction plan [516] \n INSTRUCTION_IFR = 516,\n\n // Ultralight Conversion plan [517] \n INSTRUCTION_UL_CONV = 517,\n\n // Helicopter Conversion plan [518] \n INSTRUCTION_COPTER_CONV = 518,\n\n // CPL 5 Hours Conversion plan [519] \n INSTRUCTION_CPL_5 = 519,\n\n // IFR 5 Hours Conversion plan [520] \n INSTRUCTION_IFR_5 = 520,\n\n // CPL 10 Hours Conversion plan [521] \n INSTRUCTION_CPL_10 = 521,\n\n // IFR 10 Hours Conversion plan [522] \n INSTRUCTION_IFR_10 = 522,\n\n // CPL 15 Hours Conversion plan [523] \n INSTRUCTION_CPL_15 = 523,\n\n // IFR 15 Hours Conversion plan [524] \n INSTRUCTION_IFR_15 = 524,\n\n // CPL 20 Hours Conversion plan [525] \n INSTRUCTION_CPL_20 = 525,\n\n // IFR 20 Hours Conversion plan [526] \n INSTRUCTION_IFR_20 = 526,\n\n // PPL 25 Hours short plan [527] \n INSTRUCTION_PPL_25 = 527,\n\n // Add airplane rating [540] \n INSTRUCTION_ADD_RATING = 540,\n\n // General Maintenance[1024] \n MAINTENANCE = 1024,\n\n // Maintenance Engine running [1025] \n MAINTENANCE_ENGINE_RUNNING = 1025,\n\n // Maintenance Transfer [1026] \n MAINTENANCE_TRANSFER = 1026,\n\n // Other [2048] \n OTHER = 2048,\n\n}\n\n// Return list of FlightCategoryCode values and their display names\nexport function GetFlightCategoryCodes() : Tuple<FlightCategoryCode, string>[] {\n\tlet result : Tuple<FlightCategoryCode, string>[] = [];\n \n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.PRIVATE, 'FlightCategoryCode.PRIVATE'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.COMMERCIAL, 'FlightCategoryCode.COMMERCIAL'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.COMMERCIAL_PHOTO, 'FlightCategoryCode.COMMERCIAL_PHOTO'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.COMMERCIAL_TAXI, 'FlightCategoryCode.COMMERCIAL_TAXI'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.COMMERCIAL_OTHER, 'FlightCategoryCode.COMMERCIAL_OTHER'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.COMMERCIAL_TRANSFER, 'FlightCategoryCode.COMMERCIAL_TRANSFER'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INTRODUCTORY, 'FlightCategoryCode.INTRODUCTORY'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM, 'FlightCategoryCode.EXAM'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_ANN_PROFICIENCY, 'FlightCategoryCode.EXAM_ANN_PROFICIENCY'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_ANN_IFR, 'FlightCategoryCode.EXAM_ANN_IFR'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_PPL, 'FlightCategoryCode.EXAM_CAA_PPL'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_CPL, 'FlightCategoryCode.EXAM_CAA_CPL'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_CFI, 'FlightCategoryCode.EXAM_CAA_CFI'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_IFR, 'FlightCategoryCode.EXAM_CAA_IFR'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.EXAM_CAA_CONVERSION, 'FlightCategoryCode.EXAM_CAA_CONVERSION'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION, 'FlightCategoryCode.INSTRUCTION'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_PPL, 'FlightCategoryCode.INSTRUCTION_PPL'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL, 'FlightCategoryCode.INSTRUCTION_CPL'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CFI, 'FlightCategoryCode.INSTRUCTION_CFI'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR, 'FlightCategoryCode.INSTRUCTION_IFR'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_UL_CONV, 'FlightCategoryCode.INSTRUCTION_UL_CONV'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_COPTER_CONV, 'FlightCategoryCode.INSTRUCTION_COPTER_CONV'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL_5, 'FlightCategoryCode.INSTRUCTION_CPL_5'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR_5, 'FlightCategoryCode.INSTRUCTION_IFR_5'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL_10, 'FlightCategoryCode.INSTRUCTION_CPL_10'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR_10, 'FlightCategoryCode.INSTRUCTION_IFR_10'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL_15, 'FlightCategoryCode.INSTRUCTION_CPL_15'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR_15, 'FlightCategoryCode.INSTRUCTION_IFR_15'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_CPL_20, 'FlightCategoryCode.INSTRUCTION_CPL_20'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_IFR_20, 'FlightCategoryCode.INSTRUCTION_IFR_20'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_PPL_25, 'FlightCategoryCode.INSTRUCTION_PPL_25'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.INSTRUCTION_ADD_RATING, 'FlightCategoryCode.INSTRUCTION_ADD_RATING'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.MAINTENANCE, 'FlightCategoryCode.MAINTENANCE'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.MAINTENANCE_ENGINE_RUNNING, 'FlightCategoryCode.MAINTENANCE_ENGINE_RUNNING'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.MAINTENANCE_TRANSFER, 'FlightCategoryCode.MAINTENANCE_TRANSFER'))\n\tresult.push(new Tuple<FlightCategoryCode, string>(FlightCategoryCode.OTHER, 'FlightCategoryCode.OTHER'))\n\t\n return result;\n}\n\n// Return map of FlightCategoryCode values and their display names\nexport function MapFlightCategoryCodes() : Map<FlightCategoryCode, string> {\n let result = new Map<FlightCategoryCode, string>();\n result.set(FlightCategoryCode.UNDEFINED, 'Undefined');\n\tresult.set(FlightCategoryCode.PRIVATE, 'Private');\n\tresult.set(FlightCategoryCode.COMMERCIAL, 'Commercial');\n\tresult.set(FlightCategoryCode.COMMERCIAL_PHOTO, 'Commercial Photo');\n\tresult.set(FlightCategoryCode.COMMERCIAL_TAXI, 'Commercial Taxi');\n\tresult.set(FlightCategoryCode.COMMERCIAL_OTHER, 'Commercial Other');\n\tresult.set(FlightCategoryCode.COMMERCIAL_TRANSFER, 'Commercial Transfer');\n\tresult.set(FlightCategoryCode.INTRODUCTORY, 'Introductory');\n\tresult.set(FlightCategoryCode.EXAM, 'Exam');\n\tresult.set(FlightCategoryCode.EXAM_ANN_PROFICIENCY, 'Exam Ann Proficiency');\n\tresult.set(FlightCategoryCode.EXAM_ANN_IFR, 'Exam Ann Ifr');\n\tresult.set(FlightCategoryCode.EXAM_CAA_PPL, 'Exam Caa Ppl');\n\tresult.set(FlightCategoryCode.EXAM_CAA_CPL, 'Exam Caa Cpl');\n\tresult.set(FlightCategoryCode.EXAM_CAA_CFI, 'Exam Caa Cfi');\n\tresult.set(FlightCategoryCode.EXAM_CAA_IFR, 'Exam Caa Ifr');\n\tresult.set(FlightCategoryCode.EXAM_CAA_CONVERSION, 'Exam Caa Conversion');\n\tresult.set(FlightCategoryCode.INSTRUCTION, 'Instruction');\n\tresult.set(FlightCategoryCode.INSTRUCTION_PPL, 'Instruction Ppl');\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL, 'Instruction Cpl');\n\tresult.set(FlightCategoryCode.INSTRUCTION_CFI, 'Instruction Cfi');\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR, 'Instruction Ifr');\n\tresult.set(FlightCategoryCode.INSTRUCTION_UL_CONV, 'Instruction Ul Conv');\n\tresult.set(FlightCategoryCode.INSTRUCTION_COPTER_CONV, 'Instruction Copter Conv');\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL_5, 'Instruction Cpl 5');\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR_5, 'Instruction Ifr 5');\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL_10, 'Instruction Cpl 10');\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR_10, 'Instruction Ifr 10');\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL_15, 'Instruction Cpl 15');\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR_15, 'Instruction Ifr 15');\n\tresult.set(FlightCategoryCode.INSTRUCTION_CPL_20, 'Instruction Cpl 20');\n\tresult.set(FlightCategoryCode.INSTRUCTION_IFR_20, 'Instruction Ifr 20');\n\tresult.set(FlightCategoryCode.INSTRUCTION_PPL_25, 'Instruction Ppl 25');\n\tresult.set(FlightCategoryCode.INSTRUCTION_ADD_RATING, 'Instruction Add Rating');\n\tresult.set(FlightCategoryCode.MAINTENANCE, 'Maintenance');\n\tresult.set(FlightCategoryCode.MAINTENANCE_ENGINE_RUNNING, 'Maintenance Engine Running');\n\tresult.set(FlightCategoryCode.MAINTENANCE_TRANSFER, 'Maintenance Transfer');\n\tresult.set(FlightCategoryCode.OTHER, 'Other');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// LeadStatusCode represents the lead status: NEW | INPROCESS | ASSIGNED ...\nexport enum LeadStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // New Lead [1] \n NEW = 1,\n\n // Lead in process [2] \n INPROCESS = 2,\n\n // Lead Assigned [3] \n ASSIGNED = 3,\n\n // Lead converted [4] \n CONVERTED = 4,\n\n // Lead irrelevant [5] \n IRRELEVANT = 5,\n\n // Lead redirected [6] \n REDIRECTED = 6,\n\n // Followup action required after successful conversion [7] \n FOLLOWUP = 7,\n\n}\n\n// Return list of LeadStatusCode values and their display names\nexport function GetLeadStatusCodes() : Tuple<LeadStatusCode, string>[] {\n\tlet result : Tuple<LeadStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.NEW, 'LeadStatusCode.NEW'))\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.INPROCESS, 'LeadStatusCode.INPROCESS'))\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.ASSIGNED, 'LeadStatusCode.ASSIGNED'))\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.CONVERTED, 'LeadStatusCode.CONVERTED'))\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.IRRELEVANT, 'LeadStatusCode.IRRELEVANT'))\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.REDIRECTED, 'LeadStatusCode.REDIRECTED'))\n\tresult.push(new Tuple<LeadStatusCode, string>(LeadStatusCode.FOLLOWUP, 'LeadStatusCode.FOLLOWUP'))\n\t\n return result;\n}\n\n// Return map of LeadStatusCode values and their display names\nexport function MapLeadStatusCodes() : Map<LeadStatusCode, string> {\n let result = new Map<LeadStatusCode, string>();\n result.set(LeadStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(LeadStatusCode.NEW, 'New');\n\tresult.set(LeadStatusCode.INPROCESS, 'Inprocess');\n\tresult.set(LeadStatusCode.ASSIGNED, 'Assigned');\n\tresult.set(LeadStatusCode.CONVERTED, 'Converted');\n\tresult.set(LeadStatusCode.IRRELEVANT, 'Irrelevant');\n\tresult.set(LeadStatusCode.REDIRECTED, 'Redirected');\n\tresult.set(LeadStatusCode.FOLLOWUP, 'Followup');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// LessonTypeCode represents a flight lesson type: GENERAL | PRIVATE | COMMERCIAL ...\nexport enum LessonTypeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // CVFR - Controlled Visual Flight Rules [100] \n CVFR = 100,\n\n // IFR - Instruments Flight Rules [101] \n IFR = 101,\n\n // Navigation Flight [102] \n NAV = 102,\n\n // Night Flight [103] \n NIGHT = 103,\n\n // General Instruction Flight [1] \n INSTRUCTION = 1,\n\n // Instruction Flight with CVFR [2] \n INSTRUCTION_CVFR = 2,\n\n // Instruction Flight with IFR [3] \n INSTRUCTION_IFR = 3,\n\n // Instruction Flight with Navigation [4] \n INSTRUCTION_NAV = 4,\n\n // Instruction Night Flight [5] \n INSTRUCTION_NIGHT = 5,\n\n // Other Flight [6] \n OTHER = 6,\n\n}\n\n// Return list of LessonTypeCode values and their display names\nexport function GetLessonTypeCodes() : Tuple<LessonTypeCode, string>[] {\n\tlet result : Tuple<LessonTypeCode, string>[] = [];\n \n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.CVFR, 'LessonTypeCode.CVFR'))\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.IFR, 'LessonTypeCode.IFR'))\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.NAV, 'LessonTypeCode.NAV'))\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.NIGHT, 'LessonTypeCode.NIGHT'))\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION, 'LessonTypeCode.INSTRUCTION'))\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION_CVFR, 'LessonTypeCode.INSTRUCTION_CVFR'))\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION_IFR, 'LessonTypeCode.INSTRUCTION_IFR'))\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION_NAV, 'LessonTypeCode.INSTRUCTION_NAV'))\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.INSTRUCTION_NIGHT, 'LessonTypeCode.INSTRUCTION_NIGHT'))\n\tresult.push(new Tuple<LessonTypeCode, string>(LessonTypeCode.OTHER, 'LessonTypeCode.OTHER'))\n\t\n return result;\n}\n\n// Return map of LessonTypeCode values and their display names\nexport function MapLessonTypeCodes() : Map<LessonTypeCode, string> {\n let result = new Map<LessonTypeCode, string>();\n result.set(LessonTypeCode.UNDEFINED, 'Undefined');\n\tresult.set(LessonTypeCode.CVFR, 'Cvfr');\n\tresult.set(LessonTypeCode.IFR, 'Ifr');\n\tresult.set(LessonTypeCode.NAV, 'Nav');\n\tresult.set(LessonTypeCode.NIGHT, 'Night');\n\tresult.set(LessonTypeCode.INSTRUCTION, 'Instruction');\n\tresult.set(LessonTypeCode.INSTRUCTION_CVFR, 'Instruction Cvfr');\n\tresult.set(LessonTypeCode.INSTRUCTION_IFR, 'Instruction Ifr');\n\tresult.set(LessonTypeCode.INSTRUCTION_NAV, 'Instruction Nav');\n\tresult.set(LessonTypeCode.INSTRUCTION_NIGHT, 'Instruction Night');\n\tresult.set(LessonTypeCode.OTHER, 'Other');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// MedicalCertClassCode represents the FAA medical certificate class\nexport enum MedicalCertClassCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // First-Class Medical Certificate - Required for ATP [1] \n CLASS_ATP = 1,\n\n // Second-Class Medical Certificate - Required for CPL [2] \n CLASS_CPL = 2,\n\n // Third-Class Medical Certificate - Required for PPL, SPL [3] \n CLASS_PPL = 3,\n\n}\n\n// Return list of MedicalCertClassCode values and their display names\nexport function GetMedicalCertClassCodes() : Tuple<MedicalCertClassCode, string>[] {\n\tlet result : Tuple<MedicalCertClassCode, string>[] = [];\n \n\tresult.push(new Tuple<MedicalCertClassCode, string>(MedicalCertClassCode.CLASS_ATP, 'MedicalCertClassCode.CLASS_ATP'))\n\tresult.push(new Tuple<MedicalCertClassCode, string>(MedicalCertClassCode.CLASS_CPL, 'MedicalCertClassCode.CLASS_CPL'))\n\tresult.push(new Tuple<MedicalCertClassCode, string>(MedicalCertClassCode.CLASS_PPL, 'MedicalCertClassCode.CLASS_PPL'))\n\t\n return result;\n}\n\n// Return map of MedicalCertClassCode values and their display names\nexport function MapMedicalCertClassCodes() : Map<MedicalCertClassCode, string> {\n let result = new Map<MedicalCertClassCode, string>();\n result.set(MedicalCertClassCode.UNDEFINED, 'Undefined');\n\tresult.set(MedicalCertClassCode.CLASS_ATP, 'Class Atp');\n\tresult.set(MedicalCertClassCode.CLASS_CPL, 'Class Cpl');\n\tresult.set(MedicalCertClassCode.CLASS_PPL, 'Class Ppl');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ModuleCode represents a module in the system\nexport enum ModuleCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Audit Log [1] \n AUDIT_LOG = 1,\n\n // Users [2] \n USERS = 2,\n\n // Groups [3] \n GROUPS = 3,\n\n // Accounts [4] \n ACCOUNTS = 4,\n\n // Contacts [5] \n CONTACTS = 5,\n\n // Leads [6] \n LEADS = 6,\n\n // Campaigns [7] \n CAMPAIGNS = 7,\n\n // Certificates [8] \n CERTIFICATES = 8,\n\n // Messages (for Read & Confirm) [9] \n MESSAGES = 9,\n\n // Flight log [10] \n FLIGHTS = 10,\n\n // Flight tickets [11] \n FLIGHT_TICKETS = 11,\n\n // Airplanes [12] \n AIRPLANES = 12,\n\n // Airworthiness (maintenance) [13] \n AIRWORTHINESS = 13,\n\n}\n\n// Return list of ModuleCode values and their display names\nexport function GetModuleCodes() : Tuple<ModuleCode, string>[] {\n\tlet result : Tuple<ModuleCode, string>[] = [];\n \n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.AUDIT_LOG, 'ModuleCode.AUDIT_LOG'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.USERS, 'ModuleCode.USERS'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.GROUPS, 'ModuleCode.GROUPS'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.ACCOUNTS, 'ModuleCode.ACCOUNTS'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.CONTACTS, 'ModuleCode.CONTACTS'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.LEADS, 'ModuleCode.LEADS'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.CAMPAIGNS, 'ModuleCode.CAMPAIGNS'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.CERTIFICATES, 'ModuleCode.CERTIFICATES'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.MESSAGES, 'ModuleCode.MESSAGES'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.FLIGHTS, 'ModuleCode.FLIGHTS'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.FLIGHT_TICKETS, 'ModuleCode.FLIGHT_TICKETS'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.AIRPLANES, 'ModuleCode.AIRPLANES'))\n\tresult.push(new Tuple<ModuleCode, string>(ModuleCode.AIRWORTHINESS, 'ModuleCode.AIRWORTHINESS'))\n\t\n return result;\n}\n\n// Return map of ModuleCode values and their display names\nexport function MapModuleCodes() : Map<ModuleCode, string> {\n let result = new Map<ModuleCode, string>();\n result.set(ModuleCode.UNDEFINED, 'Undefined');\n\tresult.set(ModuleCode.AUDIT_LOG, 'Audit Log');\n\tresult.set(ModuleCode.USERS, 'Users');\n\tresult.set(ModuleCode.GROUPS, 'Groups');\n\tresult.set(ModuleCode.ACCOUNTS, 'Accounts');\n\tresult.set(ModuleCode.CONTACTS, 'Contacts');\n\tresult.set(ModuleCode.LEADS, 'Leads');\n\tresult.set(ModuleCode.CAMPAIGNS, 'Campaigns');\n\tresult.set(ModuleCode.CERTIFICATES, 'Certificates');\n\tresult.set(ModuleCode.MESSAGES, 'Messages');\n\tresult.set(ModuleCode.FLIGHTS, 'Flights');\n\tresult.set(ModuleCode.FLIGHT_TICKETS, 'Flight Tickets');\n\tresult.set(ModuleCode.AIRPLANES, 'Airplanes');\n\tresult.set(ModuleCode.AIRWORTHINESS, 'Airworthiness');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// AssessmentCode represents the assessment score: EXCELLENT | SATISFACTORY | INCOMPLETE ...\nexport enum AssessmentCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Satisfactory [1] \n SATISFACTORY = 1,\n\n // Unsatisfactory [2] \n UNSATISFACTORY = 2,\n\n // Incomplete [3] \n INCOMPLETE = 3,\n\n}\n\n// Return list of AssessmentCode values and their display names\nexport function GetAssessmentCodes() : Tuple<AssessmentCode, string>[] {\n\tlet result : Tuple<AssessmentCode, string>[] = [];\n \n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.SATISFACTORY, 'AssessmentCode.SATISFACTORY'))\n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.UNSATISFACTORY, 'AssessmentCode.UNSATISFACTORY'))\n\tresult.push(new Tuple<AssessmentCode, string>(AssessmentCode.INCOMPLETE, 'AssessmentCode.INCOMPLETE'))\n\t\n return result;\n}\n\n// Return map of AssessmentCode values and their display names\nexport function MapAssessmentCodes() : Map<AssessmentCode, string> {\n let result = new Map<AssessmentCode, string>();\n result.set(AssessmentCode.UNDEFINED, 'Undefined');\n\tresult.set(AssessmentCode.SATISFACTORY, 'Satisfactory');\n\tresult.set(AssessmentCode.UNSATISFACTORY, 'Unsatisfactory');\n\tresult.set(AssessmentCode.INCOMPLETE, 'Incomplete');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// LicenseKindFlag represents the combined types of licenses\nexport enum LicenseKindFlag {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Student Pilot License [1] \n SPL = 1,\n\n // Light Aircraft Pilot License (Ultralight) [2] \n LAPL = 2,\n\n // Private Pilot License [4] \n PPL = 4,\n\n // Instrument Rating [8] \n IR = 8,\n\n // Night Rating [16] \n NR = 16,\n\n // Multi Engine Rating [32] \n ME = 32,\n\n // Commercial Pilot License [64] \n CPL = 64,\n\n // Airline Transport Pilot License [128] \n ATP = 128,\n\n // Certified Flight Instructor [256] \n CFI = 256,\n\n // Certified Flight Instructor - Instruments [512] \n CFII = 512,\n\n // Flight Test Examiner [1024] \n FTE = 1024,\n\n}\n\n// Return list of LicenseKindFlag values and their display names\nexport function GetLicenseKindFlags() : Tuple<LicenseKindFlag, string>[] {\n\tlet result : Tuple<LicenseKindFlag, string>[] = [];\n \n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.SPL, 'LicenseKindFlag.SPL'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.LAPL, 'LicenseKindFlag.LAPL'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.PPL, 'LicenseKindFlag.PPL'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.IR, 'LicenseKindFlag.IR'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.NR, 'LicenseKindFlag.NR'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.ME, 'LicenseKindFlag.ME'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.CPL, 'LicenseKindFlag.CPL'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.ATP, 'LicenseKindFlag.ATP'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.CFI, 'LicenseKindFlag.CFI'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.CFII, 'LicenseKindFlag.CFII'))\n\tresult.push(new Tuple<LicenseKindFlag, string>(LicenseKindFlag.FTE, 'LicenseKindFlag.FTE'))\n\t\n return result;\n}\n\n// Return map of LicenseKindFlag values and their display names\nexport function MapLicenseKindFlags() : Map<LicenseKindFlag, string> {\n let result = new Map<LicenseKindFlag, string>();\n result.set(LicenseKindFlag.UNDEFINED, 'Undefined');\n\tresult.set(LicenseKindFlag.SPL, 'Spl');\n\tresult.set(LicenseKindFlag.LAPL, 'Lapl');\n\tresult.set(LicenseKindFlag.PPL, 'Ppl');\n\tresult.set(LicenseKindFlag.IR, 'Ir');\n\tresult.set(LicenseKindFlag.NR, 'Nr');\n\tresult.set(LicenseKindFlag.ME, 'Me');\n\tresult.set(LicenseKindFlag.CPL, 'Cpl');\n\tresult.set(LicenseKindFlag.ATP, 'Atp');\n\tresult.set(LicenseKindFlag.CFI, 'Cfi');\n\tresult.set(LicenseKindFlag.CFII, 'Cfii');\n\tresult.set(LicenseKindFlag.FTE, 'Fte');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// PaymentMethodCode represents a payment method: CASH | CHECK | BANK TRANSFER | CREDIT ...\nexport enum PaymentMethodCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // None paid [1] \n NONE = 1,\n\n // Credit client balance [2] \n CREDIT_CLIENT = 2,\n\n // Paid with credit card [3] \n CARD = 3,\n\n // Paid with check [4] \n CHECK = 4,\n\n // Paid with cash [5] \n CASH = 5,\n\n // Paid with bank transfer [6] \n BANK = 6,\n\n}\n\n// Return list of PaymentMethodCode values and their display names\nexport function GetPaymentMethodCodes() : Tuple<PaymentMethodCode, string>[] {\n\tlet result : Tuple<PaymentMethodCode, string>[] = [];\n \n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.NONE, 'PaymentMethodCode.NONE'))\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.CREDIT_CLIENT, 'PaymentMethodCode.CREDIT_CLIENT'))\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.CARD, 'PaymentMethodCode.CARD'))\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.CHECK, 'PaymentMethodCode.CHECK'))\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.CASH, 'PaymentMethodCode.CASH'))\n\tresult.push(new Tuple<PaymentMethodCode, string>(PaymentMethodCode.BANK, 'PaymentMethodCode.BANK'))\n\t\n return result;\n}\n\n// Return map of PaymentMethodCode values and their display names\nexport function MapPaymentMethodCodes() : Map<PaymentMethodCode, string> {\n let result = new Map<PaymentMethodCode, string>();\n result.set(PaymentMethodCode.UNDEFINED, 'Undefined');\n\tresult.set(PaymentMethodCode.NONE, 'None');\n\tresult.set(PaymentMethodCode.CREDIT_CLIENT, 'Credit Client');\n\tresult.set(PaymentMethodCode.CARD, 'Card');\n\tresult.set(PaymentMethodCode.CHECK, 'Check');\n\tresult.set(PaymentMethodCode.CASH, 'Cash');\n\tresult.set(PaymentMethodCode.BANK, 'Bank');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// StatusCode represents a general workflow status: PENDING | IN_PROGRESS | DONE ...\nexport enum StatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Flow not started yet [1] \n PENDING = 1,\n\n // Flow in process [2] \n IN_PROCESS = 2,\n\n // Flow completed [3] \n COMPLETED = 3,\n\n // Flow cancelled by user [4] \n CANCELLED = 4,\n\n // Flow automatically cancelled by the system [5] \n AUTO_CANCELLED = 5,\n\n}\n\n// Return list of StatusCode values and their display names\nexport function GetStatusCodes() : Tuple<StatusCode, string>[] {\n\tlet result : Tuple<StatusCode, string>[] = [];\n \n\tresult.push(new Tuple<StatusCode, string>(StatusCode.PENDING, 'StatusCode.PENDING'))\n\tresult.push(new Tuple<StatusCode, string>(StatusCode.IN_PROCESS, 'StatusCode.IN_PROCESS'))\n\tresult.push(new Tuple<StatusCode, string>(StatusCode.COMPLETED, 'StatusCode.COMPLETED'))\n\tresult.push(new Tuple<StatusCode, string>(StatusCode.CANCELLED, 'StatusCode.CANCELLED'))\n\tresult.push(new Tuple<StatusCode, string>(StatusCode.AUTO_CANCELLED, 'StatusCode.AUTO_CANCELLED'))\n\t\n return result;\n}\n\n// Return map of StatusCode values and their display names\nexport function MapStatusCodes() : Map<StatusCode, string> {\n let result = new Map<StatusCode, string>();\n result.set(StatusCode.UNDEFINED, 'Undefined');\n\tresult.set(StatusCode.PENDING, 'Pending');\n\tresult.set(StatusCode.IN_PROCESS, 'In Process');\n\tresult.set(StatusCode.COMPLETED, 'Completed');\n\tresult.set(StatusCode.CANCELLED, 'Cancelled');\n\tresult.set(StatusCode.AUTO_CANCELLED, 'Auto Cancelled');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// TransactionTypeCode represents the credit transaction type\nexport enum TransactionTypeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Payment for Flight auto charged by the system (Debit) - Auto calculated from flight diary [1] \n FLIGHT = 1,\n\n // Payment for Instruction (Debit) [2] \n INSTRUCTION = 2,\n\n // Payment for Purchasing a Product / Service (Debit) [3] \n PURCHASE = 3,\n\n // Credit from client (Credit) [4] \n PAYMENT = 4,\n\n // Bonus added to client (Credit) [5] \n BONUS = 5,\n\n // Refund for client (Credit) [6] \n REFUND = 6,\n\n // RESET credit balance for client (Credit / Debit) [7] \n RESET = 7,\n\n}\n\n// Return list of TransactionTypeCode values and their display names\nexport function GetTransactionTypeCodes() : Tuple<TransactionTypeCode, string>[] {\n\tlet result : Tuple<TransactionTypeCode, string>[] = [];\n \n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.FLIGHT, 'TransactionTypeCode.FLIGHT'))\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.INSTRUCTION, 'TransactionTypeCode.INSTRUCTION'))\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.PURCHASE, 'TransactionTypeCode.PURCHASE'))\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.PAYMENT, 'TransactionTypeCode.PAYMENT'))\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.BONUS, 'TransactionTypeCode.BONUS'))\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.REFUND, 'TransactionTypeCode.REFUND'))\n\tresult.push(new Tuple<TransactionTypeCode, string>(TransactionTypeCode.RESET, 'TransactionTypeCode.RESET'))\n\t\n return result;\n}\n\n// Return map of TransactionTypeCode values and their display names\nexport function MapTransactionTypeCodes() : Map<TransactionTypeCode, string> {\n let result = new Map<TransactionTypeCode, string>();\n result.set(TransactionTypeCode.UNDEFINED, 'Undefined');\n\tresult.set(TransactionTypeCode.FLIGHT, 'Flight');\n\tresult.set(TransactionTypeCode.INSTRUCTION, 'Instruction');\n\tresult.set(TransactionTypeCode.PURCHASE, 'Purchase');\n\tresult.set(TransactionTypeCode.PAYMENT, 'Payment');\n\tresult.set(TransactionTypeCode.BONUS, 'Bonus');\n\tresult.set(TransactionTypeCode.REFUND, 'Refund');\n\tresult.set(TransactionTypeCode.RESET, 'Reset');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ADSBSourceFlag represents the ADSB source types: ADS-B | ASTERIX | MLAT | FLARM\nexport enum ADSBSourceFlag {\n\n // ADS-B [0] \n ADSB = 0,\n\n // ASTERIX [1] \n ASTERIX = 1,\n\n // MLAT [2] \n MLAT = 2,\n\n // FLARM [3] \n FLARM = 3,\n\n}\n\n// Return list of ADSBSourceFlag values and their display names\nexport function GetADSBSourceFlags() : Tuple<ADSBSourceFlag, string>[] {\n\tlet result : Tuple<ADSBSourceFlag, string>[] = [];\n result.push(new Tuple<ADSBSourceFlag, string>(ADSBSourceFlag.ADSB, 'ADSBSourceFlag.ADSB'))\n\tresult.push(new Tuple<ADSBSourceFlag, string>(ADSBSourceFlag.ASTERIX, 'ADSBSourceFlag.ASTERIX'))\n\tresult.push(new Tuple<ADSBSourceFlag, string>(ADSBSourceFlag.MLAT, 'ADSBSourceFlag.MLAT'))\n\tresult.push(new Tuple<ADSBSourceFlag, string>(ADSBSourceFlag.FLARM, 'ADSBSourceFlag.FLARM'))\n\t\n return result;\n}\n\n// Return map of ADSBSourceFlag values and their display names\nexport function MapADSBSourceFlags() : Map<ADSBSourceFlag, string> {\n let result = new Map<ADSBSourceFlag, string>();\n result.set(ADSBSourceFlag.ADSB, 'Adsb');\n\tresult.set(ADSBSourceFlag.ASTERIX, 'Asterix');\n\tresult.set(ADSBSourceFlag.MLAT, 'Mlat');\n\tresult.set(ADSBSourceFlag.FLARM, 'Flarm');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// AccountTypeCode represents the account type: STUDENT | PRIVATE | STAFF | BUSINESS ...\nexport enum AccountTypeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Student account [1] \n STUDENT = 1,\n\n // Private account [2] \n PRIVATE = 2,\n\n // External Instructor account [3] \n INSTRUCTOR = 3,\n\n // Staff member account [4] \n STAFF = 4,\n\n // Business account [5] \n BUSINESS = 5,\n\n}\n\n// Return list of AccountTypeCode values and their display names\nexport function GetAccountTypeCodes() : Tuple<AccountTypeCode, string>[] {\n\tlet result : Tuple<AccountTypeCode, string>[] = [];\n \n\tresult.push(new Tuple<AccountTypeCode, string>(AccountTypeCode.STUDENT, 'AccountTypeCode.STUDENT'))\n\tresult.push(new Tuple<AccountTypeCode, string>(AccountTypeCode.PRIVATE, 'AccountTypeCode.PRIVATE'))\n\tresult.push(new Tuple<AccountTypeCode, string>(AccountTypeCode.INSTRUCTOR, 'AccountTypeCode.INSTRUCTOR'))\n\tresult.push(new Tuple<AccountTypeCode, string>(AccountTypeCode.STAFF, 'AccountTypeCode.STAFF'))\n\tresult.push(new Tuple<AccountTypeCode, string>(AccountTypeCode.BUSINESS, 'AccountTypeCode.BUSINESS'))\n\t\n return result;\n}\n\n// Return map of AccountTypeCode values and their display names\nexport function MapAccountTypeCodes() : Map<AccountTypeCode, string> {\n let result = new Map<AccountTypeCode, string>();\n result.set(AccountTypeCode.UNDEFINED, 'Undefined');\n\tresult.set(AccountTypeCode.STUDENT, 'Student');\n\tresult.set(AccountTypeCode.PRIVATE, 'Private');\n\tresult.set(AccountTypeCode.INSTRUCTOR, 'Instructor');\n\tresult.set(AccountTypeCode.STAFF, 'Staff');\n\tresult.set(AccountTypeCode.BUSINESS, 'Business');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// CampaignTypeCode represents the campaign type: WEB | EMAIL | TELESALES\nexport enum CampaignTypeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Web [1] \n WEB = 1,\n\n // Mail [2] \n EMAIL = 2,\n\n // Telephone Sales [3] \n TELESALES = 3,\n\n}\n\n// Return list of CampaignTypeCode values and their display names\nexport function GetCampaignTypeCodes() : Tuple<CampaignTypeCode, string>[] {\n\tlet result : Tuple<CampaignTypeCode, string>[] = [];\n \n\tresult.push(new Tuple<CampaignTypeCode, string>(CampaignTypeCode.WEB, 'CampaignTypeCode.WEB'))\n\tresult.push(new Tuple<CampaignTypeCode, string>(CampaignTypeCode.EMAIL, 'CampaignTypeCode.EMAIL'))\n\tresult.push(new Tuple<CampaignTypeCode, string>(CampaignTypeCode.TELESALES, 'CampaignTypeCode.TELESALES'))\n\t\n return result;\n}\n\n// Return map of CampaignTypeCode values and their display names\nexport function MapCampaignTypeCodes() : Map<CampaignTypeCode, string> {\n let result = new Map<CampaignTypeCode, string>();\n result.set(CampaignTypeCode.UNDEFINED, 'Undefined');\n\tresult.set(CampaignTypeCode.WEB, 'Web');\n\tresult.set(CampaignTypeCode.EMAIL, 'Email');\n\tresult.set(CampaignTypeCode.TELESALES, 'Telesales');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// MaintenanceActionCode represents a maintenance action\nexport enum MaintenanceActionCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // No action required [1] \n NONE = 1,\n\n // Inspection action [2] \n INSPECTION = 2,\n\n // Overhaul action [3] \n OVERHAUL = 3,\n\n // Reissue certificate [4] \n REISSUE = 4,\n\n // Replace component [5] \n REPLACEMENT = 5,\n\n // Weight action [6] \n WEIGHT = 6,\n\n}\n\n// Return list of MaintenanceActionCode values and their display names\nexport function GetMaintenanceActionCodes() : Tuple<MaintenanceActionCode, string>[] {\n\tlet result : Tuple<MaintenanceActionCode, string>[] = [];\n \n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.NONE, 'MaintenanceActionCode.NONE'))\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.INSPECTION, 'MaintenanceActionCode.INSPECTION'))\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.OVERHAUL, 'MaintenanceActionCode.OVERHAUL'))\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.REISSUE, 'MaintenanceActionCode.REISSUE'))\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.REPLACEMENT, 'MaintenanceActionCode.REPLACEMENT'))\n\tresult.push(new Tuple<MaintenanceActionCode, string>(MaintenanceActionCode.WEIGHT, 'MaintenanceActionCode.WEIGHT'))\n\t\n return result;\n}\n\n// Return map of MaintenanceActionCode values and their display names\nexport function MapMaintenanceActionCodes() : Map<MaintenanceActionCode, string> {\n let result = new Map<MaintenanceActionCode, string>();\n result.set(MaintenanceActionCode.UNDEFINED, 'Undefined');\n\tresult.set(MaintenanceActionCode.NONE, 'None');\n\tresult.set(MaintenanceActionCode.INSPECTION, 'Inspection');\n\tresult.set(MaintenanceActionCode.OVERHAUL, 'Overhaul');\n\tresult.set(MaintenanceActionCode.REISSUE, 'Reissue');\n\tresult.set(MaintenanceActionCode.REPLACEMENT, 'Replacement');\n\tresult.set(MaintenanceActionCode.WEIGHT, 'Weight');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// OperatorCode represents a math operator\nexport enum OperatorCode {\n\n}\n\n// Return list of OperatorCode values and their display names\nexport function GetOperatorCodes() : Tuple<OperatorCode, string>[] {\n\tlet result : Tuple<OperatorCode, string>[] = [];\n \n return result;\n}\n\n// Return map of OperatorCode values and their display names\nexport function MapOperatorCodes() : Map<OperatorCode, string> {\n let result = new Map<OperatorCode, string>();\n \n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ValidationFlag represents combination of validations\nexport enum ValidationFlag {\n\n // Other [0] \n UNDEFINED = 0,\n\n // Valid medical certificate [1] \n MEDICAL_CERT = 1,\n\n // Valid pilot license [2] \n PILOT_LICENSE = 2,\n\n // Single Engine Certificate [4] \n SINGLE_ENG_CERT = 4,\n\n // Dual Engine Certificate [8] \n DUAL_ENG_CERT = 8,\n\n // 666 Instruments Certificate [16] \n INST_666_CERT = 16,\n\n // REC Instruments Certificate [32] \n INST_REC_CERT = 32,\n\n // Route exam [512] \n ROUTE_EXAM = 512,\n\n // International [2048] \n INTERNATIONAL = 2048,\n\n // English Proficiency [4096] \n ENGLISH_PROF = 4096,\n\n // Instructor license [8192] \n INSTRUCTOR_LICENSE = 8192,\n\n // Company Examiner ? [32768] \n COMPANY_EXAMIN = 32768,\n\n // Radio Certificate [65536] \n RT_CERT = 65536,\n\n}\n\n// Return list of ValidationFlag values and their display names\nexport function GetValidationFlags() : Tuple<ValidationFlag, string>[] {\n\tlet result : Tuple<ValidationFlag, string>[] = [];\n \n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.MEDICAL_CERT, 'ValidationFlag.MEDICAL_CERT'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.PILOT_LICENSE, 'ValidationFlag.PILOT_LICENSE'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.SINGLE_ENG_CERT, 'ValidationFlag.SINGLE_ENG_CERT'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.DUAL_ENG_CERT, 'ValidationFlag.DUAL_ENG_CERT'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.INST_666_CERT, 'ValidationFlag.INST_666_CERT'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.INST_REC_CERT, 'ValidationFlag.INST_REC_CERT'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.ROUTE_EXAM, 'ValidationFlag.ROUTE_EXAM'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.INTERNATIONAL, 'ValidationFlag.INTERNATIONAL'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.ENGLISH_PROF, 'ValidationFlag.ENGLISH_PROF'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.INSTRUCTOR_LICENSE, 'ValidationFlag.INSTRUCTOR_LICENSE'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.COMPANY_EXAMIN, 'ValidationFlag.COMPANY_EXAMIN'))\n\tresult.push(new Tuple<ValidationFlag, string>(ValidationFlag.RT_CERT, 'ValidationFlag.RT_CERT'))\n\t\n return result;\n}\n\n// Return map of ValidationFlag values and their display names\nexport function MapValidationFlags() : Map<ValidationFlag, string> {\n let result = new Map<ValidationFlag, string>();\n result.set(ValidationFlag.UNDEFINED, 'Undefined');\n\tresult.set(ValidationFlag.MEDICAL_CERT, 'Medical Cert');\n\tresult.set(ValidationFlag.PILOT_LICENSE, 'Pilot License');\n\tresult.set(ValidationFlag.SINGLE_ENG_CERT, 'Single Eng Cert');\n\tresult.set(ValidationFlag.DUAL_ENG_CERT, 'Dual Eng Cert');\n\tresult.set(ValidationFlag.INST_666_CERT, 'Inst 666 Cert');\n\tresult.set(ValidationFlag.INST_REC_CERT, 'Inst Rec Cert');\n\tresult.set(ValidationFlag.ROUTE_EXAM, 'Route Exam');\n\tresult.set(ValidationFlag.INTERNATIONAL, 'International');\n\tresult.set(ValidationFlag.ENGLISH_PROF, 'English Prof');\n\tresult.set(ValidationFlag.INSTRUCTOR_LICENSE, 'Instructor License');\n\tresult.set(ValidationFlag.COMPANY_EXAMIN, 'Company Examin');\n\tresult.set(ValidationFlag.RT_CERT, 'Rt Cert');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// TimePeriodCode represents a code for a time period (e.g., Minute, Hour, Day).\nexport enum TimePeriodCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Minute [1] \n MINUTE = 1,\n\n // Hour [2] \n HOUR = 2,\n\n // Day [3] \n DAY = 3,\n\n // Week [4] \n WEEK = 4,\n\n // Month [5] \n MONTH = 5,\n\n}\n\n// Return list of TimePeriodCode values and their display names\nexport function GetTimePeriodCodes() : Tuple<TimePeriodCode, string>[] {\n\tlet result : Tuple<TimePeriodCode, string>[] = [];\n \n\tresult.push(new Tuple<TimePeriodCode, string>(TimePeriodCode.MINUTE, 'TimePeriodCode.MINUTE'))\n\tresult.push(new Tuple<TimePeriodCode, string>(TimePeriodCode.HOUR, 'TimePeriodCode.HOUR'))\n\tresult.push(new Tuple<TimePeriodCode, string>(TimePeriodCode.DAY, 'TimePeriodCode.DAY'))\n\tresult.push(new Tuple<TimePeriodCode, string>(TimePeriodCode.WEEK, 'TimePeriodCode.WEEK'))\n\tresult.push(new Tuple<TimePeriodCode, string>(TimePeriodCode.MONTH, 'TimePeriodCode.MONTH'))\n\t\n return result;\n}\n\n// Return map of TimePeriodCode values and their display names\nexport function MapTimePeriodCodes() : Map<TimePeriodCode, string> {\n let result = new Map<TimePeriodCode, string>();\n result.set(TimePeriodCode.UNDEFINED, 'Undefined');\n\tresult.set(TimePeriodCode.MINUTE, 'Minute');\n\tresult.set(TimePeriodCode.HOUR, 'Hour');\n\tresult.set(TimePeriodCode.DAY, 'Day');\n\tresult.set(TimePeriodCode.WEEK, 'Week');\n\tresult.set(TimePeriodCode.MONTH, 'Month');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// BillingStatusCode represents a flight billing status: ...\nexport enum BillingStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Unapproved [1] \n UNAPPROVED = 1,\n\n // Approved [2] \n APPROVED = 2,\n\n // Auto invoice created [3] \n CREATED_INVOICE = 3,\n\n // Auto invoice pending [4] \n PENDING_INVOICE = 4,\n\n // Manual invoice [5] \n MANUAL_INVOICE = 5,\n\n // Closed [6] \n CLOSED = 6,\n\n // Credit Client [7] \n CREDIT = 7,\n\n // Cancelled invoice [8] \n CANCELLED = 8,\n\n // Irrelevant status [9] \n CANCELLED_BY_CLIENT = 9,\n\n // Irrelevant status [10] \n IRRELEVANT = 10,\n\n}\n\n// Return list of BillingStatusCode values and their display names\nexport function GetBillingStatusCodes() : Tuple<BillingStatusCode, string>[] {\n\tlet result : Tuple<BillingStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.UNAPPROVED, 'BillingStatusCode.UNAPPROVED'))\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.APPROVED, 'BillingStatusCode.APPROVED'))\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CREATED_INVOICE, 'BillingStatusCode.CREATED_INVOICE'))\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.PENDING_INVOICE, 'BillingStatusCode.PENDING_INVOICE'))\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.MANUAL_INVOICE, 'BillingStatusCode.MANUAL_INVOICE'))\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CLOSED, 'BillingStatusCode.CLOSED'))\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CREDIT, 'BillingStatusCode.CREDIT'))\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CANCELLED, 'BillingStatusCode.CANCELLED'))\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.CANCELLED_BY_CLIENT, 'BillingStatusCode.CANCELLED_BY_CLIENT'))\n\tresult.push(new Tuple<BillingStatusCode, string>(BillingStatusCode.IRRELEVANT, 'BillingStatusCode.IRRELEVANT'))\n\t\n return result;\n}\n\n// Return map of BillingStatusCode values and their display names\nexport function MapBillingStatusCodes() : Map<BillingStatusCode, string> {\n let result = new Map<BillingStatusCode, string>();\n result.set(BillingStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(BillingStatusCode.UNAPPROVED, 'Unapproved');\n\tresult.set(BillingStatusCode.APPROVED, 'Approved');\n\tresult.set(BillingStatusCode.CREATED_INVOICE, 'Created Invoice');\n\tresult.set(BillingStatusCode.PENDING_INVOICE, 'Pending Invoice');\n\tresult.set(BillingStatusCode.MANUAL_INVOICE, 'Manual Invoice');\n\tresult.set(BillingStatusCode.CLOSED, 'Closed');\n\tresult.set(BillingStatusCode.CREDIT, 'Credit');\n\tresult.set(BillingStatusCode.CANCELLED, 'Cancelled');\n\tresult.set(BillingStatusCode.CANCELLED_BY_CLIENT, 'Cancelled By Client');\n\tresult.set(BillingStatusCode.IRRELEVANT, 'Irrelevant');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// ConfirmStatusCode represents the contact confirmation status: PENDING | APPROVED | REJECTED ...\nexport enum ConfirmStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Pending not read yet [1] \n PENDING = 1,\n\n // Approved by the contact [2] \n APPROVED = 2,\n\n // Rejected by the contact [3] \n REJECTED = 3,\n\n}\n\n// Return list of ConfirmStatusCode values and their display names\nexport function GetConfirmStatusCodes() : Tuple<ConfirmStatusCode, string>[] {\n\tlet result : Tuple<ConfirmStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<ConfirmStatusCode, string>(ConfirmStatusCode.PENDING, 'ConfirmStatusCode.PENDING'))\n\tresult.push(new Tuple<ConfirmStatusCode, string>(ConfirmStatusCode.APPROVED, 'ConfirmStatusCode.APPROVED'))\n\tresult.push(new Tuple<ConfirmStatusCode, string>(ConfirmStatusCode.REJECTED, 'ConfirmStatusCode.REJECTED'))\n\t\n return result;\n}\n\n// Return map of ConfirmStatusCode values and their display names\nexport function MapConfirmStatusCodes() : Map<ConfirmStatusCode, string> {\n let result = new Map<ConfirmStatusCode, string>();\n result.set(ConfirmStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(ConfirmStatusCode.PENDING, 'Pending');\n\tresult.set(ConfirmStatusCode.APPROVED, 'Approved');\n\tresult.set(ConfirmStatusCode.REJECTED, 'Rejected');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// PermissionFlag represents combination of permissions: READ | CREATE | UPDATE | DELETE | MANAGE\nexport enum PermissionFlag {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Read [1] \n READ = 1,\n\n // Create [2] \n CREATE = 2,\n\n // Update [4] \n UPDATE = 4,\n\n // Delete [8] \n DELETE = 8,\n\n // Manage [16] \n MANAGE = 16,\n\n // All permissions combined \n ALL = 31,\n\n}\n\n// Return list of PermissionFlag values and their display names\nexport function GetPermissionFlags() : Tuple<PermissionFlag, string>[] {\n\tlet result : Tuple<PermissionFlag, string>[] = [];\n \n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.READ, 'PermissionFlag.READ'))\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.CREATE, 'PermissionFlag.CREATE'))\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.UPDATE, 'PermissionFlag.UPDATE'))\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.DELETE, 'PermissionFlag.DELETE'))\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.MANAGE, 'PermissionFlag.MANAGE'))\n\tresult.push(new Tuple<PermissionFlag, string>(PermissionFlag.ALL, 'PermissionFlag.ALL'))\n\t\n return result;\n}\n\n// Return map of PermissionFlag values and their display names\nexport function MapPermissionFlags() : Map<PermissionFlag, string> {\n let result = new Map<PermissionFlag, string>();\n result.set(PermissionFlag.UNDEFINED, 'Undefined');\n\tresult.set(PermissionFlag.READ, 'Read');\n\tresult.set(PermissionFlag.CREATE, 'Create');\n\tresult.set(PermissionFlag.UPDATE, 'Update');\n\tresult.set(PermissionFlag.DELETE, 'Delete');\n\tresult.set(PermissionFlag.MANAGE, 'Manage');\n\tresult.set(PermissionFlag.ALL, 'All');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// UserRoleFlag represents combination of roles: STUDENT | PILOT | INSTRUCTOR | SALES | OPERATIONS | MANAGER\nexport enum UserRoleFlag {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Student [1] \n STUDENT = 1,\n\n // Pilot [2] \n PILOT = 2,\n\n // Flight Instructor [4] \n INSTRUCTOR = 4,\n\n // Sales [8] \n SALES = 8,\n\n // Operations [16] \n OPERATIONS = 16,\n\n // Maintenance [32] \n MAINTENANCE = 32,\n\n // Manager [1024] \n MANAGER = 1024,\n\n // All roles combined \n ALL = 2047,\n\n}\n\n// Return list of UserRoleFlag values and their display names\nexport function GetUserRoleFlags() : Tuple<UserRoleFlag, string>[] {\n\tlet result : Tuple<UserRoleFlag, string>[] = [];\n \n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.STUDENT, 'UserRoleFlag.STUDENT'))\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.PILOT, 'UserRoleFlag.PILOT'))\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.INSTRUCTOR, 'UserRoleFlag.INSTRUCTOR'))\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.SALES, 'UserRoleFlag.SALES'))\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.OPERATIONS, 'UserRoleFlag.OPERATIONS'))\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.MAINTENANCE, 'UserRoleFlag.MAINTENANCE'))\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.MANAGER, 'UserRoleFlag.MANAGER'))\n\tresult.push(new Tuple<UserRoleFlag, string>(UserRoleFlag.ALL, 'UserRoleFlag.ALL'))\n\t\n return result;\n}\n\n// Return map of UserRoleFlag values and their display names\nexport function MapUserRoleFlags() : Map<UserRoleFlag, string> {\n let result = new Map<UserRoleFlag, string>();\n result.set(UserRoleFlag.UNDEFINED, 'Undefined');\n\tresult.set(UserRoleFlag.STUDENT, 'Student');\n\tresult.set(UserRoleFlag.PILOT, 'Pilot');\n\tresult.set(UserRoleFlag.INSTRUCTOR, 'Instructor');\n\tresult.set(UserRoleFlag.SALES, 'Sales');\n\tresult.set(UserRoleFlag.OPERATIONS, 'Operations');\n\tresult.set(UserRoleFlag.MAINTENANCE, 'Maintenance');\n\tresult.set(UserRoleFlag.MANAGER, 'Manager');\n\tresult.set(UserRoleFlag.ALL, 'All');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightClassCode represents a flight Class: GENERAL | PRIVATE | COMMERCIAL ...\nexport enum FlightClassCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Private Flight [32] \n PRIVATE = 32,\n\n // Commercial Flight [64] \n COMMERCIAL = 64,\n\n // Introductory Flight [128] \n INTRODUCTORY = 128,\n\n // Examination Flight [256] \n EXAM = 256,\n\n // Instruction Flight [512] \n INSTRUCTION = 512,\n\n // Maintenance[1024] \n MAINTENANCE = 1024,\n\n // Other Class (elaborate on next field) [2048] \n OTHER = 2048,\n\n}\n\n// Return list of FlightClassCode values and their display names\nexport function GetFlightClassCodes() : Tuple<FlightClassCode, string>[] {\n\tlet result : Tuple<FlightClassCode, string>[] = [];\n \n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.PRIVATE, 'FlightClassCode.PRIVATE'))\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.COMMERCIAL, 'FlightClassCode.COMMERCIAL'))\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.INTRODUCTORY, 'FlightClassCode.INTRODUCTORY'))\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.EXAM, 'FlightClassCode.EXAM'))\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.INSTRUCTION, 'FlightClassCode.INSTRUCTION'))\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.MAINTENANCE, 'FlightClassCode.MAINTENANCE'))\n\tresult.push(new Tuple<FlightClassCode, string>(FlightClassCode.OTHER, 'FlightClassCode.OTHER'))\n\t\n return result;\n}\n\n// Return map of FlightClassCode values and their display names\nexport function MapFlightClassCodes() : Map<FlightClassCode, string> {\n let result = new Map<FlightClassCode, string>();\n result.set(FlightClassCode.UNDEFINED, 'Undefined');\n\tresult.set(FlightClassCode.PRIVATE, 'Private');\n\tresult.set(FlightClassCode.COMMERCIAL, 'Commercial');\n\tresult.set(FlightClassCode.INTRODUCTORY, 'Introductory');\n\tresult.set(FlightClassCode.EXAM, 'Exam');\n\tresult.set(FlightClassCode.INSTRUCTION, 'Instruction');\n\tresult.set(FlightClassCode.MAINTENANCE, 'Maintenance');\n\tresult.set(FlightClassCode.OTHER, 'Other');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightPurposeCode represents a flight purpose: GENERAL | PRIVATE | COMMERCIAL ...\nexport enum FlightPurposeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Introductory Flight [1] \n INTRODUCTORY = 1,\n\n // Flight Instruction Lesson [2] \n INSTRUCTION = 2,\n\n // Airplane Rental Flight [3] \n RENTAL = 3,\n\n // Private Flight [4] \n PRIVATE = 4,\n\n // Vertical Photographic [5] \n VERTICAL_PHOTO = 5,\n\n // Diagonal Photographic [6] \n DIAGONAL_PHOTO = 6,\n\n // Round Flight [7] \n ROUND = 7,\n\n // Initial / Recurrent CAA Test [8] \n CAA_TEST = 8,\n\n // Transfer Flight (to transfer airplane) [9] \n TRANSFER = 9,\n\n // Commercial air taxi to transfer passengers [10] \n AIR_TAXI = 10,\n\n // Engine Running [11] \n ENGINE_RUNNING = 11,\n\n // Other purpose (elaborate on next field) [12] \n OTHER = 12,\n\n}\n\n// Return list of FlightPurposeCode values and their display names\nexport function GetFlightPurposeCodes() : Tuple<FlightPurposeCode, string>[] {\n\tlet result : Tuple<FlightPurposeCode, string>[] = [];\n \n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.INTRODUCTORY, 'FlightPurposeCode.INTRODUCTORY'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.INSTRUCTION, 'FlightPurposeCode.INSTRUCTION'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.RENTAL, 'FlightPurposeCode.RENTAL'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.PRIVATE, 'FlightPurposeCode.PRIVATE'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.VERTICAL_PHOTO, 'FlightPurposeCode.VERTICAL_PHOTO'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.DIAGONAL_PHOTO, 'FlightPurposeCode.DIAGONAL_PHOTO'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.ROUND, 'FlightPurposeCode.ROUND'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.CAA_TEST, 'FlightPurposeCode.CAA_TEST'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.TRANSFER, 'FlightPurposeCode.TRANSFER'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.AIR_TAXI, 'FlightPurposeCode.AIR_TAXI'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.ENGINE_RUNNING, 'FlightPurposeCode.ENGINE_RUNNING'))\n\tresult.push(new Tuple<FlightPurposeCode, string>(FlightPurposeCode.OTHER, 'FlightPurposeCode.OTHER'))\n\t\n return result;\n}\n\n// Return map of FlightPurposeCode values and their display names\nexport function MapFlightPurposeCodes() : Map<FlightPurposeCode, string> {\n let result = new Map<FlightPurposeCode, string>();\n result.set(FlightPurposeCode.UNDEFINED, 'Undefined');\n\tresult.set(FlightPurposeCode.INTRODUCTORY, 'Introductory');\n\tresult.set(FlightPurposeCode.INSTRUCTION, 'Instruction');\n\tresult.set(FlightPurposeCode.RENTAL, 'Rental');\n\tresult.set(FlightPurposeCode.PRIVATE, 'Private');\n\tresult.set(FlightPurposeCode.VERTICAL_PHOTO, 'Vertical Photo');\n\tresult.set(FlightPurposeCode.DIAGONAL_PHOTO, 'Diagonal Photo');\n\tresult.set(FlightPurposeCode.ROUND, 'Round');\n\tresult.set(FlightPurposeCode.CAA_TEST, 'Caa Test');\n\tresult.set(FlightPurposeCode.TRANSFER, 'Transfer');\n\tresult.set(FlightPurposeCode.AIR_TAXI, 'Air Taxi');\n\tresult.set(FlightPurposeCode.ENGINE_RUNNING, 'Engine Running');\n\tresult.set(FlightPurposeCode.OTHER, 'Other');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightStatusCode represents a flight status can be changed by the operator: ...\nexport enum FlightStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Registered flight but not started (launched) [1] \n REGISTERED = 1,\n\n // Active (after pre-flight form) [2] \n ACTIVE = 2,\n\n // Completed (Done - after post-flight form) [3] \n COMPLETED = 3,\n\n // Cancelled by Aya [4] \n CANCELLED = 4,\n\n // Aborted - cancelled by client [5] \n ABORTED = 5,\n\n // Pending deletion [6] \n DELETE = 6,\n\n}\n\n// Return list of FlightStatusCode values and their display names\nexport function GetFlightStatusCodes() : Tuple<FlightStatusCode, string>[] {\n\tlet result : Tuple<FlightStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.REGISTERED, 'FlightStatusCode.REGISTERED'))\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.ACTIVE, 'FlightStatusCode.ACTIVE'))\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.COMPLETED, 'FlightStatusCode.COMPLETED'))\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.CANCELLED, 'FlightStatusCode.CANCELLED'))\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.ABORTED, 'FlightStatusCode.ABORTED'))\n\tresult.push(new Tuple<FlightStatusCode, string>(FlightStatusCode.DELETE, 'FlightStatusCode.DELETE'))\n\t\n return result;\n}\n\n// Return map of FlightStatusCode values and their display names\nexport function MapFlightStatusCodes() : Map<FlightStatusCode, string> {\n let result = new Map<FlightStatusCode, string>();\n result.set(FlightStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(FlightStatusCode.REGISTERED, 'Registered');\n\tresult.set(FlightStatusCode.ACTIVE, 'Active');\n\tresult.set(FlightStatusCode.COMPLETED, 'Completed');\n\tresult.set(FlightStatusCode.CANCELLED, 'Cancelled');\n\tresult.set(FlightStatusCode.ABORTED, 'Aborted');\n\tresult.set(FlightStatusCode.DELETE, 'Delete');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// LessonSubjectCode represents a flight lesson subject:\nexport enum LessonSubjectCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // \"1 השפעת הגאים ומנופי בקרה. משך: 40 ד\" \n PPL_01 = 1,\n\n // \"2 הכנה לטיסה, הסעה, טיסה ישרה ואופקית. משך: 40 ד\" \n PPL_02 = 2,\n\n // \"3 הסעה, טיסה ישרה ואופקית, נסיקה. משך: 40 ד\" \n PPL_03 = 3,\n\n // \"4 מצבי יסוד - ישרה ואופקית נסיקה וגלישה. משך: 40 ד\" \n PPL_04 = 4,\n\n // \"5 מעברים רגילים ומורכבים בטיסה ישרה. משך: 50 ד\" \n PPL_05 = 5,\n\n // \"6 פניות קלות (נסיקה גלישה), בינוניות וחדות. משך: 50 ד\" \n PPL_06 = 6,\n\n // \"7 מעברים רגילים ומורכבים בפניה. משך: 40 ד\" \n PPL_07 = 7,\n\n // \"8 שינויי מהירות בטיסה ישרה ואופקית, והזדקרויות ישרות. משך: 40 ד\" \n PPL_08 = 8,\n\n // \"9 הזדקרויות בטיסה ישרה ובפניות והזדקרות עם נפילת כנף. משך: 40 ד\" \n PPL_09 = 9,\n\n // \"10 נחיתות אונס מגבהים שונים+החלצות ממצב של נפילת כנף תוך כדי הזדקרות. משך: 40 ד\" \n PPL_10 = 10,\n\n // \"11 הקפה. משך: 40 ד\" \n PPL_11 = 11,\n\n // \"12 חזרה כללית: הקפות המראה ונחיתה. משך: 40 ד\" \n PPL_12 = 12,\n\n // \"13 חזרה כללית: הקפות המראה ונחיתה. משך: 1:00 ש\" \n PPL_13 = 13,\n\n // \"14 חזרה כללית: הקפות המראה ונחיתה. משך: 50 ד\" \n PPL_14 = 14,\n\n // \"15 חזרה כללית + הקפות המראה קצרה ונחיתה קצרה. משך: 50 ד\" \n PPL_15 = 15,\n\n // \"16 טיסת בדיקה לקראת טיסת יחיד-טיסה כללית ובהקפה. משך המבחן 1:00. טיסת הסולו ראשונה: הקפה אחת, משך 10 ד\" \n PPL_16 = 16,\n\n // \"17 הקפות: הדרכה וטיסת יחיד. משך: הדרכה 15 ד; סולו 1:00 ש\" \n PPL_17 = 17,\n\n // \"18 הקפות: הדרכה וטיסת יחיד. משך: הדרכה 15 ד; סולו 1:00 ש\" \n PPL_18 = 18,\n\n // \"19 הקפות: הדרכה וטיסת יחיד. משך: הדרכה 15 ד; סולו 1:00 ש\" \n PPL_19 = 19,\n\n // \"20 הקפות: הדרכה וטיסת יחיד. משך: הדרכה 15 ד; סולו 1:00 ש\" \n PPL_20 = 20,\n\n // \"21 הקפות, נחיתות דיוק, חירום. הדרכה 15 ד; סולו 1:00 ש\" \n PPL_21 = 21,\n\n // \"22 הקפות, טיסה כללית, חירום. הדרכה 50 ד; הקפות- סולו 50 ד\" \n PPL_22 = 22,\n\n // \"23 הקפות, טיסה כללית, חירום. הדרכה 30 ד; סולו אזור 50 ד\" \n PPL_23 = 23,\n\n // \"24 טיסה כללית, חירום. הדרכה 10 ד; סולו אזור 50 ד\" \n PPL_24 = 24,\n\n // \"25 שעור 1: טיסת מכשירים בסיסית-מצבי טיסה יסודיים. משך 45 ד\" \n PPL_25 = 25,\n\n // \"26 שעור 2: טיסת מכשירים בסיסית-מעברים בטיסה ישרה. משך 45 ד\" \n PPL_26 = 26,\n\n // \"27 שעור 3: פניות בינוניות אופקיות ופניות בשעור1. משך: 45 ד\" \n PPL_27 = 27,\n\n // \"28 שעור 4: לוח מוגבל ומצבים מוזרים. משך: 45 ד\" \n PPL_28 = 28,\n\n // \"29 - טיסת נווט מגע + נחיתת ביניים. משך הנווט 1:20 ש\" \n PPL_29 = 29,\n\n // \"30 - טיסת נווט מגע, אבדן התמצאות ונ״א + שימוש בעזרי רדיו לנווט. נחיתות ביניים בנתיב בשני שדות זרים. משך הנווט 1:40 ש\" \n PPL_30 = 30,\n\n // \"31 נווטי מגע, שימוש בעזרי רדיו לנווט+נחיתות בשדות זרים. משך הנווטים בטיסות יחיד 3:00 ש; הדרכה לבדיקת רמה לפני כל נווט 10 ד\" \n PPL_31 = 31,\n\n // \"32 נווט יחיד ארוך-נווט מגע, שימוש בעזרי רדיו+נחיתה בשני שדות זרים מרוחקים משדה האם. משך: 2:30 שעות; הדרכה 10 דקות -בדיקת רמה\" \n PPL_32 = 32,\n\n // \"33 סולו – חזרה על כל תרגילי הטיסה ותהליכי חירום. משך: הדרכה 10 דקות + סולו 55 ד\" \n PPL_33 = 33,\n\n // \"34 שעור 1 לילה: טיסה כללית-מצבי טיסה. משך: 45 ד\" \n PPL_34 = 34,\n\n // \"35 שעור 2-לילה: מעברים רגילים+מורכבים בטיסה ישרה. משך: 45 ד\" \n PPL_35 = 35,\n\n // \"36 שעור 3 לילה: פניות נסיקה וגלישה ופניות בינוניות + אופקיות 30º הטייה ומעברים בפניה ושתי הקפות. משך: 45 ד\" \n PPL_36 = 36,\n\n // \"37 שעור 4 לילה: הקפות עם פנסי נחיתה וללא. משך: 45 ד\" \n PPL_37 = 37,\n\n // \"38 חזרה כללית לפני מבחן. משך: 45 ד\" \n PPL_38 = 38,\n\n // \"39 -סולו -חזרה כללית לפני מבחן. משך: 55 ד\" \n PPL_39 = 39,\n\n // 1 הסעה, מעברים מורכבים, פניות, שינוי מהירות, הקפה \n PPL_AZM_01 = 51,\n\n // 2 פניות חדות, שינוי מהירות, הזדקרות, נ\"א, הקפה \n PPL_AZM_02 = 52,\n\n // 3 הקפות \n PPL_AZM_03 = 53,\n\n // 4 מצבי חירום באיזור ובהקפה \n PPL_AZM_04 = 54,\n\n // 5 הקפות, חירומים, המראה ונחיתה קצרה \n PPL_AZM_05 = 55,\n\n // 6 הקפות, חירומים, המראה ונחיתה קצרה \n PPL_AZM_06 = 56,\n\n // 7 טיסת בדיקה לטיסת יחיד (מד\"ר) \n PPL_AZM_07 = 57,\n\n // 8 מכשירים - מצבי טיסה יסודיים \n PPL_AZM_08 = 58,\n\n // 9 מכשירים, פניות, שינוי מהירות, הזדקרויות \n PPL_AZM_09 = 59,\n\n // 10 טיסת נווט מגע ונחיתת ביניים, מצבי חירום, הקפות \n PPL_AZM_10 = 60,\n\n // 11 טיסת מכשירים לוח מוגבל, מצבים מוזרים, יירוט רדיאלים \n PPL_AZM_11 = 61,\n\n // 12 ניווט בטיסת יחיד \n PPL_AZM_12 = 62,\n\n // 13 ניווט בטיסת יחיד \n PPL_AZM_13 = 63,\n\n // 14 טיסת לילה, ניווט, הקפות, חירומים \n PPL_AZM_14 = 64,\n\n // 15 טיסת לילה, ניווט, הקפות, חירומים \n PPL_AZM_15 = 65,\n\n // 16 חזרה כללית (מד\"ר) \n PPL_AZM_16 = 66,\n\n // \"1 מצבי טיסה, מעברים, פניות, שינוי מהירות, הזדקרויות\" \n CPL_01 = 101,\n\n // \"2 תמרונים רגילים בטיסה (שיפור מיומנות)\" \n CPL_02 = 102,\n\n // \"3 הזדקרויות והיכרות עם תרגילי המיומנות הנדרשים בטיס מסחרי\" \n CPL_03 = 103,\n\n // \"4 תרגילי המיומנות הנדרשים מטייס מסחרי (שיפור מיומנות)\" \n CPL_04 = 104,\n\n // \"5 תפעול רגיל ותרגול חירומים\" \n CPL_05 = 105,\n\n // \"6 תפעול רגיל ותרגול חירומים (שיפור מיומנות)\" \n CPL_06 = 106,\n\n // \"7 תרגול הקפות במשקל המראה מירבי\" \n CPL_07 = 107,\n\n // \"8 תרגול הקפות ותפעול חרומים בהקפה\" \n CPL_08 = 108,\n\n // \"9 טיסת מכשירים בסיסית\" \n CPL_09 = 109,\n\n // \"10 טיסת ניווט בנתיבי התובלה הנמוכים\" \n CPL_10 = 110,\n\n // \"11 ישום שיטת ניווט (גובה נמוך)\" \n CPL_11 = 111,\n\n // \"12 ישום שיטת ניווט (גובה נמוך) ושיפור מיומנות\" \n CPL_12 = 112,\n\n // \"13 הכנה למבחן מעשי\" \n CPL_13 = 113,\n\n // 1 מצבים יסודיים, מעברים,פניות, שינוי מהירות, הזדקרויות, שעור פניה, מצבים מוזרים \n IFR_05_01 = 201,\n\n // 2 טיסה לפי רדיאלים \n IFR_05_02 = 202,\n\n // 3 SID, ניווט בנתיבי IFR, STAR, הנמכות מדויקות ולא מדויקות \n IFR_05_03 = 203,\n\n // 4 מסכמת, נתיב, SID,STAR, הנמכות מדויקות ולא מדויקות \n IFR_05_04 = 204,\n\n // 5 חזרה למבחן \n IFR_05_05 = 205,\n\n // 1 מצבים טיסה יסודיים - מדמה \n IFR_20_01 = 221,\n\n // 2 מצבי טיסה יסודיים \n IFR_20_02 = 222,\n\n // 3 הזדקרויות עד מצבים מוזרים - מדמה \n IFR_20_03 = 223,\n\n // 4 הזדקרויות עד מצבים מוזרים \n IFR_20_04 = 224,\n\n // 5 טיסה לפי רדיאלים - מדמה \n IFR_20_05 = 225,\n\n // 6 טיסה לפי רדיאלים \n IFR_20_06 = 226,\n\n // 7 מעגל המתנה וכניסות - מדמה \n IFR_20_07 = 227,\n\n // 8 SID, נתיבי IFR, STAR - מדמה \n IFR_20_08 = 228,\n\n // 9 SID, נתיבי IFR, STAR \n IFR_20_09 = 229,\n\n // 10 הנמכות מדויקות - מדמה \n IFR_20_10 = 230,\n\n // 11 הנמכות לא מדויקות - מדמה \n IFR_20_11 = 231,\n\n // 12 SID, נתיבי IFR, STAR, הנמכות מדויקות \n IFR_20_12 = 232,\n\n // 13 הנמכות לא מדויקות \n IFR_20_13 = 233,\n\n // 14 הנמכות שונות \n IFR_20_14 = 234,\n\n // 15 SID, נתיבי IFR, STAR, הנמכות שונות - מדמה \n IFR_20_15 = 235,\n\n // 16 טיסה מסכמת \n IFR_20_16 = 236,\n\n // 17 חזרה למבחן - מדמה \n IFR_20_17 = 237,\n\n // 18 חזרה למבחן \n IFR_20_18 = 238,\n\n}\n\n// Return list of LessonSubjectCode values and their display names\nexport function GetLessonSubjectCodes() : Tuple<LessonSubjectCode, string>[] {\n\tlet result : Tuple<LessonSubjectCode, string>[] = [];\n \n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_01, 'LessonSubjectCode.PPL_01'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_02, 'LessonSubjectCode.PPL_02'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_03, 'LessonSubjectCode.PPL_03'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_04, 'LessonSubjectCode.PPL_04'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_05, 'LessonSubjectCode.PPL_05'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_06, 'LessonSubjectCode.PPL_06'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_07, 'LessonSubjectCode.PPL_07'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_08, 'LessonSubjectCode.PPL_08'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_09, 'LessonSubjectCode.PPL_09'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_10, 'LessonSubjectCode.PPL_10'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_11, 'LessonSubjectCode.PPL_11'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_12, 'LessonSubjectCode.PPL_12'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_13, 'LessonSubjectCode.PPL_13'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_14, 'LessonSubjectCode.PPL_14'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_15, 'LessonSubjectCode.PPL_15'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_16, 'LessonSubjectCode.PPL_16'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_17, 'LessonSubjectCode.PPL_17'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_18, 'LessonSubjectCode.PPL_18'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_19, 'LessonSubjectCode.PPL_19'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_20, 'LessonSubjectCode.PPL_20'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_21, 'LessonSubjectCode.PPL_21'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_22, 'LessonSubjectCode.PPL_22'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_23, 'LessonSubjectCode.PPL_23'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_24, 'LessonSubjectCode.PPL_24'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_25, 'LessonSubjectCode.PPL_25'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_26, 'LessonSubjectCode.PPL_26'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_27, 'LessonSubjectCode.PPL_27'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_28, 'LessonSubjectCode.PPL_28'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_29, 'LessonSubjectCode.PPL_29'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_30, 'LessonSubjectCode.PPL_30'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_31, 'LessonSubjectCode.PPL_31'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_32, 'LessonSubjectCode.PPL_32'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_33, 'LessonSubjectCode.PPL_33'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_34, 'LessonSubjectCode.PPL_34'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_35, 'LessonSubjectCode.PPL_35'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_36, 'LessonSubjectCode.PPL_36'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_37, 'LessonSubjectCode.PPL_37'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_38, 'LessonSubjectCode.PPL_38'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_39, 'LessonSubjectCode.PPL_39'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_01, 'LessonSubjectCode.PPL_AZM_01'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_02, 'LessonSubjectCode.PPL_AZM_02'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_03, 'LessonSubjectCode.PPL_AZM_03'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_04, 'LessonSubjectCode.PPL_AZM_04'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_05, 'LessonSubjectCode.PPL_AZM_05'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_06, 'LessonSubjectCode.PPL_AZM_06'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_07, 'LessonSubjectCode.PPL_AZM_07'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_08, 'LessonSubjectCode.PPL_AZM_08'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_09, 'LessonSubjectCode.PPL_AZM_09'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_10, 'LessonSubjectCode.PPL_AZM_10'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_11, 'LessonSubjectCode.PPL_AZM_11'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_12, 'LessonSubjectCode.PPL_AZM_12'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_13, 'LessonSubjectCode.PPL_AZM_13'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_14, 'LessonSubjectCode.PPL_AZM_14'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_15, 'LessonSubjectCode.PPL_AZM_15'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.PPL_AZM_16, 'LessonSubjectCode.PPL_AZM_16'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_01, 'LessonSubjectCode.CPL_01'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_02, 'LessonSubjectCode.CPL_02'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_03, 'LessonSubjectCode.CPL_03'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_04, 'LessonSubjectCode.CPL_04'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_05, 'LessonSubjectCode.CPL_05'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_06, 'LessonSubjectCode.CPL_06'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_07, 'LessonSubjectCode.CPL_07'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_08, 'LessonSubjectCode.CPL_08'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_09, 'LessonSubjectCode.CPL_09'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_10, 'LessonSubjectCode.CPL_10'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_11, 'LessonSubjectCode.CPL_11'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_12, 'LessonSubjectCode.CPL_12'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.CPL_13, 'LessonSubjectCode.CPL_13'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_01, 'LessonSubjectCode.IFR_05_01'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_02, 'LessonSubjectCode.IFR_05_02'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_03, 'LessonSubjectCode.IFR_05_03'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_04, 'LessonSubjectCode.IFR_05_04'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_05_05, 'LessonSubjectCode.IFR_05_05'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_01, 'LessonSubjectCode.IFR_20_01'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_02, 'LessonSubjectCode.IFR_20_02'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_03, 'LessonSubjectCode.IFR_20_03'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_04, 'LessonSubjectCode.IFR_20_04'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_05, 'LessonSubjectCode.IFR_20_05'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_06, 'LessonSubjectCode.IFR_20_06'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_07, 'LessonSubjectCode.IFR_20_07'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_08, 'LessonSubjectCode.IFR_20_08'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_09, 'LessonSubjectCode.IFR_20_09'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_10, 'LessonSubjectCode.IFR_20_10'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_11, 'LessonSubjectCode.IFR_20_11'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_12, 'LessonSubjectCode.IFR_20_12'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_13, 'LessonSubjectCode.IFR_20_13'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_14, 'LessonSubjectCode.IFR_20_14'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_15, 'LessonSubjectCode.IFR_20_15'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_16, 'LessonSubjectCode.IFR_20_16'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_17, 'LessonSubjectCode.IFR_20_17'))\n\tresult.push(new Tuple<LessonSubjectCode, string>(LessonSubjectCode.IFR_20_18, 'LessonSubjectCode.IFR_20_18'))\n\t\n return result;\n}\n\n// Return map of LessonSubjectCode values and their display names\nexport function MapLessonSubjectCodes() : Map<LessonSubjectCode, string> {\n let result = new Map<LessonSubjectCode, string>();\n result.set(LessonSubjectCode.UNDEFINED, 'Undefined');\n\tresult.set(LessonSubjectCode.PPL_01, 'Ppl 01');\n\tresult.set(LessonSubjectCode.PPL_02, 'Ppl 02');\n\tresult.set(LessonSubjectCode.PPL_03, 'Ppl 03');\n\tresult.set(LessonSubjectCode.PPL_04, 'Ppl 04');\n\tresult.set(LessonSubjectCode.PPL_05, 'Ppl 05');\n\tresult.set(LessonSubjectCode.PPL_06, 'Ppl 06');\n\tresult.set(LessonSubjectCode.PPL_07, 'Ppl 07');\n\tresult.set(LessonSubjectCode.PPL_08, 'Ppl 08');\n\tresult.set(LessonSubjectCode.PPL_09, 'Ppl 09');\n\tresult.set(LessonSubjectCode.PPL_10, 'Ppl 10');\n\tresult.set(LessonSubjectCode.PPL_11, 'Ppl 11');\n\tresult.set(LessonSubjectCode.PPL_12, 'Ppl 12');\n\tresult.set(LessonSubjectCode.PPL_13, 'Ppl 13');\n\tresult.set(LessonSubjectCode.PPL_14, 'Ppl 14');\n\tresult.set(LessonSubjectCode.PPL_15, 'Ppl 15');\n\tresult.set(LessonSubjectCode.PPL_16, 'Ppl 16');\n\tresult.set(LessonSubjectCode.PPL_17, 'Ppl 17');\n\tresult.set(LessonSubjectCode.PPL_18, 'Ppl 18');\n\tresult.set(LessonSubjectCode.PPL_19, 'Ppl 19');\n\tresult.set(LessonSubjectCode.PPL_20, 'Ppl 20');\n\tresult.set(LessonSubjectCode.PPL_21, 'Ppl 21');\n\tresult.set(LessonSubjectCode.PPL_22, 'Ppl 22');\n\tresult.set(LessonSubjectCode.PPL_23, 'Ppl 23');\n\tresult.set(LessonSubjectCode.PPL_24, 'Ppl 24');\n\tresult.set(LessonSubjectCode.PPL_25, 'Ppl 25');\n\tresult.set(LessonSubjectCode.PPL_26, 'Ppl 26');\n\tresult.set(LessonSubjectCode.PPL_27, 'Ppl 27');\n\tresult.set(LessonSubjectCode.PPL_28, 'Ppl 28');\n\tresult.set(LessonSubjectCode.PPL_29, 'Ppl 29');\n\tresult.set(LessonSubjectCode.PPL_30, 'Ppl 30');\n\tresult.set(LessonSubjectCode.PPL_31, 'Ppl 31');\n\tresult.set(LessonSubjectCode.PPL_32, 'Ppl 32');\n\tresult.set(LessonSubjectCode.PPL_33, 'Ppl 33');\n\tresult.set(LessonSubjectCode.PPL_34, 'Ppl 34');\n\tresult.set(LessonSubjectCode.PPL_35, 'Ppl 35');\n\tresult.set(LessonSubjectCode.PPL_36, 'Ppl 36');\n\tresult.set(LessonSubjectCode.PPL_37, 'Ppl 37');\n\tresult.set(LessonSubjectCode.PPL_38, 'Ppl 38');\n\tresult.set(LessonSubjectCode.PPL_39, 'Ppl 39');\n\tresult.set(LessonSubjectCode.PPL_AZM_01, 'Ppl Azm 01');\n\tresult.set(LessonSubjectCode.PPL_AZM_02, 'Ppl Azm 02');\n\tresult.set(LessonSubjectCode.PPL_AZM_03, 'Ppl Azm 03');\n\tresult.set(LessonSubjectCode.PPL_AZM_04, 'Ppl Azm 04');\n\tresult.set(LessonSubjectCode.PPL_AZM_05, 'Ppl Azm 05');\n\tresult.set(LessonSubjectCode.PPL_AZM_06, 'Ppl Azm 06');\n\tresult.set(LessonSubjectCode.PPL_AZM_07, 'Ppl Azm 07');\n\tresult.set(LessonSubjectCode.PPL_AZM_08, 'Ppl Azm 08');\n\tresult.set(LessonSubjectCode.PPL_AZM_09, 'Ppl Azm 09');\n\tresult.set(LessonSubjectCode.PPL_AZM_10, 'Ppl Azm 10');\n\tresult.set(LessonSubjectCode.PPL_AZM_11, 'Ppl Azm 11');\n\tresult.set(LessonSubjectCode.PPL_AZM_12, 'Ppl Azm 12');\n\tresult.set(LessonSubjectCode.PPL_AZM_13, 'Ppl Azm 13');\n\tresult.set(LessonSubjectCode.PPL_AZM_14, 'Ppl Azm 14');\n\tresult.set(LessonSubjectCode.PPL_AZM_15, 'Ppl Azm 15');\n\tresult.set(LessonSubjectCode.PPL_AZM_16, 'Ppl Azm 16');\n\tresult.set(LessonSubjectCode.CPL_01, 'Cpl 01');\n\tresult.set(LessonSubjectCode.CPL_02, 'Cpl 02');\n\tresult.set(LessonSubjectCode.CPL_03, 'Cpl 03');\n\tresult.set(LessonSubjectCode.CPL_04, 'Cpl 04');\n\tresult.set(LessonSubjectCode.CPL_05, 'Cpl 05');\n\tresult.set(LessonSubjectCode.CPL_06, 'Cpl 06');\n\tresult.set(LessonSubjectCode.CPL_07, 'Cpl 07');\n\tresult.set(LessonSubjectCode.CPL_08, 'Cpl 08');\n\tresult.set(LessonSubjectCode.CPL_09, 'Cpl 09');\n\tresult.set(LessonSubjectCode.CPL_10, 'Cpl 10');\n\tresult.set(LessonSubjectCode.CPL_11, 'Cpl 11');\n\tresult.set(LessonSubjectCode.CPL_12, 'Cpl 12');\n\tresult.set(LessonSubjectCode.CPL_13, 'Cpl 13');\n\tresult.set(LessonSubjectCode.IFR_05_01, 'Ifr 05 01');\n\tresult.set(LessonSubjectCode.IFR_05_02, 'Ifr 05 02');\n\tresult.set(LessonSubjectCode.IFR_05_03, 'Ifr 05 03');\n\tresult.set(LessonSubjectCode.IFR_05_04, 'Ifr 05 04');\n\tresult.set(LessonSubjectCode.IFR_05_05, 'Ifr 05 05');\n\tresult.set(LessonSubjectCode.IFR_20_01, 'Ifr 20 01');\n\tresult.set(LessonSubjectCode.IFR_20_02, 'Ifr 20 02');\n\tresult.set(LessonSubjectCode.IFR_20_03, 'Ifr 20 03');\n\tresult.set(LessonSubjectCode.IFR_20_04, 'Ifr 20 04');\n\tresult.set(LessonSubjectCode.IFR_20_05, 'Ifr 20 05');\n\tresult.set(LessonSubjectCode.IFR_20_06, 'Ifr 20 06');\n\tresult.set(LessonSubjectCode.IFR_20_07, 'Ifr 20 07');\n\tresult.set(LessonSubjectCode.IFR_20_08, 'Ifr 20 08');\n\tresult.set(LessonSubjectCode.IFR_20_09, 'Ifr 20 09');\n\tresult.set(LessonSubjectCode.IFR_20_10, 'Ifr 20 10');\n\tresult.set(LessonSubjectCode.IFR_20_11, 'Ifr 20 11');\n\tresult.set(LessonSubjectCode.IFR_20_12, 'Ifr 20 12');\n\tresult.set(LessonSubjectCode.IFR_20_13, 'Ifr 20 13');\n\tresult.set(LessonSubjectCode.IFR_20_14, 'Ifr 20 14');\n\tresult.set(LessonSubjectCode.IFR_20_15, 'Ifr 20 15');\n\tresult.set(LessonSubjectCode.IFR_20_16, 'Ifr 20 16');\n\tresult.set(LessonSubjectCode.IFR_20_17, 'Ifr 20 17');\n\tresult.set(LessonSubjectCode.IFR_20_18, 'Ifr 20 18');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// MessageTypeCode represents the message type: ALERT | INFO | POLICY\nexport enum MessageTypeCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Company information [1] \n INFO = 1,\n\n // Memorandum [2] \n MEMO = 2,\n\n // Distribution and Reissue procedures [3] \n EXTERNAL_PROCEDURE = 3,\n\n // Internal procedures [4] \n INTERNAL_PROCEDURE = 4,\n\n // Incident_OR_Hazard Report_Low_Human_Mitigation required [5] \n INCIDENT = 5,\n\n // Policy and Procedural Changes [6] \n POLICY = 6,\n\n // Repair Stations Audit_IANR_OPS 344_2 [7] \n REPAIR = 7,\n\n}\n\n// Return list of MessageTypeCode values and their display names\nexport function GetMessageTypeCodes() : Tuple<MessageTypeCode, string>[] {\n\tlet result : Tuple<MessageTypeCode, string>[] = [];\n \n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.INFO, 'MessageTypeCode.INFO'))\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.MEMO, 'MessageTypeCode.MEMO'))\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.EXTERNAL_PROCEDURE, 'MessageTypeCode.EXTERNAL_PROCEDURE'))\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.INTERNAL_PROCEDURE, 'MessageTypeCode.INTERNAL_PROCEDURE'))\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.INCIDENT, 'MessageTypeCode.INCIDENT'))\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.POLICY, 'MessageTypeCode.POLICY'))\n\tresult.push(new Tuple<MessageTypeCode, string>(MessageTypeCode.REPAIR, 'MessageTypeCode.REPAIR'))\n\t\n return result;\n}\n\n// Return map of MessageTypeCode values and their display names\nexport function MapMessageTypeCodes() : Map<MessageTypeCode, string> {\n let result = new Map<MessageTypeCode, string>();\n result.set(MessageTypeCode.UNDEFINED, 'Undefined');\n\tresult.set(MessageTypeCode.INFO, 'Info');\n\tresult.set(MessageTypeCode.MEMO, 'Memo');\n\tresult.set(MessageTypeCode.EXTERNAL_PROCEDURE, 'External Procedure');\n\tresult.set(MessageTypeCode.INTERNAL_PROCEDURE, 'Internal Procedure');\n\tresult.set(MessageTypeCode.INCIDENT, 'Incident');\n\tresult.set(MessageTypeCode.POLICY, 'Policy');\n\tresult.set(MessageTypeCode.REPAIR, 'Repair');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// PriorityCode represents a priority: LOW | MEDIUM | HIGH\nexport enum PriorityCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // No priority [1] \n NONE = 1,\n\n // Low priority [2] \n LOW = 2,\n\n // Medium priority [3] \n MEDIUM = 3,\n\n // High priority [4] \n HIGH = 4,\n\n}\n\n// Return list of PriorityCode values and their display names\nexport function GetPriorityCodes() : Tuple<PriorityCode, string>[] {\n\tlet result : Tuple<PriorityCode, string>[] = [];\n \n\tresult.push(new Tuple<PriorityCode, string>(PriorityCode.NONE, 'PriorityCode.NONE'))\n\tresult.push(new Tuple<PriorityCode, string>(PriorityCode.LOW, 'PriorityCode.LOW'))\n\tresult.push(new Tuple<PriorityCode, string>(PriorityCode.MEDIUM, 'PriorityCode.MEDIUM'))\n\tresult.push(new Tuple<PriorityCode, string>(PriorityCode.HIGH, 'PriorityCode.HIGH'))\n\t\n return result;\n}\n\n// Return map of PriorityCode values and their display names\nexport function MapPriorityCodes() : Map<PriorityCode, string> {\n let result = new Map<PriorityCode, string>();\n result.set(PriorityCode.UNDEFINED, 'Undefined');\n\tresult.set(PriorityCode.NONE, 'None');\n\tresult.set(PriorityCode.LOW, 'Low');\n\tresult.set(PriorityCode.MEDIUM, 'Medium');\n\tresult.set(PriorityCode.HIGH, 'High');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// TicketStatusCode represents a flight ticket status: ...\nexport enum TicketStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Pending [1] \n PENDING = 1,\n\n // Sent to client [2] \n SENT = 2,\n\n}\n\n// Return list of TicketStatusCode values and their display names\nexport function GetTicketStatusCodes() : Tuple<TicketStatusCode, string>[] {\n\tlet result : Tuple<TicketStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<TicketStatusCode, string>(TicketStatusCode.PENDING, 'TicketStatusCode.PENDING'))\n\tresult.push(new Tuple<TicketStatusCode, string>(TicketStatusCode.SENT, 'TicketStatusCode.SENT'))\n\t\n return result;\n}\n\n// Return map of TicketStatusCode values and their display names\nexport function MapTicketStatusCodes() : Map<TicketStatusCode, string> {\n let result = new Map<TicketStatusCode, string>();\n result.set(TicketStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(TicketStatusCode.PENDING, 'Pending');\n\tresult.set(TicketStatusCode.SENT, 'Sent');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// UserStatusCode represents the user status: PENDING | ACTIVE | BLOCKED ...\nexport enum UserStatusCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // User is registered and pending verification [1] \n PENDING = 1,\n\n // Active user in the system [2] \n ACTIVE = 2,\n\n // Blocked user (only account system can unblock the user) [3] \n BLOCKED = 3,\n\n // Suspended user (about to be deleted) [4] \n SUSPENDED = 4,\n\n}\n\n// Return list of UserStatusCode values and their display names\nexport function GetUserStatusCodes() : Tuple<UserStatusCode, string>[] {\n\tlet result : Tuple<UserStatusCode, string>[] = [];\n \n\tresult.push(new Tuple<UserStatusCode, string>(UserStatusCode.PENDING, 'UserStatusCode.PENDING'))\n\tresult.push(new Tuple<UserStatusCode, string>(UserStatusCode.ACTIVE, 'UserStatusCode.ACTIVE'))\n\tresult.push(new Tuple<UserStatusCode, string>(UserStatusCode.BLOCKED, 'UserStatusCode.BLOCKED'))\n\tresult.push(new Tuple<UserStatusCode, string>(UserStatusCode.SUSPENDED, 'UserStatusCode.SUSPENDED'))\n\t\n return result;\n}\n\n// Return map of UserStatusCode values and their display names\nexport function MapUserStatusCodes() : Map<UserStatusCode, string> {\n let result = new Map<UserStatusCode, string>();\n result.set(UserStatusCode.UNDEFINED, 'Undefined');\n\tresult.set(UserStatusCode.PENDING, 'Pending');\n\tresult.set(UserStatusCode.ACTIVE, 'Active');\n\tresult.set(UserStatusCode.BLOCKED, 'Blocked');\n\tresult.set(UserStatusCode.SUSPENDED, 'Suspended');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// AirplaneValidationFlag represents combination of airplane validations\nexport enum AirplaneValidationFlag {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Valid airworthiness (isairplanevalidairworthiness_c) [1] \n AIRWORTHINESS = 1,\n\n // Valid airplane insurance (isairplanevalidinsurance_c) [2] \n INSURANCE = 2,\n\n // Valid flight manual (isairplanevalidflightmanual_c) [4] \n FLIGHT_MANUAL = 4,\n\n // Valid radio station license (isairplanevalidradiostation_c) [8] \n RADIO_STATION = 8,\n\n // Certification Of Registration (isairplanevalidcertofregis_c)[16] \n REGISTRATION_CERT = 16,\n\n // Valid first-aid kit (isairplanevalidfirstaidkit_c) [32] \n FIRST_AID_KIT = 32,\n\n // Valid fire extinguisher (isairplanevalidfireextinguis_c) [64] \n FIRE_EXTINGUISHER = 64,\n\n // Valid operation spec (isairplanevalidoperationspec_c) [128] \n OPERATION_SPEC = 128,\n\n // Valid 337 certificate for camera hole (isairplanevalid337cameraho_c) [256] \n VALID_337_CAMERA = 256,\n\n // Valid 337 certificate for exhaust (isairplanevalid337exhaust_c) [512] \n VALID_337_EXHAUST = 512,\n\n // Valid stc camera hole (isairplanevalidstccameraho_c) [1024] \n VALID_STC_CAMERA = 1024,\n\n // Valid stc certificate for exhaust (isairplanevalidstcexhaust_c) [2048] \n VALID_STC_EXHAUST = 2048,\n\n // Valid flight logbook (isairplanevalidflightlogboo_c) [4096] \n FLIGHT_LOGBOOK = 4096,\n\n // Valid air operator certificate AOC (isairplanevalidairoperatorce_c) [8192] \n AIR_OPERATOR = 8192,\n\n // Aircraft weight certificate (isairplanevalidaircraftweigh_c) [16384] \n AIRCRAFT_WEIGHT = 16384,\n\n // Valid propeller overhaul (isairplanevalidpropellerover_c) [32768] \n PROPELLER_OVERHAUL = 32768,\n\n // Single engine overhaul (isairplanevalidsingleengineo_c) [65536] \n SINGLE_ENGINE_OVERHAUL = 65536,\n\n // Left engine overhaul (isairplanevalidleftengineove_c) [131072] \n LEFT_ENGINE_OVERHAUL = 131072,\n\n // Right engine overhaul (isairplanevalidrightengineov_c) [262144] \n RIGHT_ENGINE_OVERHAUL = 262144,\n\n // Left engine propeller overhaul (isairplanevalidleftenginepro_c) [524288] \n LEFT_PROPELLER_OVERHAUL = 524288,\n\n // Right engine propeller overhaul (isairplanevalidrightenginepr_c) [1048576] \n RIGHT_PROPELLER_OVERHAUL = 1048576,\n\n // CVFR_ATS aeronautical maps (isairplanevalidcvfr_atsaeron_c) [2097152] \n CVFR_ATS = 2097152,\n\n // Weight and Balance Form (isairplanevalidweightandbaln_c) [4194304] \n WEIGHT_BALANCE_FORM = 4194304,\n\n // Airplane checklist (isairplanevalidairplanechec_c) [8388608] \n CHECK_LIST = 8388608,\n\n // Noise Certificate (isairplanevalidnoisecertifi_c) [16777216] \n NOISE_CERT = 16777216,\n\n}\n\n// Return list of AirplaneValidationFlag values and their display names\nexport function GetAirplaneValidationFlags() : Tuple<AirplaneValidationFlag, string>[] {\n\tlet result : Tuple<AirplaneValidationFlag, string>[] = [];\n \n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.AIRWORTHINESS, 'AirplaneValidationFlag.AIRWORTHINESS'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.INSURANCE, 'AirplaneValidationFlag.INSURANCE'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.FLIGHT_MANUAL, 'AirplaneValidationFlag.FLIGHT_MANUAL'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.RADIO_STATION, 'AirplaneValidationFlag.RADIO_STATION'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.REGISTRATION_CERT, 'AirplaneValidationFlag.REGISTRATION_CERT'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.FIRST_AID_KIT, 'AirplaneValidationFlag.FIRST_AID_KIT'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.FIRE_EXTINGUISHER, 'AirplaneValidationFlag.FIRE_EXTINGUISHER'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.OPERATION_SPEC, 'AirplaneValidationFlag.OPERATION_SPEC'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.VALID_337_CAMERA, 'AirplaneValidationFlag.VALID_337_CAMERA'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.VALID_337_EXHAUST, 'AirplaneValidationFlag.VALID_337_EXHAUST'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.VALID_STC_CAMERA, 'AirplaneValidationFlag.VALID_STC_CAMERA'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.VALID_STC_EXHAUST, 'AirplaneValidationFlag.VALID_STC_EXHAUST'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.FLIGHT_LOGBOOK, 'AirplaneValidationFlag.FLIGHT_LOGBOOK'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.AIR_OPERATOR, 'AirplaneValidationFlag.AIR_OPERATOR'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.AIRCRAFT_WEIGHT, 'AirplaneValidationFlag.AIRCRAFT_WEIGHT'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.PROPELLER_OVERHAUL, 'AirplaneValidationFlag.PROPELLER_OVERHAUL'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.SINGLE_ENGINE_OVERHAUL, 'AirplaneValidationFlag.SINGLE_ENGINE_OVERHAUL'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.LEFT_ENGINE_OVERHAUL, 'AirplaneValidationFlag.LEFT_ENGINE_OVERHAUL'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.RIGHT_ENGINE_OVERHAUL, 'AirplaneValidationFlag.RIGHT_ENGINE_OVERHAUL'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.LEFT_PROPELLER_OVERHAUL, 'AirplaneValidationFlag.LEFT_PROPELLER_OVERHAUL'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.RIGHT_PROPELLER_OVERHAUL, 'AirplaneValidationFlag.RIGHT_PROPELLER_OVERHAUL'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.CVFR_ATS, 'AirplaneValidationFlag.CVFR_ATS'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.WEIGHT_BALANCE_FORM, 'AirplaneValidationFlag.WEIGHT_BALANCE_FORM'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.CHECK_LIST, 'AirplaneValidationFlag.CHECK_LIST'))\n\tresult.push(new Tuple<AirplaneValidationFlag, string>(AirplaneValidationFlag.NOISE_CERT, 'AirplaneValidationFlag.NOISE_CERT'))\n\t\n return result;\n}\n\n// Return map of AirplaneValidationFlag values and their display names\nexport function MapAirplaneValidationFlags() : Map<AirplaneValidationFlag, string> {\n let result = new Map<AirplaneValidationFlag, string>();\n result.set(AirplaneValidationFlag.UNDEFINED, 'Undefined');\n\tresult.set(AirplaneValidationFlag.AIRWORTHINESS, 'Airworthiness');\n\tresult.set(AirplaneValidationFlag.INSURANCE, 'Insurance');\n\tresult.set(AirplaneValidationFlag.FLIGHT_MANUAL, 'Flight Manual');\n\tresult.set(AirplaneValidationFlag.RADIO_STATION, 'Radio Station');\n\tresult.set(AirplaneValidationFlag.REGISTRATION_CERT, 'Registration Cert');\n\tresult.set(AirplaneValidationFlag.FIRST_AID_KIT, 'First Aid Kit');\n\tresult.set(AirplaneValidationFlag.FIRE_EXTINGUISHER, 'Fire Extinguisher');\n\tresult.set(AirplaneValidationFlag.OPERATION_SPEC, 'Operation Spec');\n\tresult.set(AirplaneValidationFlag.VALID_337_CAMERA, 'Valid 337 Camera');\n\tresult.set(AirplaneValidationFlag.VALID_337_EXHAUST, 'Valid 337 Exhaust');\n\tresult.set(AirplaneValidationFlag.VALID_STC_CAMERA, 'Valid Stc Camera');\n\tresult.set(AirplaneValidationFlag.VALID_STC_EXHAUST, 'Valid Stc Exhaust');\n\tresult.set(AirplaneValidationFlag.FLIGHT_LOGBOOK, 'Flight Logbook');\n\tresult.set(AirplaneValidationFlag.AIR_OPERATOR, 'Air Operator');\n\tresult.set(AirplaneValidationFlag.AIRCRAFT_WEIGHT, 'Aircraft Weight');\n\tresult.set(AirplaneValidationFlag.PROPELLER_OVERHAUL, 'Propeller Overhaul');\n\tresult.set(AirplaneValidationFlag.SINGLE_ENGINE_OVERHAUL, 'Single Engine Overhaul');\n\tresult.set(AirplaneValidationFlag.LEFT_ENGINE_OVERHAUL, 'Left Engine Overhaul');\n\tresult.set(AirplaneValidationFlag.RIGHT_ENGINE_OVERHAUL, 'Right Engine Overhaul');\n\tresult.set(AirplaneValidationFlag.LEFT_PROPELLER_OVERHAUL, 'Left Propeller Overhaul');\n\tresult.set(AirplaneValidationFlag.RIGHT_PROPELLER_OVERHAUL, 'Right Propeller Overhaul');\n\tresult.set(AirplaneValidationFlag.CVFR_ATS, 'Cvfr Ats');\n\tresult.set(AirplaneValidationFlag.WEIGHT_BALANCE_FORM, 'Weight Balance Form');\n\tresult.set(AirplaneValidationFlag.CHECK_LIST, 'Check List');\n\tresult.set(AirplaneValidationFlag.NOISE_CERT, 'Noise Cert');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// CurrencyCode represents the currency: ILS | USD | EUR ...\nexport enum CurrencyCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // ILS [1] \n ILS = 1,\n\n // USD [2] \n USD = 2,\n\n // EURO [3] \n EUR = 3,\n\n}\n\n// Return list of CurrencyCode values and their display names\nexport function GetCurrencyCodes() : Tuple<CurrencyCode, string>[] {\n\tlet result : Tuple<CurrencyCode, string>[] = [];\n \n\tresult.push(new Tuple<CurrencyCode, string>(CurrencyCode.ILS, 'CurrencyCode.ILS'))\n\tresult.push(new Tuple<CurrencyCode, string>(CurrencyCode.USD, 'CurrencyCode.USD'))\n\tresult.push(new Tuple<CurrencyCode, string>(CurrencyCode.EUR, 'CurrencyCode.EUR'))\n\t\n return result;\n}\n\n// Return map of CurrencyCode values and their display names\nexport function MapCurrencyCodes() : Map<CurrencyCode, string> {\n let result = new Map<CurrencyCode, string>();\n result.set(CurrencyCode.UNDEFINED, 'Undefined');\n\tresult.set(CurrencyCode.ILS, 'Ils');\n\tresult.set(CurrencyCode.USD, 'Usd');\n\tresult.set(CurrencyCode.EUR, 'Eur');\n\t\n return result;\n}\n","\nimport { Tuple } from '.';\n\n\n// FlightStateCode represents a flight state which can't be modified manually: PENDING | ACTIVE | COMPLETED ...\nexport enum FlightStateCode {\n\n // Undefined [0] \n UNDEFINED = 0,\n\n // Pending (Not started) [1] \n PENDING = 1,\n\n // Active (on flight) [2] \n ACTIVE = 2,\n\n // Completed (Done) [3] \n COMPLETED = 3,\n\n // Cancelled [4] \n CANCELLED = 4,\n\n}\n\n// Return list of FlightStateCode values and their display names\nexport function GetFlightStateCodes() : Tuple<FlightStateCode, string>[] {\n\tlet result : Tuple<FlightStateCode, string>[] = [];\n \n\tresult.push(new Tuple<FlightStateCode, string>(FlightStateCode.PENDING, 'FlightStateCode.PENDING'))\n\tresult.push(new Tuple<FlightStateCode, string>(FlightStateCode.ACTIVE, 'FlightStateCode.ACTIVE'))\n\tresult.push(new Tuple<FlightStateCode, string>(FlightStateCode.COMPLETED, 'FlightStateCode.COMPLETED'))\n\tresult.push(new Tuple<FlightStateCode, string>(FlightStateCode.CANCELLED, 'FlightStateCode.CANCELLED'))\n\t\n return result;\n}\n\n// Return map of FlightStateCode values and their display names\nexport function MapFlightStateCodes() : Map<FlightStateCode, string> {\n let result = new Map<FlightStateCode, string>();\n result.set(FlightStateCode.UNDEFINED, 'Undefined');\n\tresult.set(FlightStateCode.PENDING, 'Pending');\n\tresult.set(FlightStateCode.ACTIVE, 'Active');\n\tresult.set(FlightStateCode.COMPLETED, 'Completed');\n\tresult.set(FlightStateCode.CANCELLED, 'Cancelled');\n\t\n return result;\n}\n","\n\n// LocalTime represents the time (year, month, day, hour, minute, second) as number in the following format: YYYYMMDDhhmmss.\n// It is useful for storing time in a compact, human-readable integer format that preserves sorting order.\nexport class LocalTime {\n\n constructor() { \n }\n\n}\n\n\n","\n\n// MetarReport encapsulates METAR report data\nexport class MetarReport {\n\n\t// Report ID \n\tpublic id: string;\n\n\t// ICAO Name of the airport / area \n\tpublic station: string;\n\n\t// Valid from date \n\tpublic validFrom: string;\n\n\t// Raw METAR content \n\tpublic content: string;\n\n\t// Human-readable description of the METAR \n\tpublic description: string;\n\n constructor(id?: string, station?: string, validFrom?: string, content?: string, description?: string) { \n if (id !== undefined) { this.id = id; }\n if (station !== undefined) { this.station = station; }\n if (validFrom !== undefined) { this.validFrom = validFrom; }\n if (content !== undefined) { this.content = content; }\n if (description !== undefined) { this.description = description; }\n }\n\n}\n\n\n","\n\n// BaseEntityEx is an extended base Entity with custom attributes.\n// It includes all fields from BaseEntity and adds support for a status Flag and a generic properties map (Props).\n// This is useful for entities that need soft-delete capabilities (via Flag) or extensible fields (via Props).\nexport class BaseEntityEx {\n\n\t// Id is the unique object identifier \n\tpublic id: string;\n\n\t// CreatedOn is the timestamp when the object was created [Epoch milliseconds Timestamp] \n\tpublic createdOn: number;\n\n\t// UpdatedOn is the timestamp when the object was last updated [Epoch milliseconds Timestamp] \n\tpublic updatedOn: number;\n\n\t// Flag represents the entity status (e.g. -1 = deleted, 0 = active) \n\tpublic flag: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(id?: string, createdOn?: number, updatedOn?: number, flag?: number, props?: Record<string,any>) { \n if (id !== undefined) { this.id = id; }\n if (createdOn !== undefined) { this.createdOn = createdOn; }\n if (updatedOn !== undefined) { this.updatedOn = updatedOn; }\n if (flag !== undefined) { this.flag = flag; }\n if (props !== undefined) { this.props = props; }\n }\n\n\n}\n\n\n","\n\n// ColumnDef model represents table column definition\nexport class ColumnDef {\n\n\t// Column field icon \n\tpublic icon: string;\n\n\t// Column field name \n\tpublic name: string;\n\n\t// Column field type \n\tpublic type: string;\n\n\t// Display format hint \n\tpublic format: string;\n\n\t// Sort order 0: no sort, 1: sort asc, -1 sort desc \n\tpublic sort: number;\n\n\t// Filter operand \n\tpublic filterOp: number;\n\n\t// Filter by value \n\tpublic filter: any;\n\n constructor(icon?: string, name?: string, type?: string, format?: string, sort?: number, filterOp?: number, filter?: any) { \n if (icon !== undefined) { this.icon = icon; }\n if (name !== undefined) { this.name = name; }\n if (type !== undefined) { this.type = type; }\n if (format !== undefined) { this.format = format; }\n if (sort !== undefined) { this.sort = sort; }\n if (filterOp !== undefined) { this.filterOp = filterOp; }\n if (filter !== undefined) { this.filter = filter; }\n }\n\n}\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// StorageItem data structure represent a file or folder in a storage system\nexport class StorageItem extends BaseEntityEx {\n\n\t// Storage item name \n\tpublic name: string;\n\n\t// Storage item path \n\tpublic path: string;\n\n\t// Storage item icon \n\tpublic icon: string;\n\n\t// Storage item \n\tpublic size: number;\n\n\t// MIME Type \n\tpublic mimeType: string;\n\n\t// Is folder \n\tpublic isFolder: boolean;\n\n}\n\nexport function GetStorageItemColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"path\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"icon\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"size\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mimeType\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isFolder\", \"boolean\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// SpecialRisks group of special / other risk values\nexport class SpecialRisks {\n\n\t// Special Flight Permit operation (ferry permit) \n\tpublic specialFlightPermit: number;\n\n\t// MEL / CDL Items (items related to safety of flight) \n\tpublic specialMelCdlItems: number;\n\n\t// Special flight limitations based on AFM equipment limitations \n\tpublic specialFlightLimitAfm: number;\n\n constructor(specialFlightPermit?: number, specialMelCdlItems?: number, specialFlightLimitAfm?: number) { \n if (specialFlightPermit !== undefined) { this.specialFlightPermit = specialFlightPermit; }\n if (specialMelCdlItems !== undefined) { this.specialMelCdlItems = specialMelCdlItems; }\n if (specialFlightLimitAfm !== undefined) { this.specialFlightLimitAfm = specialFlightLimitAfm; }\n }\n\n}\n\n\n","\n\n// JsonDoc is a Json document to store in Document object store (Postgres, ElasticSearch, Couchbase ...)\n// It serves as a generic container for JSON data with a unique identifier.\nexport class JsonDoc {\n\n\t// Id is the unique identifier of the document \n\tpublic id: string;\n\n\t// Data is the raw JSON string content \n\tpublic data: string;\n\n constructor(id?: string, data?: string) { \n if (id !== undefined) { this.id = id; }\n if (data !== undefined) { this.data = data; }\n }\n\n}\n\n\n","\nimport { FlightTypeCode } from './FlightTypeCode';\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { FlightPurposeCode } from './FlightPurposeCode';\n\n// PreFlightInfo data structure to be used by the pre-flight form\nexport class PreFlightInfo {\n\n\t// Flight number as string \n\tpublic flightId: string;\n\n\t// Flight number \n\tpublic flightNumber: number;\n\n\t// Airplane Name \n\tpublic airplane: string;\n\n\t// Total hours left to inspection \n\tpublic hoursToInspection: number;\n\n\t// Takeoff Planned time \n\tpublic takeoffPlannedTime: number;\n\n\t// Takeoff actual time \n\tpublic takeoffActualTime: number;\n\n\t// Takeoff field \n\tpublic takeoffField: string;\n\n\t// Landing field \n\tpublic landingField: string;\n\n\t// Purpose of the flight \n\tpublic purpose: FlightPurposeCode;\n\n\t// In case of OTHER, Purpose of the flight \n\tpublic purposeOt: string;\n\n\t// Flight type: PRIVATE | COMMERCIAL ... \n\tpublic type: FlightTypeCode;\n\n\t// Flight Instruction Plan of the student \n\tpublic instructionPlan: FlightCategoryCode;\n\n\t// Flight destination \n\tpublic destination: string;\n\n\t// Secondary call sign \n\tpublic secondaryCallSign: string;\n\n\t// Captain / Instructor ID \n\tpublic captainId: string;\n\n\t// First Officer ID \n\tpublic firstOfficerId: string;\n\n\t// Captain / Instructor name \n\tpublic captainName: string;\n\n\t// First Officer name \n\tpublic firstOfficerName: string;\n\n\t// Estimated fuel on board (GALLONS) \n\tpublic estimatedFuelOnBoard: number;\n\n\t// Estimated time on the air (minutes) \n\tpublic estimatedEndurance: number;\n\n\t// Actual fuel on board (GALLONS) \n\tpublic actualFuelOnBoard: number;\n\n\t// Actual oil level (QUARTZ) \n\tpublic actualOilOnBoard: number;\n\n\t// Passengers names \n\tpublic passengers: string[];\n\n\t// Crew members (name:role) \n\tpublic crew: string[];\n\n\t// Weight and Balance configuration \n\tpublic wbConfig: string;\n\n\t// Weight and Balance manual specification \n\tpublic wbManual: string;\n\n\t// Lesson topic ID by the syllabus \n\tpublic lessonTopicId: string;\n\n\t// First Officer / Student flight counter \n\tpublic lessonFlightCounter: number;\n\n\t// Pre Flight notes \n\tpublic preFlightNotes: string;\n\n\t// Flight operation notes \n\tpublic operationNotes: string;\n\n\t// This form was already reported \n\tpublic reportedBy: string;\n\n constructor(flightId?: string, flightNumber?: number, airplane?: string, hoursToInspection?: number, takeoffPlannedTime?: number, takeoffActualTime?: number, takeoffField?: string, landingField?: string, purpose?: FlightPurposeCode, purposeOt?: string, type?: FlightTypeCode, instructionPlan?: FlightCategoryCode, destination?: string, secondaryCallSign?: string, captainId?: string, firstOfficerId?: string, captainName?: string, firstOfficerName?: string, estimatedFuelOnBoard?: number, estimatedEndurance?: number, actualFuelOnBoard?: number, actualOilOnBoard?: number, passengers?: string[], crew?: string[], wBConfig?: string, wBManual?: string, lessonTopicId?: string, lessonFlightCounter?: number, preFlightNotes?: string, operationNotes?: string, reportedBy?: string) { \n if (flightId !== undefined) { this.flightId = flightId; }\n if (flightNumber !== undefined) { this.flightNumber = flightNumber; }\n if (airplane !== undefined) { this.airplane = airplane; }\n if (hoursToInspection !== undefined) { this.hoursToInspection = hoursToInspection; }\n if (takeoffPlannedTime !== undefined) { this.takeoffPlannedTime = takeoffPlannedTime; }\n if (takeoffActualTime !== undefined) { this.takeoffActualTime = takeoffActualTime; }\n if (takeoffField !== undefined) { this.takeoffField = takeoffField; }\n if (landingField !== undefined) { this.landingField = landingField; }\n if (purpose !== undefined) { this.purpose = purpose; }\n if (purposeOt !== undefined) { this.purposeOt = purposeOt; }\n if (type !== undefined) { this.type = type; }\n if (instructionPlan !== undefined) { this.instructionPlan = instructionPlan; }\n if (destination !== undefined) { this.destination = destination; }\n if (secondaryCallSign !== undefined) { this.secondaryCallSign = secondaryCallSign; }\n if (captainId !== undefined) { this.captainId = captainId; }\n if (firstOfficerId !== undefined) { this.firstOfficerId = firstOfficerId; }\n if (captainName !== undefined) { this.captainName = captainName; }\n if (firstOfficerName !== undefined) { this.firstOfficerName = firstOfficerName; }\n if (estimatedFuelOnBoard !== undefined) { this.estimatedFuelOnBoard = estimatedFuelOnBoard; }\n if (estimatedEndurance !== undefined) { this.estimatedEndurance = estimatedEndurance; }\n if (actualFuelOnBoard !== undefined) { this.actualFuelOnBoard = actualFuelOnBoard; }\n if (actualOilOnBoard !== undefined) { this.actualOilOnBoard = actualOilOnBoard; }\n if (passengers !== undefined) { this.passengers = passengers; }\n if (crew !== undefined) { this.crew = crew; }\n if (wBConfig !== undefined) { this.wbConfig = wBConfig; }\n if (wBManual !== undefined) { this.wbManual = wBManual; }\n if (lessonTopicId !== undefined) { this.lessonTopicId = lessonTopicId; }\n if (lessonFlightCounter !== undefined) { this.lessonFlightCounter = lessonFlightCounter; }\n if (preFlightNotes !== undefined) { this.preFlightNotes = preFlightNotes; }\n if (operationNotes !== undefined) { this.operationNotes = operationNotes; }\n if (reportedBy !== undefined) { this.reportedBy = reportedBy; }\n }\n\n}\n\n\n","\n\n// Engine model represents engine metrics\nexport class Engine {\n\n\t// Engine total time [hours] \n\tpublic totalTime: number;\n\n\t// Overhaul time frequency [hours] \n\tpublic overhaulFrequency: number;\n\n\t// Overhaul next due [hours] \n\tpublic overhaulNextDue: number;\n\n\t// Time remaining till the next Overhaul [hours] \n\tpublic hoursToOverhaul: number;\n\n\t// Last airframe Overhaul [hours] \n\tpublic lastAirframeOverhaul: number;\n\n constructor(totalTime?: number, overhaulFrequency?: number, overhaulNextDue?: number, hoursToOverhaul?: number, lastAirframeOverhaul?: number) { \n if (totalTime !== undefined) { this.totalTime = totalTime; }\n if (overhaulFrequency !== undefined) { this.overhaulFrequency = overhaulFrequency; }\n if (overhaulNextDue !== undefined) { this.overhaulNextDue = overhaulNextDue; }\n if (hoursToOverhaul !== undefined) { this.hoursToOverhaul = hoursToOverhaul; }\n if (lastAirframeOverhaul !== undefined) { this.lastAirframeOverhaul = lastAirframeOverhaul; }\n }\n\n}\n\n\n","\n\n// Magneto model represents magneto metrics\nexport class Magneto {\n\n\t// Inspection frequency [hours] \n\tpublic inspectionFrequency: number;\n\n\t// Last Inspection [hours] \n\tpublic lastInspectionHours: number;\n\n\t// Next Inspection [hours] \n\tpublic nextInspectionHours: number;\n\n\t// Remaining hours to the next inspection \n\tpublic remainingHours: number;\n\n constructor(inspectionFrequency?: number, lastInspectionHours?: number, nextInspectionHours?: number, remainingHours?: number) { \n if (inspectionFrequency !== undefined) { this.inspectionFrequency = inspectionFrequency; }\n if (lastInspectionHours !== undefined) { this.lastInspectionHours = lastInspectionHours; }\n if (nextInspectionHours !== undefined) { this.nextInspectionHours = nextInspectionHours; }\n if (remainingHours !== undefined) { this.remainingHours = remainingHours; }\n }\n\n}\n\n\n","\nimport { BookingStatusCode } from './BookingStatusCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { BookingTypeFlag } from './BookingTypeFlag';\nimport { ColumnDef } from './ColumnDef';\n\n// Booking entity is a flight booking request to secure an airplane for specific time slot\nexport class Booking extends BaseEntityEx {\n\n\t// Booking name (datetime - accountName) \n\tpublic name: string;\n\n\t// Account ID \n\tpublic accountId: string;\n\n\t// Contact ID - it would be the PIC unless it is flight lesson which in this case it would be SIC \n\tpublic contactId: string;\n\n\t// Captain (PIC) - for flight lesson, it should be the instructor \n\tpublic captain: string;\n\n\t// First Officer (SIC) - for flight lesson, it should be the instructor \n\tpublic firstOfficer: string;\n\n\t// The user who requested the booking \n\tpublic requestedBy: string;\n\n\t// Additional notes provided by the user \n\tpublic requestedNotes: string;\n\n\t// Type of booking - to be replaced by Flight purpose \n\tpublic type: BookingTypeFlag;\n\n\t// Flag to indicate if this booking includes pattern slot (only in case of flight lesson) \n\tpublic isPatterns: boolean;\n\n\t// Airplane ID (when the booking is approved) \n\tpublic airplaneId: string;\n\n\t// When to ask for the airplane [Epoch milliseconds] \n\tpublic placementOn: number;\n\n\t// When to return the airplane [Epoch milliseconds] \n\tpublic placementTo: number;\n\n\t// Status of booking: PENDING | ASSIGNED | CANCELLED | REJECTED ... \n\tpublic status: BookingStatusCode;\n\n\t// Booking comments provided by the staff \n\tpublic comments: string;\n\n\t// Flight destination \n\tpublic destination: string;\n\n\t// Flight ID related to this booking request \n\tpublic flightId: string;\n\n\t// Slot ID related to this booking request (for patterns request only) \n\tpublic slotId: string;\n\n\t// Lead ID related to this booking request (for introductory flights only) \n\tpublic leadId: string;\n\n}\n\nexport function GetBookingColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captain\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficer\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"requestedBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"requestedNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"BookingTypeFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isPatterns\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"placementOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"placementTo\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"BookingStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"comments\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"slotId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"leadId\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { TransactionTypeCode } from './TransactionTypeCode';\nimport { CurrencyCode } from './CurrencyCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Credit entity is an accounting action\nexport class Credit extends BaseEntityEx {\n\n\t// Credit name \n\tpublic name: string;\n\n\t// Credit description \n\tpublic description: string;\n\n\t// Credit transaction type: FLIGHT | BONUS | PURCHASE | REFUND ... \n\tpublic type: TransactionTypeCode;\n\n\t// Billing units - Hobbs \n\tpublic units: number;\n\n\t// Total Hobbs (Positive: purchased, Negative: Consumed) \n\tpublic hobbs: number;\n\n\t// Price per Unit - \n\tpublic unitPrice: number;\n\n\t// Total before VAT \n\tpublic beforeVat: number;\n\n\t// Amount \n\tpublic amount: number;\n\n\t// Base rate factor (ignore if 0) \n\tpublic baseRate: number;\n\n\t// Permanent discount at the time of the credit (percentage) \n\tpublic discount: number;\n\n\t// Currency \n\tpublic currency: CurrencyCode;\n\n\t// Linked to account \n\tpublic accountId: string;\n\n\t// Linked to flight \n\tpublic flightId: string;\n\n\t// User ID who updated this entry (can be \"system\") \n\tpublic updatedBy: string;\n\n\t// Time of the transaction [Epoch milliseconds Timestamp] \n\tpublic transactionOn: number;\n\n\t// Reference of the transaction \n\tpublic reference: string;\n\n\t// Linked document ID \n\tpublic documentId: string;\n\n}\n\nexport function GetCreditColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"TransactionTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"units\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"hobbs\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"unitPrice\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"beforeVat\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"amount\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"baseRate\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"discount\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"currency\", \"CurrencyCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"updatedBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"transactionOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"reference\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"documentId\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { Tuple } from './Tuple';\n\n// Distribution model represents a grouped counts of elements of generic type int (usually enum)\nexport class Distribution<K,V> {\n\n\t// Distribution name \n\tpublic name: string;\n\n\t// Total count (of all elements) \n\tpublic total: V;\n\n\t// Map of int element to its count \n\tpublic values: Tuple<K, V>[];\n\n constructor(name?: string, total?: V, values?: Tuple<K, V>[]) { \n if (name !== undefined) { this.name = name; }\n if (total !== undefined) { this.total = total; }\n if (values !== undefined) { this.values = values; }\n }\n\n}\n\n\n","\nimport { BillingRecord } from './BillingRecord';\n\n// Billing includes flight billing information\nexport class Billing {\n\n\t// Billing invoice records \n\tpublic invoiceRecords: BillingRecord[];\n\n\t// Billing invoice issue date [epoch time milliseconds] \n\tpublic invoiceDate: number;\n\n\t// Discount percentage (0 .. 100) - percentage_discount \n\tpublic discountPercentage: number;\n\n\t// Total before VAT - total_charge_c \n\tpublic totalBeforeVat: number;\n\n\t// Total including VAT - total_charge_inc_vat_bef_dis_c \n\tpublic totalAfterVat: number;\n\n\t// Total charge including VAT after discount - total_charge_includes_vat_c \n\tpublic totalAfterDiscount: number;\n\n\t// Pilot payment - pilot_requested_payment_c \n\tpublic pilotPayment: number;\n\n\t// Pilot payment status - pilot_payment_status_c \n\tpublic pilotPaymentStatus: string;\n\n\t// Pilot payment - lbl_first_officer_payment_c \n\tpublic firstOfficerPayment: number;\n\n\t// Pilot payment status - lbl_firts_officer_payment_st_c \n\tpublic firstOfficerPaymentStatus: string;\n\n constructor(invoiceRecords?: BillingRecord[], invoiceDate?: number, discountPercentage?: number, totalBeforeVAT?: number, totalAfterVAT?: number, totalAfterDiscount?: number, pilotPayment?: number, pilotPaymentStatus?: string, firstOfficerPayment?: number, firstOfficerPaymentStatus?: string) { \n if (invoiceRecords !== undefined) { this.invoiceRecords = invoiceRecords; }\n if (invoiceDate !== undefined) { this.invoiceDate = invoiceDate; }\n if (discountPercentage !== undefined) { this.discountPercentage = discountPercentage; }\n if (totalBeforeVAT !== undefined) { this.totalBeforeVat = totalBeforeVAT; }\n if (totalAfterVAT !== undefined) { this.totalAfterVat = totalAfterVAT; }\n if (totalAfterDiscount !== undefined) { this.totalAfterDiscount = totalAfterDiscount; }\n if (pilotPayment !== undefined) { this.pilotPayment = pilotPayment; }\n if (pilotPaymentStatus !== undefined) { this.pilotPaymentStatus = pilotPaymentStatus; }\n if (firstOfficerPayment !== undefined) { this.firstOfficerPayment = firstOfficerPayment; }\n if (firstOfficerPaymentStatus !== undefined) { this.firstOfficerPaymentStatus = firstOfficerPaymentStatus; }\n }\n\n}\n\n\n","\nimport { BookingStatusCode } from './BookingStatusCode';\nimport { TimeFrame } from './TimeFrame';\n\n// BookingsFilter list of fields to filter bookings\nexport class BookingsFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by time frame \n\tpublic period: TimeFrame;\n\n\t// Filter by Account ID \n\tpublic accountId: string;\n\n\t// Filter by Contact ID \n\tpublic contactId: string;\n\n\t// Filter by Airplane ID (when the booking is approved) \n\tpublic airplaneId: string;\n\n\t// Filter by Status(es) of booking \n\tpublic status: BookingStatusCode[];\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, period?: TimeFrame, accountId?: string, contactId?: string, airplaneId?: string, status?: BookingStatusCode[], sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (period !== undefined) { this.period = period; }\n if (accountId !== undefined) { this.accountId = accountId; }\n if (contactId !== undefined) { this.contactId = contactId; }\n if (airplaneId !== undefined) { this.airplaneId = airplaneId; }\n if (status !== undefined) { this.status = status; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\n\n// TimeDataPoint represents a generic data point associated with a timestamp.\nexport class TimeDataPoint<V> {\n\n\t// Timestamp of the data point \n\tpublic timestamp: number;\n\n\t// Value of the data point \n\tpublic value: V;\n\n constructor(timestamp?: number, value?: V) { \n if (timestamp !== undefined) { this.timestamp = timestamp; }\n if (value !== undefined) { this.value = value; }\n }\n\n}\n\n\n","\n\n// Entities is a generic wrapper to express a list of primitive or complex types as an Entity.\n// It allows a collection of items to be treated as a single Entity unit.\nexport class Entities<T> {\n\n\t// Values is the list of wrapped entities or values \n\tpublic values: T[];\n\n constructor(values?: T[]) { \n if (values !== undefined) { this.values = values; }\n }\n\n}\n\n\n","\nimport { Location } from './Location';\n\n// ADSBState model represents the ADSB real time state of an airplane\nexport class ADSBState {\n\n\t// Unique ICAO 24-bit address of the transponder in hex string representation \n\tpublic icaoAddr: string;\n\n\t// Callsign of the vehicle (8 chars). Can be null if no callsign has been received \n\tpublic callsign: string;\n\n\t// Country name inferred from the ICAO 24-bit address \n\tpublic origin: string;\n\n\t// Unix timestamp (seconds) for the last position update. Can be null if no position report was received by OpenSky within the past 15s \n\tpublic timePosition: number;\n\n\t// Unix timestamp (seconds) for the last update in general. This field is updated for any new, valid message received from the transponder \n\tpublic lastContact: number;\n\n\t// WGS-84 location and Geometric altitude \n\tpublic location: Location;\n\n\t// Boolean value which indicates if the position was retrieved from a surface position report \n\tpublic on_ground: boolean;\n\n\t// Velocity over ground in m/s. Can be null. \n\tpublic velocity: number;\n\n\t// True track in decimal degrees clockwise from north (north=0°). Can be null. \n\tpublic track: number;\n\n\t// Vertical rate in m/s. A positive value indicates that the airplane is climbing, a negative value indicates that it descends. Can be null \n\tpublic vertical: number;\n\n\t// IDs of the receivers which contributed to this state vector. Is null if no filtering for sensor was used in the request \n\tpublic sensors: number[];\n\n\t// Barometric altitude in meters. Can be null. \n\tpublic barometer: number;\n\n\t// The transponder code aka Squawk \n\tpublic squawk: string;\n\n\t// Whether flight status indicates special purpose indicator \n\tpublic spi: boolean;\n\n constructor(icaoAddr?: string, callsign?: string, origin?: string, timePosition?: number, lastContact?: number, location?: Location, onGround?: boolean, velocity?: number, track?: number, vertical?: number, sensors?: number[], barometer?: number, squawk?: string, sPI?: boolean) { \n if (icaoAddr !== undefined) { this.icaoAddr = icaoAddr; }\n if (callsign !== undefined) { this.callsign = callsign; }\n if (origin !== undefined) { this.origin = origin; }\n if (timePosition !== undefined) { this.timePosition = timePosition; }\n if (lastContact !== undefined) { this.lastContact = lastContact; }\n if (location !== undefined) { this.location = location; }\n if (onGround !== undefined) { this.on_ground = onGround; }\n if (velocity !== undefined) { this.velocity = velocity; }\n if (track !== undefined) { this.track = track; }\n if (vertical !== undefined) { this.vertical = vertical; }\n if (sensors !== undefined) { this.sensors = sensors; }\n if (barometer !== undefined) { this.barometer = barometer; }\n if (squawk !== undefined) { this.squawk = squawk; }\n if (sPI !== undefined) { this.spi = sPI; }\n }\n\n}\n\n\n","\nimport { ModuleCode } from './ModuleCode';\nimport { PermissionFlag } from './PermissionFlag';\n\n// Permission model used to map list of permissions to a module\nexport class Permission {\n\n\t// Module code \n\tpublic module: ModuleCode;\n\n\t// Permissions (flag) \n\tpublic permissions: PermissionFlag;\n\n constructor(module?: ModuleCode, permissions?: PermissionFlag) { \n if (module !== undefined) { this.module = module; }\n if (permissions !== undefined) { this.permissions = permissions; }\n }\n\n}\n\n\n","\n\n// BillingRecord is a single record in the total billing of the flight\nexport class BillingRecord {\n\n\t// Billing record key - for \n\tpublic key: number;\n\n\t// Billing units - quantity_c / quantity_2_c \n\tpublic units: number;\n\n\t// Price per Unit - price_c / price_2_c \n\tpublic unitPrice: number;\n\n\t// Base factor (0 means no factor) \n\tpublic baseRate: number;\n\n\t// Description for Invoice - invoice_description_c / invoice_description_2_c \n\tpublic description: string;\n\n\t// Flag to indicate if VAT included (false) or Exempt (true) \n\tpublic exempt: boolean;\n\n constructor(key?: number, units?: number, unitPrice?: number, baseRate?: number, description?: string, exempt?: boolean) { \n if (key !== undefined) { this.key = key; }\n if (units !== undefined) { this.units = units; }\n if (unitPrice !== undefined) { this.unitPrice = unitPrice; }\n if (baseRate !== undefined) { this.baseRate = baseRate; }\n if (description !== undefined) { this.description = description; }\n if (exempt !== undefined) { this.exempt = exempt; }\n }\n\n}\n\n\n","\n\n// WeatherRisks group of weather risk values\nexport class WeatherRisks {\n\n\t// No weather reporting at destination \n\tpublic noWeatherReporting: number;\n\n\t// Thunderstorms at departure and/or destination \n\tpublic thunderstormsExpected: number;\n\n\t// Heavy rain at departure and/or destination \n\tpublic heavyRainExpected: number;\n\n\t// Frozen precipitation at departure and/or destination \n\tpublic frozenPrecipitation: number;\n\n\t// Ceiling / visibility at destination less than 500 ft. / 2 nm \n\tpublic ceilingVisibilityLess500Fts: number;\n\n\t// Cold weather operation \n\tpublic coldWeatherOperation: number;\n\n\t// Icing (moderate-severe) \n\tpublic moderateSeverIcing: number;\n\n\t// Surface winds greater than 30 knots \n\tpublic surfaceWindsOver30Knts: number;\n\n\t// Crosswinds greater than 15 knots \n\tpublic crosswindsOver15Knots: number;\n\n\t// Severe turbulence expected \n\tpublic severeTurbulenceExpected: number;\n\n constructor(noWeatherReporting?: number, thunderstormsExpected?: number, heavyRainExpected?: number, frozenPrecipitation?: number, ceilingVisibilityLess500Fts?: number, coldWeatherOperation?: number, moderateSeverIcing?: number, surfaceWindsOver30Knots?: number, crosswindsOver15Knots?: number, severeTurbulenceExpected?: number) { \n if (noWeatherReporting !== undefined) { this.noWeatherReporting = noWeatherReporting; }\n if (thunderstormsExpected !== undefined) { this.thunderstormsExpected = thunderstormsExpected; }\n if (heavyRainExpected !== undefined) { this.heavyRainExpected = heavyRainExpected; }\n if (frozenPrecipitation !== undefined) { this.frozenPrecipitation = frozenPrecipitation; }\n if (ceilingVisibilityLess500Fts !== undefined) { this.ceilingVisibilityLess500Fts = ceilingVisibilityLess500Fts; }\n if (coldWeatherOperation !== undefined) { this.coldWeatherOperation = coldWeatherOperation; }\n if (moderateSeverIcing !== undefined) { this.moderateSeverIcing = moderateSeverIcing; }\n if (surfaceWindsOver30Knots !== undefined) { this.surfaceWindsOver30Knts = surfaceWindsOver30Knots; }\n if (crosswindsOver15Knots !== undefined) { this.crosswindsOver15Knots = crosswindsOver15Knots; }\n if (severeTurbulenceExpected !== undefined) { this.severeTurbulenceExpected = severeTurbulenceExpected; }\n }\n\n}\n\n\n","\n\n// Mitigation risks mitigation strategy\nexport class Mitigation {\n\n\t// Operations Manager evaluation \n\tpublic operationManagerEval: boolean;\n\n\t// Document mitigation \n\tpublic documentMitigation: boolean;\n\n\t// Mitigation strategies - Risk Assessment Tool \n\tpublic mitigationStrategy: string;\n\n\t// Manager name \n\tpublic managerName: string;\n\n\t// Manager ID number \n\tpublic idNumber: string;\n\n\t// Flight cannot be conducted under noted conditions \n\tpublic flightNotApproved: boolean;\n\n\t// Mitigation followup actions \n\tpublic followUpActions: string;\n\n constructor(operationManagerEval?: boolean, documentMitigation?: boolean, mitigationStrategy?: string, managerName?: string, idNumber?: string, flightNotApproved?: boolean, followUpActions?: string) { \n if (operationManagerEval !== undefined) { this.operationManagerEval = operationManagerEval; }\n if (documentMitigation !== undefined) { this.documentMitigation = documentMitigation; }\n if (mitigationStrategy !== undefined) { this.mitigationStrategy = mitigationStrategy; }\n if (managerName !== undefined) { this.managerName = managerName; }\n if (idNumber !== undefined) { this.idNumber = idNumber; }\n if (flightNotApproved !== undefined) { this.flightNotApproved = flightNotApproved; }\n if (followUpActions !== undefined) { this.followUpActions = followUpActions; }\n }\n\n}\n\n\n","\nimport { TimeFrame } from './TimeFrame';\n\n// AuditLogFilter list of fields to filter audit log entries\nexport class AuditLogFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by time frame \n\tpublic period: TimeFrame;\n\n\t// Filter by User ID \n\tpublic userId: string;\n\n\t// Filter by action \n\tpublic action: string;\n\n\t// Filter by item type \n\tpublic itemType: string;\n\n\t// Filter by item ID \n\tpublic itemId: string;\n\n\t// Filter by item name \n\tpublic itemName: string;\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, period?: TimeFrame, userId?: string, action?: string, itemType?: string, itemId?: string, itemName?: string, sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (period !== undefined) { this.period = period; }\n if (userId !== undefined) { this.userId = userId; }\n if (action !== undefined) { this.action = action; }\n if (itemType !== undefined) { this.itemType = itemType; }\n if (itemId !== undefined) { this.itemId = itemId; }\n if (itemName !== undefined) { this.itemName = itemName; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\nimport { TransactionTypeCode } from './TransactionTypeCode';\nimport { TimeFrame } from './TimeFrame';\n\n// CreditsFilter list of fields to filter credits\nexport class CreditsFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by account \n\tpublic accountId: string;\n\n\t// Filter by flight \n\tpublic flightId: string;\n\n\t// Filter by transaction type(s) \n\tpublic type: TransactionTypeCode[];\n\n\t// Filter by time frame of transaction time \n\tpublic period: TimeFrame;\n\n\t// Filter by reference \n\tpublic reference: string;\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, accountId?: string, flightId?: string, type?: TransactionTypeCode[], period?: TimeFrame, reference?: string, sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (accountId !== undefined) { this.accountId = accountId; }\n if (flightId !== undefined) { this.flightId = flightId; }\n if (type !== undefined) { this.type = type; }\n if (period !== undefined) { this.period = period; }\n if (reference !== undefined) { this.reference = reference; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\n\n// LoginParams model used for authorize user by email or by SMS\nexport class LoginParams {\n\n\t// User email for login authentication or mail verification \n\tpublic email: string;\n\n\t// User mobile phone for SMS verification \n\tpublic mobile: string;\n\n\t// User token if he wsa already authenticated \n\tpublic token: string;\n\n constructor(email?: string, mobile?: string, token?: string) { \n if (email !== undefined) { this.email = email; }\n if (mobile !== undefined) { this.mobile = mobile; }\n if (token !== undefined) { this.token = token; }\n }\n\n}\n\n\n","\nimport { TripRisks } from './TripRisks';\nimport { WeatherRisks } from './WeatherRisks';\nimport { SpecialRisks } from './SpecialRisks';\nimport { Mitigation } from './Mitigation';\nimport { PilotQualificationsRisks } from './PilotQualificationsRisks';\nimport { CrewDutyDayRisks } from './CrewDutyDayRisks';\nimport { DepartureRisks } from './DepartureRisks';\nimport { DestinationRisks } from './DestinationRisks';\n\n// RiskAssessment Risk Assessment Tool & Mitigation Strategies\nexport class RiskAssessment {\n\n\t// Risk assessment time \n\tpublic timestamp: number;\n\n\t// Pilot Qualifications and and Experience risks \n\tpublic pilotQualifications: PilotQualificationsRisks;\n\n\t// Crew Duty Day risks \n\tpublic crewDutyDay: CrewDutyDayRisks;\n\n\t// Departure risks \n\tpublic departure: DepartureRisks;\n\n\t// Destination risks \n\tpublic destination: DestinationRisks;\n\n\t// Trip risks \n\tpublic trip: TripRisks;\n\n\t// Weather risks \n\tpublic weather: WeatherRisks;\n\n\t// Other special risks \n\tpublic other: SpecialRisks;\n\n\t// Risks mitigation strategy \n\tpublic mitigation: Mitigation;\n\n constructor(timestamp?: number, pilotQualifications?: PilotQualificationsRisks, crewDutyDay?: CrewDutyDayRisks, departure?: DepartureRisks, destination?: DestinationRisks, trip?: TripRisks, weather?: WeatherRisks, other?: SpecialRisks, mitigation?: Mitigation) { \n if (timestamp !== undefined) { this.timestamp = timestamp; }\n if (pilotQualifications !== undefined) { this.pilotQualifications = pilotQualifications; }\n if (crewDutyDay !== undefined) { this.crewDutyDay = crewDutyDay; }\n if (departure !== undefined) { this.departure = departure; }\n if (destination !== undefined) { this.destination = destination; }\n if (trip !== undefined) { this.trip = trip; }\n if (weather !== undefined) { this.weather = weather; }\n if (other !== undefined) { this.other = other; }\n if (mitigation !== undefined) { this.mitigation = mitigation; }\n }\n\n}\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { FlightTypeCode } from './FlightTypeCode';\nimport { FlightStatusCode } from './FlightStatusCode';\nimport { FlightStateCode } from './FlightStateCode';\nimport { FlightPurposeCode } from './FlightPurposeCode';\nimport { TOLData } from './TOLData';\nimport { ColumnDef } from './ColumnDef';\n\n// FlightPlan entity is a subset of flight for flight planning tools\nexport class FlightPlan extends BaseEntityEx {\n\n\t// Flight name \n\tpublic name: string;\n\n\t// Flight description \n\tpublic description: string;\n\n\t// Flight number \n\tpublic flightNumber: number;\n\n\t// Flight number as string \n\tpublic flightString: string;\n\n\t// Flight takeoff time (same as Takeoff.Planned) \n\tpublic flightTime: number;\n\n\t// Flight destination \n\tpublic destination: string;\n\n\t// Account ID \n\tpublic accountId: string;\n\n\t// Account Name \n\tpublic accountName: string;\n\n\t// Airplane ID \n\tpublic airplaneId: string;\n\n\t// Airplane ID \n\tpublic airplaneName: string;\n\n\t// Flight type: PRIVATE | COMMERCIAL ... \n\tpublic type: FlightTypeCode;\n\n\t// Flight status: REGISTERED | DELETE | CANCELLED ... \n\tpublic status: FlightStatusCode;\n\n\t// Flight actual state PENDING | ACTIVE | COMPLETED (can't be manually modified): ... \n\tpublic state: FlightStateCode;\n\n\t// Purpose of the flight \n\tpublic purpose: FlightPurposeCode;\n\n\t// In case of OTHER, Purpose of the flight \n\tpublic purposeOt: string;\n\n\t// Captain ID \n\tpublic captainId: string;\n\n\t// Captain Name \n\tpublic captainName: string;\n\n\t// First Officer / Student contact Id \n\tpublic firstOfficerId: string;\n\n\t// First Officer / Student contact Name \n\tpublic firstOfficerName: string;\n\n\t// Passengers names \n\tpublic passengers: string[];\n\n\t// Crew members (name:role) \n\tpublic crew: string[];\n\n\t// Takeoff data \n\tpublic takeoff: TOLData;\n\n\t// Landing data \n\tpublic landing: TOLData;\n\n}\n\nexport function GetFlightPlanColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightString\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightTime\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"FlightTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"FlightStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"state\", \"FlightStateCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purposeOt\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captainId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captainName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficerId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficerName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"passengers\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"crew\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"takeoff\", \"TOLData\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"landing\", \"TOLData\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { StatusCode } from './StatusCode';\nimport { MaintenanceActionCode } from './MaintenanceActionCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Maintenance entity is an airplane airworthiness certificate\nexport class Maintenance extends BaseEntityEx {\n\n\t// Maintenance name \n\tpublic name: string;\n\n\t// Maintenance description \n\tpublic description: string;\n\n\t// Linked airplane ID \n\tpublic airplaneId: string;\n\n\t// Linked document ID \n\tpublic documentId: string;\n\n\t// Airplane hobs counter \n\tpublic hobs: number;\n\n\t// Airplane next hobs for inspection \n\tpublic nextHobs: number;\n\n\t// Airplane tachometer counter \n\tpublic tach: number;\n\n\t// Airplane next tachometer for inspection \n\tpublic nextTach: number;\n\n\t// Maintenance Certificate is valid until the timestamp [epoch time milliseconds] \n\tpublic validUntil: number;\n\n\t// Maintenance workflow status: UNDEFINED | PENDING | IN_PROCESS | COMPLETED ... \n\tpublic status: StatusCode;\n\n\t// Airworthiness component code \n\tpublic component: string;\n\n\t// Airworthiness action code \n\tpublic action: MaintenanceActionCode;\n\n\t// Time of notification sent to contact [epoch time milliseconds] \n\tpublic notifyAt: number;\n\n\t// Notification subject \n\tpublic subject: string;\n\n\t// Notification message \n\tpublic message: string;\n\n}\n\nexport function GetMaintenanceColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"documentId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hobs\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"nextHobs\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"tach\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"nextTach\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"validUntil\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"StatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"component\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"action\", \"MaintenanceActionCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"notifyAt\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"subject\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"message\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { ConfirmStatusCode } from './ConfirmStatusCode';\nimport { MessageTypeCode } from './MessageTypeCode';\nimport { PriorityCode } from './PriorityCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// MessageConfirm entity is a system message confirmation by users\nexport class MessageConfirm extends BaseEntityEx {\n\n\t// System Message ID \n\tpublic messageId: string;\n\n\t// Linked contact ID \n\tpublic contactId: string;\n\n\t// Contact reply status \n\tpublic replyStatus: ConfirmStatusCode;\n\n\t// Time of reply sent by the contact [epoch time milliseconds] \n\tpublic replyOn: number;\n\n\t// Message subject [Calculated field, not stored] \n\tpublic subject: string;\n\n\t// Message type [Calculated field, not stored] \n\tpublic type: MessageTypeCode;\n\n\t// Message priority [Calculated field, not stored] \n\tpublic priority: PriorityCode;\n\n}\n\nexport function GetMessageConfirmColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"messageId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"replyStatus\", \"ConfirmStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"replyOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"subject\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"MessageTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"priority\", \"PriorityCode\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// FlightPassenger entity is a passenger in the flight\nexport class FlightPassenger extends BaseEntityEx {\n\n\t// Flight ID \n\tpublic flightId: string;\n\n\t// Flight Number \n\tpublic flightNumber: number;\n\n\t// Passenger name \n\tpublic name: string;\n\n\t// Passenger Mobile phone \n\tpublic mobile: string;\n\n\t// Passenger Email address \n\tpublic email: string;\n\n}\n\nexport function GetFlightPassengerColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// BaseEntity is a base structure for any concrete Entity.\n// It provides common fields like Id, CreatedOn, and UpdatedOn that are standard across most entities.\n// Embed this struct in your domain entities to inherit these standard fields and basic behavior.\nexport class BaseEntity {\n\n\t// Id is the unique object identifier \n\tpublic id: string;\n\n\t// CreatedOn is the timestamp when the object was created [Epoch milliseconds Timestamp] \n\tpublic createdOn: number;\n\n\t// UpdatedOn is the timestamp when the object was last updated [Epoch milliseconds Timestamp] \n\tpublic updatedOn: number;\n\n constructor(id?: string, createdOn?: number, updatedOn?: number) { \n if (id !== undefined) { this.id = id; }\n if (createdOn !== undefined) { this.createdOn = createdOn; }\n if (updatedOn !== undefined) { this.updatedOn = updatedOn; }\n }\n\n}\n\n\n","\n\n// CrewDutyDayRisks group of crew duty risk values\nexport class CrewDutyDayRisks {\n\n\t// Crew duty day greater than 12 hours \n\tpublic crewDutyDayOver12Hrs: number;\n\n\t// Flight time greater than 8 hours during the duty day \n\tpublic flightTimeOver8Hrs: number;\n\n\t// Crew rest period less than 10 hours prior to the duty day \n\tpublic crewRestLess10Hrs: number;\n\n constructor(crewDutyDayOver12Hrs?: number, flightTimeOver8Hrs?: number, crewRestLess10Hrs?: number) { \n if (crewDutyDayOver12Hrs !== undefined) { this.crewDutyDayOver12Hrs = crewDutyDayOver12Hrs; }\n if (flightTimeOver8Hrs !== undefined) { this.flightTimeOver8Hrs = flightTimeOver8Hrs; }\n if (crewRestLess10Hrs !== undefined) { this.crewRestLess10Hrs = crewRestLess10Hrs; }\n }\n\n}\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// LeadAction entity is a followup action record\nexport class LeadAction extends BaseEntityEx {\n\n\t// Lead ID \n\tpublic leadId: string;\n\n\t// When followup action was reported [Epoch milliseconds] \n\tpublic reportedOn: number;\n\n\t// Who did the followup action \n\tpublic reportedBy: string;\n\n\t// Action description \n\tpublic description: string;\n\n}\n\nexport function GetLeadActionColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"leadId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"reportedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"reportedBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// LogBookRecord entity is a pilot's log book record\nexport class LogBookRecord extends BaseEntityEx {\n\n\t// Account ID \n\tpublic accountId: string;\n\n\t// Contact ID \n\tpublic contactId: string;\n\n\t// When the flight started [Epoch milliseconds] (1a) \n\tpublic date: number;\n\n\t// Airplane type (model, variant) \n\tpublic airplaneType: string;\n\n\t// Airplane registration number (tail number) \n\tpublic airplaneReg: string;\n\n\t// Takeoff field \n\tpublic takeoffField: string;\n\n\t// Landing field on the way \n\tpublic viaField: string;\n\n\t// Landing field \n\tpublic landingField: string;\n\n\t// Departure time [Epoch milliseconds] \n\tpublic departure: number;\n\n\t// Arrival time [Epoch milliseconds] \n\tpublic arrival: number;\n\n\t// Single Engine Pilot-In-Command \n\tpublic singleEnginePic: number;\n\n\t// Single Engine Second-In-Command \n\tpublic singleEngineSic: number;\n\n\t// Multi Engine Pilot-In-Command \n\tpublic multiEnginePic: number;\n\n\t// Multi Engine Second-In-Command \n\tpublic multiEngineSic: number;\n\n\t// Hours in daytime \n\tpublic dayTime: number;\n\n\t// Hours in nighttime \n\tpublic nightTime: number;\n\n\t// Instruments flight time \n\tpublic ifrTime: number;\n\n\t// Simulator time \n\tpublic simulator: number;\n\n\t// Remarks \n\tpublic remarks: string;\n\n}\n\nexport function GetLogBookRecordColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"date\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneType\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneReg\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"takeoffField\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"viaField\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"landingField\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"departure\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"arrival\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"singleEnginePic\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"singleEngineSic\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"multiEnginePic\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"multiEngineSic\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"dayTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"nightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"ifrTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"simulator\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"remarks\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { InstructionTypeCode } from './InstructionTypeCode';\nimport { SyllabusStageCode } from './SyllabusStageCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Syllabus entity is instruction plan topics\nexport class Syllabus extends BaseEntityEx {\n\n\t// Syllabus plan (Flight category) \n\tpublic plan: FlightCategoryCode;\n\n\t// Topic instruction type (FLIGHT | CLASS | SIMULATOR) \n\tpublic type: InstructionTypeCode;\n\n\t// Topic stage in the syllabus (group) \n\tpublic stage: SyllabusStageCode;\n\n\t// Topic sequence number \n\tpublic seq: string;\n\n\t// Topic index number \n\tpublic num: number;\n\n\t// Topic name \n\tpublic name: string;\n\n\t// Topic duration (in minutes) \n\tpublic duration: number;\n\n}\n\nexport function GetSyllabusColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"plan\", \"FlightCategoryCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"InstructionTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"stage\", \"SyllabusStageCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"seq\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"num\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"duration\", \"number\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// BaseRestResponse is a common structure for all response types\nexport class BaseRestResponse {\n\n\t// Error code (0 for success) \n\tpublic code: number;\n\n\t// Error message \n\tpublic error: string;\n\n constructor(code?: number, error?: string) { \n if (code !== undefined) { this.code = code; }\n if (error !== undefined) { this.error = error; }\n }\n\n}\n\n\n","\nimport { BaseRestResponse } from './BaseRestResponse';\nimport { ColumnDef } from './ColumnDef';\n\n// ActionResponse message is returned for any action on entity with no return data (e.d. delete)\nexport class ActionResponse extends BaseRestResponse {\n\n\t// The entity key (Id) \n\tpublic key: string;\n\n\t// Additional data \n\tpublic data: string;\n\n}\n\nexport function GetActionResponseColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"key\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"data\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { UserTypeCode } from './UserTypeCode';\nimport { UserStatusCode } from './UserStatusCode';\nimport { TimeFrame } from './TimeFrame';\n\n// UsersFilter list of fields to filter users\nexport class UsersFilter {\n\n\t// Filter by text search on name / id / email (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by type(s) \n\tpublic type: UserTypeCode[];\n\n\t// Filter by status(s) \n\tpublic status: UserStatusCode[];\n\n\t// Filter by time frame of last sign in \n\tpublic lastSignIn: TimeFrame;\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, type?: UserTypeCode[], status?: UserStatusCode[], lastSignIn?: TimeFrame, sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (type !== undefined) { this.type = type; }\n if (status !== undefined) { this.status = status; }\n if (lastSignIn !== undefined) { this.lastSignIn = lastSignIn; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\n\n// IntKeyValue model used as a string key- (int)value pair\nexport class IntKeyValue {\n\n\t// Tuple key \n\tpublic key: string;\n\n\t// Tuple value \n\tpublic value: number;\n\n constructor(key?: string, value?: number) { \n if (key !== undefined) { this.key = key; }\n if (value !== undefined) { this.value = value; }\n }\n\n}\n\n\n","\n\n// Location model represents WGS-84 location\nexport class Location {\n\n\t// WGS-84 longitude in decimal degrees \n\tpublic lon: number;\n\n\t// WGS-84 latitude in decimal degrees \n\tpublic lat: number;\n\n\t// Barometric altitude in meters \n\tpublic alt: number;\n\n constructor(lon?: number, lat?: number, alt?: number) { \n if (lon !== undefined) { this.lon = lon; }\n if (lat !== undefined) { this.lat = lat; }\n if (alt !== undefined) { this.alt = alt; }\n }\n\n}\n\n\n","\nimport { UserStatusCode } from './UserStatusCode';\nimport { UserTypeCode } from './UserTypeCode';\n\n// TokenData model represents user in account which is encrypted with the JWT token\nexport class TokenData {\n\n\t// Authenticated subject ID (can be user, or service account) \n\tpublic subjectId: string;\n\n\t// Subject type: UNDEFINED | SYSADMIN | USER | SERVICE_ACCOUNT \n\tpublic subjectType: UserTypeCode;\n\n\t// User status: UNDEFINED | PENDING | ACTIVE | BLOCKED | SUSPENDED \n\tpublic status: UserStatusCode;\n\n\t// Token expiration [Epoch milliseconds Timestamp] \n\tpublic expiresIn: number;\n\n constructor(subjectId?: string, subjectType?: UserTypeCode, status?: UserStatusCode, expiresIn?: number) { \n if (subjectId !== undefined) { this.subjectId = subjectId; }\n if (subjectType !== undefined) { this.subjectType = subjectType; }\n if (status !== undefined) { this.status = status; }\n if (expiresIn !== undefined) { this.expiresIn = expiresIn; }\n }\n\n}\n\n\n","\nimport { StringKeyValue } from './StringKeyValue';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// ContactGroup represents a group of contacts to share messages\nexport class ContactGroup extends BaseEntityEx {\n\n\t// Group name \n\tpublic name: string;\n\n\t// List of group members (id->name pairs) - not persistent \n\tpublic contacts: StringKeyValue[];\n\n}\n\nexport function GetContactGroupColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contacts\", \"StringKeyValue\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// DocumentRevision entity represents a document revision in the system\nexport class DocumentRevision {\n\n\t// Document revision Id \n\tpublic id: string;\n\n\t// Document revision file name \n\tpublic name: string;\n\n\t// Document revision \n\tpublic revision: string;\n\n\t// Document revision URL \n\tpublic url: string;\n\n\t// Document revision creator \n\tpublic createdBy: string;\n\n\t// Document revision creation time [epoch time milliseconds] \n\tpublic createdOn: number;\n\n\t// Document revision MIME type \n\tpublic mimeType: string;\n\n constructor(id?: string, name?: string, revision?: string, url?: string, createdBy?: string, createdOn?: number, mimeType?: string) { \n if (id !== undefined) { this.id = id; }\n if (name !== undefined) { this.name = name; }\n if (revision !== undefined) { this.revision = revision; }\n if (url !== undefined) { this.url = url; }\n if (createdBy !== undefined) { this.createdBy = createdBy; }\n if (createdOn !== undefined) { this.createdOn = createdOn; }\n if (mimeType !== undefined) { this.mimeType = mimeType; }\n }\n\n}\n\n\n","\nimport { DestinationRisks } from './DestinationRisks';\nimport { SpecialRisks } from './SpecialRisks';\nimport { Mitigation } from './Mitigation';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { PilotQualificationsRisks } from './PilotQualificationsRisks';\nimport { CrewDutyDayRisks } from './CrewDutyDayRisks';\nimport { TripRisks } from './TripRisks';\nimport { WeatherRisks } from './WeatherRisks';\nimport { DepartureRisks } from './DepartureRisks';\nimport { ColumnDef } from './ColumnDef';\n\n// FlightRisk entity is a data extension for a single flight listing risk assessments and mitigation\n// The ID should be identical to the flight ID\nexport class FlightRisk extends BaseEntityEx {\n\n\t// Risk assessment time \n\tpublic timestamp: number;\n\n\t// Pilot Qualifications and and Experience risks \n\tpublic pilotQualifications: PilotQualificationsRisks;\n\n\t// Crew Duty Day risks \n\tpublic crewDutyDay: CrewDutyDayRisks;\n\n\t// Departure risks \n\tpublic departure: DepartureRisks;\n\n\t// Destination risks \n\tpublic destination: DestinationRisks;\n\n\t// Trip risks \n\tpublic trip: TripRisks;\n\n\t// Weather risks \n\tpublic weather: WeatherRisks;\n\n\t// Other special risks \n\tpublic other: SpecialRisks;\n\n\t// Risks mitigation strategy \n\tpublic mitigation: Mitigation;\n\n}\n\nexport function GetFlightRiskColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"timestamp\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"pilotQualifications\", \"PilotQualificationsRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"crewDutyDay\", \"CrewDutyDayRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"departure\", \"DepartureRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"DestinationRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"trip\", \"TripRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"weather\", \"WeatherRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"other\", \"SpecialRisks\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mitigation\", \"Mitigation\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { TicketStatusCode } from './TicketStatusCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// FlightTicket entity is a single flight in the airplane\nexport class FlightTicket extends BaseEntityEx {\n\n\t// Flight ticket name \n\tpublic name: string;\n\n\t// Flight ticket description \n\tpublic description: string;\n\n\t// Flight ticket number \n\tpublic ticketNumber: number;\n\n\t// Flight number \n\tpublic flightNumber: number;\n\n\t// Flight Id \n\tpublic flightId: string;\n\n\t// Flight ticket status: PENDING | SENT ... \n\tpublic status: TicketStatusCode;\n\n\t// Customer name \n\tpublic customerName: string;\n\n\t// Customer email \n\tpublic customerEmail: string;\n\n\t// Customer mobile phone \n\tpublic customerMobile: string;\n\n}\n\nexport function GetFlightTicketColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"ticketNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"TicketStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"customerName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"customerEmail\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"customerMobile\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// Boundaries model represents an timeframe boundaries\nexport class Boundaries {\n\n\t// Lower time boundaries \n\tpublic start: number;\n\n\t// Upper time boundaries \n\tpublic end: number;\n\n constructor(start?: number, end?: number) { \n if (start !== undefined) { this.start = start; }\n if (end !== undefined) { this.end = end; }\n }\n\n}\n\n\n","\n\n// BaseFilter is a common structure for all filters\nexport class BaseFilter {\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\n\n// Propeller model represents propeller metrics\nexport class Propeller {\n\n\t// Propeller total time [hours] \n\tpublic totalTime: number;\n\n\t// Overhaul time frequency [hours] \n\tpublic overhaulFrequency: number;\n\n\t// Overhaul next due [hours] \n\tpublic overhaulNextDue: number;\n\n\t// Time remaining till the next Overhaul [hours] \n\tpublic hoursToOverhaul: number;\n\n\t// Last airframe Overhaul [hours] \n\tpublic lastAirframeOverhaul: number;\n\n constructor(totalTime?: number, overhaulFrequency?: number, overhaulNextDue?: number, hoursToOverhaul?: number, lastAirframeOverhaul?: number) { \n if (totalTime !== undefined) { this.totalTime = totalTime; }\n if (overhaulFrequency !== undefined) { this.overhaulFrequency = overhaulFrequency; }\n if (overhaulNextDue !== undefined) { this.overhaulNextDue = overhaulNextDue; }\n if (hoursToOverhaul !== undefined) { this.hoursToOverhaul = hoursToOverhaul; }\n if (lastAirframeOverhaul !== undefined) { this.lastAirframeOverhaul = lastAirframeOverhaul; }\n }\n\n}\n\n\n","\nimport { Point } from './Point';\n\n// WBConfig model represents weight and balance configuration\nexport class WBConfig {\n\n\t// Max takeoff weight [Lb] \n\tpublic maxTakeoffWeight: number;\n\n\t// Empty airplane weight [Lb] \n\tpublic airplaneWeight: number;\n\n\t// Front baggage area Weight [Lb] \n\tpublic frontBaggageWeight: number;\n\n\t// Rear baggage area Weight [Lb] \n\tpublic rearBaggageWeight: number;\n\n\t// Total (both) baggage areas Weight [Lb] \n\tpublic totalBaggageWeight: number;\n\n\t// Max usable fuel (Gallon) \n\tpublic maxUsableFuel: number;\n\n\t// Self airplane C.G. arm [inch] \n\tpublic selfArm: number;\n\n\t// Fuel tank C.G. arm [inch] \n\tpublic fuelTankArm: number;\n\n\t// Front seats C.G. arm [inch] \n\tpublic pilotsArm: number;\n\n\t// Rear seats C.G. arm [inch] \n\tpublic passengersArm: number;\n\n\t// Front baggage area C.G. arm [inch] \n\tpublic frontBaggageArm: number;\n\n\t// Rear baggage area C.G. arm [inch] \n\tpublic rearBaggageArm: number;\n\n\t// Max rear C.G. [inch] \n\tpublic maxRearArm: number;\n\n\t// Max front C.G. arm [inch] \n\tpublic maxFrontArm: number;\n\n\t// List of points representing the normal C.G envelope \n\tpublic normalEnvelope: Point[];\n\n\t// List of points representing the utility C.G envelope \n\tpublic utilityEnvelope: Point[];\n\n constructor(maxTakeoffWeight?: number, airplaneWeight?: number, frontBaggageWeight?: number, rearBaggageWeight?: number, totalBaggageWeight?: number, maxUsableFuel?: number, selfArm?: number, fuelTankArm?: number, pilotsArm?: number, passengersArm?: number, frontBaggageArm?: number, rearBaggageArm?: number, maxRearArm?: number, maxFrontArm?: number, normalEnvelope?: Point[], utilityEnvelope?: Point[]) { \n if (maxTakeoffWeight !== undefined) { this.maxTakeoffWeight = maxTakeoffWeight; }\n if (airplaneWeight !== undefined) { this.airplaneWeight = airplaneWeight; }\n if (frontBaggageWeight !== undefined) { this.frontBaggageWeight = frontBaggageWeight; }\n if (rearBaggageWeight !== undefined) { this.rearBaggageWeight = rearBaggageWeight; }\n if (totalBaggageWeight !== undefined) { this.totalBaggageWeight = totalBaggageWeight; }\n if (maxUsableFuel !== undefined) { this.maxUsableFuel = maxUsableFuel; }\n if (selfArm !== undefined) { this.selfArm = selfArm; }\n if (fuelTankArm !== undefined) { this.fuelTankArm = fuelTankArm; }\n if (pilotsArm !== undefined) { this.pilotsArm = pilotsArm; }\n if (passengersArm !== undefined) { this.passengersArm = passengersArm; }\n if (frontBaggageArm !== undefined) { this.frontBaggageArm = frontBaggageArm; }\n if (rearBaggageArm !== undefined) { this.rearBaggageArm = rearBaggageArm; }\n if (maxRearArm !== undefined) { this.maxRearArm = maxRearArm; }\n if (maxFrontArm !== undefined) { this.maxFrontArm = maxFrontArm; }\n if (normalEnvelope !== undefined) { this.normalEnvelope = normalEnvelope; }\n if (utilityEnvelope !== undefined) { this.utilityEnvelope = utilityEnvelope; }\n }\n\n}\n\n\n","\nimport { ValidationFlag } from './ValidationFlag';\nimport { StatusCode } from './StatusCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Certificate entity is a contact certificate required for active pilot\nexport class Certificate extends BaseEntityEx {\n\n\t// Certificate name \n\tpublic name: string;\n\n\t// Type for certificate (based on Validation flag) \n\tpublic type: ValidationFlag;\n\n\t// Certificate description \n\tpublic description: string;\n\n\t// Linked contact ID \n\tpublic contactId: string;\n\n\t// Linked document ID \n\tpublic documentId: string;\n\n\t// Certificate is valid until the timestamp [epoch time milliseconds] \n\tpublic validUntil: number;\n\n\t// Certificate workflow status: UNDEFINED | PENDING | IN_PROCESS | COMPLETED ... \n\tpublic status: StatusCode;\n\n\t// Time of notification sent to contact [epoch time milliseconds] \n\tpublic notifyAt: number;\n\n\t// Notification subject \n\tpublic subject: string;\n\n\t// Notification message \n\tpublic message: string;\n\n}\n\nexport function GetCertificateColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"ValidationFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"documentId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"validUntil\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"StatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"notifyAt\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"subject\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"message\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// DestinationRisks group of destination risk values\nexport class DestinationRisks {\n\n\t// Mountainous airport \n\tpublic mountainousAirport: number;\n\n\t// Control tower not operational at ETA \n\tpublic towerNotOperationalAtEta: number;\n\n\t// Destination - Non-towered airport \n\tpublic nonToweredAirport: number;\n\n\t// Destination - Wet Runway \n\tpublic wetRunway: number;\n\n\t// Destination - Contaminated Runway \n\tpublic contaminatedRunway: number;\n\n\t// Stopping distance greater than 80% of available runway \n\tpublic stoppingDistanceOver80p: number;\n\n\t// Runway braking action less than good - rv_runw_brakin_actionless_t_c \n\tpublic runwayBreakingLessGood: number;\n\n\t// Approach w/o vertical guidance (best available approach) - rv_approach_w_o_vertical_gui_c \n\tpublic approachWoVerticalGuide: number;\n\n\t// Circling approach (best available approach) - rv_circling_approach_best_av_c \n\tpublic circlingApproach: number;\n\n\t// No published approaches - rv_no_published_approaches_c \n\tpublic noPublishedApproaches: number;\n\n\t// Alternate airport not selected - rv_alternate_airport_not_sel_c \n\tpublic noAlternateAirport: number;\n\n\t// Destination - Elevation of primary airport greater than 5,000 ft. MSL - rv_destelevtio_of_primary_ai_c \n\tpublic airportElevOver5KFts: number;\n\n constructor(mountainousAirport?: number, towerNotOperationalAtEta?: number, nonToweredAirport?: number, wetRunway?: number, contaminatedRunway?: number, stoppingDistanceOver80p?: number, runwayBreakingLessGood?: number, approachWoVerticalGuide?: number, circlingApproach?: number, noPublishedApproaches?: number, noAlternateAirport?: number, airportElevOver5KFts?: number) { \n if (mountainousAirport !== undefined) { this.mountainousAirport = mountainousAirport; }\n if (towerNotOperationalAtEta !== undefined) { this.towerNotOperationalAtEta = towerNotOperationalAtEta; }\n if (nonToweredAirport !== undefined) { this.nonToweredAirport = nonToweredAirport; }\n if (wetRunway !== undefined) { this.wetRunway = wetRunway; }\n if (contaminatedRunway !== undefined) { this.contaminatedRunway = contaminatedRunway; }\n if (stoppingDistanceOver80p !== undefined) { this.stoppingDistanceOver80p = stoppingDistanceOver80p; }\n if (runwayBreakingLessGood !== undefined) { this.runwayBreakingLessGood = runwayBreakingLessGood; }\n if (approachWoVerticalGuide !== undefined) { this.approachWoVerticalGuide = approachWoVerticalGuide; }\n if (circlingApproach !== undefined) { this.circlingApproach = circlingApproach; }\n if (noPublishedApproaches !== undefined) { this.noPublishedApproaches = noPublishedApproaches; }\n if (noAlternateAirport !== undefined) { this.noAlternateAirport = noAlternateAirport; }\n if (airportElevOver5KFts !== undefined) { this.airportElevOver5KFts = airportElevOver5KFts; }\n }\n\n}\n\n\n","\nimport { MetarReport } from './MetarReport';\nimport { TafReport } from './TafReport';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Metar entity encapsulates METAR and TAF reports\nexport class Metar extends BaseEntityEx {\n\n\t// List of METAR reports \n\tpublic metarReports: MetarReport[];\n\n\t// List of TAF reports \n\tpublic tafReports: TafReport[];\n\n}\n\nexport function GetMetarColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"metarReports\", \"MetarReport\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"tafReports\", \"TafReport\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// EntitiesRequest message is returned for any action returning multiple entities\nexport class EntitiesRequest<T> {\n\n\t// List of objects in the current result set \n\tpublic list: T[];\n\n constructor(list?: T[]) { \n if (list !== undefined) { this.list = list; }\n }\n\n}\n\n\n","\n\n// Json Represent arbitrary JSON fields collection\n// It is a map of string to any, used for flexible data structures.\nexport class Json {\n\n constructor() { \n }\n\n}\n\n\n","\nimport { TimeFrame } from './TimeFrame';\nimport { TimeDataPoint } from './TimeDataPoint';\n\n// TimeSeries represents a named collection of data points over a specific time range.\nexport class TimeSeries<T> {\n\n\t// Name of the time series \n\tpublic name: string;\n\n\t// Range covers the start and end time of the series \n\tpublic range: TimeFrame;\n\n\t// Values contains the data points \n\tpublic values: TimeDataPoint<T>[];\n\n constructor(name?: string, range?: TimeFrame, values?: TimeDataPoint<T>[]) { \n if (name !== undefined) { this.name = name; }\n if (range !== undefined) { this.range = range; }\n if (values !== undefined) { this.values = values; }\n }\n\n}\n\n\n","\nimport { AccountStatusCode } from './AccountStatusCode';\nimport { AccountTypeCode } from './AccountTypeCode';\n\n// AccountsFilter list of fields to filter accounts\nexport class AccountsFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// by status(s) \n\tpublic status: AccountStatusCode[];\n\n\t// by type(s) \n\tpublic type: AccountTypeCode[];\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, status?: AccountStatusCode[], type?: AccountTypeCode[], sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (status !== undefined) { this.status = status; }\n if (type !== undefined) { this.type = type; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\nimport { StatusCode } from './StatusCode';\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { TypeRatingFlag } from './TypeRatingFlag';\nimport { LicenseKindFlag } from './LicenseKindFlag';\n\n// ContactsFilter list of fields to filter contacts\nexport class ContactsFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by status(es) \n\tpublic status: StatusCode[];\n\n\t// Flag indicating if this contact is a pilot \n\tpublic isPilot: boolean;\n\n\t// Filter by instruction plan \n\tpublic plan: FlightCategoryCode[];\n\n\t// Filter by airplane type ratings allowed for this pilot \n\tpublic typesRating: TypeRatingFlag[];\n\n\t// Filter by license types and additional ratings \n\tpublic licenseKinds: LicenseKindFlag[];\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, status?: StatusCode[], isPilot?: boolean, plan?: FlightCategoryCode[], typesRating?: TypeRatingFlag[], licenseKinds?: LicenseKindFlag[], sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (status !== undefined) { this.status = status; }\n if (isPilot !== undefined) { this.isPilot = isPilot; }\n if (plan !== undefined) { this.plan = plan; }\n if (typesRating !== undefined) { this.typesRating = typesRating; }\n if (licenseKinds !== undefined) { this.licenseKinds = licenseKinds; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\nimport { MaintenanceActionCode } from './MaintenanceActionCode';\nimport { StatusCode } from './StatusCode';\nimport { TimeFrame } from './TimeFrame';\n\n// MaintenancesFilter list of fields to filter maintenance\nexport class MaintenancesFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by airplane ID \n\tpublic airplaneId: string;\n\n\t// Filter by action(s) \n\tpublic action: MaintenanceActionCode[];\n\n\t// Filter by status(s) \n\tpublic status: StatusCode[];\n\n\t// Filter by time frame of valid time \n\tpublic valid: TimeFrame;\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, airplaneId?: string, action?: MaintenanceActionCode[], status?: StatusCode[], valid?: TimeFrame, sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (airplaneId !== undefined) { this.airplaneId = airplaneId; }\n if (action !== undefined) { this.action = action; }\n if (status !== undefined) { this.status = status; }\n if (valid !== undefined) { this.valid = valid; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\nimport { BookingSlot } from './BookingSlot';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// BookingSlotsSet entity is a collection of slots per month to add or to remove\nexport class BookingSlotsSet extends BaseEntityEx {\n\n\t// Slots set year \n\tpublic year: number;\n\n\t// Slots set month (1..12) \n\tpublic month: number;\n\n\t// List of slots to add \n\tpublic addSlots: BookingSlot[];\n\n\t// List of slots to remove \n\tpublic delSlots: BookingSlot[];\n\n}\n\nexport function GetBookingSlotsSetColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"year\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"month\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"addSlots\", \"BookingSlot\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"delSlots\", \"BookingSlot\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { CampaignTypeCode } from './CampaignTypeCode';\nimport { CampaignStatusCode } from './CampaignStatusCode';\nimport { CurrencyCode } from './CurrencyCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Campaign entity represents a marketing campaign in the system\nexport class Campaign extends BaseEntityEx {\n\n\t// Campaign name \n\tpublic name: string;\n\n\t// Campaign type: UNDEFINED | WEB | MAIL | TELE \n\tpublic type: CampaignTypeCode;\n\n\t// Campaign status: UNDEFINED | PLANNED | ACTIVE | COMPLETED \n\tpublic status: CampaignStatusCode;\n\n\t// Campaign content \n\tpublic content: string;\n\n\t// Campaign start date \n\tpublic startDate: number;\n\n\t// Campaign end date \n\tpublic endDate: number;\n\n\t// Campaign budget \n\tpublic budget: number;\n\n\t// Base rate \n\tpublic baseRate: number;\n\n\t// Refer URL \n\tpublic referUrl: string;\n\n\t// Actual campaign cost \n\tpublic expectedCost: number;\n\n\t// Actual campaign cost \n\tpublic actualCost: number;\n\n\t// Currency code \n\tpublic currency: CurrencyCode;\n\n}\n\nexport function GetCampaignColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"CampaignTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"CampaignStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"content\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"startDate\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"endDate\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"budget\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"baseRate\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"referUrl\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"expectedCost\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"actualCost\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"currency\", \"CurrencyCode\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { BillingRecord } from './BillingRecord';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// FlightBilling entity is a data extension for a single flight listing all billing details of this flight\n// The ID should be identical to the flight ID\nexport class FlightBilling extends BaseEntityEx {\n\n\t// Billing invoice records \n\tpublic invoiceRecords: BillingRecord[];\n\n\t// Billing invoice issue date [epoch time milliseconds] \n\tpublic invoiceDate: number;\n\n\t// Discount percentage (0 .. 100) - percentage_discount \n\tpublic discountPercentage: number;\n\n\t// Total before VAT - total_charge_c \n\tpublic totalBeforeVat: number;\n\n\t// Total including VAT - total_charge_inc_vat_bef_dis_c \n\tpublic totalAfterVat: number;\n\n\t// Total charge including VAT after discount - total_charge_includes_vat_c \n\tpublic totalAfterDiscount: number;\n\n\t// Pilot payment - pilot_requested_payment_c \n\tpublic pilotPayment: number;\n\n\t// Pilot payment status - pilot_payment_status_c \n\tpublic pilotPaymentStatus: string;\n\n\t// Pilot payment - lbl_first_officer_payment_c \n\tpublic firstOfficerPayment: number;\n\n\t// Pilot payment status - lbl_firts_officer_payment_st_c \n\tpublic firstOfficerPaymentStatus: string;\n\n}\n\nexport function GetFlightBillingColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"invoiceRecords\", \"BillingRecord\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"invoiceDate\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"discountPercentage\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"totalBeforeVat\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalAfterVat\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalAfterDiscount\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"pilotPayment\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"pilotPaymentStatus\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficerPayment\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficerPaymentStatus\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { ValidationFlag } from './ValidationFlag';\nimport { TimeFrame } from './TimeFrame';\nimport { StatusCode } from './StatusCode';\n\n// CertificatesFilter list of fields to filter certificates\nexport class CertificatesFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by contact ID \n\tpublic contactId: string;\n\n\t// Filter by status(es) \n\tpublic status: StatusCode[];\n\n\t// Filter by validation type(es) \n\tpublic type: ValidationFlag[];\n\n\t// Filter by time frame of valid until \n\tpublic valid: TimeFrame;\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, contactId?: string, status?: StatusCode[], type?: ValidationFlag[], valid?: TimeFrame, sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (contactId !== undefined) { this.contactId = contactId; }\n if (status !== undefined) { this.status = status; }\n if (type !== undefined) { this.type = type; }\n if (valid !== undefined) { this.valid = valid; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\nimport { BookingSlot } from './BookingSlot';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// BookingSlots entity is a collection of slots per day\nexport class BookingSlots extends BaseEntityEx {\n\n\t// Slots day \n\tpublic day: number;\n\n\t// List of slots in this period \n\tpublic slots: BookingSlot[];\n\n}\n\nexport function GetBookingSlotsColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"day\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"slots\", \"BookingSlot\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { Lookup } from './Lookup';\nimport { BaseEntity } from './BaseEntity';\nimport { ColumnDef } from './ColumnDef';\n\n// LookupGroup entity is a group of lookup entries\nexport class LookupGroup extends BaseEntity {\n\n\t// Group \n\tpublic group: string;\n\n\t// Item type \n\tpublic value: Lookup[];\n\n}\n\nexport function GetLookupGroupColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"group\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"value\", \"Lookup\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { InstructionTypeCode } from './InstructionTypeCode';\nimport { SyllabusStageCode } from './SyllabusStageCode';\nimport { AssessmentCode } from './AssessmentCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { ColumnDef } from './ColumnDef';\n\n// SyllabusTrack entity is tracking syllabus items by contacts\nexport class SyllabusTrack extends BaseEntityEx {\n\n\t// Lesson topic from the instruction plan syllabus \n\tpublic topicId: string;\n\n\t// Syllabus plan (Flight category) \n\tpublic plan: FlightCategoryCode;\n\n\t// Topic instruction type (FLIGHT | CLASS | SIMULATOR) \n\tpublic type: InstructionTypeCode;\n\n\t// Topic stage in the syllabus (group) \n\tpublic stage: SyllabusStageCode;\n\n\t// Topic sequence number \n\tpublic seq: string;\n\n\t// Topic index number \n\tpublic num: number;\n\n\t// Topic name \n\tpublic name: string;\n\n\t// Topic duration (in minutes) \n\tpublic duration: number;\n\n\t// Contact (Student) ID \n\tpublic studentId: string;\n\n\t// Instructor ID \n\tpublic instructorId: string;\n\n\t// Instructor assessment (score) enum - lesson_score \n\tpublic assessment: AssessmentCode;\n\n\t// Link to flight ID (if it is a flight / simulator) \n\tpublic flightId: string;\n\n\t// Link to flight ID (if it is a flight / simulator) \n\tpublic flightNum: number;\n\n\t// Link to flight ID (if it is a flight / simulator) \n\tpublic flightName: string;\n\n\t// The timestamp when the topic was approved [Epoch milliseconds Timestamp] \n\tpublic approvedOn: number;\n\n\t// Total instructed flight time \n\tpublic instructedFlightTime: number;\n\n\t// Total Instrument flight time \n\tpublic instrumentsFlightTime: number;\n\n\t// Total student Solo flight time \n\tpublic soloFlightTime: number;\n\n\t// Total instructed navigation flight time \n\tpublic instructedNavTime: number;\n\n\t// Total student Solo navigation flight time \n\tpublic soloNavTime: number;\n\n\t// Total student night flight time \n\tpublic nightFlightTime: number;\n\n\t// Total flight time \n\tpublic totalFlightTime: number;\n\n\t// Total flight Hobbs \n\tpublic totalHobbs: number;\n\n}\n\nexport function GetSyllabusTrackColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"topicId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"plan\", \"FlightCategoryCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"InstructionTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"stage\", \"SyllabusStageCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"seq\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"num\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"duration\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"studentId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"instructorId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"assessment\", \"AssessmentCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNum\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"approvedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"instructedFlightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"instrumentsFlightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"soloFlightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"instructedNavTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"soloNavTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"nightFlightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalFlightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalHobbs\", \"number\", \"decimal\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// SystemConfig is a global System Configuration variable\nexport class SystemConfig extends BaseEntityEx {\n\n\t// String value \n\tpublic strVal: string;\n\n\t// Int value \n\tpublic intVal: number;\n\n}\n\nexport function GetSystemConfigColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"strVal\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"intVal\", \"number\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { PriorityCode } from './PriorityCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { MessageTypeCode } from './MessageTypeCode';\nimport { ColumnDef } from './ColumnDef';\n\n// SystemMessage entity is a system message notification that all pilots must read and confirm\nexport class SystemMessage extends BaseEntityEx {\n\n\t// Message subject \n\tpublic subject: string;\n\n\t// Message description \n\tpublic description: string;\n\n\t// Message type \n\tpublic type: MessageTypeCode;\n\n\t// Message priority \n\tpublic priority: PriorityCode;\n\n\t// Contact groups to send the message \n\tpublic groups: string[];\n\n\t// When the message was published [epoch time milliseconds] \n\tpublic publishedOn: number;\n\n}\n\nexport function GetSystemMessageColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"subject\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"MessageTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"priority\", \"PriorityCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"groups\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"publishedOn\", \"number\", \"datetime\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { BaseRestResponse } from './BaseRestResponse';\nimport { ColumnDef } from './ColumnDef';\n\n// EntityResponse message is returned for any create/update action on entity\nexport class EntityResponse<T> extends BaseRestResponse {\n\n\t// The entity \n\tpublic entity: T;\n\n}\n\nexport function GetEntityResponseColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"entity\", \"T\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// EntityRequest message is returned for any create/update action on entity\nexport class EntityRequest<T> {\n\n\t// The entity \n\tpublic entity: T;\n\n constructor(entity?: T) { \n if (entity !== undefined) { this.entity = entity; }\n }\n\n}\n\n\n","\nimport { AirplaneStatusCode } from './AirplaneStatusCode';\n\n// AirplanesFilter list of fields to filter airplanes\nexport class AirplanesFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by status(s) \n\tpublic status: AirplaneStatusCode[];\n\n\t// Filter by active flag \n\tpublic isActive: boolean;\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, status?: AirplaneStatusCode[], isActive?: boolean, sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (status !== undefined) { this.status = status; }\n if (isActive !== undefined) { this.isActive = isActive; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\nimport { Address } from './Address';\nimport { TypeRatingFlag } from './TypeRatingFlag';\nimport { LicenseKindFlag } from './LicenseKindFlag';\nimport { MedicalCertClassCode } from './MedicalCertClassCode';\nimport { ValidationFlag } from './ValidationFlag';\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { AccountStatusCode } from './AccountStatusCode';\nimport { ColumnDef } from './ColumnDef';\n\n// Contact entity is a billing account in the system\nexport class Contact extends BaseEntityEx {\n\n\t// Related billing account ID \n\tpublic accountId: string;\n\n\t// Contact name \n\tpublic name: string;\n\n\t// Contact english name \n\tpublic enName: string;\n\n\t// Contact description \n\tpublic description: string;\n\n\t// Title in the contact \n\tpublic title: string;\n\n\t// Contact birthday \n\tpublic birthDay: number;\n\n\t// Contact status: UNDEFINED | ACTIVE | INACTIVE | BLOCKED | SUSPEND \n\tpublic status: AccountStatusCode;\n\n\t// Office / Landline phone \n\tpublic phone: string;\n\n\t// Mobile phone \n\tpublic mobile: string;\n\n\t// Email address \n\tpublic email: string;\n\n\t// Contact address \n\tpublic address: Address;\n\n\t// Contact groups \n\tpublic groups: string[];\n\n\t// ID number \n\tpublic idNumber: string;\n\n\t// Pilot license number \n\tpublic pilotLicense: string;\n\n\t// Airplanes type ratings allowed for this pilot \n\tpublic typesRating: TypeRatingFlag;\n\n\t// List of license types and additional ratings \n\tpublic licenseKinds: LicenseKindFlag;\n\n\t// Medical certificate class \n\tpublic medicalCertificate: MedicalCertClassCode;\n\n\t// Enum flags - list of certifications and validations \n\tpublic validations: ValidationFlag;\n\n\t// Enum flags - list of certifications and validations \n\tpublic warningFlags: ValidationFlag;\n\n\t// Flag indicating if this contact is a valid pilot \n\tpublic isPilot: boolean;\n\n\t// Flight instructor Id \n\tpublic instructor: string;\n\n\t// Flight Instruction Plan \n\tpublic instructionPlan: FlightCategoryCode;\n\n\t// Last time the user signed to the system \n\tpublic lastSignIn: number;\n\n\t// Start to fly on [epoch time milliseconds] \n\tpublic startToFlyDate: number;\n\n\t// Authorized to fly by user at time \n\tpublic authorizedToFlyBy: string;\n\n\t// Authorized photographer by user at timeValidations \n\tpublic authorizedPhotographyBy: string;\n\n\t// Flag for various updates \n\tpublic updateFlags: number;\n\n}\n\nexport function GetContactColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"enName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"title\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"birthDay\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"AccountStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"phone\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"address\", \"Address\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"groups\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"idNumber\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"pilotLicense\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"typesRating\", \"TypeRatingFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"licenseKinds\", \"LicenseKindFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"medicalCertificate\", \"MedicalCertClassCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"validations\", \"ValidationFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"warningFlags\", \"ValidationFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isPilot\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"instructor\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"instructionPlan\", \"FlightCategoryCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"lastSignIn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"startToFlyDate\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"authorizedToFlyBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"authorizedPhotographyBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"updateFlags\", \"number\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { UserTypeCode } from './UserTypeCode';\nimport { UserRoleFlag } from './UserRoleFlag';\nimport { UserStatusCode } from './UserStatusCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// User represents a human / system operator that has access to the system, and can perform operations\n// User authentication is done by an external identity provider\nexport class User extends BaseEntityEx {\n\n\t// User name \n\tpublic name: string;\n\n\t// User email \n\tpublic email: string;\n\n\t// User mobile phone number (for notification and validation) \n\tpublic mobile: string;\n\n\t// User type: UNDEFINED | SYSADMIN | SUPPORT | USER \n\tpublic type: UserTypeCode;\n\n\t// User roles flags \n\tpublic roles: UserRoleFlag;\n\n\t// User permissions groups \n\tpublic groups: string[];\n\n\t// User status: UNDEFINED | PENDING | ACTIVE | BLOCKED | SUSPENDED \n\tpublic status: UserStatusCode;\n\n\t// User last successful sign in timestamp [epoch time milliseconds] \n\tpublic lastSignIn: number;\n\n}\n\nexport function GetUserColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"UserTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"roles\", \"UserRoleFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"groups\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"UserStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"lastSignIn\", \"number\", \"datetime\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { FlightPurposeCode } from './FlightPurposeCode';\nimport { FlightTypeCode } from './FlightTypeCode';\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { AssessmentCode } from './AssessmentCode';\n\n// PostFlightInfo data structure to be used by the post-flight form\nexport class PostFlightInfo {\n\n\t// Flight number as string \n\tpublic flightId: string;\n\n\t// Flight number \n\tpublic flightNumber: number;\n\n\t// Airplane Name \n\tpublic airplane: string;\n\n\t// Total hours left to inspection \n\tpublic hoursToInspection: number;\n\n\t// Purpose of the flight \n\tpublic purpose: FlightPurposeCode;\n\n\t// Flight type: PRIVATE | COMMERCIAL ... \n\tpublic type: FlightTypeCode;\n\n\t// Flight Instruction Plan of the student \n\tpublic instructionPlan: FlightCategoryCode;\n\n\t// Takeoff Planned time \n\tpublic takeoffPlannedTime: number;\n\n\t// Takeoff actual time \n\tpublic takeoffActualTime: number;\n\n\t// Takeoff field \n\tpublic takeoffField: string;\n\n\t// Takeoff hobbs \n\tpublic takeoffHobbs: number;\n\n\t// Landing Planned time \n\tpublic landingPlannedTime: number;\n\n\t// Landing actual time \n\tpublic landingActualTime: number;\n\n\t// Landing field \n\tpublic landingField: string;\n\n\t// Landing hobbs \n\tpublic landingHobbs: number;\n\n\t// Landing tach \n\tpublic landingTach: number;\n\n\t// Previous tach - to ensure current tach is higher than previous \n\tpublic previousTach: number;\n\n\t// Captain / Instructor ID \n\tpublic captainId: string;\n\n\t// First Officer ID \n\tpublic firstOfficerId: string;\n\n\t// Captain / Instructor name \n\tpublic captainName: string;\n\n\t// First Officer name \n\tpublic firstOfficerName: string;\n\n\t// Flight destination \n\tpublic destination: string;\n\n\t// Actual fuel on board (GALLONS) \n\tpublic actualFuelOnBoard: number;\n\n\t// Actual oil level (QUARTZ) \n\tpublic actualOilOnBoard: number;\n\n\t// Lesson number - lesson_number \n\tpublic lessonNumber: number;\n\n\t// Lesson topic ID by the syllabus \n\tpublic lessonTopicId: string;\n\n\t// First Officer / Student flight counter - student_flights_count \n\tpublic lessonFlightCounter: number;\n\n\t// Instructor assessment (score) enum - lesson_score \n\tpublic assessment: AssessmentCode;\n\n\t// Total instructed flight time - from hobbs \n\tpublic instructedFlightTime: number;\n\n\t// Total Instrument flight time \n\tpublic instrumentsFlightTime: number;\n\n\t// Total student Solo flight time \n\tpublic soloFlightTime: number;\n\n\t// Total instructed navigation flight time \n\tpublic instructedNavTime: number;\n\n\t// Total student Solo navigation flight time \n\tpublic soloNavTime: number;\n\n\t// Total student night flight time \n\tpublic nightTime: number;\n\n\t// Pilot / Instructor comments after flight \n\tpublic lessonComments: string;\n\n\t// Flight description - post flight notes \n\tpublic description: string;\n\n\t// This form was already reported \n\tpublic reportedBy: string;\n\n constructor(flightId?: string, flightNumber?: number, airplane?: string, hoursToInspection?: number, purpose?: FlightPurposeCode, type?: FlightTypeCode, instructionPlan?: FlightCategoryCode, takeoffPlannedTime?: number, takeoffActualTime?: number, takeoffField?: string, takeoffHobbs?: number, landingPlannedTime?: number, landingActualTime?: number, landingField?: string, landingHobbs?: number, landingTach?: number, previousTach?: number, captainId?: string, firstOfficerId?: string, captainName?: string, firstOfficerName?: string, destination?: string, actualFuelOnBoard?: number, actualOilOnBoard?: number, lessonNumber?: number, lessonTopicId?: string, lessonFlightCounter?: number, lessonAssessment?: AssessmentCode, instructedFlightTime?: number, instrumentsFlightTime?: number, soloFlightTime?: number, instructedNavTime?: number, soloNavTime?: number, nightTime?: number, lessonComments?: string, description?: string, reportedBy?: string) { \n if (flightId !== undefined) { this.flightId = flightId; }\n if (flightNumber !== undefined) { this.flightNumber = flightNumber; }\n if (airplane !== undefined) { this.airplane = airplane; }\n if (hoursToInspection !== undefined) { this.hoursToInspection = hoursToInspection; }\n if (purpose !== undefined) { this.purpose = purpose; }\n if (type !== undefined) { this.type = type; }\n if (instructionPlan !== undefined) { this.instructionPlan = instructionPlan; }\n if (takeoffPlannedTime !== undefined) { this.takeoffPlannedTime = takeoffPlannedTime; }\n if (takeoffActualTime !== undefined) { this.takeoffActualTime = takeoffActualTime; }\n if (takeoffField !== undefined) { this.takeoffField = takeoffField; }\n if (takeoffHobbs !== undefined) { this.takeoffHobbs = takeoffHobbs; }\n if (landingPlannedTime !== undefined) { this.landingPlannedTime = landingPlannedTime; }\n if (landingActualTime !== undefined) { this.landingActualTime = landingActualTime; }\n if (landingField !== undefined) { this.landingField = landingField; }\n if (landingHobbs !== undefined) { this.landingHobbs = landingHobbs; }\n if (landingTach !== undefined) { this.landingTach = landingTach; }\n if (previousTach !== undefined) { this.previousTach = previousTach; }\n if (captainId !== undefined) { this.captainId = captainId; }\n if (firstOfficerId !== undefined) { this.firstOfficerId = firstOfficerId; }\n if (captainName !== undefined) { this.captainName = captainName; }\n if (firstOfficerName !== undefined) { this.firstOfficerName = firstOfficerName; }\n if (destination !== undefined) { this.destination = destination; }\n if (actualFuelOnBoard !== undefined) { this.actualFuelOnBoard = actualFuelOnBoard; }\n if (actualOilOnBoard !== undefined) { this.actualOilOnBoard = actualOilOnBoard; }\n if (lessonNumber !== undefined) { this.lessonNumber = lessonNumber; }\n if (lessonTopicId !== undefined) { this.lessonTopicId = lessonTopicId; }\n if (lessonFlightCounter !== undefined) { this.lessonFlightCounter = lessonFlightCounter; }\n if (lessonAssessment !== undefined) { this.assessment = lessonAssessment; }\n if (instructedFlightTime !== undefined) { this.instructedFlightTime = instructedFlightTime; }\n if (instrumentsFlightTime !== undefined) { this.instrumentsFlightTime = instrumentsFlightTime; }\n if (soloFlightTime !== undefined) { this.soloFlightTime = soloFlightTime; }\n if (instructedNavTime !== undefined) { this.instructedNavTime = instructedNavTime; }\n if (soloNavTime !== undefined) { this.soloNavTime = soloNavTime; }\n if (nightTime !== undefined) { this.nightTime = nightTime; }\n if (lessonComments !== undefined) { this.lessonComments = lessonComments; }\n if (description !== undefined) { this.description = description; }\n if (reportedBy !== undefined) { this.reportedBy = reportedBy; }\n }\n\n}\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// BookingSlot entity is a slot for booking a flight\nexport class BookingSlot extends BaseEntityEx {\n\n\t// Slot start time \n\tpublic from: number;\n\n\t// Slot end time \n\tpublic to: number;\n\n\t// Slot is open for reservation \n\tpublic isOpen: boolean;\n\n\t// Slot is available \n\tpublic isFree: boolean;\n\n\t// Account ID (who took the slot) \n\tpublic accountId: string;\n\n\t// Contact ID (who took the slot) \n\tpublic contactId: string;\n\n\t// Booking ID (Booking reference) \n\tpublic bookingId: string;\n\n}\n\nexport function GetBookingSlotColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"from\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"to\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"isOpen\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isFree\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"contactId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"bookingId\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// Tuple represents a generic key-value pair.\n// It is useful for storing associated data where a full map is not needed or order matters.\n// Type Parameters:\n// - K: The type of the key.\n// - V: The type of the value.\nexport class Tuple<K,V> {\n\n\t// Key is the first element of the tuple \n\tpublic key: K;\n\n\t// Value is the second element of the tuple \n\tpublic value: V;\n\n constructor(key?: K, value?: V) { \n if (key !== undefined) { this.key = key; }\n if (value !== undefined) { this.value = value; }\n }\n\n}\n\n\n","\n\n// EntityAction represents the type of action performed on an entity.\nexport class EntityAction {\n\n constructor() { \n }\n\n}\n\n\n","\n\n// Timestamp represents Epoch milliseconds timestamp.\n// It is the primary time representation in the system, allowing for easy serialization and arithmetic.\nexport class Timestamp {\n\n constructor() { \n }\n\n}\n\n\n","\n\n// TOLData is Takeoff and landing data\nexport class TOLData {\n\n\t// Planned Time [epoch time milliseconds] \n\tpublic planned: number;\n\n\t// Actual Time [epoch time milliseconds] \n\tpublic time: number;\n\n\t// Hobs count \n\tpublic hobs: number;\n\n\t// Tachometer count \n\tpublic tach: number;\n\n\t// Airport / Field \n\tpublic field: string;\n\n\t// Field Timezone provided as IANA Time zone abbreviation (e.g. IST, CET) or by UTC offset (e.g. +02:00) \n\tpublic timezone: string;\n\n constructor(planned?: number, time?: number, hobs?: number, tach?: number, field?: string, timezone?: string) { \n if (planned !== undefined) { this.planned = planned; }\n if (time !== undefined) { this.time = time; }\n if (hobs !== undefined) { this.hobs = hobs; }\n if (tach !== undefined) { this.tach = tach; }\n if (field !== undefined) { this.field = field; }\n if (timezone !== undefined) { this.timezone = timezone; }\n }\n\n}\n\n\n","\nimport { FlightTypeCode } from './FlightTypeCode';\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { AssessmentCode } from './AssessmentCode';\n\n// Lesson includes flight instruction lesson details\nexport class Lesson {\n\n\t// Lesson number - lesson_number \n\tpublic number: number;\n\n\t// Lesson type: INSTRUCTION | INSTRUCTION_CVFR | INSTRUCTION_IFR ... \n\tpublic type: FlightTypeCode;\n\n\t// Flight instruction plan \n\tpublic instructionPlan: FlightCategoryCode;\n\n\t// Lesson topic from the instruction plan syllabus \n\tpublic topicId: string;\n\n\t// Instructor assessment (score) enum - lesson_score \n\tpublic assessment: AssessmentCode;\n\n\t// Pilot / Instructor comments after flight \n\tpublic comments: string;\n\n\t// First Officer / Student flight counter - student_flights_count \n\tpublic flightCounter: number;\n\n\t// Total instructed flight time - from hobbs \n\tpublic instructedFlightTime: number;\n\n\t// Total Instrument flight time \n\tpublic instrumentsFlightTime: number;\n\n\t// Total student Solo flight time \n\tpublic soloFlightTime: number;\n\n\t// Total instructed navigation flight time \n\tpublic instructedNavTime: number;\n\n\t// Total student Solo navigation flight time \n\tpublic soloNavTime: number;\n\n\t// Total student night flight time \n\tpublic nightTime: number;\n\n constructor(number?: number, type?: FlightTypeCode, instructionPlan?: FlightCategoryCode, topicId?: string, assessment?: AssessmentCode, comments?: string, flightCounter?: number, instructedFlightTime?: number, instrumentsFlightTime?: number, soloFlightTime?: number, instructedNavTime?: number, soloNavTime?: number, nightTime?: number) { \n if (number !== undefined) { this.number = number; }\n if (type !== undefined) { this.type = type; }\n if (instructionPlan !== undefined) { this.instructionPlan = instructionPlan; }\n if (topicId !== undefined) { this.topicId = topicId; }\n if (assessment !== undefined) { this.assessment = assessment; }\n if (comments !== undefined) { this.comments = comments; }\n if (flightCounter !== undefined) { this.flightCounter = flightCounter; }\n if (instructedFlightTime !== undefined) { this.instructedFlightTime = instructedFlightTime; }\n if (instrumentsFlightTime !== undefined) { this.instrumentsFlightTime = instrumentsFlightTime; }\n if (soloFlightTime !== undefined) { this.soloFlightTime = soloFlightTime; }\n if (instructedNavTime !== undefined) { this.instructedNavTime = instructedNavTime; }\n if (soloNavTime !== undefined) { this.soloNavTime = soloNavTime; }\n if (nightTime !== undefined) { this.nightTime = nightTime; }\n }\n\n}\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { Permission } from './Permission';\nimport { StringKeyValue } from './StringKeyValue';\nimport { ColumnDef } from './ColumnDef';\n\n// Group represents a group of users to share permissions\nexport class Group extends BaseEntityEx {\n\n\t// Group name \n\tpublic name: string;\n\n\t// Group email \n\tpublic email: string;\n\n\t// List of permissions \n\tpublic permissions: Permission[];\n\n\t// List of group members (id->name pairs) - not persistent \n\tpublic members: StringKeyValue[];\n\n}\n\nexport function GetGroupColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"permissions\", \"Permission\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"members\", \"StringKeyValue\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// Point model represents a pont on 2D area\nexport class Point {\n\n\t// X axis value \n\tpublic x: number;\n\n\t// Y axis value \n\tpublic y: number;\n\n constructor(x?: number, y?: number) { \n if (x !== undefined) { this.x = x; }\n if (y !== undefined) { this.y = y; }\n }\n\n}\n\n\n","\nimport { UserTypeCode } from './UserTypeCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// AuditLog entity is a log entry in the audit log to track users / service account actions\nexport class AuditLog extends BaseEntityEx {\n\n\t// User Id \n\tpublic userId: string;\n\n\t// User type: UNDEFINED | SYSADMIN | USER | SERVICE_ACCOUNT \n\tpublic userType: UserTypeCode;\n\n\t// Action that was performed \n\tpublic action: string;\n\n\t// Item type \n\tpublic itemType: string;\n\n\t// Item Id \n\tpublic itemId: string;\n\n\t// Item Name \n\tpublic itemName: string;\n\n\t// Item value before change [Json] \n\tpublic beforeChange: string;\n\n\t// Item delta after change [Json] \n\tpublic afterChange: string;\n\n}\n\nexport function GetAuditLogColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"userId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"userType\", \"UserTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"action\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"itemType\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"itemId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"itemName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"beforeChange\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"afterChange\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { FlightPurposeCode } from './FlightPurposeCode';\nimport { FlightStatusCode } from './FlightStatusCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { BookingTypeFlag } from './BookingTypeFlag';\nimport { BookingStatusCode } from './BookingStatusCode';\nimport { ColumnDef } from './ColumnDef';\n\n// BookingPlan entity is a subset of booking and flight union for booking planning tools\nexport class BookingPlan extends BaseEntityEx {\n\n\t// Name \n\tpublic name: string;\n\n\t// Description \n\tpublic description: string;\n\n\t// Flag to mark entry as flight or booking \n\tpublic isFlight: boolean;\n\n\t// Account ID \n\tpublic accountId: string;\n\n\t// Account Name \n\tpublic accountName: string;\n\n\t// Airplane ID \n\tpublic airplaneId: string;\n\n\t// Airplane ID \n\tpublic airplaneName: string;\n\n\t// Type of booking \n\tpublic type: BookingTypeFlag;\n\n\t// Status of booking \n\tpublic status: BookingStatusCode;\n\n\t// When to ask for the airplane [Epoch milliseconds] \n\tpublic placementOn: number;\n\n\t// When to return the airplane [Epoch milliseconds] \n\tpublic placementTo: number;\n\n\t// Flight number (for flights only) \n\tpublic flightNumber: number;\n\n\t// Flight ID (for flights only) \n\tpublic flightId: string;\n\n\t// Purpose of the flight (for flights only) \n\tpublic flightPurpose: FlightPurposeCode;\n\n\t// Status of flight (for flights only) \n\tpublic flightStatus: FlightStatusCode;\n\n}\n\nexport function GetBookingPlanColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isFlight\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"BookingTypeFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"BookingStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"placementOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"placementTo\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightPurpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightStatus\", \"FlightStatusCode\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// PilotQualificationsRisks group of pilot qualifications risk values\nexport class PilotQualificationsRisks {\n\n\t// Captain with less than 200 hours in aircraft type \n\tpublic captLess200Hr: number;\n\n\t// Captain with less than 100 hours in the last 90 days \n\tpublic captLess100Hr90d: number;\n\n\t// First Officer with less than 200 hours in aircraft type \n\tpublic firstOfLess200Hr: number;\n\n\t// First Officer with less than 100 hours in the last 90 days \n\tpublic firstOfLess100Hr90d: number;\n\n constructor(captLess200Hr?: number, captLess100Hr90d?: number, firstOfLess200Hr?: number, firstOfLess100Hr90d?: number) { \n if (captLess200Hr !== undefined) { this.captLess200Hr = captLess200Hr; }\n if (captLess100Hr90d !== undefined) { this.captLess100Hr90d = captLess100Hr90d; }\n if (firstOfLess200Hr !== undefined) { this.firstOfLess200Hr = firstOfLess200Hr; }\n if (firstOfLess100Hr90d !== undefined) { this.firstOfLess100Hr90d = firstOfLess100Hr90d; }\n }\n\n}\n\n\n","\n\n// FollowUpAction model represents lead follow-up action\nexport class FollowUpAction {\n\n\t// When followup action was reported [Epoch milliseconds] \n\tpublic reportedOn: number;\n\n\t// Who did the followup action \n\tpublic reportedBy: string;\n\n\t// Action description \n\tpublic description: string;\n\n constructor(reportedOn?: number, reportedBy?: string, description?: string) { \n if (reportedOn !== undefined) { this.reportedOn = reportedOn; }\n if (reportedBy !== undefined) { this.reportedBy = reportedBy; }\n if (description !== undefined) { this.description = description; }\n }\n\n}\n\n\n","\nimport { FlightPurposeCode } from './FlightPurposeCode';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Price entity is a single pricing of an airplane per flight purpose in the price list\nexport class Price extends BaseEntityEx {\n\n\t// Price item name \n\tpublic name: string;\n\n\t// Airplane ID \n\tpublic airplaneId: string;\n\n\t// Special price for a specific account (* for all accounts) \n\tpublic accountId: string;\n\n\t// Special price for a specific purpose (UNDEFINED for all) \n\tpublic purpose: FlightPurposeCode;\n\n\t// Cost of the airplane per flight purpose \n\tpublic cost: number;\n\n}\n\nexport function GetPriceColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"cost\", \"number\", \"decimal\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// AnyKeyValue model used as a string key-value pair\nexport class AnyKeyValue {\n\n\t// Tuple key \n\tpublic key: string;\n\n\t// Tuple value \n\tpublic value: any;\n\n constructor(key?: string, value?: any) { \n if (key !== undefined) { this.key = key; }\n if (value !== undefined) { this.value = value; }\n }\n\n}\n\n\n","\nimport { LeadStatusCode } from './LeadStatusCode';\n\n// LeadsFilter list of fields to filter leads\nexport class LeadsFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by status(s) \n\tpublic status: LeadStatusCode[];\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, status?: LeadStatusCode[], sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (status !== undefined) { this.status = status; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\n\n// TafReport encapsulates TAF report data\nexport class TafReport {\n\n\t// Report ID \n\tpublic id: string;\n\n\t// ICAO Name of the airport / area \n\tpublic station: string;\n\n\t// Valid from date \n\tpublic validFrom: string;\n\n\t// Raw METAR content \n\tpublic content: string;\n\n\t// Human-readable description of the METAR \n\tpublic description: string;\n\n constructor(id?: string, station?: string, validFrom?: string, content?: string, description?: string) { \n if (id !== undefined) { this.id = id; }\n if (station !== undefined) { this.station = station; }\n if (validFrom !== undefined) { this.validFrom = validFrom; }\n if (content !== undefined) { this.content = content; }\n if (description !== undefined) { this.description = description; }\n }\n\n}\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { FlightTypeCode } from './FlightTypeCode';\nimport { FlightStatusCode } from './FlightStatusCode';\nimport { TOLData } from './TOLData';\nimport { FlightPurposeCode } from './FlightPurposeCode';\nimport { FlightClassCode } from './FlightClassCode';\nimport { BillingStatusCode } from './BillingStatusCode';\nimport { Lesson } from './Lesson';\nimport { ColumnDef } from './ColumnDef';\n\n// Flight entity is a single flight in the airplane\nexport class Flight extends BaseEntityEx {\n\n\t// Flight name \n\tpublic name: string;\n\n\t// Flight description \n\tpublic description: string;\n\n\t// Flight number \n\tpublic flightNumber: number;\n\n\t// Flight number as string \n\tpublic flightString: string;\n\n\t// Flight takeoff time (same as Takeoff.Planned) \n\tpublic flightTime: number;\n\n\t// Flight destination \n\tpublic destination: string;\n\n\t// Flag to indicate if this flight includes pattern slot (only in case of flight lesson) \n\tpublic isPatterns: boolean;\n\n\t// Account ID \n\tpublic accountId: string;\n\n\t// Airplane ID \n\tpublic airplaneId: string;\n\n\t// Captain / Instructor contact ID \n\tpublic captain: string;\n\n\t// First Officer / Student contact ID \n\tpublic firstOfficer: string;\n\n\t// Passengers names \n\tpublic passengers: string[];\n\n\t// Crew members (name:role) \n\tpublic crew: string[];\n\n\t// Purpose of the flight \n\tpublic purpose: FlightPurposeCode;\n\n\t// In case of OTHER, Purpose of the flight \n\tpublic purposeOt: string;\n\n\t// Flight class - replace purpose \n\tpublic flightClass: FlightClassCode;\n\n\t// Flight sub-class - replace purpose \n\tpublic flightCategory: FlightCategoryCode;\n\n\t// Flight type: CVFR | IFR \n\tpublic type: FlightTypeCode;\n\n\t// Flight status: REGISTERED | DELETE | CANCELLED ... \n\tpublic status: FlightStatusCode;\n\n\t// Billing status \n\tpublic billingStatus: BillingStatusCode;\n\n\t// Flight attending time [YYYY-MM-DD HH:mm] \n\tpublic attendingTime: string;\n\n\t// Flight boarding time [YYYY-MM-DD HH:mm] \n\tpublic boardingTime: string;\n\n\t// Takeoff data \n\tpublic takeoff: TOLData;\n\n\t// Landing data \n\tpublic landing: TOLData;\n\n\t// Weight and Balance configuration \n\tpublic wbConfig: string;\n\n\t// Weight and Balance manual specification \n\tpublic wbManual: string;\n\n\t// Pre Flight notes \n\tpublic preFlightNotes: string;\n\n\t// Flight operation notes \n\tpublic operationNotes: string;\n\n\t// Fuel level \n\tpublic fuelLevel: number;\n\n\t// Oil level \n\tpublic oilLevel: number;\n\n\t// Flight lesson attributes \n\tpublic lesson: Lesson;\n\n\t// Pilot certification check ? \n\tpublic pilotCertCheck: number;\n\n\t// Contact Id of the pre-flight form reporter \n\tpublic preFlightReporter: string;\n\n\t// Contact Id of the post-flight form reporter \n\tpublic postFlightReporter: string;\n\n\t// Contact Id of the post-flight instructor form reporter \n\tpublic instructorReporter: string;\n\n\t// Booking Id reference \n\tpublic bookingReference: string;\n\n}\n\nexport function GetFlightColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightNumber\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightString\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightTime\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"destination\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isPatterns\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"captain\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"firstOfficer\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"passengers\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"crew\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purpose\", \"FlightPurposeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"purposeOt\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightClass\", \"FlightClassCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightCategory\", \"FlightCategoryCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"FlightTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"FlightStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"billingStatus\", \"BillingStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"attendingTime\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"boardingTime\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"takeoff\", \"TOLData\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"landing\", \"TOLData\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"wbConfig\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"wbManual\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"preFlightNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"operationNotes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fuelLevel\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"oilLevel\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"lesson\", \"Lesson\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"pilotCertCheck\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"preFlightReporter\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"postFlightReporter\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"instructorReporter\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"bookingReference\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// TripRisks group of trip risk values\nexport class TripRisks {\n\n\t// Trip - Twilight operation \n\tpublic twilightOperation: number;\n\n\t// Trip - nighttime operation \n\tpublic nightTimeOperation: number;\n\n\t// Trip - Repositioning flight (no passengers or cargo) \n\tpublic repositioningFlight: number;\n\n\t// Pop-up trip (less than 4 hours notice) \n\tpublic popupTripLess4HrsNotice: number;\n\n\t// International trip \n\tpublic internationalTrip: number;\n\n constructor(twilightOperation?: number, nightTimeOperation?: number, repositioningFlight?: number, popupTripLess4HrsNotice?: number, internationalTrip?: number) { \n if (twilightOperation !== undefined) { this.twilightOperation = twilightOperation; }\n if (nightTimeOperation !== undefined) { this.nightTimeOperation = nightTimeOperation; }\n if (repositioningFlight !== undefined) { this.repositioningFlight = repositioningFlight; }\n if (popupTripLess4HrsNotice !== undefined) { this.popupTripLess4HrsNotice = popupTripLess4HrsNotice; }\n if (internationalTrip !== undefined) { this.internationalTrip = internationalTrip; }\n }\n\n}\n\n\n","\nimport { NotificationTypeCode } from './NotificationTypeCode';\nimport { PriorityCode } from './PriorityCode';\nimport { StringKeyValue } from './StringKeyValue';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Notification user notification entry\nexport class Notification extends BaseEntityEx {\n\n\t// Notification type: GENERAL | FLIGHTS | CERTIFICATE | UNREAD | BALANCE ... \n\tpublic type: NotificationTypeCode;\n\n\t// Airplane type (model, variant) \n\tpublic description: string;\n\n\t// Notification severity: LOW | MEDIUM | HIGH \n\tpublic severity: PriorityCode;\n\n\t// list of related items (ID, NAME) \n\tpublic items: StringKeyValue[];\n\n\t// number of items in the list \n\tpublic count: number;\n\n}\n\nexport function GetNotificationColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"NotificationTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"severity\", \"PriorityCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"items\", \"StringKeyValue\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"count\", \"number\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { Syllabus } from './Syllabus';\nimport { SyllabusStageCode } from './SyllabusStageCode';\nimport { SyllabusTrack } from './SyllabusTrack';\nimport { ColumnDef } from './ColumnDef';\n\n// StudentSheet entity is an aggregation of all student flight lessons\nexport class StudentSheet extends BaseEntityEx {\n\n\t// Syllabus plan (Flight category) \n\tpublic plan: FlightCategoryCode;\n\n\t// Airplane type \n\tpublic airplaneType: string;\n\n\t// Student Account ID \n\tpublic accountId: string;\n\n\t// Student contact ID \n\tpublic studentId: string;\n\n\t// Student name \n\tpublic studentName: string;\n\n\t// ID number \n\tpublic idNumber: string;\n\n\t// Pilot license number\tFlightTopics []SyllabusTopic `json:\"flightTopics\"` // Flight topics \n\tpublic pilotLicense: string;\n\n\t// Flight topics \n\tpublic flightTopics: Syllabus[];\n\n\t// Class topics \n\tpublic classTopics: Syllabus[];\n\n\t// Simulator topics \n\tpublic simTopics: Syllabus[];\n\n\t// Topic stages in the syllabus (group) \n\tpublic stages: SyllabusStageCode[];\n\n\t// Syllabus topics tracking (flights + sim + class) \n\tpublic tracking: SyllabusTrack[];\n\n\t// Total instructed flight time \n\tpublic totalInstructedFlightTime: number;\n\n\t// Total Instrument flight time \n\tpublic totalInstrumentsFlightTime: number;\n\n\t// Total student Solo flight time \n\tpublic totalSoloFlightTime: number;\n\n\t// Total instructed navigation flight time \n\tpublic totalInstructedNavTime: number;\n\n\t// Total student Solo navigation flight time \n\tpublic totalSoloNavTime: number;\n\n\t// Total student night flight time \n\tpublic totalNightFlightTime: number;\n\n\t// Total flight time \n\tpublic totalFlightTime: number;\n\n}\n\nexport function GetStudentSheetColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"plan\", \"FlightCategoryCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airplaneType\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"accountId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"studentId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"studentName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"idNumber\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"pilotLicense\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"flightTopics\", \"Syllabus\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"classTopics\", \"Syllabus\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"simTopics\", \"Syllabus\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"stages\", \"SyllabusStageCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"tracking\", \"SyllabusTrack\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"totalInstructedFlightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalInstrumentsFlightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalSoloFlightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalInstructedNavTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalSoloNavTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalNightFlightTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"totalFlightTime\", \"number\", \"decimal\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { TypeRatingFlag } from './TypeRatingFlag';\nimport { AirplaneStatusCode } from './AirplaneStatusCode';\nimport { AirplaneValidationFlag } from './AirplaneValidationFlag';\nimport { Magneto } from './Magneto';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { Engine } from './Engine';\nimport { Propeller } from './Propeller';\nimport { Fuel } from './Fuel';\nimport { WBConfig } from './WBConfig';\nimport { ColumnDef } from './ColumnDef';\n\n// Airplane entity represents an airplane\nexport class Airplane extends BaseEntityEx {\n\n\t// Name \n\tpublic name: string;\n\n\t// Description \n\tpublic description: string;\n\n\t// Airplane model \n\tpublic model: string;\n\n\t// Airplane serial number \n\tpublic serialNo: string;\n\n\t// Airplane type rating \n\tpublic typeRating: TypeRatingFlag;\n\n\t// Airplane status \n\tpublic status: AirplaneStatusCode;\n\n\t// Auto-calculated flag to mark if the airplane is active (available) or not \n\tpublic isActive: boolean;\n\n\t// Airplane hobs counter \n\tpublic hobs: number;\n\n\t// Airplane tachometer counter \n\tpublic tach: number;\n\n\t// Airplane next tachometer for inspection \n\tpublic nextTach: number;\n\n\t// Airplane air time (hours) \n\tpublic airTime: number;\n\n\t// Airplane customer number \n\tpublic customerNo: string;\n\n\t// Airworthiness flags \n\tpublic airworthiness: AirplaneValidationFlag;\n\n\t// Airworthiness required flags for the airplane to be active \n\tpublic required: AirplaneValidationFlag;\n\n\t// Fixed value to first flight \n\tpublic fixedValueToFirstFlight: number;\n\n\t// AC total time \n\tpublic acTotalTime: number;\n\n\t// Single / Left Engine indicators \n\tpublic engine: Engine;\n\n\t// Left Magneto indicators \n\tpublic leftMagneto: Magneto;\n\n\t// Right Magneto indicators \n\tpublic rightMagneto: Magneto;\n\n\t// Single / Left Propeller indicators \n\tpublic propeller: Propeller;\n\n\t// Fuel indicators \n\tpublic fuel: Fuel;\n\n\t// Airplane related documents \n\tpublic documents: string[];\n\n\t// Weight and Balance configuration parameters \n\tpublic wbConfig: WBConfig;\n\n}\n\nexport function GetAirplaneColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"model\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"serialNo\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"typeRating\", \"TypeRatingFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"AirplaneStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"isActive\", \"boolean\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"hobs\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"tach\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"nextTach\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"airTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"customerNo\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"airworthiness\", \"AirplaneValidationFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"required\", \"AirplaneValidationFlag\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fixedValueToFirstFlight\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"acTotalTime\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"engine\", \"Engine\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"leftMagneto\", \"Magneto\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"rightMagneto\", \"Magneto\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"propeller\", \"Propeller\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fuel\", \"Fuel\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"documents\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"wbConfig\", \"WBConfig\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Lookup entity is a key-value string lookup (used as a configurable, open enum)\n// Id of the lookup is in the format of [key]@[domain]\nexport class Lookup extends BaseEntityEx {\n\n\t// Lookup domain \n\tpublic domain: string;\n\n\t// Group \n\tpublic group: string;\n\n\t// Action that was performed \n\tpublic key: string;\n\n\t// Item string value \n\tpublic value: string;\n\n\t// Item numeric value (for ordering) \n\tpublic counter: number;\n\n}\n\nexport function GetLookupColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"domain\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"group\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"key\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"value\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"counter\", \"number\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\nimport { BaseRestResponse } from './BaseRestResponse';\nimport { ColumnDef } from './ColumnDef';\n\n// EntitiesResponse message is returned for any action returning multiple entities\nexport class EntitiesResponse<T> extends BaseRestResponse {\n\n\t// Current page (Bulk) number \n\tpublic page: number;\n\n\t// Size of page (items in bulk) \n\tpublic size: number;\n\n\t// Total number of pages \n\tpublic pages: number;\n\n\t// Total number of items in the query \n\tpublic total: number;\n\n\t// List of objects in the current result set \n\tpublic list: T[];\n\n}\n\nexport function GetEntitiesResponseColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"page\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"size\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"pages\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"total\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"list\", \"T\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// SimpleEntity is a generic wrapper to express a primitive type as an Entity.\n// It is useful when you need to treat a simple value (like a string or int) as a full-fledged Entity\n// in the system, for example when passing it to functions that expect an Entity interface.\nexport class SimpleEntity<T> {\n\n\t// Value is the wrapped entity value \n\tpublic value: T;\n\n constructor(value?: T) { \n if (value !== undefined) { this.value = value; }\n }\n\n}\n\n\n","\n\n// Address model represents an address\nexport class Address {\n\n\t// Street address \n\tpublic street: string;\n\n\t// City \n\tpublic city: string;\n\n\t// State (if applicable) \n\tpublic state: string;\n\n\t// Local zip code (postal cod) \n\tpublic zipCode: string;\n\n\t// Country name \n\tpublic country: string;\n\n constructor(street?: string, city?: string, state?: string, zipCode?: string, country?: string) { \n if (street !== undefined) { this.street = street; }\n if (city !== undefined) { this.city = city; }\n if (state !== undefined) { this.state = state; }\n if (zipCode !== undefined) { this.zipCode = zipCode; }\n if (country !== undefined) { this.country = country; }\n }\n\n}\n\n\n","\nimport { FlightCategoryCode } from './FlightCategoryCode';\nimport { InstructionTypeCode } from './InstructionTypeCode';\n\n// SyllabusFilter list of fields to filter syllabus\nexport class SyllabusFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by Syllabus plan(s) \n\tpublic plan: FlightCategoryCode[];\n\n\t// Filter by Lesson type(s) \n\tpublic type: InstructionTypeCode[];\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, plan?: FlightCategoryCode[], type?: InstructionTypeCode[], sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (plan !== undefined) { this.plan = plan; }\n if (type !== undefined) { this.type = type; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { AccountTypeCode } from './AccountTypeCode';\nimport { AccountStatusCode } from './AccountStatusCode';\nimport { Address } from './Address';\nimport { ColumnDef } from './ColumnDef';\n\n// Account entity is a billing account in the system\nexport class Account extends BaseEntityEx {\n\n\t// Account name \n\tpublic name: string;\n\n\t// Account english name \n\tpublic enName: string;\n\n\t// Account type: STUDENT | PRIVATE | BUSINESS ... \n\tpublic type: AccountTypeCode;\n\n\t// Account description \n\tpublic description: string;\n\n\t// Account status: UNDEFINED | ACTIVE | INACTIVE | BLOCKED | SUSPENDED \n\tpublic status: AccountStatusCode;\n\n\t// Office / Landline phone \n\tpublic phone: string;\n\n\t// Mobile phone \n\tpublic mobile: string;\n\n\t// Email address \n\tpublic email: string;\n\n\t// Address \n\tpublic address: Address;\n\n\t// Campaign Id \n\tpublic campaignId: string;\n\n\t// Current account credit balance \n\tpublic currentCredit: number;\n\n\t// Current account Hobbs balance \n\tpublic currentHobbs: number;\n\n\t// Base rate for billing \n\tpublic baseRate: number;\n\n\t// Permanent discount (percentage) \n\tpublic discount: number;\n\n\t// Green invoice Id \n\tpublic invoiceId: string;\n\n}\n\nexport function GetAccountColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"enName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"type\", \"AccountTypeCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"AccountStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"phone\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"address\", \"Address\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"campaignId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"currentCredit\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"currentHobbs\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"baseRate\", \"number\", \"decimal\"));\n\tresult.push(new ColumnDef(\"\", \"discount\", \"number\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"invoiceId\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// Fuel model represents fuel metrics\nexport class Fuel {\n\n\t// Fuel tank size [Liters] \n\tpublic tankSize: number;\n\n\t// Fuel consumption \n\tpublic consumption: number;\n\n\t// Fuel cost \n\tpublic cost: number;\n\n\t// Estimated fuel in tank \n\tpublic estimatedFuelInTank: number;\n\n\t// Estimated endurance \n\tpublic estimatedEndurance: number;\n\n\t// Last updated on \n\tpublic lastUpdatedOn: number;\n\n\t// Last updated by flight number \n\tpublic lastUpdatedByFlight: number;\n\n constructor(tankSize?: number, consumption?: number, cost?: number, estimatedFuelInTank?: number, estimatedEndurance?: number, lastUpdatedOn?: number, lastUpdatedByFlight?: number) { \n if (tankSize !== undefined) { this.tankSize = tankSize; }\n if (consumption !== undefined) { this.consumption = consumption; }\n if (cost !== undefined) { this.cost = cost; }\n if (estimatedFuelInTank !== undefined) { this.estimatedFuelInTank = estimatedFuelInTank; }\n if (estimatedEndurance !== undefined) { this.estimatedEndurance = estimatedEndurance; }\n if (lastUpdatedOn !== undefined) { this.lastUpdatedOn = lastUpdatedOn; }\n if (lastUpdatedByFlight !== undefined) { this.lastUpdatedByFlight = lastUpdatedByFlight; }\n }\n\n}\n\n\n","\nimport { DocumentRevision } from './DocumentRevision';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Document entity represents a document in the system\nexport class Document extends BaseEntityEx {\n\n\t// Document name \n\tpublic name: string;\n\n\t// Document description \n\tpublic description: string;\n\n\t// Entity linked to the document (in the format of: [type]:[id]) \n\tpublic linkedEntity: string;\n\n\t// Document creator \n\tpublic createdBy: string;\n\n\t// Document active from [epoch time milliseconds] \n\tpublic activeFrom: number;\n\n\t// Document active until [epoch time milliseconds] \n\tpublic activeUntil: number;\n\n\t// Document category \n\tpublic category: string;\n\n\t// Document Revisions \n\tpublic revisions: DocumentRevision[];\n\n\t// Active (current) revision \n\tpublic activeRevision: string;\n\n\t// Active revision URL \n\tpublic activeUrl: string;\n\n\t// Active revision MIME type \n\tpublic activeMimeType: string;\n\n}\n\nexport function GetDocumentColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"name\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"linkedEntity\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"activeFrom\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"activeUntil\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"category\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"revisions\", \"DocumentRevision\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"activeRevision\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"activeUrl\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"activeMimeType\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","\n\n// errorStruct is the default implementation of the Error interface.\nexport class errorStruct {\n\n\t// code is the numeric error code \n\tpublic code: number;\n\n\t// text is the error message \n\tpublic text: string;\n\n constructor(code?: number, text?: string) { \n if (code !== undefined) { this.code = code; }\n if (text !== undefined) { this.text = text; }\n }\n\n}\n\n\n","\n\n// TimeFrame represents a time interval with a start and end timestamp.\nexport class TimeFrame {\n\n\t// From is the start timestamp \n\tpublic from: number;\n\n\t// To is the end timestamp \n\tpublic to: number;\n\n constructor(from?: number, to?: number) { \n if (from !== undefined) { this.from = from; }\n if (to !== undefined) { this.to = to; }\n }\n\n}\n\n\n","\nimport { TimeFrame } from './TimeFrame';\nimport { FlightTypeCode } from './FlightTypeCode';\nimport { FlightStatusCode } from './FlightStatusCode';\nimport { BillingStatusCode } from './BillingStatusCode';\nimport { FlightPurposeCode } from './FlightPurposeCode';\n\n// FlightsFilter list of fields to filter flights\nexport class FlightsFilter {\n\n\t// Filter by free text search (using * wildcard) \n\tpublic search: string;\n\n\t// Filter by time frame \n\tpublic period: TimeFrame;\n\n\t// Filter by account ID \n\tpublic accountId: string;\n\n\t// Filter by Contact ID (captain or first officer) \n\tpublic contactId: string;\n\n\t// Filter by airplane ID \n\tpublic airplaneId: string;\n\n\t// Filter by type(s) \n\tpublic type: FlightTypeCode[];\n\n\t// Filter by status(s) \n\tpublic status: FlightStatusCode[];\n\n\t// Filter by billing status \n\tpublic billing: BillingStatusCode[];\n\n\t// Filter by purpose of flight \n\tpublic purpose: FlightPurposeCode[];\n\n\t// Last sort field \n\tpublic sort: string;\n\n\t// Current page \n\tpublic page: number;\n\n\t// current page size \n\tpublic size: number;\n\n\t// Props is a map of custom properties for extensibility \n\tpublic props: Record<string,any>;\n\n constructor(search?: string, period?: TimeFrame, accountId?: string, contactId?: string, airplaneId?: string, type?: FlightTypeCode[], status?: FlightStatusCode[], billing?: BillingStatusCode[], purpose?: FlightPurposeCode[], sort?: string, page?: number, size?: number, props?: Record<string,any>) { \n if (search !== undefined) { this.search = search; }\n if (period !== undefined) { this.period = period; }\n if (accountId !== undefined) { this.accountId = accountId; }\n if (contactId !== undefined) { this.contactId = contactId; }\n if (airplaneId !== undefined) { this.airplaneId = airplaneId; }\n if (type !== undefined) { this.type = type; }\n if (status !== undefined) { this.status = status; }\n if (billing !== undefined) { this.billing = billing; }\n if (purpose !== undefined) { this.purpose = purpose; }\n if (sort !== undefined) { this.sort = sort; }\n if (page !== undefined) { this.page = page; }\n if (size !== undefined) { this.size = size; }\n if (props !== undefined) { this.props = props; }\n }\n\n}\n\n\n","\n\n// IntEnumValue model used as an enum key- (int)value pair\nexport class IntEnumValue {\n\n\t// Tuple key \n\tpublic key: number;\n\n\t// Tuple value \n\tpublic value: number;\n\n constructor(key?: number, value?: number) { \n if (key !== undefined) { this.key = key; }\n if (value !== undefined) { this.value = value; }\n }\n\n}\n\n\n","\n\n// StringKeyValue model used as a string key-value pair\nexport class StringKeyValue {\n\n\t// Tuple key \n\tpublic key: string;\n\n\t// Tuple value \n\tpublic value: string;\n\n constructor(key?: string, value?: string) { \n if (key !== undefined) { this.key = key; }\n if (value !== undefined) { this.value = value; }\n }\n\n}\n\n\n","\n\n// DepartureRisks group of departure risk values\nexport class DepartureRisks {\n\n\t// Mountainous airport \n\tpublic mountainousAirport: number;\n\n\t// Control tower not operational at ETD \n\tpublic towerNotOperationalAtEtd: number;\n\n\t// Departure - Non-towered airport \n\tpublic nonToweredAirport: number;\n\n\t// Departure - Wet Runway \n\tpublic wetRunway: number;\n\n\t// Departure - Contaminated Runway \n\tpublic contaminatedRunway: number;\n\n constructor(mountainousAirport?: number, towerNotOperationalAtEtd?: number, nonToweredAirport?: number, wetRunway?: number, contaminatedRunway?: number) { \n if (mountainousAirport !== undefined) { this.mountainousAirport = mountainousAirport; }\n if (towerNotOperationalAtEtd !== undefined) { this.towerNotOperationalAtEtd = towerNotOperationalAtEtd; }\n if (nonToweredAirport !== undefined) { this.nonToweredAirport = nonToweredAirport; }\n if (wetRunway !== undefined) { this.wetRunway = wetRunway; }\n if (contaminatedRunway !== undefined) { this.contaminatedRunway = contaminatedRunway; }\n }\n\n}\n\n\n","\nimport { Address } from './Address';\nimport { LeadStatusCode } from './LeadStatusCode';\nimport { FollowUpAction } from './FollowUpAction';\nimport { BaseEntityEx } from './BaseEntityEx';\nimport { ColumnDef } from './ColumnDef';\n\n// Lead entity is a lead in the CRM system\nexport class Lead extends BaseEntityEx {\n\n\t// First name \n\tpublic firstName: string;\n\n\t// Last name \n\tpublic lastName: string;\n\n\t// Account description \n\tpublic description: string;\n\n\t// Office / Landline phone \n\tpublic phone: string;\n\n\t// Office / Landline fax \n\tpublic fax: string;\n\n\t// Mobile phone \n\tpublic mobile: string;\n\n\t// Email address \n\tpublic email: string;\n\n\t// Primary address \n\tpublic primaryAddress: Address;\n\n\t// Lead source \n\tpublic leadSource: string;\n\n\t// Lead source description \n\tpublic leadSourceDescription: string;\n\n\t// Campaign Id \n\tpublic campaignId: string;\n\n\t// Lead status: UNDEFINED | NEW | INPROCESS | ASSIGNED | ... \n\tpublic status: LeadStatusCode;\n\n\t// Referred by \n\tpublic referredBy: string;\n\n\t// Notes \n\tpublic notes: string;\n\n\t// Assigned to user \n\tpublic assignedTo: string;\n\n\t// Lead follow-up actions \n\tpublic actions: FollowUpAction[];\n\n\t// Booking Id reference for the introductory flight \n\tpublic bookingReference: string;\n\n}\n\nexport function GetLeadColumnsDef() : ColumnDef[] {\n let result : ColumnDef[] = [];\n\tresult.push(new ColumnDef(\"\", \"id\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"createdOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"updatedOn\", \"number\", \"datetime\"));\n\tresult.push(new ColumnDef(\"\", \"firstName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"lastName\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"description\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"phone\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"fax\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"mobile\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"email\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"primaryAddress\", \"Address\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"leadSource\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"leadSourceDescription\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"campaignId\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"status\", \"LeadStatusCode\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"referredBy\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"notes\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"assignedTo\", \"string\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"actions\", \"FollowUpAction\", \"\"));\n\tresult.push(new ColumnDef(\"\", \"bookingReference\", \"string\", \"\"));\n\t\n\n\treturn result;\n}\n\n\n\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { InjectionToken } from '@angular/core';\nimport { Injectable } from '@angular/core';\n\n//@Injectable()\nexport class AppConfig {\n api: string = '';\n}\n\nexport const APP_CONFIG = new InjectionToken<AppConfig>('CLIENT_LIB_APP_CONFIG');\n\nexport function provideClientLib(config: AppConfig): EnvironmentProviders {\n return makeEnvironmentProviders([\n { provide: APP_CONFIG, useValue: config },\n ]);\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpRequest } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\n\nconst httpOptions = {\n headers: new HttpHeaders({\n 'Content-Type': 'application/json',\n 'Cache-Control': 'no-cache, no-store',\n 'Access-Control-Allow-Origin': '*',\n 'Access-Control-Allow-Headers': 'Content-Type, Content-Length, Accept-Encoding, X-CSRF-Token, X-API-KEY, X-ACCESS-TOKEN, X-TIMEZONE, accept, origin, Cache-Control, X-Requested-With, Authorization, Content-Disposition, Content-Filename',\n })\n};\n\n// Utility class for all REST services with common functions\n@Injectable({\n providedIn: 'root'\n})\nexport class RestUtils {\n\n // Constructor with injected authentication service\n constructor(private http: HttpClient) { }\n\n // Upload is HTTP POST action but the body is File object\n upload<T>(file: File, url: string, ...params: string[]) {\n\n const resourceUrl = this.buildUrl(url, ...params);\n\n const formData: FormData = new FormData();\n formData.append('fileKey', file, file.name);\n\n const req = new HttpRequest('POST', resourceUrl, formData, {\n reportProgress: false,\n responseType: 'json',\n });\n return this.http.request<T>(req);\n }\n\n // Download is HTTP GET action but the content is a blob\n download(fileName: string, url: string, ...params: string[]) {\n const resourceUrl = this.buildUrl(url, ...params);\n\n let downloadLink = fileName\n\n // extract file name\n params.forEach(p => {\n let arr = p.split('=');\n if (arr.length > 1) {\n if (arr[0].toLowerCase() === 'filename') {\n downloadLink = arr[1];\n }\n }\n });\n\n // Set content type for: json / csv / xml / pdf /xslx\n let contentType = this.getMimeType(downloadLink);\n\n return this.http.get(resourceUrl, {\n responseType: 'blob',\n reportProgress: true,\n observe: 'events',\n headers: new HttpHeaders({ 'Content-Type': contentType })\n });\n }\n\n // Download2 is an alternative option to download\n download2(fileName: string, url: string, ...params: string[]) {\n\n let downloadLink = fileName\n\n // extract file name\n params.forEach(p => {\n let arr = p.split('=');\n if (arr.length > 1) {\n if (arr[0].toLowerCase() === 'filename') {\n downloadLink = arr[1];\n }\n }\n });\n\n let contentType = this.getMimeType(fileName);\n\n const link = document.createElement('a');\n link.href = this.buildUrl(url, ...params);\n link.download = downloadLink;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n\n }\n\n // HTTP GET action\n get<T>(url: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.get<T>(resourceUrl, httpOptions)\n }\n\n // HTTP POST action\n post<T>(url: string, body?: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.post<T>(resourceUrl, body, httpOptions)\n }\n\n // HTTP PUT action\n put<T>(url: string, body?: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.put<T>(resourceUrl, body, httpOptions)\n }\n\n // HTTP PATCH action\n patch<T>(url: string, body?: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.patch<T>(resourceUrl, body, httpOptions)\n }\n\n // HTTP DELETE action\n delete<T>(url: string, ...params: string[]): Observable<T> {\n const resourceUrl = this.buildUrl(url, ...params);\n return this.http.delete<T>(resourceUrl, httpOptions)\n }\n\n // Construct URL with parameters\n private buildUrl(url: string, ...params: string[]) {\n return (params === null) ? url : (params.length === 0) ? url : `${url}${params && params.length > 0 ? '?'+params.join('&') : ''}`;\n }\n\n // Return MIME type based on file extension\n private getMimeType(fileName: string): string {\n // Set content type for: json / csv / xml / pdf /xslx\n let contentType = 'application/json';\n if (fileName.toLowerCase().endsWith('jpg') || fileName.toLowerCase().endsWith('jpeg')) {\n contentType = 'image/jpeg';\n } else if (fileName.toLowerCase().endsWith('png')) {\n contentType = 'image/png';\n } else if (fileName.toLowerCase().endsWith('tif') || fileName.toLowerCase().endsWith('tiff')) {\n contentType = 'image/tiff';\n } else if (fileName.toLowerCase().endsWith('csv')) {\n contentType = 'text/csv';\n } else if (fileName.toLowerCase().endsWith('xml')) {\n contentType = 'text/xml';\n } else if (fileName.toLowerCase().endsWith('pdf')) {\n contentType = 'application/pdf';\n } else if (fileName.toLowerCase().endsWith('xlsx')) {\n contentType = \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"\n }\n return contentType\n }\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { FlightPurposeCode } from '../model';\nimport { Flight } from '../model';\nimport { FlightCategoryCode } from '../model';\nimport { Certificate } from '../model';\nimport { Document } from '../model';\nimport { Syllabus } from '../model';\nimport { ActionResponse } from '../model';\nimport { StatusCode } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { MessageConfirm } from '../model';\nimport { EntityResponse } from '../model';\nimport { TypeRatingFlag } from '../model';\nimport { LicenseKindFlag } from '../model';\nimport { FlightTypeCode } from '../model';\nimport { FlightStateCode } from '../model';\nimport { StudentSheet } from '../model';\nimport { Contact } from '../model';\nimport { StringKeyValue } from '../model';\nimport { FlightStatusCode } from '../model';\n\n// ContactsEndPoint Services for contacts actions \n@Injectable({\n providedIn: 'root'\n})\nexport class ContactsEndPoint {\n\n // URL to web api\n private baseUrl = '/contacts';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty contact template\n */\n new() {\n return this.rest.post<EntityResponse<Contact>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new contact\n */\n create(body?: Contact) {\n return this.rest.post<EntityResponse<Contact>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing contact\n */\n update(body?: Contact) {\n return this.rest.put<EntityResponse<Contact>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete contact and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single contact by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Contact>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find contacts by query\n */\n find(search?: string, status?: StatusCode[], isPilot?: boolean, plan?: FlightCategoryCode[], typesRating?: TypeRatingFlag[], licenseKind?: LicenseKindFlag[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (isPilot != null) { params.push(`isPilot=${isPilot}`); }\n if (plan != null) { params.push(`plan=${plan}`); }\n if (typesRating != null) { params.push(`typesRating=${typesRating}`); }\n if (licenseKind != null) { params.push(`licenseKind=${licenseKind}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Contact>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup contacts ID->Name by filter\n */\n lookup(search?: string, status?: StatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n /**\n * Lookup only contacts that are active pilots ID->Name by filter\n */\n lookupPilots(search?: string, status?: StatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup-pilots`, ...params);\n }\n\n /**\n * Recalculate contact validation flags (air-worthiness) based on certificates and rules\n */\n revalidate(id?: string) {\n return this.rest.post<EntityResponse<Contact>>(`${this.baseUrl}/${id}/revalidate`, '');\n }\n\n /**\n * Find contact certificates by query\n */\n findCertificates(id?: string, search?: string, status?: StatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Certificate>>(`${this.baseUrl}/${id}/certificates`, ...params);\n }\n\n /**\n * Find contact related flights by query\n */\n findFlights(id?: string, search?: string, type?: FlightTypeCode[], status?: FlightStatusCode[], state?: FlightStateCode[], purpose?: FlightPurposeCode[], from?: number, to?: number, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (state != null) { params.push(`state=${state}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/${id}/flights`, ...params);\n }\n\n /**\n * Find message confirmations for this contact\n */\n findConfirms(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<MessageConfirm>>(`${this.baseUrl}/${id}/confirms`, ...params);\n }\n\n /**\n * Find related documents for this contact\n */\n findDocuments(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Document>>(`${this.baseUrl}/${id}/documents`, ...params);\n }\n\n /**\n * Find contact related syllabus items\n */\n getSyllabus(id?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Syllabus>>(`${this.baseUrl}/${id}/syllabus`, ...params);\n }\n\n /**\n * Find contact related flights for student sheet (all flights of type LESSON that the student is captain of first officer)\n */\n getStudentFlights(id?: string, sort?: string) {\n const params = [];\n if (sort != null) { params.push(`sort=${sort}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/${id}/student-sheet`, ...params);\n }\n\n /**\n * Download student sheet as XLSX document\n */\n downloadStudentSheetXlsx(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/${id}/student-sheet/xlsx`);\n }\n\n /**\n * Download student sheet as CSV document\n */\n downloadStudentSheetCsv(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/${id}/student-sheet/csv`);\n }\n\n /**\n * Find contact related flights for student sheet (all flights of type LESSON that the student is captain of first officer)\n */\n getStudentSheet(id?: string, plan?: FlightCategoryCode) {\n const params = [];\n if (plan != null) { params.push(`plan=${plan}`); }\n\n\t\treturn this.rest.get<EntityResponse<StudentSheet>>(`${this.baseUrl}/${id}/sheet`, ...params);\n }\n\n /**\n * Sync Syllabus topics from student flights\n */\n syncStudentSyllabus(id?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/${id}/sync-syllabus`, '');\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntitiesResponse } from '../model';\nimport { StringKeyValue } from '../model';\nimport { EntityResponse } from '../model';\nimport { ContactGroup } from '../model';\nimport { ActionResponse } from '../model';\n\n// ContactsGroupsEndPoint Services for contacts-groups actions \n@Injectable({\n providedIn: 'root'\n})\nexport class ContactsGroupsEndPoint {\n\n // URL to web api\n private baseUrl = '/contacts-groups';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty flight template\n */\n new() {\n return this.rest.post<EntityResponse<ContactGroup>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new group\n */\n create(body?: ContactGroup) {\n return this.rest.post<EntityResponse<ContactGroup>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing group\n */\n update(body?: ContactGroup) {\n return this.rest.put<EntityResponse<ContactGroup>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete group and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single group by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<ContactGroup>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find groups by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<ContactGroup>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup contacts-groups ID->Name by filter\n */\n lookup(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { ActionResponse } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { StorageItem } from '../model';\nimport { EntityResponse } from '../model';\nimport { Document } from '../model';\n\n// DocumentsEndPoint Services for documents actions \n@Injectable({\n providedIn: 'root'\n})\nexport class DocumentsEndPoint {\n\n // URL to web api\n private baseUrl = '/documents';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty document template\n */\n new() {\n return this.rest.post<EntityResponse<Document>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new document\n */\n create(body?: Document) {\n return this.rest.post<EntityResponse<Document>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing document\n */\n update(body?: Document) {\n return this.rest.put<EntityResponse<Document>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete document and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single document by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Document>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find documents by query\n */\n find(search?: string, category?: string, linkedId?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (category != null) { params.push(`category=${category}`); }\n if (linkedId != null) { params.push(`linkedId=${linkedId}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Document>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Get a single document by linked entity ID\n */\n linkedDocument(id?: string) {\n return this.rest.get<EntityResponse<Document>>(`${this.baseUrl}/entity/${id}`);\n }\n\n /**\n * Get a list of files from the base storage\n */\n listFiles(root?: string) {\n const params = [];\n if (root != null) { params.push(`root=${root}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StorageItem>>(`${this.baseUrl}/files`, ...params);\n }\n\n /**\n * Get a list of files and folders from the folder in Google Drive defined as Library\n */\n broseLibrary(root?: string) {\n const params = [];\n if (root != null) { params.push(`root=${root}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StorageItem>>(`${this.baseUrl}/library`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntitiesResponse } from '../model';\nimport { StringKeyValue } from '../model';\n\n// McpToolsEndPoint Services for user flights actions \n@Injectable({\n providedIn: 'root'\n})\nexport class McpToolsEndPoint {\n\n // URL to web api\n private baseUrl = '/mcp/tools';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Lookup accounts ID->Name mapping\n */\n accountsLookup(search?: string) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/accounts-lookup`, ...params);\n }\n\n /**\n * Lookup contacts ID->Name mapping\n */\n contactsLookup(search?: string) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/contacts-lookup`, ...params);\n }\n\n /**\n * Lookup airplanes ID->Name mapping\n */\n airplanesLookup(search?: string) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/airplanes-lookup`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { Airplane } from '../model';\nimport { Booking } from '../model';\nimport { EntityResponse } from '../model';\nimport { BookingStatusCode } from '../model';\nimport { ActionResponse } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { BookingTypeFlag } from '../model';\nimport { Lookup } from '../model';\nimport { BookingSlot } from '../model';\n\n// MyBookingsEndPoint Services for current user bookings actions \n@Injectable({\n providedIn: 'root'\n})\nexport class MyBookingsEndPoint {\n\n // URL to web api\n private baseUrl = '/my/bookings';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Create new booking\n */\n create(body?: Booking) {\n return this.rest.post<EntityResponse<Booking>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing booking\n */\n update(body?: Booking) {\n return this.rest.put<EntityResponse<Booking>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete booking and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single booking by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Booking>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find my bookings by query\n */\n find(search?: string, airplaneId?: string, from?: number, to?: number, status?: BookingStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Booking>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Get list of booking airplanes according to booking type and date\n */\n getBookingAirplanes(type?: BookingTypeFlag) {\n const params = [];\n if (type != null) { params.push(`type=${type}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Lookup>>(`${this.baseUrl}/booking-airplanes`, ...params);\n }\n\n /**\n * Get all time slots (occupied and free) per airplane per day.\n * In case of type == PATTERNS, get the patterns slots combined with airplane availability\n */\n getDailySlots(year?: number, month?: number, day?: number, type?: BookingTypeFlag, airplaneId?: string) {\n const params = [];\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n if (day != null) { params.push(`day=${day}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingSlot>>(`${this.baseUrl}/daily-slots`, ...params);\n }\n\n /**\n * Find all instructors and mark the student's default instructor\n */\n findInstructors(search?: string) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Lookup>>(`${this.baseUrl}/instructors`, ...params);\n }\n\n /**\n * Find all active pilots\n */\n findPilots(search?: string) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Lookup>>(`${this.baseUrl}/pilots`, ...params);\n }\n\n /**\n * Find all airplanes\n */\n findAirplanes() {\n return this.rest.get<EntitiesResponse<Airplane>>(`${this.baseUrl}/airplanes`);\n }\n\n /**\n * Get a single airplane by id\n */\n getAirplane(id?: string) {\n return this.rest.get<EntityResponse<Airplane>>(`${this.baseUrl}/airplanes/${id}`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { FlightPlan } from '../model';\nimport { Syllabus } from '../model';\nimport { PreFlightInfo } from '../model';\nimport { EntityResponse } from '../model';\nimport { FlightTypeCode } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { InstructionTypeCode } from '../model';\nimport { ActionResponse } from '../model';\nimport { PostFlightInfo } from '../model';\nimport { Flight } from '../model';\nimport { FlightStatusCode } from '../model';\n\n// MyFlightsEndPoint Services for user flights actions \n@Injectable({\n providedIn: 'root'\n})\nexport class MyFlightsEndPoint {\n\n // URL to web api\n private baseUrl = '/my/flights';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get a single flight by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Flight>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find my flights by query\n */\n find(search?: string, type?: FlightTypeCode[], status?: FlightStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Get flight plans data for gantt, the result size is limited to 1000 entries\n */\n gantt(from?: number, to?: number) {\n const params = [];\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightPlan>>(`${this.baseUrl}/gantt`, ...params);\n }\n\n /**\n * Get lesson topics based on the contact flight syllabus\n */\n topics(contact?: string, type?: InstructionTypeCode) {\n const params = [];\n if (contact != null) { params.push(`contact=${contact}`); }\n if (type != null) { params.push(`type=${type}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Syllabus>>(`${this.baseUrl}/topics`, ...params);\n }\n\n /**\n * Get pre-flight info by id\n */\n getPreFlight(id?: string) {\n return this.rest.get<EntityResponse<PreFlightInfo>>(`${this.baseUrl}/pre-flight/${id}`);\n }\n\n /**\n * Update flight with pre-flight info\n */\n setPreFlight(body?: PreFlightInfo) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/pre-flight`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Get post-flight info by id\n */\n getPostFlight(id?: string) {\n return this.rest.get<EntityResponse<PostFlightInfo>>(`${this.baseUrl}/post-flight/${id}`);\n }\n\n /**\n * Update flight with post-flight info\n */\n setPostFlight(body?: PostFlightInfo) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/post-flight`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Get post-flight assessment info by flight id\n */\n getPostFlightAssessment(id?: string) {\n return this.rest.get<EntityResponse<PostFlightInfo>>(`${this.baseUrl}/post-flight-assessment/${id}`);\n }\n\n /**\n * Update flight with post-flight assessment info\n */\n setPostFlightAssessment(body?: PostFlightInfo) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/post-flight-assessment`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Find contact related flights for student sheet (all flights of type LESSON that the student is captain of first officer)\n */\n getStudentSheet(sort?: string) {\n const params = [];\n if (sort != null) { params.push(`sort=${sort}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/student-sheet`, ...params);\n }\n\n /**\n * Download student sheet as XLSX document\n */\n downloadStudentSheetXlsx() {\n return this.rest.download(`export`,`${this.baseUrl}student-sheet/xlsx`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntitiesResponse } from '../model';\nimport { TimeSeries } from '../model';\nimport { BookingPlan } from '../model';\nimport { BookingSlot } from '../model';\nimport { EntityResponse } from '../model';\nimport { Booking } from '../model';\nimport { BookingStatusCode } from '../model';\nimport { ActionResponse } from '../model';\n\n// BookingsEndPoint Services for bookings actions \n@Injectable({\n providedIn: 'root'\n})\nexport class BookingsEndPoint {\n\n // URL to web api\n private baseUrl = '/bookings';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty account template\n */\n new() {\n return this.rest.post<EntityResponse<Booking>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new booking\n */\n create(body?: Booking) {\n return this.rest.post<EntityResponse<Booking>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing booking\n */\n update(body?: Booking) {\n return this.rest.put<EntityResponse<Booking>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Approve booking\n */\n updateStatus(id?: string, status?: BookingStatusCode) {\n return this.rest.put<EntityResponse<Booking>>(`${this.baseUrl}/status/${id}/${status}`, '');\n }\n\n /**\n * Delete booking and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single booking by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Booking>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find bookings by query\n */\n find(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, status?: BookingStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Booking>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find bookings count histogram over time (up to last 30 days)\n */\n histogram(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, status?: BookingStatusCode[]) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (status != null) { params.push(`status=${status}`); }\n\n\t\treturn this.rest.get<EntityResponse<TimeSeries<number>>>(`${this.baseUrl}/histogram`, ...params);\n }\n\n /**\n * Get bookings schedule for specific month, the result size is limited to 1000 entries\n */\n schedule(year?: number, month?: number) {\n const params = [];\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Booking>>(`${this.baseUrl}/schedule`, ...params);\n }\n\n /**\n * Find my bookings by query\n */\n myBookings(search?: string, airplaneId?: string, from?: number, to?: number, status?: BookingStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Booking>>(`${this.baseUrl}/my`, ...params);\n }\n\n /**\n * Get bookings plan data for specific day\n */\n getBookingPlan(year?: number, month?: number, day?: number) {\n const params = [];\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n if (day != null) { params.push(`day=${day}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingPlan>>(`${this.baseUrl}/plan`, ...params);\n }\n\n /**\n * Get bookings slots (free and booked) for specific day\n */\n getBookingSlots(year?: number, month?: number, day?: number) {\n const params = [];\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n if (day != null) { params.push(`day=${day}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingSlot>>(`${this.baseUrl}/slots`, ...params);\n }\n\n /**\n * Launch flight from booking ID and returns new bookings plan data for specific day\n */\n launchFromBooking(id?: string) {\n return this.rest.post<EntitiesResponse<BookingPlan>>(`${this.baseUrl}/launch-from-booking/${id}`, '');\n }\n\n /**\n * Launch flight from booking\n */\n launch(body?: Booking) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/launch`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Release patterns slot - detach the slot and make it free)\n */\n releaseSlot(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}/release-patterns-slot`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { Maintenance } from '../model';\nimport { ActionResponse } from '../model';\nimport { MaintenanceActionCode } from '../model';\nimport { StatusCode } from '../model';\nimport { EntitiesResponse } from '../model';\n\n// MaintenancesEndPoint Services for maintenances actions \n@Injectable({\n providedIn: 'root'\n})\nexport class MaintenancesEndPoint {\n\n // URL to web api\n private baseUrl = '/maintenances';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty maintenance template\n */\n new() {\n return this.rest.post<EntityResponse<Maintenance>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new maintenance\n */\n create(body?: Maintenance) {\n return this.rest.post<EntityResponse<Maintenance>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing maintenance\n */\n update(body?: Maintenance) {\n return this.rest.put<EntityResponse<Maintenance>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete maintenance and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single maintenance by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Maintenance>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find maintenances by query\n */\n find(search?: string, airplaneId?: string, action?: MaintenanceActionCode[], status?: StatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (action != null) { params.push(`action=${action}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Maintenance>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Upload maintenance reference document\n */\n getUploadUrl(id?: string) {\n return `${this.baseUrl}/upload/${id}`;\n }\n\n /**\n * Download maintenances reference document\n */\n download(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/download/${id}`);\n }\n\n /**\n * Delete maintenances reference document\n */\n deleteReference(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}/reference`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { Price } from '../model';\nimport { ActionResponse } from '../model';\nimport { FlightPurposeCode } from '../model';\nimport { EntitiesResponse } from '../model';\n\n// PriceListEndPoint Services for price list \n@Injectable({\n providedIn: 'root'\n})\nexport class PriceListEndPoint {\n\n // URL to web api\n private baseUrl = '/price-list';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty price template\n */\n new() {\n return this.rest.post<EntityResponse<Price>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new price\n */\n create(body?: Price) {\n return this.rest.post<EntityResponse<Price>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing Price\n */\n update(body?: Price) {\n return this.rest.put<EntityResponse<Price>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete Price and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single Price by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Price>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find Prices by query\n */\n find(airplaneId?: string, purpose?: FlightPurposeCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Price>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { Contact } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { Flight } from '../model';\n\n// MyStudentsEndPoint Services for instructor's students \n@Injectable({\n providedIn: 'root'\n})\nexport class MyStudentsEndPoint {\n\n // URL to web api\n private baseUrl = '/my/students';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get a single student by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Contact>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * List my students by query\n */\n list() {\n return this.rest.get<EntitiesResponse<Contact>>(`${this.baseUrl}`);\n }\n\n /**\n * Find contact related flights for student sheet (all flights of type LESSON that the student is captain of first officer)\n */\n getStudentSheet(id?: string, sort?: string) {\n const params = [];\n if (sort != null) { params.push(`sort=${sort}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/${id}/student-sheet`, ...params);\n }\n\n /**\n * Download student sheet as XLSX document\n */\n downloadStudentSheetXlsx(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/${id}/student-sheet/xlsx`);\n }\n\n /**\n * Download student sheet as CSV document\n */\n downloadStudentSheetCsv(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/${id}/student-sheet/csv`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntitiesResponse } from '../model';\nimport { LookupGroup } from '../model';\nimport { Lookup } from '../model';\nimport { EntityResponse } from '../model';\nimport { ActionResponse } from '../model';\n\n// LookupsEndPoint Services for lookups actions \n@Injectable({\n providedIn: 'root'\n})\nexport class LookupsEndPoint {\n\n // URL to web api\n private baseUrl = '/lookups';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Create new lookup\n */\n create(body?: Lookup) {\n return this.rest.post<EntityResponse<Lookup>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing lookup\n */\n update(body?: Lookup) {\n return this.rest.put<EntityResponse<Lookup>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete lookup and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single lookup by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Lookup>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find lookups by query\n */\n find(search?: string, domain?: string, group?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (domain != null) { params.push(`domain=${domain}`); }\n if (group != null) { params.push(`group=${group}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Lookup>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Group lookups by group\n */\n group(domain?: string) {\n const params = [];\n if (domain != null) { params.push(`domain=${domain}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<LookupGroup>>(`${this.baseUrl}/group`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { ActionResponse } from '../model';\nimport { MessageTypeCode } from '../model';\nimport { ConfirmStatusCode } from '../model';\nimport { PriorityCode } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { EntityResponse } from '../model';\nimport { MessageConfirm } from '../model';\n\n// MessageConfirmsEndPoint Services for messageConfirms actions \n@Injectable({\n providedIn: 'root'\n})\nexport class MessageConfirmsEndPoint {\n\n // URL to web api\n private baseUrl = '/message_confirms';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty messageConfirm template\n */\n new() {\n return this.rest.post<EntityResponse<MessageConfirm>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new messageConfirm\n */\n create(body?: MessageConfirm) {\n return this.rest.post<EntityResponse<MessageConfirm>>(`${this.baseUrl}/{id}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing messageConfirm\n */\n update(body?: MessageConfirm) {\n return this.rest.put<EntityResponse<MessageConfirm>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete messageConfirm and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single messageConfirm by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<MessageConfirm>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find messageConfirms by query\n */\n find(search?: string, messageId?: string, contactId?: string, type?: MessageTypeCode[], status?: ConfirmStatusCode[], priority?: PriorityCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (messageId != null) { params.push(`messageId=${messageId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (priority != null) { params.push(`priority=${priority}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<MessageConfirm>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find messages for contact\n */\n findContactMessages(id?: string) {\n return this.rest.get<EntitiesResponse<MessageConfirm>>(`${this.baseUrl}/${id}/messages`);\n }\n\n /**\n * Confirm messages by contact\n */\n confirmContactMessage(id?: string, msgId?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/${id}/messages/${msgId}`, '');\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { LoginParams } from '../model';\nimport { ActionResponse } from '../model';\nimport { EntityResponse } from '../model';\nimport { Contact } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { Notification } from '../model';\n\n// MyAuthEndPoint Services for contact simple authentication using SMS or Email \n@Injectable({\n providedIn: 'root'\n})\nexport class MyAuthEndPoint {\n\n // URL to web api\n private baseUrl = '/my/auth';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Authenticate contact\n */\n authenticate(body?: LoginParams) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/authenticate`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Authorize contact (the next version of authenticate which returns contact info including account type)\n */\n authorize(body?: LoginParams) {\n return this.rest.post<EntityResponse<Contact>>(`${this.baseUrl}/authorize`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Send SMS code\n */\n sendCode(body?: LoginParams) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/send-code`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Send SMS code\n */\n verifyCode(code?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/verify-code/${code}`, '');\n }\n\n /**\n * Get notifications for user - to show in the dashboard\n */\n getNotifications() {\n return this.rest.get<EntitiesResponse<Notification>>(`${this.baseUrl}/notifications`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { StatusCode } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { EntityResponse } from '../model';\nimport { Certificate } from '../model';\nimport { ActionResponse } from '../model';\n\n// MyCertificatesEndPoint Services for current user certificates queries \n@Injectable({\n providedIn: 'root'\n})\nexport class MyCertificatesEndPoint {\n\n // URL to web api\n private baseUrl = '/my/certificates';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty certificate template\n */\n new() {\n return this.rest.post<EntityResponse<Certificate>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new certificate\n */\n create(body?: Certificate) {\n return this.rest.post<EntityResponse<Certificate>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing certificate\n */\n update(body?: Certificate) {\n return this.rest.put<EntityResponse<Certificate>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete certificate and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single certificate by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Certificate>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find certificates by query\n */\n find(search?: string, status?: StatusCode[], valid?: boolean, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (valid != null) { params.push(`valid=${valid}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Certificate>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Upload certificate reference document\n */\n getUploadUrl(id?: string) {\n return `${this.baseUrl}/upload/${id}`;\n }\n\n /**\n * Download certificate reference document\n */\n download(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/download/${id}`);\n }\n\n /**\n * Delete certificate reference document\n */\n deleteReference(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}/reference`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntitiesResponse } from '../model';\nimport { StorageItem } from '../model';\nimport { EntityResponse } from '../model';\nimport { Metar } from '../model';\n\n// MyInfoEndPoint Services for pilot general info \n@Injectable({\n providedIn: 'root'\n})\nexport class MyInfoEndPoint {\n\n // URL to web api\n private baseUrl = '/my/info';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get a list of files and folders from the folder in Google Drive defined as Library\n */\n broseLibrary(folder?: string) {\n const params = [];\n if (folder != null) { params.push(`folder=${folder}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StorageItem>>(`${this.baseUrl}/library`, ...params);\n }\n\n /**\n * Get a list of files and folders from the folder in Google Drive defined as Library\n */\n downloadLibraryFile(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/library/${id}/download`);\n }\n\n /**\n * Get a list of METAR reports\n */\n metar() {\n return this.rest.get<EntityResponse<Metar>>(`${this.baseUrl}/metar`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { ActionResponse } from '../model';\nimport { EntityResponse } from '../model';\nimport { SystemMessage } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { MessageConfirm } from '../model';\n\n// MyMessagesEndPoint Services for read-and-confirm messages \n@Injectable({\n providedIn: 'root'\n})\nexport class MyMessagesEndPoint {\n\n // URL to web api\n private baseUrl = '/my/messages';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get a single message by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<SystemMessage>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find my Messages\n */\n find() {\n return this.rest.get<EntitiesResponse<MessageConfirm>>(`${this.baseUrl}`);\n }\n\n /**\n * Confirm messages by contact\n */\n confirm(id?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/${id}`, '');\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { StringKeyValue } from '../model';\nimport { FlightTypeCode } from '../model';\nimport { FlightStateCode } from '../model';\nimport { Document } from '../model';\nimport { Account } from '../model';\nimport { AccountTypeCode } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { FlightStatusCode } from '../model';\nimport { FlightPurposeCode } from '../model';\nimport { Flight } from '../model';\nimport { Credit } from '../model';\nimport { EntityResponse } from '../model';\nimport { ActionResponse } from '../model';\nimport { AccountStatusCode } from '../model';\n\n// AccountsEndPoint Services for user registration and login \n@Injectable({\n providedIn: 'root'\n})\nexport class AccountsEndPoint {\n\n // URL to web api\n private baseUrl = '/accounts';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty account template\n */\n new() {\n return this.rest.post<EntityResponse<Account>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new account\n */\n create(body?: Account) {\n return this.rest.post<EntityResponse<Account>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing account\n */\n update(body?: Account) {\n return this.rest.put<EntityResponse<Account>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete account and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single account by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Account>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find accounts by query\n */\n find(search?: string, status?: AccountStatusCode[], type?: AccountTypeCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Account>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup account ID->Name by filter\n */\n lookup(search?: string, status?: AccountStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n /**\n * Find account flights\n */\n findFlights(id?: string, search?: string, airplaneId?: string, type?: FlightTypeCode[], status?: FlightStatusCode[], state?: FlightStateCode[], purpose?: FlightPurposeCode[], from?: number, to?: number, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (state != null) { params.push(`state=${state}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/${id}/flights`, ...params);\n }\n\n /**\n * Find account credits\n */\n findCredits(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Credit>>(`${this.baseUrl}/${id}/credits`, ...params);\n }\n\n /**\n * Download account credit history as XLSX document\n */\n downloadCreditsXlsx(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/${id}/credits-download/xlsx`);\n }\n\n /**\n * Find related documents\n */\n findDocuments(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Document>>(`${this.baseUrl}/${id}/documents`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { AuditLog } from '../model';\nimport { EntityResponse } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { TimeSeries } from '../model';\n\n// AuditLogsEndPoint Services for auditLogs actions \n@Injectable({\n providedIn: 'root'\n})\nexport class AuditLogsEndPoint {\n\n // URL to web api\n private baseUrl = '/audit_logs';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Create new auditLog\n */\n create(body?: AuditLog) {\n return this.rest.post<EntityResponse<AuditLog>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Get a single auditLog by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<AuditLog>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find auditLogs by query\n */\n find(from?: number, to?: number, userId?: string, action?: string, itemType?: string, itemId?: string, itemName?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (userId != null) { params.push(`userId=${userId}`); }\n if (action != null) { params.push(`action=${action}`); }\n if (itemType != null) { params.push(`itemType=${itemType}`); }\n if (itemId != null) { params.push(`itemId=${itemId}`); }\n if (itemName != null) { params.push(`itemName=${itemName}`); }\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<AuditLog>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find auditLogs count histogram over time\n */\n histogram(from?: number, to?: number, userId?: string, action?: string, itemType?: string, itemId?: string, itemName?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (userId != null) { params.push(`userId=${userId}`); }\n if (action != null) { params.push(`action=${action}`); }\n if (itemType != null) { params.push(`itemType=${itemType}`); }\n if (itemId != null) { params.push(`itemId=${itemId}`); }\n if (itemName != null) { params.push(`itemName=${itemName}`); }\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntityResponse<TimeSeries<number>>>(`${this.baseUrl}/histogram`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { Credit } from '../model';\nimport { ActionResponse } from '../model';\nimport { EntitiesResponse } from '../model';\n\n// CreditsEndPoint Services for credits actions \n@Injectable({\n providedIn: 'root'\n})\nexport class CreditsEndPoint {\n\n // URL to web api\n private baseUrl = '/credits';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty credit template\n */\n new() {\n return this.rest.post<EntityResponse<Credit>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new credit\n */\n create(body?: Credit) {\n return this.rest.post<EntityResponse<Credit>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing credit\n */\n update(body?: Credit) {\n return this.rest.put<EntityResponse<Credit>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete credit and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single credit by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Credit>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find credits by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Credit>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Upload credit reference document\n */\n getUploadUrl(id?: string) {\n return `${this.baseUrl}/upload/${id}`;\n }\n\n /**\n * Download credit reference document\n */\n download(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/download/${id}`);\n }\n\n /**\n * Delete reference document\n */\n deleteReference(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}/reference`);\n }\n\n /**\n * Recalculate account credits for all flights\n */\n recalculateCreditsForFlights(accountId?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/fill-credits-for-flights/${accountId}`, '');\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { UserStatusCode } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { StringKeyValue } from '../model';\nimport { EntityResponse } from '../model';\nimport { User } from '../model';\nimport { ActionResponse } from '../model';\nimport { UserTypeCode } from '../model';\n\n// UsersEndPoint Services for users actions \n@Injectable({\n providedIn: 'root'\n})\nexport class UsersEndPoint {\n\n // URL to web api\n private baseUrl = '/users';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty user template\n */\n new() {\n return this.rest.post<EntityResponse<User>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new user\n */\n create(body?: User) {\n return this.rest.post<EntityResponse<User>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing user\n */\n update(body?: User) {\n return this.rest.put<EntityResponse<User>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete user and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single user by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<User>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find users by query\n */\n find(search?: string, type?: UserTypeCode[], status?: UserStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<User>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup users ID->Name by filter\n */\n lookup(search?: string, type?: UserTypeCode[], status?: UserStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n /**\n * Lookup groups ID->Name\n */\n groupsLookup() {\n return this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/groups-lookup`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { Certificate } from '../model';\nimport { ActionResponse } from '../model';\nimport { StatusCode } from '../model';\nimport { EntitiesResponse } from '../model';\n\n// CertificatesEndPoint Services for certificates actions \n@Injectable({\n providedIn: 'root'\n})\nexport class CertificatesEndPoint {\n\n // URL to web api\n private baseUrl = '/certificates';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty certificate template\n */\n new() {\n return this.rest.post<EntityResponse<Certificate>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new certificate\n */\n create(body?: Certificate) {\n return this.rest.post<EntityResponse<Certificate>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing certificate\n */\n update(body?: Certificate) {\n return this.rest.put<EntityResponse<Certificate>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete certificate and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single certificate by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Certificate>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find certificates by query\n */\n find(contactId?: string, search?: string, status?: StatusCode[], valid?: boolean, sort?: string, page?: number, size?: number) {\n const params = [];\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (valid != null) { params.push(`valid=${valid}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Certificate>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Upload certificate reference document\n */\n getUploadUrl(id?: string) {\n return `${this.baseUrl}/upload/${id}`;\n }\n\n /**\n * Download certificate reference document\n */\n download(id?: string) {\n return this.rest.download(`export`,`${this.baseUrl}/download/${id}`);\n }\n\n /**\n * Delete certificate reference document\n */\n deleteReference(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}/reference`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { FlightTicket } from '../model';\nimport { ActionResponse } from '../model';\nimport { TicketStatusCode } from '../model';\nimport { EntitiesResponse } from '../model';\n\n// FlightTicketsEndPoint Services for flightTickets actions \n@Injectable({\n providedIn: 'root'\n})\nexport class FlightTicketsEndPoint {\n\n // URL to web api\n private baseUrl = '/flight_tickets';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty flightTicket template\n */\n new() {\n return this.rest.post<EntityResponse<FlightTicket>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new flightTicket\n */\n create(body?: FlightTicket) {\n return this.rest.post<EntityResponse<FlightTicket>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing flightTicket\n */\n update(body?: FlightTicket) {\n return this.rest.put<EntityResponse<FlightTicket>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete flightTicket and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single flightTicket by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<FlightTicket>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find flightTickets by query\n */\n find(search?: string, status?: TicketStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightTicket>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { SystemMessage } from '../model';\nimport { ActionResponse } from '../model';\nimport { MessageTypeCode } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { MessageConfirm } from '../model';\n\n// SystemMessagesEndPoint Services for systemMessages actions \n@Injectable({\n providedIn: 'root'\n})\nexport class SystemMessagesEndPoint {\n\n // URL to web api\n private baseUrl = '/system_messages';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty systemMessage template\n */\n new() {\n return this.rest.post<EntityResponse<SystemMessage>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new systemMessage\n */\n create(body?: SystemMessage) {\n return this.rest.post<EntityResponse<SystemMessage>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing systemMessage\n */\n update(body?: SystemMessage) {\n return this.rest.put<EntityResponse<SystemMessage>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete systemMessage and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single systemMessage by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<SystemMessage>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find systemMessages by query\n */\n find(search?: string, type?: MessageTypeCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<SystemMessage>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find message confirmations\n */\n findConfirms(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<MessageConfirm>>(`${this.baseUrl}/${id}/confirms`, ...params);\n }\n\n /**\n * Publish message to all relevant contacts\n */\n publish(id?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/${id}/publish`, '');\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { ActionResponse } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { BookingSlots } from '../model';\nimport { BookingSlotsSet } from '../model';\nimport { EntityResponse } from '../model';\nimport { BookingSlot } from '../model';\n\n// BookingSlotsEndPoint Services for bookingSlots actions \n@Injectable({\n providedIn: 'root'\n})\nexport class BookingSlotsEndPoint {\n\n // URL to web api\n private baseUrl = '/booking_slots';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty booking slot template\n */\n new() {\n return this.rest.post<EntityResponse<BookingSlot>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new bookingSlot\n */\n create(body?: BookingSlot) {\n return this.rest.post<EntityResponse<BookingSlot>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing bookingSlot\n */\n update(body?: BookingSlot) {\n return this.rest.put<EntityResponse<BookingSlot>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete bookingSlot and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single bookingSlot by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<BookingSlot>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find bookingSlots by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingSlot>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find Monthly slots (limit of 1000)\n */\n monthly(year?: number, month?: number) {\n const params = [];\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingSlot>>(`${this.baseUrl}/monthly`, ...params);\n }\n\n /**\n * Get all available monthly slots for patterns\n */\n monthlySlotOptions(year?: number, month?: number) {\n const params = [];\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<BookingSlots>>(`${this.baseUrl}/monthly-slot-options`, ...params);\n }\n\n /**\n * Add or remove a bulk of monthly slots for patterns\n */\n setMonthlySlot(body?: BookingSlotsSet) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/monthly-slots`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Publish slots (make invisible slots to visible)\n */\n publish(id?: string[]) {\n const params = [];\n if (id != null) { params.push(`id=${id}`); }\n\n\t\treturn this.rest.post<ActionResponse>(`${this.baseUrl}/publish`, '', ...params);\n }\n\n /**\n * UnPublish slots (make visible slots to invisible)\n */\n unPublish(id?: string[]) {\n const params = [];\n if (id != null) { params.push(`id=${id}`); }\n\n\t\treturn this.rest.post<ActionResponse>(`${this.baseUrl}/unpublish`, '', ...params);\n }\n\n /**\n * Unbook slot will remove the booking item related to this slot, but if it is related to a flight, it will return an error\n */\n unBook(id?: string) {\n const params = [];\n if (id != null) { params.push(`id=${id}`); }\n\n\t\treturn this.rest.post<ActionResponse>(`${this.baseUrl}/unbook`, '', ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { AirplaneStatusCode } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { FlightTypeCode } from '../model';\nimport { FlightStateCode } from '../model';\nimport { FlightPurposeCode } from '../model';\nimport { Flight } from '../model';\nimport { Airplane } from '../model';\nimport { StringKeyValue } from '../model';\nimport { StatusCode } from '../model';\nimport { EntityResponse } from '../model';\nimport { ActionResponse } from '../model';\nimport { Maintenance } from '../model';\nimport { FlightStatusCode } from '../model';\nimport { Document } from '../model';\nimport { MaintenanceActionCode } from '../model';\n\n// AirplanesEndPoint Services for airplanes actions \n@Injectable({\n providedIn: 'root'\n})\nexport class AirplanesEndPoint {\n\n // URL to web api\n private baseUrl = '/airplanes';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * region Endpoint REST handlers ---------------------------------------------------------------------------------------\n * Get new and empty account template\n */\n new() {\n return this.rest.post<EntityResponse<Airplane>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new airplane\n */\n create(body?: Airplane) {\n return this.rest.post<EntityResponse<Airplane>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing airplane\n */\n update(body?: Airplane) {\n return this.rest.put<EntityResponse<Airplane>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing airplane's Weight and Balance configuration\n */\n updateWBConfig(body?: Airplane) {\n return this.rest.put<EntityResponse<Airplane>>(`${this.baseUrl}/wb-config`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete airplane and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single airplane by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Airplane>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find airplanes by query\n */\n find(search?: string, status?: AirplaneStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Airplane>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup airplanes ID->Name by filter\n */\n lookup(search?: string, status?: AirplaneStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n /**\n * Get minimal active airplanes data for hours statistics only\n */\n hours() {\n return this.rest.get<EntitiesResponse<Airplane>>(`${this.baseUrl}/hours`);\n }\n\n /**\n * Find airplane flights\n */\n findFlights(id?: string, search?: string, type?: FlightTypeCode[], status?: FlightStatusCode[], state?: FlightStateCode[], purpose?: FlightPurposeCode[], from?: number, to?: number, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (state != null) { params.push(`state=${state}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}/${id}/flights`, ...params);\n }\n\n /**\n * Find airplane documents\n */\n findDocuments(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Document>>(`${this.baseUrl}/${id}/documents`, ...params);\n }\n\n /**\n * Find airplane maintenance log book\n */\n findMaintenance(id?: string, search?: string, status?: StatusCode[], action?: MaintenanceActionCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (action != null) { params.push(`action=${action}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Maintenance>>(`${this.baseUrl}/${id}/maintenance`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { Campaign } from '../model';\nimport { ActionResponse } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { StringKeyValue } from '../model';\n\n// CampaignsEndPoint Services for campaigns actions \n@Injectable({\n providedIn: 'root'\n})\nexport class CampaignsEndPoint {\n\n // URL to web api\n private baseUrl = '/campaigns';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty Campaign template\n */\n new() {\n return this.rest.post<EntityResponse<Campaign>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new campaign\n */\n create(body?: Campaign) {\n return this.rest.post<EntityResponse<Campaign>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing campaign\n */\n update(body?: Campaign) {\n return this.rest.put<EntityResponse<Campaign>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete campaign and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single campaign by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Campaign>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find campaigns by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Campaign>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup campaigns ID->Name by filter\n */\n lookup(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { InstructionTypeCode } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { EntityResponse } from '../model';\nimport { Syllabus } from '../model';\nimport { ActionResponse } from '../model';\nimport { FlightCategoryCode } from '../model';\n\n// SyllabusEndPoint Services for syllabus \n@Injectable({\n providedIn: 'root'\n})\nexport class SyllabusEndPoint {\n\n // URL to web api\n private baseUrl = '/syllabus';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty syllabus template\n */\n new() {\n return this.rest.post<EntityResponse<Syllabus>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new syllabus\n */\n create(body?: Syllabus) {\n return this.rest.post<EntityResponse<Syllabus>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing Syllabus\n */\n update(body?: Syllabus) {\n return this.rest.put<EntityResponse<Syllabus>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete Syllabus and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single Syllabus by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Syllabus>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find Syllabus topics by query\n */\n find(search?: string, plan?: FlightCategoryCode[], type?: InstructionTypeCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (plan != null) { params.push(`plan=${plan}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Syllabus>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find Syllabus topics by query\n */\n getStudentPlan(id?: string) {\n return this.rest.get<EntitiesResponse<Syllabus>>(`${this.baseUrl}/spl-plan/${id}`);\n }\n\n /**\n * Sync Syllabus topics from student flights\n */\n syncStudentSyllabus(id?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/spl-plan/${id}/sync`, '');\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntitiesResponse } from '../model';\nimport { SystemConfig } from '../model';\nimport { EntityResponse } from '../model';\nimport { ActionResponse } from '../model';\n\n// SystemConfigsEndPoint Services for systemConfigs actions \n@Injectable({\n providedIn: 'root'\n})\nexport class SystemConfigsEndPoint {\n\n // URL to web api\n private baseUrl = '/system_configs';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Create new systemConfig\n */\n create(body?: SystemConfig) {\n return this.rest.post<EntityResponse<SystemConfig>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing systemConfig\n */\n update(body?: SystemConfig) {\n return this.rest.put<EntityResponse<SystemConfig>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete systemConfig and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single systemConfig by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<SystemConfig>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find systemConfigs by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<SystemConfig>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { ActionResponse } from '../model';\n\n// SystemEndPoint Services for general system queries \n@Injectable({\n providedIn: 'root'\n})\nexport class SystemEndPoint {\n\n // URL to web api\n private baseUrl = '/system';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Lookup returns entity name for entity id\n */\n lookup(entity?: string, id?: string) {\n return this.rest.get<ActionResponse>(`${this.baseUrl}/lookup/${entity}/${id}`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { User } from '../model';\nimport { LoginParams } from '../model';\nimport { EntityResponse } from '../model';\n\n// UserEndPoint Services for user registration and login \n@Injectable({\n providedIn: 'root'\n})\nexport class UserEndPoint {\n\n // URL to web api\n private baseUrl = '/user';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Authorize user, verify user exists in the system\n * The response includes access token valid for 20 minutes. The client side should renew the token before expiration using refresh-token method\n */\n authorize(body?: LoginParams) {\n return this.rest.post<EntityResponse<User>>(`${this.baseUrl}/authorize`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { FlightTicket } from '../model';\nimport { Entities } from '../model';\nimport { ActionResponse } from '../model';\nimport { TimeSeries } from '../model';\nimport { Distribution } from '../model';\nimport { PreFlightInfo } from '../model';\nimport { Flight } from '../model';\nimport { AnyKeyValue } from '../model';\nimport { EntityResponse } from '../model';\nimport { BillingStatusCode } from '../model';\nimport { FlightPurposeCode } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { FlightClassCode } from '../model';\nimport { PostFlightInfo } from '../model';\nimport { FlightTypeCode } from '../model';\nimport { FlightStatusCode } from '../model';\nimport { FlightPlan } from '../model';\nimport { Point } from '../model';\nimport { Contact } from '../model';\n\n// FlightsEndPoint Services for flights actions \n@Injectable({\n providedIn: 'root'\n})\nexport class FlightsEndPoint {\n\n // URL to web api\n private baseUrl = '/flights';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty flight template\n */\n new() {\n return this.rest.post<EntityResponse<Flight>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Get new and empty flight template\n */\n newFromBooking(id?: string) {\n return this.rest.post<EntityResponse<Flight>>(`${this.baseUrl}/new-from-booking/${id}`, '');\n }\n\n /**\n * Create new flight\n */\n launch(body?: Flight) {\n return this.rest.post<EntityResponse<Flight>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update an existing flight\n */\n update(body?: Flight) {\n return this.rest.put<EntityResponse<Flight>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update a list of existing flights\n */\n bulkUpdate(body?: Entities<Flight>) {\n return this.rest.put<ActionResponse>(`${this.baseUrl}/bulk`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update an existing flight with partial data\n */\n partialUpdate(id?: string, body?: AnyKeyValue) {\n return this.rest.put<EntityResponse<Flight>>(`${this.baseUrl}/partial/${id}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete flight and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single flight by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Flight>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find flights by query\n */\n find(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, type?: FlightTypeCode[], status?: FlightStatusCode[], billing?: BillingStatusCode[], purpose?: FlightPurposeCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (billing != null) { params.push(`billing=${billing}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Flight>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Download all flights by filter as XLSX document\n */\n downloadFlightsXlsx(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, type?: FlightTypeCode[], status?: FlightStatusCode[], billing?: BillingStatusCode[], purpose?: FlightPurposeCode[], sort?: string) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (billing != null) { params.push(`billing=${billing}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n\n\t\treturn this.rest.download(`export`,`${this.baseUrl}/flights-download/xlsx`, ...params);\n }\n\n /**\n * Find flights count histogram over time (up to last 30 days)\n */\n histogram(search?: string, accountId?: string, contactId?: string, airplaneId?: string, from?: number, to?: number, type?: FlightTypeCode[], status?: FlightStatusCode[], billing?: BillingStatusCode[], purpose?: FlightPurposeCode[]) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (accountId != null) { params.push(`accountId=${accountId}`); }\n if (contactId != null) { params.push(`contactId=${contactId}`); }\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (type != null) { params.push(`type=${type}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (billing != null) { params.push(`billing=${billing}`); }\n if (purpose != null) { params.push(`purpose=${purpose}`); }\n\n\t\treturn this.rest.get<EntityResponse<TimeSeries<number>>>(`${this.baseUrl}/histogram`, ...params);\n }\n\n /**\n * Get flight plans data for gantt, the result size is limited to 1000 entries\n */\n gantt(from?: number, to?: number) {\n const params = [];\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightPlan>>(`${this.baseUrl}/gantt`, ...params);\n }\n\n /**\n * Get flight plans schedule for specific month, the result size is limited to 1000 entries\n */\n schedule(year?: number, month?: number) {\n const params = [];\n if (year != null) { params.push(`year=${year}`); }\n if (month != null) { params.push(`month=${month}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightPlan>>(`${this.baseUrl}/schedule`, ...params);\n }\n\n /**\n * Get monthly daily flight hours for specific month, for income forecast\n */\n monthlyHours(year?: number, month?: number, airplaneId?: string) {\n const params = [];\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n\n\t\treturn this.rest.get<EntityResponse<TimeSeries<Point>>>(`${this.baseUrl}/monthly-hours/${year}/${month}`, ...params);\n }\n\n /**\n * Get monthly flight hours distribution by class for specific month\n */\n monthlyHoursDistributionByClass(year?: number, month?: number, airplaneId?: string) {\n const params = [];\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n\n\t\treturn this.rest.get<EntityResponse<Distribution<FlightClassCode, number>>>(`${this.baseUrl}/monthly-hours-by-class/${year}/${month}`, ...params);\n }\n\n /**\n * Get monthly flight hours distribution by airplane for specific month\n */\n monthlyHoursDistributionByAirplane(year?: number, month?: number) {\n return this.rest.get<EntityResponse<Distribution<string, number>>>(`${this.baseUrl}/monthly-hours-by-airplane/${year}/${month}`);\n }\n\n /**\n * Get monthly flight number distribution by flight status for specific month\n */\n monthlyFlightsDistributionByStatus(year?: number, month?: number, airplaneId?: string) {\n const params = [];\n if (airplaneId != null) { params.push(`airplaneId=${airplaneId}`); }\n\n\t\treturn this.rest.get<EntityResponse<Distribution<FlightStatusCode, number>>>(`${this.baseUrl}/monthly-flights-by-status/${year}/${month}`, ...params);\n }\n\n /**\n * Find list of contacts (pilot / first officer) on this flight\n */\n findContacts(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Contact>>(`${this.baseUrl}/${id}/contacts`, ...params);\n }\n\n /**\n * Find list of related flight tickets for this flight\n */\n findTickets(id?: string, search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<FlightTicket>>(`${this.baseUrl}/${id}/tickets`, ...params);\n }\n\n /**\n * Send flight details by sms (pref-flight, post-flight)\n */\n sendFlightSMS(id?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/${id}/send-sms`, '');\n }\n\n /**\n * Send flight details by sms (pref-flight, post-flight)\n */\n sendFlightEmail(id?: string) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/${id}/send-email`, '');\n }\n\n /**\n * Get pre-flight info by id\n */\n getPreFlight(id?: string) {\n return this.rest.get<EntityResponse<PreFlightInfo>>(`${this.baseUrl}/pre-flight/${id}`);\n }\n\n /**\n * Update flight with pre-flight info\n */\n setPreFlight(body?: PreFlightInfo) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/pre-flight`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Get post-flight info by id\n */\n getPostFlight(id?: string) {\n return this.rest.get<EntityResponse<PostFlightInfo>>(`${this.baseUrl}/post-flight/${id}`);\n }\n\n /**\n * Update flight with post-flight info\n */\n setPostFlight(body?: PostFlightInfo) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/post-flight`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntitiesResponse } from '../model';\nimport { StringKeyValue } from '../model';\nimport { EntityResponse } from '../model';\nimport { Group } from '../model';\nimport { ActionResponse } from '../model';\n\n// GroupsEndPoint Services for groups actions \n@Injectable({\n providedIn: 'root'\n})\nexport class GroupsEndPoint {\n\n // URL to web api\n private baseUrl = '/groups';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty flight template\n */\n new() {\n return this.rest.post<EntityResponse<Group>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new group\n */\n create(body?: Group) {\n return this.rest.post<EntityResponse<Group>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing group\n */\n update(body?: Group) {\n return this.rest.put<EntityResponse<Group>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete group and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single group by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Group>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find groups by query\n */\n find(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Group>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Lookup users ID->Name by filter\n */\n lookup(search?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<StringKeyValue>>(`${this.baseUrl}/lookup`, ...params);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { Lead } from '../model';\nimport { EntitiesResponse } from '../model';\nimport { TimeSeries } from '../model';\nimport { LeadAction } from '../model';\nimport { Point } from '../model';\nimport { IntEnumValue } from '../model';\nimport { IntKeyValue } from '../model';\nimport { LeadStatusCode } from '../model';\nimport { ActionResponse } from '../model';\nimport { Booking } from '../model';\n\n// LeadsEndPoint Services for leads actions \n@Injectable({\n providedIn: 'root'\n})\nexport class LeadsEndPoint {\n\n // URL to web api\n private baseUrl = '/leads';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get new and empty lead template\n */\n new() {\n return this.rest.post<EntityResponse<Lead>>(`${this.baseUrl}/new`, '');\n }\n\n /**\n * Create new lead\n */\n create(body?: Lead) {\n return this.rest.post<EntityResponse<Lead>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing lead\n */\n update(body?: Lead) {\n return this.rest.put<EntityResponse<Lead>>(`${this.baseUrl}`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing lead\n */\n changeStatus(id?: string, status?: LeadStatusCode) {\n return this.rest.put<EntityResponse<Lead>>(`${this.baseUrl}/${id}/status/${status}`, '');\n }\n\n /**\n * Delete lead and all its content\n */\n delete(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Get a single lead by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Lead>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find leads by query\n */\n find(search?: string, status?: LeadStatusCode[], sort?: string, page?: number, size?: number) {\n const params = [];\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Lead>>(`${this.baseUrl}`, ...params);\n }\n\n /**\n * Find lead count histogram over time\n */\n histogram(from?: number, to?: number, search?: string, status?: LeadStatusCode[]) {\n const params = [];\n if (from != null) { params.push(`from=${from}`); }\n if (to != null) { params.push(`to=${to}`); }\n if (search != null) { params.push(`search=${search}`); }\n if (status != null) { params.push(`status=${status}`); }\n\n\t\treturn this.rest.get<EntityResponse<TimeSeries<number>>>(`${this.baseUrl}/histogram`, ...params);\n }\n\n /**\n * Add follow-up lead action\n */\n addFollowUpAction(id?: string, description?: string) {\n const params = [];\n if (description != null) { params.push(`description=${description}`); }\n\n\t\treturn this.rest.post<EntityResponse<Lead>>(`${this.baseUrl}/${id}/follow-up-actions`, '', ...params);\n }\n\n /**\n * Create new lead action\n */\n createAction(body?: LeadAction) {\n return this.rest.post<EntityResponse<LeadAction>>(`${this.baseUrl}/actions`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Update existing lead action\n */\n updateAction(body?: LeadAction) {\n return this.rest.put<EntityResponse<LeadAction>>(`${this.baseUrl}/actions`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete lead action\n */\n deleteAction(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/actions/${id}`);\n }\n\n /**\n * Get all lead actions\n */\n getActions(id?: string, sort?: string, page?: number, size?: number) {\n const params = [];\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<LeadAction>>(`${this.baseUrl}/${id}/actions`, ...params);\n }\n\n /**\n * Insert or update lead action and return list of all actions\n */\n upsertAndGetActions(body?: LeadAction) {\n return this.rest.post<EntitiesResponse<LeadAction>>(`${this.baseUrl}/upsert_and_get_actions`, typeof body === 'object' ? JSON.stringify(body) : body);\n }\n\n /**\n * Delete lead action and return list of all actions\n */\n deleteAndGetActions(id?: string) {\n return this.rest.delete<EntitiesResponse<LeadAction>>(`${this.baseUrl}/delete_and_get_actions/${id}`);\n }\n\n /**\n * Change the lead create time to make it pop in the provided time\n */\n snooze(id?: string, ts?: number) {\n return this.rest.put<EntityResponse<Lead>>(`${this.baseUrl}/${id}/snooze/${ts}`, '');\n }\n\n /**\n * Get bookings schedule for specific month, the result size is limited to 1000 entries\n */\n bookingsSchedule(year?: number, month?: number) {\n return this.rest.get<EntitiesResponse<Booking>>(`${this.baseUrl}/bookings-schedule`);\n }\n\n /**\n * Insert or update flight booking for this lead in the provided timestamp\n */\n setBooking(id?: string, ts?: number) {\n return this.rest.post<ActionResponse>(`${this.baseUrl}/bookings/${id}/${ts}`, '');\n }\n\n /**\n * Delete lead booking\n */\n deleteBooking(id?: string) {\n return this.rest.delete<ActionResponse>(`${this.baseUrl}/booking/${id}`);\n }\n\n /**\n * Get monthly daily leads for specific month, for sales insights\n */\n monthlyLeads(year?: number, month?: number) {\n return this.rest.get<EntityResponse<TimeSeries<Point>>>(`${this.baseUrl}/monthly-leads/${year}/${month}`);\n }\n\n /**\n * Get monthly leads distribution by status for specific month, for sales insights\n */\n countByStatus(year?: number, month?: number) {\n return this.rest.get<EntitiesResponse<IntEnumValue>>(`${this.baseUrl}/count-by-status/${year}/${month}`);\n }\n\n /**\n * Get monthly leads distribution by source for specific month, for sales insights\n */\n countBySource(year?: number, month?: number) {\n return this.rest.get<EntitiesResponse<IntKeyValue>>(`${this.baseUrl}/count-by-source/${year}/${month}`);\n }\n\n}\n","\nimport { Injectable, Inject } from '@angular/core';\nimport { RestUtils } from '../../rest-utils';\nimport { APP_CONFIG, AppConfig } from '../../config';\n\nimport { EntityResponse } from '../model';\nimport { Credit } from '../model';\nimport { EntitiesResponse } from '../model';\n\n// MyCreditsEndPoint Services for current user credits queries \n@Injectable({\n providedIn: 'root'\n})\nexport class MyCreditsEndPoint {\n\n // URL to web api\n private baseUrl = '/my/credits';\n\n // Class constructor\n constructor(@Inject(APP_CONFIG) private config: AppConfig, private rest: RestUtils) {\n this.baseUrl = this.config.api + this.baseUrl;\n }\n\n /**\n * Get a single credit by id\n */\n get(id?: string) {\n return this.rest.get<EntityResponse<Credit>>(`${this.baseUrl}/${id}`);\n }\n\n /**\n * Find my credits by query\n */\n find(sort?: string, page?: number, size?: number) {\n const params = [];\n if (sort != null) { params.push(`sort=${sort}`); }\n if (page != null) { params.push(`page=${page}`); }\n if (size != null) { params.push(`size=${size}`); }\n\n\t\treturn this.rest.get<EntitiesResponse<Credit>>(`${this.baseUrl}`, ...params);\n }\n\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { provideHttpClient } from '@angular/common/http';\nimport { APP_CONFIG, AppConfig } from './config';\n\n@NgModule({\n imports: [CommonModule]\n})\nexport class NgxGooxLibModule {\n static forRoot(config: AppConfig): ModuleWithProviders<NgxGooxLibModule> {\n return {\n ngModule: NgxGooxLibModule,\n providers: [\n provideHttpClient(),\n { provide: APP_CONFIG, useValue: config }\n ]\n };\n }\n}\n","/*\n * Public API Surface of common\n */\n\nexport * from './lib/model';\nexport * from './lib/services';\nexport * from './config';\nexport * from './ngx-goox-lib.module'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.RestUtils"],"mappings":"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CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,iBAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAW,CAAA;;AAGX,IAAA,i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,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAElD,IAAA,OAAO,MAAM,CAAC;AAClB;;AC7dA;IACY,gBA0BX;AA1BD,CAAA,UAAY,eAAe,EAAA;;AAGvB,IAAA,eAAA,CAAA,eAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;;AAGb,IAAA,eAAA,CAAA,eAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;;AAGR,IAAA,eAAA,CAAA,eAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;;AAGR,IAAA,eAAA,CAAA,eAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAsB,CAAA;;AAGtB,IAAA,eAAA,CAAA,eAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAsB,CAAA;;AAGtB,IAAA,eAAA,CAAA,eAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;;AAGZ,IAAA,eAAA,CAAA,eAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;;AAGV,IAAA,eAAA,CAAA,eAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AAEd,CAAC,EA1BW,eAAe,KAAf,eAAe,GA0B1B,EAAA,CAAA,CAAA,CAAA;AAED;SACgB,mBAAmB,GAAA;IAClC,IAAI,MAAM,GAAsC,EAAE,CAAC;AAEnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAA;AAC7F,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC,CAAA;AAC7F,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,kBAAkB,EAAE,oCAAoC,CAAC,CAAC,CAAA;AACzH,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,kBAAkB,EAAE,oCAAoC,CAAC,CAAC,CAAA;AACzH,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,QAAQ,EAAE,0BAA0B,CAAC,CAAC,CAAA;AACrG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAA;AACjG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAA;AAE9F,IAAA,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;SACgB,mBAAmB,GAAA;AAC/B,IAAA,IAAI,MAAM,GAAG,IAAI,GAAG,EAA2B,CAAC;IAChD,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACtD,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;IACrE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;IACrE,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACjD,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE1C,IAAA,OAAO,MAAM,CAAC;AAClB;;ACzDA;IACY,aAiBX;AAjBD,CAAA,UAAY,YAAY,EAAA;;AAGpB,IAAA,YAAA,CAAA,YAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;;AAGb,IAAA,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;;AAGR,IAAA,YAAA,CAAA,YAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;;AAGP,IAAA,YAAA,CAAA,YAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;;AAGV,IAAA,YAAA,CAAA,YAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AAEZ,CAAC,EAjBW,YAAY,KAAZ,YAAY,GAiBvB,EAAA,CAAA,CAAA,CAAA;AAED;SACgB,gBAAgB,GAAA;IAC/B,IAAI,MAAM,GAAmC,EAAE,CAAC;AAEhD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAuB,YAAY,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAA;AACpF,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAuB,YAAY,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAA;AAClF,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAuB,YAAY,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAA;AACxF,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAuB,YAAY,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,CAAA;AAEjF,IAAA,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;SACgB,gBAAgB,GAAA;AAC5B,IAAA,IAAI,MAAM,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC7C,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAEnC,IAAA,OAAO,MAAM,CAAC;AAClB;;AC1CA;IACY,iBAWX;AAXD,CAAA,UAAY,gBAAgB,EAAA;;AAGxB,IAAA,gBAAA,CAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;;AAGb,IAAA,gBAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;;AAGX,IAAA,gBAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AAEZ,CAAC,EAXW,gBAAgB,KAAhB,gBAAgB,GAW3B,EAAA,CAAA,CAAA,CAAA;AAED;SACgB,oBAAoB,GAAA;IACnC,IAAI,MAAM,GAAuC,EAAE,CAAC;AAEpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA2B,gBAAgB,CAAC,OAAO,EAAE,0BAA0B,CAAC,CAAC,CAAA;AACtG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA2B,gBAAgB,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC,CAAA;AAE7F,IAAA,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;SACgB,oBAAoB,GAAA;AAChC,IAAA,IAAI,MAAM,GAAG,IAAI,GAAG,EAA4B,CAAC;IACjD,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAChD,MAAM,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAEvC,IAAA,OAAO,MAAM,CAAC;AAClB;;AChCA;IACY,eAiBX;AAjBD,CAAA,UAAY,cAAc,EAAA;;AAGtB,IAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;;AAGb,IAAA,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;;AAGX,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;;AAGV,IAAA,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;;AAGX,IAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;AAEjB,CAAC,EAjBW,cAAc,KAAd,cAAc,GAiBzB,EAAA,CAAA,CAAA,CAAA;AAED;SACgB,kBAAkB,GAAA;IACjC,IAAI,MAAM,GAAqC,EAAE,CAAC;AAElD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAyB,cAAc,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAA;AAChG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAyB,cAAc,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAA;AAC9F,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAyB,cAAc,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAA;AAChG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAyB,cAAc,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC,CAAA;AAEjG,IAAA,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;SACgB,kBAAkB,GAAA;AAC9B,IAAA,IAAI,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACrD,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC5C,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAE/C,IAAA,OAAO,MAAM,CAAC;AAClB;;AC1CA;IACY,uBAgFX;AAhFD,CAAA,UAAY,sBAAsB,EAAA;;AAG9B,IAAA,sBAAA,CAAA,sBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;;AAGb,IAAA,sBAAA,CAAA,sBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB,CAAA;;AAGjB,IAAA,sBAAA,CAAA,sBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;;AAGb,IAAA,sBAAA,CAAA,sBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB,CAAA;;AAGjB,IAAA,sBAAA,CAAA,sBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB,CAAA;;AAGjB,IAAA,sBAAA,CAAA,sBAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAsB,CAAA;;AAGtB,IAAA,sBAAA,CAAA,sBAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAkB,CAAA;;AAGlB,IAAA,sBAAA,CAAA,sBAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAsB,CAAA;;AAGtB,IAAA,sBAAA,CAAA,sBAAA,CAAA,gBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,gBAAoB,CAAA;;AAGpB,IAAA,sBAAA,CAAA,sBAAA,CAAA,kBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,kBAAsB,CAAA;;AAGtB,IAAA,sBAAA,CAAA,sBAAA,CAAA,mBAAA,CAAA,GAAA,GAAA,CAAA,GAAA,mBAAuB,CAAA;;AAGvB,IAAA,sBAAA,CAAA,sBAAA,CAAA,kBAAA,CAAA,GAAA,IAAA,CAAA,GAAA,kBAAuB,CAAA;;AAGvB,IAAA,sBAAA,CAAA,sBAAA,CAAA,mBAAA,CAAA,GAAA,IAAA,CAAA,GAAA,mBAAwB,CAAA;;AAGxB,IAAA,sBAAA,CAAA,sBAAA,CAAA,gBAAA,CAAA,GAAA,IAAA,CAAA,GAAA,gBAAqB,CAAA;;AAGrB,IAAA,sBAAA,CAAA,sBAAA,CAAA,cAAA,CAAA,GAAA,IAAA,CAAA,GAAA,cAAmB,CAAA;;AAGnB,IAAA,sBAAA,CAAA,sBAAA,CAAA,iBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,iBAAuB,CAAA;;AAGvB,IAAA,sBAAA,CAAA,sBAAA,CAAA,oBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,oBAA0B,CAAA;;AAG1B,IAAA,sBAAA,CAAA,sBAAA,CAAA,wBAAA,CAAA,GAAA,KAAA,CAAA,GAAA,wBAA8B,CAAA;;AAG9B,IAAA,sBAAA,CAAA,sBAAA,CAAA,sBAAA,CAAA,GAAA,MAAA,CAAA,GAAA,sBAA6B,CAAA;;AAG7B,IAAA,sBAAA,CAAA,sBAAA,CAAA,uBAAA,CAAA,GAAA,MAAA,CAAA,GAAA,uBAA8B,CAAA;;AAG9B,IAAA,sBAAA,CAAA,sBAAA,CAAA,yBAAA,CAAA,GAAA,MAAA,CAAA,GAAA,yBAAgC,CAAA;;AAGhC,IAAA,sBAAA,CAAA,sBAAA,CAAA,0BAAA,CAAA,GAAA,OAAA,CAAA,GAAA,0BAAkC,CAAA;;AAGlC,IAAA,sBAAA,CAAA,sBAAA,CAAA,UAAA,CAAA,GAAA,OAAA,CAAA,GAAA,UAAkB,CAAA;;AAGlB,IAAA,sBAAA,CAAA,sBAAA,CAAA,qBAAA,CAAA,GAAA,OAAA,CAAA,GAAA,qBAA6B,CAAA;;AAG7B,IAAA,sBAAA,CAAA,sBAAA,CAAA,YAAA,CAAA,GAAA,OAAA,CAAA,GAAA,YAAoB,CAAA;;AAGpB,IAAA,sBAAA,CAAA,sBAAA,CAAA,YAAA,CAAA,GAAA,QAAA,CAAA,GAAA,YAAqB,CAAA;AAEzB,CAAC,EAhFW,sBAAsB,KAAtB,sBAAsB,GAgFjC,EAAA,CAAA,CAAA,CAAA;AAED;SACgB,0BAA0B,GAAA;IACzC,IAAI,MAAM,GAA6C,EAAE,CAAC;AAE1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,aAAa,EAAE,sCAAsC,CAAC,CAAC,CAAA;AACpI,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,SAAS,EAAE,kCAAkC,CAAC,CAAC,CAAA;AAC5H,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,aAAa,EAAE,sCAAsC,CAAC,CAAC,CAAA;AACpI,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,aAAa,EAAE,sCAAsC,CAAC,CAAC,CAAA;AACpI,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,iBAAiB,EAAE,0CAA0C,CAAC,CAAC,CAAA;AAC5I,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,aAAa,EAAE,sCAAsC,CAAC,CAAC,CAAA;AACpI,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,iBAAiB,EAAE,0CAA0C,CAAC,CAAC,CAAA;AAC5I,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,cAAc,EAAE,uCAAuC,CAAC,CAAC,CAAA;AACtI,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,gBAAgB,EAAE,yCAAyC,CAAC,CAAC,CAAA;AAC1I,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,iBAAiB,EAAE,0CAA0C,CAAC,CAAC,CAAA;AAC5I,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,gBAAgB,EAAE,yCAAyC,CAAC,CAAC,CAAA;AAC1I,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,iBAAiB,EAAE,0CAA0C,CAAC,CAAC,CAAA;AAC5I,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,cAAc,EAAE,uCAAuC,CAAC,CAAC,CAAA;AACtI,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,YAAY,EAAE,qCAAqC,CAAC,CAAC,CAAA;AAClI,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,eAAe,EAAE,wCAAwC,CAAC,CAAC,CAAA;AACxI,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,kBAAkB,EAAE,2CAA2C,CAAC,CAAC,CAAA;AAC9I,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,sBAAsB,EAAE,+CAA+C,CAAC,CAAC,CAAA;AACtJ,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,oBAAoB,EAAE,6CAA6C,CAAC,CAAC,CAAA;AAClJ,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,qBAAqB,EAAE,8CAA8C,CAAC,CAAC,CAAA;AACpJ,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,uBAAuB,EAAE,gDAAgD,CAAC,CAAC,CAAA;AACxJ,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,wBAAwB,EAAE,iDAAiD,CAAC,CAAC,CAAA;AAC1J,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,QAAQ,EAAE,iCAAiC,CAAC,CAAC,CAAA;AAC1H,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,mBAAmB,EAAE,4CAA4C,CAAC,CAAC,CAAA;AAChJ,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,UAAU,EAAE,mCAAmC,CAAC,CAAC,CAAA;AAC9H,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAiC,sBAAsB,CAAC,UAAU,EAAE,mCAAmC,CAAC,CAAC,CAAA;AAE3H,IAAA,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;SACgB,0BAA0B,GAAA;AACtC,IAAA,IAAI,MAAM,GAAG,IAAI,GAAG,EAAkC,CAAC;IACvD,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC7D,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAClE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC1D,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAClE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAClE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IAC1E,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;IAClE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IAC1E,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IACpE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;IACxE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IAC1E,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;IACxE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;IAC1E,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;IACpE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IAChE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,eAAe,EAAE,iBAAiB,CAAC,CAAC;IACtE,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,oBAAoB,CAAC,CAAC;IAC5E,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,sBAAsB,EAAE,wBAAwB,CAAC,CAAC;IACpF,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;IAChF,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,qBAAqB,EAAE,uBAAuB,CAAC,CAAC;IAClF,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,uBAAuB,EAAE,yBAAyB,CAAC,CAAC;IACtF,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,wBAAwB,EAAE,0BAA0B,CAAC,CAAC;IACxF,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACxD,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC;IAC9E,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IAC5D,MAAM,CAAC,GAAG,CAAC,sBAAsB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAEzD,IAAA,OAAO,MAAM,CAAC;AAClB;;ACnJA;IACY,aAcX;AAdD,CAAA,UAAY,YAAY,EAAA;;AAGpB,IAAA,YAAA,CAAA,YAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;;AAGb,IAAA,YAAA,CAAA,YAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;;AAGP,IAAA,YAAA,CAAA,YAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;;AAGP,IAAA,YAAA,CAAA,YAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;AAEX,CAAC,EAdW,YAAY,KAAZ,YAAY,GAcvB,EAAA,CAAA,CAAA,CAAA;AAED;SACgB,gBAAgB,GAAA;IAC/B,IAAI,MAAM,GAAmC,EAAE,CAAC;AAEhD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAuB,YAAY,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAA;AAClF,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAuB,YAAY,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAA;AAClF,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAuB,YAAY,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,CAAA;AAE/E,IAAA,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;SACgB,gBAAgB,GAAA;AAC5B,IAAA,IAAI,MAAM,GAAG,IAAI,GAAG,EAAwB,CAAC;IAC7C,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAEjC,IAAA,OAAO,MAAM,CAAC;AAClB;;ACrCA;IACY,gBAiBX;AAjBD,CAAA,UAAY,eAAe,EAAA;;AAGvB,IAAA,eAAA,CAAA,eAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;;AAGb,IAAA,eAAA,CAAA,eAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;;AAGX,IAAA,eAAA,CAAA,eAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;;AAGV,IAAA,eAAA,CAAA,eAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;;AAGb,IAAA,eAAA,CAAA,eAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;AAEjB,CAAC,EAjBW,eAAe,KAAf,eAAe,GAiB1B,EAAA,CAAA,CAAA,CAAA;AAED;SACgB,mBAAmB,GAAA;IAClC,IAAI,MAAM,GAAsC,EAAE,CAAC;AAEnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAAC,CAAA;AACnG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CAAA;AACjG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC,CAAA;AACvG,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAA0B,eAAe,CAAC,SAAS,EAAE,2BAA2B,CAAC,CAAC,CAAA;AAEpG,IAAA,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;SACgB,mBAAmB,GAAA;AAC/B,IAAA,IAAI,MAAM,GAAG,IAAI,GAAG,EAA2B,CAAC;IAChD,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACtD,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7C,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;AAEhD,IAAA,OAAO,MAAM,CAAC;AAClB;;AC5CA;AACA;MACa,SAAS,CAAA;AAElB,IAAA,WAAA,GAAA;KACC;AAEJ;;ACPD;MACa,WAAW,CAAA;IAiBpB,WAAY,CAAA,EAAW,EAAE,OAAgB,EAAE,SAAkB,EAAE,OAAgB,EAAE,WAAoB,EAAA;AACjG,QAAA,IAAI,EAAE,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;SAAE;AACvC,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAAE;AACtD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAAE;AACtD,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;KACrE;AAEJ;;AC1BD;AACA;AACA;MACa,YAAY,CAAA;IAiBrB,WAAY,CAAA,EAAW,EAAE,SAAkB,EAAE,SAAkB,EAAE,IAAa,EAAE,KAA0B,EAAA;AACtG,QAAA,IAAI,EAAE,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;SAAE;AACvC,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAGJ;;AC7BD;MACa,SAAS,CAAA;AAuBlB,IAAA,WAAA,CAAY,IAAa,EAAE,IAAa,EAAE,IAAa,EAAE,MAAe,EAAE,IAAa,EAAE,QAAiB,EAAE,MAAY,EAAA;AACpH,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;KACtD;AAEJ;;AChCD;AACM,MAAO,WAAY,SAAQ,YAAY,CAAA;AAoB5C,CAAA;SAEe,wBAAwB,GAAA;IACpC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAG1D,IAAA,OAAO,MAAM,CAAC;AACf;;ACvCA;MACa,YAAY,CAAA;AAWrB,IAAA,WAAA,CAAY,mBAA4B,EAAE,kBAA2B,EAAE,qBAA8B,EAAA;AACjG,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;SAAE;AAC1F,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,qBAAqB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;SAAE;KACnG;AAEJ;;AClBD;AACA;MACa,OAAO,CAAA;IAQhB,WAAY,CAAA,EAAW,EAAE,IAAa,EAAA;AAClC,QAAA,IAAI,EAAE,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;SAAE;AACvC,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;KAChD;AAEJ;;ACZD;MACa,aAAa,CAAA;AA+FtB,IAAA,WAAA,CAAY,QAAiB,EAAE,YAAqB,EAAE,QAAiB,EAAE,iBAA0B,EAAE,kBAA2B,EAAE,iBAA0B,EAAE,YAAqB,EAAE,YAAqB,EAAE,OAA2B,EAAE,SAAkB,EAAE,IAAqB,EAAE,eAAoC,EAAE,WAAoB,EAAE,iBAA0B,EAAE,SAAkB,EAAE,cAAuB,EAAE,WAAoB,EAAE,gBAAyB,EAAE,oBAA6B,EAAE,kBAA2B,EAAE,iBAA0B,EAAE,gBAAyB,EAAE,UAAqB,EAAE,IAAe,EAAE,QAAiB,EAAE,QAAiB,EAAE,aAAsB,EAAE,mBAA4B,EAAE,cAAuB,EAAE,cAAuB,EAAE,UAAmB,EAAA;AAClwB,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAAE;AACrE,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;AACpF,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;AACpF,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAAE;AACrE,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAAE;AACrE,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAAE;AACtD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SAAE;AAC9E,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;AAClE,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;AACpF,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;SAAE;AAC3E,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;AAClE,QAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;SAAE;AACjF,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;SAAE;AAC7F,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;AACpF,QAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;SAAE;AACjF,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAAE;AAC/D,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SAAE;AACxE,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;SAAE;AAC1F,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;SAAE;AAC3E,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;SAAE;AAC3E,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAAE;KAClE;AAEJ;;ACrID;MACa,MAAM,CAAA;IAiBf,WAAY,CAAA,SAAkB,EAAE,iBAA0B,EAAE,eAAwB,EAAE,eAAwB,EAAE,oBAA6B,EAAA;AACzI,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;AACpF,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SAAE;AAC9E,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SAAE;AAC9E,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;SAAE;KAChG;AAEJ;;AC1BD;MACa,OAAO,CAAA;AAchB,IAAA,WAAA,CAAY,mBAA4B,EAAE,mBAA4B,EAAE,mBAA4B,EAAE,cAAuB,EAAA;AACzH,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;SAAE;AAC1F,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;SAAE;AAC1F,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;SAAE;AAC1F,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;SAAE;KAC9E;AAEJ;;AClBD;AACM,MAAO,OAAQ,SAAQ,YAAY,CAAA;AAwDxC,CAAA;SAEe,oBAAoB,GAAA;IAChC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACpE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACpE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAGvD,IAAA,OAAO,MAAM,CAAC;AACf;;ACrFA;AACM,MAAO,MAAO,SAAQ,YAAY,CAAA;AAqDvC,CAAA;SAEe,mBAAmB,GAAA;IAC/B,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACtE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAG3D,IAAA,OAAO,MAAM,CAAC;AACf;;ACpFA;MACa,YAAY,CAAA;AAWrB,IAAA,WAAA,CAAY,IAAa,EAAE,KAAS,EAAE,MAAsB,EAAA;AACxD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;AAChD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;KACtD;AAEJ;;AClBD;MACa,OAAO,CAAA;AAgChB,IAAA,WAAA,CAAY,cAAgC,EAAE,WAAoB,EAAE,kBAA2B,EAAE,cAAuB,EAAE,aAAsB,EAAE,kBAA2B,EAAE,YAAqB,EAAE,kBAA2B,EAAE,mBAA4B,EAAE,yBAAkC,EAAA;AAC/R,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;SAAE;AAC3E,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;AAClE,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;SAAE;AAC3E,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SAAE;AACxE,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAAE;AACrE,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;SAAE;AAC1F,QAAA,IAAI,yBAAyB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,yBAAyB,GAAG,yBAAyB,CAAC;SAAE;KAC/G;AAEJ;;AC7CD;MACa,cAAc,CAAA;AAgCvB,IAAA,WAAA,CAAY,MAAe,EAAE,MAAkB,EAAE,SAAkB,EAAE,SAAkB,EAAE,UAAmB,EAAE,MAA4B,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAE,KAA0B,EAAA;AAC/M,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAAE;AAC/D,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;AChDD;MACa,aAAa,CAAA;IAQtB,WAAY,CAAA,SAAkB,EAAE,KAAS,EAAA;AACrC,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;ACdD;AACA;MACa,QAAQ,CAAA;AAKjB,IAAA,WAAA,CAAY,MAAY,EAAA;AACpB,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;KACtD;AAEJ;;ACVD;MACa,SAAS,CAAA;IA4ClB,WAAY,CAAA,QAAiB,EAAE,QAAiB,EAAE,MAAe,EAAE,YAAqB,EAAE,WAAoB,EAAE,QAAmB,EAAE,QAAkB,EAAE,QAAiB,EAAE,KAAc,EAAE,QAAiB,EAAE,OAAkB,EAAE,SAAkB,EAAE,MAAe,EAAE,GAAa,EAAA;AACjR,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAAE;AACrE,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;AAClE,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;SAAE;AAC1D,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;AAChD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAAE;AACtD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;KAC7C;AAEJ;;AC7DD;MACa,UAAU,CAAA;IAQnB,WAAY,CAAA,MAAmB,EAAE,WAA4B,EAAA;AACzD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;KACrE;AAEJ;;AChBD;MACa,aAAa,CAAA;IAoBtB,WAAY,CAAA,GAAY,EAAE,KAAc,EAAE,SAAkB,EAAE,QAAiB,EAAE,WAAoB,EAAE,MAAgB,EAAA;AACnH,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;AAC1C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;AAChD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;AAClE,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;KACtD;AAEJ;;AC9BD;MACa,YAAY,CAAA;AAgCrB,IAAA,WAAA,CAAY,kBAA2B,EAAE,qBAA8B,EAAE,iBAA0B,EAAE,mBAA4B,EAAE,2BAAoC,EAAE,oBAA6B,EAAE,kBAA2B,EAAE,uBAAgC,EAAE,qBAA8B,EAAE,wBAAiC,EAAA;AACpU,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,qBAAqB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;SAAE;AAChG,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;AACpF,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;SAAE;AAC1F,QAAA,IAAI,2BAA2B,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,2BAA2B,GAAG,2BAA2B,CAAC;SAAE;AAClH,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;SAAE;AAC7F,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,uBAAuB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,sBAAsB,GAAG,uBAAuB,CAAC;SAAE;AACrG,QAAA,IAAI,qBAAqB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;SAAE;AAChG,QAAA,IAAI,wBAAwB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;SAAE;KAC5G;AAEJ;;AC9CD;MACa,UAAU,CAAA;AAuBnB,IAAA,WAAA,CAAY,oBAA8B,EAAE,kBAA4B,EAAE,kBAA2B,EAAE,WAAoB,EAAE,QAAiB,EAAE,iBAA2B,EAAE,eAAwB,EAAA;AACjM,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;SAAE;AAC7F,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;AAClE,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;AACpF,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SAAE;KACjF;AAEJ;;ACjCD;MACa,cAAc,CAAA;IAmCvB,WAAY,CAAA,MAAe,EAAE,MAAkB,EAAE,MAAe,EAAE,MAAe,EAAE,QAAiB,EAAE,MAAe,EAAE,QAAiB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAE,KAA0B,EAAA;AAC7M,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;ACjDD;MACa,aAAa,CAAA;AAgCtB,IAAA,WAAA,CAAY,MAAe,EAAE,SAAkB,EAAE,QAAiB,EAAE,IAA4B,EAAE,MAAkB,EAAE,SAAkB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAE,KAA0B,EAAA;AAC7M,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;AChDD;MACa,WAAW,CAAA;AAWpB,IAAA,WAAA,CAAY,KAAc,EAAE,MAAe,EAAE,KAAc,EAAA;AACvD,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;AAChD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;ACVD;MACa,cAAc,CAAA;AA6BvB,IAAA,WAAA,CAAY,SAAkB,EAAE,mBAA8C,EAAE,WAA8B,EAAE,SAA0B,EAAE,WAA8B,EAAE,IAAgB,EAAE,OAAsB,EAAE,KAAoB,EAAE,UAAuB,EAAA;AAC/P,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;SAAE;AAC1F,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;AAClE,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;AAClE,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAAE;AACtD,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;AAChD,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAAE;KAClE;AAEJ;;AC3CD;AACM,MAAO,UAAW,SAAQ,YAAY,CAAA;AAuE3C,CAAA;SAEe,uBAAuB,GAAA;IACnC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAGzD,IAAA,OAAO,MAAM,CAAC;AACf;;AC5GA;AACM,MAAO,WAAY,SAAQ,YAAY,CAAA;AA+C5C,CAAA;SAEe,wBAAwB,GAAA;IACpC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,uBAAuB,EAAE,EAAE,CAAC,CAAC,CAAC;AACtE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAGxD,IAAA,OAAO,MAAM,CAAC;AACf;;ACxEA;AACM,MAAO,cAAe,SAAQ,YAAY,CAAA;AAuB/C,CAAA;SAEe,2BAA2B,GAAA;IACvC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;AACvE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;AAG/D,IAAA,OAAO,MAAM,CAAC;AACf;;AC5CA;AACM,MAAO,eAAgB,SAAQ,YAAY,CAAA;AAiBhD,CAAA;SAEe,4BAA4B,GAAA;IACxC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAGtD,IAAA,OAAO,MAAM,CAAC;AACf;;ACnCA;AACA;AACA;MACa,UAAU,CAAA;AAWnB,IAAA,WAAA,CAAY,EAAW,EAAE,SAAkB,EAAE,SAAkB,EAAA;AAC3D,QAAA,IAAI,EAAE,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;SAAE;AACvC,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;KAC/D;AAEJ;;ACpBD;MACa,gBAAgB,CAAA;AAWzB,IAAA,WAAA,CAAY,oBAA6B,EAAE,kBAA2B,EAAE,iBAA0B,EAAA;AAC9F,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;SAAE;AAC7F,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;KACvF;AAEJ;;AChBD;AACM,MAAO,UAAW,SAAQ,YAAY,CAAA;AAc3C,CAAA;SAEe,uBAAuB,GAAA;IACnC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAG5D,IAAA,OAAO,MAAM,CAAC;AACf;;AC7BA;AACM,MAAO,aAAc,SAAQ,YAAY,CAAA;AA2D9C,CAAA;SAEe,0BAA0B,GAAA;IACtC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACvE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACvE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACtE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACtE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAGxD,IAAA,OAAO,MAAM,CAAC;AACf;;ACtFA;AACM,MAAO,QAAS,SAAQ,YAAY,CAAA;AAuBzC,CAAA;SAEe,qBAAqB,GAAA;IACjC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAGzD,IAAA,OAAO,MAAM,CAAC;AACf;;AC9CA;MACa,gBAAgB,CAAA;IAQzB,WAAY,CAAA,IAAa,EAAE,KAAc,EAAA;AACrC,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;ACZD;AACM,MAAO,cAAe,SAAQ,gBAAgB,CAAA;AAQnD,CAAA;SAEe,2BAA2B,GAAA;IACvC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAGrD,IAAA,OAAO,MAAM,CAAC;AACf;;ACpBA;MACa,WAAW,CAAA;AA0BpB,IAAA,WAAA,CAAY,MAAe,EAAE,IAAqB,EAAE,MAAyB,EAAE,UAAsB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAE,KAA0B,EAAA;AAC1K,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAAE;AAC/D,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;ACzCD;MACa,WAAW,CAAA;IAQpB,WAAY,CAAA,GAAY,EAAE,KAAc,EAAA;AACpC,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;AAC1C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;ACdD;MACa,QAAQ,CAAA;AAWjB,IAAA,WAAA,CAAY,GAAY,EAAE,GAAY,EAAE,GAAY,EAAA;AAChD,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;AAC1C,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;AAC1C,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;KAC7C;AAEJ;;AChBD;MACa,SAAS,CAAA;AAclB,IAAA,WAAA,CAAY,SAAkB,EAAE,WAA0B,EAAE,MAAuB,EAAE,SAAkB,EAAA;AACnG,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;AAClE,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;KAC/D;AAEJ;;ACrBD;AACM,MAAO,YAAa,SAAQ,YAAY,CAAA;AAQ7C,CAAA;SAEe,yBAAyB,GAAA;IACrC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AAGjE,IAAA,OAAO,MAAM,CAAC;AACf;;ACxBA;MACa,gBAAgB,CAAA;AAuBzB,IAAA,WAAA,CAAY,EAAW,EAAE,IAAa,EAAE,QAAiB,EAAE,GAAY,EAAE,SAAkB,EAAE,SAAkB,EAAE,QAAiB,EAAA;AAC9H,QAAA,IAAI,EAAE,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;SAAE;AACvC,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;AAC1C,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;KAC5D;AAEJ;;ACxBD;AACA;AACM,MAAO,UAAW,SAAQ,YAAY,CAAA;AA6B3C,CAAA;SAEe,uBAAuB,GAAA;IACnC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,EAAE,CAAC,CAAC,CAAC;AACtF,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;AACtE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;AACtE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;AAG/D,IAAA,OAAO,MAAM,CAAC;AACf;;ACzDA;AACM,MAAO,YAAa,SAAQ,YAAY,CAAA;AA6B7C,CAAA;SAEe,yBAAyB,GAAA;IACrC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAG/D,IAAA,OAAO,MAAM,CAAC;AACf;;ACpDA;MACa,UAAU,CAAA;IAQnB,WAAY,CAAA,KAAc,EAAE,GAAY,EAAA;AACpC,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;AAChD,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;KAC7C;AAEJ;;ACdD;MACa,UAAU,CAAA;AAcnB,IAAA,WAAA,CAAY,IAAa,EAAE,IAAa,EAAE,IAAa,EAAE,KAA0B,EAAA;AAC/E,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;ACtBD;MACa,SAAS,CAAA;IAiBlB,WAAY,CAAA,SAAkB,EAAE,iBAA0B,EAAE,eAAwB,EAAE,eAAwB,EAAE,oBAA6B,EAAA;AACzI,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;AACpF,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SAAE;AAC9E,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SAAE;AAC9E,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;SAAE;KAChG;AAEJ;;ACzBD;MACa,QAAQ,CAAA;AAkDjB,IAAA,WAAA,CAAY,gBAAyB,EAAE,cAAuB,EAAE,kBAA2B,EAAE,iBAA0B,EAAE,kBAA2B,EAAE,aAAsB,EAAE,OAAgB,EAAE,WAAoB,EAAE,SAAkB,EAAE,aAAsB,EAAE,eAAwB,EAAE,cAAuB,EAAE,UAAmB,EAAE,WAAoB,EAAE,cAAwB,EAAE,eAAyB,EAAA;AAC/Y,QAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;SAAE;AACjF,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;SAAE;AAC3E,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;AACpF,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SAAE;AACxE,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAAE;AACtD,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;AAClE,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SAAE;AACxE,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SAAE;AAC9E,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;SAAE;AAC3E,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAAE;AAC/D,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;AAClE,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;SAAE;AAC3E,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SAAE;KACjF;AAEJ;;ACnED;AACM,MAAO,WAAY,SAAQ,YAAY,CAAA;AAgC5C,CAAA;SAEe,wBAAwB,GAAA;IACpC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAGxD,IAAA,OAAO,MAAM,CAAC;AACf;;ACzDA;MACa,gBAAgB,CAAA;IAsCzB,WAAY,CAAA,kBAA2B,EAAE,wBAAiC,EAAE,iBAA0B,EAAE,SAAkB,EAAE,kBAA2B,EAAE,uBAAgC,EAAE,sBAA+B,EAAE,uBAAgC,EAAE,gBAAyB,EAAE,qBAA8B,EAAE,kBAA2B,EAAE,oBAA6B,EAAA;AAC/W,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,wBAAwB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;SAAE;AACzG,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;AACpF,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,uBAAuB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;SAAE;AACtG,QAAA,IAAI,sBAAsB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;SAAE;AACnG,QAAA,IAAI,uBAAuB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;SAAE;AACtG,QAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;SAAE;AACjF,QAAA,IAAI,qBAAqB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;SAAE;AAChG,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;SAAE;KAChG;AAEJ;;AClDD;AACM,MAAO,KAAM,SAAQ,YAAY,CAAA;AAQtC,CAAA;SAEe,kBAAkB,GAAA;IAC9B,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;AAG9D,IAAA,OAAO,MAAM,CAAC;AACf;;ACzBA;MACa,eAAe,CAAA;AAKxB,IAAA,WAAA,CAAY,IAAU,EAAA;AAClB,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;KAChD;AAEJ;;ACVD;AACA;MACa,IAAI,CAAA;AAEb,IAAA,WAAA,GAAA;KACC;AAEJ;;ACLD;MACa,UAAU,CAAA;AAWnB,IAAA,WAAA,CAAY,IAAa,EAAE,KAAiB,EAAE,MAA2B,EAAA;AACrE,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;AAChD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;KACtD;AAEJ;;AClBD;MACa,cAAc,CAAA;AAuBvB,IAAA,WAAA,CAAY,MAAe,EAAE,MAA4B,EAAE,IAAwB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAE,KAA0B,EAAA;AACxJ,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;AChCD;MACa,cAAc,CAAA;AAgCvB,IAAA,WAAA,CAAY,MAAe,EAAE,MAAqB,EAAE,OAAiB,EAAE,IAA2B,EAAE,WAA8B,EAAE,YAAgC,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAE,KAA0B,EAAA;AACzO,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAAE;AACtD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;AAClE,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAAE;AACrE,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;AC/CD;MACa,kBAAkB,CAAA;AA6B3B,IAAA,WAAA,CAAY,MAAe,EAAE,UAAmB,EAAE,MAAgC,EAAE,MAAqB,EAAE,KAAiB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAE,KAA0B,EAAA;AACjM,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAAE;AAC/D,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;AAChD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;AC1CD;AACM,MAAO,eAAgB,SAAQ,YAAY,CAAA;AAchD,CAAA;SAEe,4BAA4B,GAAA;IACxC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;AAG9D,IAAA,OAAO,MAAM,CAAC;AACf;;AC3BA;AACM,MAAO,QAAS,SAAQ,YAAY,CAAA;AAsCzC,CAAA;SAEe,qBAAqB,GAAA;IACjC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACpE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;AAG/D,IAAA,OAAO,MAAM,CAAC;AACf;;AC/DA;AACA;AACM,MAAO,aAAc,SAAQ,YAAY,CAAA;AAgC9C,CAAA;SAEe,0BAA0B,GAAA;IACtC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;AACtE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACpE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,oBAAoB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACtE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACrE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,oBAAoB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC1E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACpE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,oBAAoB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,qBAAqB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC3E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,2BAA2B,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAG1E,IAAA,OAAO,MAAM,CAAC;AACf;;ACtDA;MACa,kBAAkB,CAAA;AA6B3B,IAAA,WAAA,CAAY,MAAe,EAAE,SAAkB,EAAE,MAAqB,EAAE,IAAuB,EAAE,KAAiB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAE,KAA0B,EAAA;AACvL,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;AAChD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;AC1CD;AACM,MAAO,YAAa,SAAQ,YAAY,CAAA;AAQ7C,CAAA;SAEe,yBAAyB,GAAA;IACrC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,CAAC;AAG3D,IAAA,OAAO,MAAM,CAAC;AACf;;ACrBA;AACM,MAAO,WAAY,SAAQ,UAAU,CAAA;AAQ1C,CAAA;SAEe,wBAAwB,GAAA;IACpC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAGtD,IAAA,OAAO,MAAM,CAAC;AACf;;AClBA;AACM,MAAO,aAAc,SAAQ,YAAY,CAAA;AAuE9C,CAAA;SAEe,0BAA0B,GAAA;IACtC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,qBAAqB,EAAE,EAAE,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,sBAAsB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,uBAAuB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC7E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACtE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACzE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACvE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACvE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAGlE,IAAA,OAAO,MAAM,CAAC;AACf;;AC7GA;AACM,MAAO,YAAa,SAAQ,YAAY,CAAA;AAQ7C,CAAA;SAEe,yBAAyB,GAAA;IACrC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAGvD,IAAA,OAAO,MAAM,CAAC;AACf;;ACnBA;AACM,MAAO,aAAc,SAAQ,YAAY,CAAA;AAoB9C,CAAA;SAEe,0BAA0B,GAAA;IACtC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAGpE,IAAA,OAAO,MAAM,CAAC;AACf;;ACvCA;AACM,MAAO,cAAkB,SAAQ,gBAAgB,CAAA;AAKtD,CAAA;SAEe,2BAA2B,GAAA;IACvC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AAGlD,IAAA,OAAO,MAAM,CAAC;AACf;;ACnBA;MACa,aAAa,CAAA;AAKtB,IAAA,WAAA,CAAY,MAAU,EAAA;AAClB,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;KACtD;AAEJ;;ACTD;MACa,eAAe,CAAA;AAuBxB,IAAA,WAAA,CAAY,MAAe,EAAE,MAA6B,EAAE,QAAkB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAE,KAA0B,EAAA;AACnJ,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;AC1BD;AACM,MAAO,OAAQ,SAAQ,YAAY,CAAA;AAmFxC,CAAA;SAEe,oBAAoB,GAAA;IAChC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AACpE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;AACtE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC,CAAC;AACjF,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AACpE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AACrE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACvE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,yBAAyB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACxE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAG5D,IAAA,OAAO,MAAM,CAAC;AACf;;AC7HA;AACA;AACM,MAAO,IAAK,SAAQ,YAAY,CAAA;AA0BrC,CAAA;SAEe,iBAAiB,GAAA;IAC7B,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAGnE,IAAA,OAAO,MAAM,CAAC;AACf;;AC/CA;MACa,cAAc,CAAA;AAiHvB,IAAA,WAAA,CAAY,QAAiB,EAAE,YAAqB,EAAE,QAAiB,EAAE,iBAA0B,EAAE,OAA2B,EAAE,IAAqB,EAAE,eAAoC,EAAE,kBAA2B,EAAE,iBAA0B,EAAE,YAAqB,EAAE,YAAqB,EAAE,kBAA2B,EAAE,iBAA0B,EAAE,YAAqB,EAAE,YAAqB,EAAE,WAAoB,EAAE,YAAqB,EAAE,SAAkB,EAAE,cAAuB,EAAE,WAAoB,EAAE,gBAAyB,EAAE,WAAoB,EAAE,iBAA0B,EAAE,gBAAyB,EAAE,YAAqB,EAAE,aAAsB,EAAE,mBAA4B,EAAE,gBAAiC,EAAE,oBAA6B,EAAE,qBAA8B,EAAE,cAAuB,EAAE,iBAA0B,EAAE,WAAoB,EAAE,SAAkB,EAAE,cAAuB,EAAE,WAAoB,EAAE,UAAmB,EAAA;AACj7B,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAAE;AACrE,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;AACpF,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAAE;AACtD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SAAE;AAC9E,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;AACpF,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAAE;AACrE,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAAE;AACrE,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;AACpF,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAAE;AACrE,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAAE;AACrE,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;AAClE,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAAE;AACrE,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;SAAE;AAC3E,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;AAClE,QAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;SAAE;AACjF,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;AAClE,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;AACpF,QAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;SAAE;AACjF,QAAA,IAAI,YAAY,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;SAAE;AACrE,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SAAE;AACxE,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;SAAE;AAC1F,QAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,gBAAgB,CAAC;SAAE;AAC3E,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;SAAE;AAC7F,QAAA,IAAI,qBAAqB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;SAAE;AAChG,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;SAAE;AAC3E,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;AACpF,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;AAClE,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;SAAE;AAC3E,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;AAClE,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAAE;KAClE;AAEJ;;AC5JD;AACM,MAAO,WAAY,SAAQ,YAAY,CAAA;AAuB5C,CAAA;SAEe,wBAAwB,GAAA;IACpC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAG1D,IAAA,OAAO,MAAM,CAAC;AACf;;AC3CA;AACA;AACA;AACA;AACA;MACa,KAAK,CAAA;IAQd,WAAY,CAAA,GAAO,EAAE,KAAS,EAAA;AAC1B,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;AAC1C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;AClBD;MACa,YAAY,CAAA;AAErB,IAAA,WAAA,GAAA;KACC;AAEJ;;ACND;AACA;MACa,SAAS,CAAA;AAElB,IAAA,WAAA,GAAA;KACC;AAEJ;;ACPD;MACa,OAAO,CAAA;IAoBhB,WAAY,CAAA,OAAgB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAE,KAAc,EAAE,QAAiB,EAAA;AACxG,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAAE;AACtD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;AAChD,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;KAC5D;AAEJ;;AC3BD;MACa,MAAM,CAAA;IAyCf,WAAY,CAAA,MAAe,EAAE,IAAqB,EAAE,eAAoC,EAAE,OAAgB,EAAE,UAA2B,EAAE,QAAiB,EAAE,aAAsB,EAAE,oBAA6B,EAAE,qBAA8B,EAAE,cAAuB,EAAE,iBAA0B,EAAE,WAAoB,EAAE,SAAkB,EAAA;AAC5U,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,eAAe,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;SAAE;AAC9E,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAAE;AACtD,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAAE;AAC/D,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SAAE;AACxE,QAAA,IAAI,oBAAoB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;SAAE;AAC7F,QAAA,IAAI,qBAAqB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;SAAE;AAChG,QAAA,IAAI,cAAc,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;SAAE;AAC3E,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;AACpF,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;AAClE,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;KAC/D;AAEJ;;ACzDD;AACM,MAAO,KAAM,SAAQ,YAAY,CAAA;AActC,CAAA;SAEe,kBAAkB,GAAA;IAC9B,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AAGhE,IAAA,OAAO,MAAM,CAAC;AACf;;ACjCA;MACa,KAAK,CAAA;IAQd,WAAY,CAAA,CAAU,EAAE,CAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SAAE;AACpC,QAAA,IAAI,CAAC,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SAAE;KACvC;AAEJ;;ACXD;AACM,MAAO,QAAS,SAAQ,YAAY,CAAA;AA0BzC,CAAA;SAEe,qBAAqB,GAAA;IACjC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAG5D,IAAA,OAAO,MAAM,CAAC;AACf;;AC1CA;AACM,MAAO,WAAY,SAAQ,YAAY,CAAA;AA+C5C,CAAA;SAEe,wBAAwB,GAAA;IACpC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACpE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACpE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;AACzE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;AAGvE,IAAA,OAAO,MAAM,CAAC;AACf;;AC/EA;MACa,wBAAwB,CAAA;AAcjC,IAAA,WAAA,CAAY,aAAsB,EAAE,gBAAyB,EAAE,gBAAyB,EAAE,mBAA4B,EAAA;AAClH,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SAAE;AACxE,QAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;SAAE;AACjF,QAAA,IAAI,gBAAgB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;SAAE;AACjF,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;SAAE;KAC7F;AAEJ;;ACtBD;MACa,cAAc,CAAA;AAWvB,IAAA,WAAA,CAAY,UAAmB,EAAE,UAAmB,EAAE,WAAoB,EAAA;AACtE,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAAE;AAC/D,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAAE;AAC/D,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;KACrE;AAEJ;;ACfD;AACM,MAAO,KAAM,SAAQ,YAAY,CAAA;AAiBtC,CAAA;SAEe,kBAAkB,GAAA;IAC9B,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAG5D,IAAA,OAAO,MAAM,CAAC;AACf;;ACpCA;MACa,WAAW,CAAA;IAQpB,WAAY,CAAA,GAAY,EAAE,KAAW,EAAA;AACjC,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;AAC1C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;ACbD;MACa,WAAW,CAAA;IAoBpB,WAAY,CAAA,MAAe,EAAE,MAAyB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAE,KAA0B,EAAA;AAC3H,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;AC/BD;MACa,SAAS,CAAA;IAiBlB,WAAY,CAAA,EAAW,EAAE,OAAgB,EAAE,SAAkB,EAAE,OAAgB,EAAE,WAAoB,EAAA;AACjG,QAAA,IAAI,EAAE,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;SAAE;AACvC,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAAE;AACtD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAAE;AACtD,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;KACrE;AAEJ;;AChBD;AACM,MAAO,MAAO,SAAQ,YAAY,CAAA;AA8GvC,CAAA;SAEe,mBAAmB,GAAA;IAC/B,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACxD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;AACrE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;AACzE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACvE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,mBAAmB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,oBAAoB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,oBAAoB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAGjE,IAAA,OAAO,MAAM,CAAC;AACf;;ACvKA;MACa,SAAS,CAAA;IAiBlB,WAAY,CAAA,iBAA0B,EAAE,kBAA2B,EAAE,mBAA4B,EAAE,uBAAgC,EAAE,iBAA0B,EAAA;AAC3J,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;AACpF,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;SAAE;AAC1F,QAAA,IAAI,uBAAuB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,uBAAuB,GAAG,uBAAuB,CAAC;SAAE;AACtG,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;KACvF;AAEJ;;ACrBD;AACM,MAAO,YAAa,SAAQ,YAAY,CAAA;AAiB7C,CAAA;SAEe,yBAAyB,GAAA;IACrC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,sBAAsB,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAGtD,IAAA,OAAO,MAAM,CAAC;AACf;;AChCA;AACM,MAAO,YAAa,SAAQ,YAAY,CAAA;AA2D7C,CAAA;SAEe,yBAAyB,GAAA;IACrC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC;AACjE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,2BAA2B,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACjF,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,4BAA4B,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAClF,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,qBAAqB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC3E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,wBAAwB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC9E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,kBAAkB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACxE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,sBAAsB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAGvE,IAAA,OAAO,MAAM,CAAC;AACf;;ACrFA;AACM,MAAO,QAAS,SAAQ,YAAY,CAAA;AAuEzC,CAAA;SAEe,qBAAqB,GAAA;IACjC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,wBAAwB,EAAE,EAAE,CAAC,CAAC,CAAC;AACzE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,yBAAyB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/E,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC;AAG3D,IAAA,OAAO,MAAM,CAAC;AACf;;ACjHA;AACA;AACM,MAAO,MAAO,SAAQ,YAAY,CAAA;AAiBvC,CAAA;SAEe,mBAAmB,GAAA;IAC/B,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAGxD,IAAA,OAAO,MAAM,CAAC;AACf;;AClCA;AACM,MAAO,gBAAoB,SAAQ,gBAAgB,CAAA;AAiBxD,CAAA;SAEe,6BAA6B,GAAA;IACzC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AAGhD,IAAA,OAAO,MAAM,CAAC;AACf;;ACnCA;AACA;AACA;MACa,YAAY,CAAA;AAKrB,IAAA,WAAA,CAAY,KAAS,EAAA;AACjB,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;ACZD;MACa,OAAO,CAAA;IAiBhB,WAAY,CAAA,MAAe,EAAE,IAAa,EAAE,KAAc,EAAE,OAAgB,EAAE,OAAgB,EAAA;AAC1F,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;AAChD,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAAE;AACtD,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAAE;KACzD;AAEJ;;ACxBD;MACa,cAAc,CAAA;AAuBvB,IAAA,WAAA,CAAY,MAAe,EAAE,IAA2B,EAAE,IAA4B,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAE,KAA0B,EAAA;AAC3J,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;AC/BD;AACM,MAAO,OAAQ,SAAQ,YAAY,CAAA;AA+CxC,CAAA;SAEe,oBAAoB,GAAA;IAChC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACrE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AACpE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAG1D,IAAA,OAAO,MAAM,CAAC;AACf;;AC9EA;MACa,IAAI,CAAA;AAuBb,IAAA,WAAA,CAAY,QAAiB,EAAE,WAAoB,EAAE,IAAa,EAAE,mBAA4B,EAAE,kBAA2B,EAAE,aAAsB,EAAE,mBAA4B,EAAA;AAC/K,QAAA,IAAI,QAAQ,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAAE;AACzD,QAAA,IAAI,WAAW,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;SAAE;AAClE,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;SAAE;AAC1F,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;SAAE;AACxE,QAAA,IAAI,mBAAmB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,mBAAmB,GAAG,mBAAmB,CAAC;SAAE;KAC7F;AAEJ;;AC/BD;AACM,MAAO,QAAS,SAAQ,YAAY,CAAA;AAmCzC,CAAA;SAEe,qBAAqB,GAAA;IACjC,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACrD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACnE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACpE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC;AACpE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAG/D,IAAA,OAAO,MAAM,CAAC;AACf;;AC5DA;MACa,WAAW,CAAA;IAQpB,WAAY,CAAA,IAAa,EAAE,IAAa,EAAA;AACpC,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;KAChD;AAEJ;;ACdD;MACa,SAAS,CAAA;IAQlB,WAAY,CAAA,IAAa,EAAE,EAAW,EAAA;AAClC,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,EAAE,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;SAAE;KAC1C;AAEJ;;ACTD;MACa,aAAa,CAAA;IAyCtB,WAAY,CAAA,MAAe,EAAE,MAAkB,EAAE,SAAkB,EAAE,SAAkB,EAAE,UAAmB,EAAE,IAAuB,EAAE,MAA2B,EAAE,OAA6B,EAAE,OAA6B,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAE,KAA0B,EAAA;AACrS,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,UAAU,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;SAAE;AAC/D,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SAAE;AACnD,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAAE;AACtD,QAAA,IAAI,OAAO,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAAE;AACtD,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,IAAI,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SAAE;AAC7C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;AC/DD;MACa,YAAY,CAAA;IAQrB,WAAY,CAAA,GAAY,EAAE,KAAc,EAAA;AACpC,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;AAC1C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;ACdD;MACa,cAAc,CAAA;IAQvB,WAAY,CAAA,GAAY,EAAE,KAAc,EAAA;AACpC,QAAA,IAAI,GAAG,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;AAC1C,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SAAE;KACnD;AAEJ;;ACdD;MACa,cAAc,CAAA;IAiBvB,WAAY,CAAA,kBAA2B,EAAE,wBAAiC,EAAE,iBAA0B,EAAE,SAAkB,EAAE,kBAA2B,EAAA;AACnJ,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;AACvF,QAAA,IAAI,wBAAwB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;SAAE;AACzG,QAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAAE;AACpF,QAAA,IAAI,SAAS,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;SAAE;AAC5D,QAAA,IAAI,kBAAkB,KAAK,SAAS,EAAE;AAAE,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;SAAE;KAC1F;AAEJ;;ACrBD;AACM,MAAO,IAAK,SAAQ,YAAY,CAAA;AAqDrC,CAAA;SAEe,iBAAiB,GAAA;IAC7B,IAAI,MAAM,GAAiB,EAAE,CAAC;AACjC,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACnD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAClE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC5D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACpD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,gBAAgB,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,uBAAuB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACtE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AAC/D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACtD,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAC3D,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC;AAChE,IAAA,MAAM,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AAGjE,IAAA,OAAO,MAAM,CAAC;AACf;;ACpFA;MACa,SAAS,CAAA;AAAtB,IAAA,WAAA,GAAA;QACI,IAAG,CAAA,GAAA,GAAW,EAAE,CAAC;KACpB;AAAA,CAAA;MAEY,UAAU,GAAG,IAAI,cAAc,CAAY,uBAAuB,EAAE;AAE3E,SAAU,gBAAgB,CAAC,MAAiB,EAAA;AAChD,IAAA,OAAO,wBAAwB,CAAC;AAC9B,QAAA,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE;AAC1C,KAAA,CAAC,CAAC;AACL;;ACXA,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,IAAI,WAAW,CAAC;AACvB,QAAA,cAAc,EAAG,kBAAkB;AACnC,QAAA,eAAe,EAAE,oBAAoB;AACrC,QAAA,6BAA6B,EAAE,GAAG;AAClC,QAAA,8BAA8B,EAAE,2MAA2M;KAC5O,CAAC;CACH,CAAC;AAEF;MAIa,SAAS,CAAA;;AAGpB,IAAA,WAAA,CAAoB,IAAgB,EAAA;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KAAK;;AAGzC,IAAA,MAAM,CAAI,IAAU,EAAE,GAAW,EAAE,GAAG,MAAgB,EAAA;QAEpD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;AAElD,QAAA,MAAM,QAAQ,GAAa,IAAI,QAAQ,EAAE,CAAC;QAC1C,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAE5C,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE;AACzD,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,YAAY,EAAE,MAAM;AACrB,SAAA,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAI,GAAG,CAAC,CAAC;KAClC;;AAGD,IAAA,QAAQ,CAAC,QAAgB,EAAE,GAAW,EAAE,GAAG,MAAgB,EAAA;QACzD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;QAElD,IAAI,YAAY,GAAG,QAAQ,CAAA;;AAG3B,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,IAAG;YACjB,IAAI,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvB,YAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE;AACvC,oBAAA,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;iBACvB;aACF;AACH,SAAC,CAAC,CAAC;;QAGH,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;AAChC,YAAA,YAAY,EAAE,MAAM;AACpB,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,IAAI,WAAW,CAAC,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC;AAC1D,SAAA,CAAC,CAAC;KACJ;;AAGD,IAAA,SAAS,CAAC,QAAgB,EAAE,GAAW,EAAE,GAAG,MAAgB,EAAA;QAE1D,IAAI,YAAY,GAAG,QAAQ,CAAA;;AAG3B,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,IAAG;YACjB,IAAI,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvB,YAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;gBAClB,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU,EAAE;AACvC,oBAAA,YAAY,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;iBACvB;aACF;AACH,SAAC,CAAC,CAAC;QAEH,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;AAC7B,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,EAAE,CAAC;AACb,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KAEjC;;AAGD,IAAA,GAAG,CAAI,GAAW,EAAE,GAAG,MAAgB,EAAA;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,WAAW,EAAE,WAAW,CAAC,CAAA;KAClD;;AAGD,IAAA,IAAI,CAAI,GAAW,EAAE,IAAa,EAAE,GAAG,MAAgB,EAAA;QACrD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;AAClD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAI,WAAW,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;KACzD;;AAGD,IAAA,GAAG,CAAI,GAAW,EAAE,IAAa,EAAE,GAAG,MAAgB,EAAA;QACpD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;AAClD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,WAAW,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;KACxD;;AAGD,IAAA,KAAK,CAAI,GAAW,EAAE,IAAa,EAAE,GAAG,MAAgB,EAAA;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;AAClD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAI,WAAW,EAAE,IAAI,EAAE,WAAW,CAAC,CAAA;KAC1D;;AAGD,IAAA,MAAM,CAAI,GAAW,EAAE,GAAG,MAAgB,EAAA;QACxC,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAI,WAAW,EAAE,WAAW,CAAC,CAAA;KACrD;;AAGO,IAAA,QAAQ,CAAC,GAAW,EAAE,GAAG,MAAgB,EAAA;QAC/C,OAAO,CAAC,MAAM,KAAK,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAA,EAAG,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,GAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA,CAAE,CAAC;KACnI;;AAGO,IAAA,WAAW,CAAC,QAAgB,EAAA;;QAElC,IAAI,WAAW,GAAG,kBAAkB,CAAC;QACrC,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YACrF,WAAW,GAAG,YAAY,CAAC;SAC5B;aAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACjD,WAAW,GAAG,WAAW,CAAC;SAC3B;aAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC5F,WAAW,GAAG,YAAY,CAAC;SAC5B;aAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACjD,WAAW,GAAG,UAAU,CAAC;SAC1B;aAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACjD,WAAW,GAAG,UAAU,CAAC;SAC1B;aAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;YACjD,WAAW,GAAG,iBAAiB,CAAC;SACjC;aAAM,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAClD,WAAW,GAAG,mEAAmE,CAAA;SAClF;AACD,QAAA,OAAO,WAAW,CAAA;KACnB;+GAhIU,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAT,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAS,cAFR,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,SAAS,EAAA,UAAA,EAAA,CAAA;kBAHrB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACSD;MAIa,gBAAgB,CAAA;;IAM3B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,WAAW,CAAC;AAI5B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KAC3E;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAc,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC3H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAc,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC1H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACxE;AAED;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,MAAqB,EAAE,OAAiB,EAAE,IAA2B,EAAE,WAA8B,EAAE,WAA+B,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACvM,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC,CAAC;SAAE;AAC3D,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,WAAW,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,eAAe,WAAW,CAAA,CAAE,CAAC,CAAC;SAAE;AACvE,QAAA,IAAI,WAAW,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,eAAe,WAAW,CAAA,CAAE,CAAC,CAAC;SAAE;AACvE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC7E;AAED;;AAEG;IACH,MAAM,CAAC,MAAe,EAAE,MAAqB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACxF,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAS,OAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC3F;AAED;;AAEG;IACH,YAAY,CAAC,MAAe,EAAE,MAAqB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC9F,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAgB,cAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAClG;AAED;;AAEG;AACH,IAAA,UAAU,CAAC,EAAW,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,WAAA,CAAa,EAAE,EAAE,CAAC,CAAC;KACxF;AAED;;AAEG;IACH,gBAAgB,CAAC,EAAW,EAAE,MAAe,EAAE,MAAqB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC/G,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,aAAA,CAAe,EAAE,GAAG,MAAM,CAAC,CAAC;KACpG;AAED;;AAEG;IACH,WAAW,CAAC,EAAW,EAAE,MAAe,EAAE,IAAuB,EAAE,MAA2B,EAAE,KAAyB,EAAE,OAA6B,EAAE,IAAa,EAAE,EAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC/N,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC,CAAC;SAAE;AACrD,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC,CAAC;SAAE;AAC3D,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC,CAAC;SAAE;AAC5C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,QAAA,CAAU,EAAE,GAAG,MAAM,CAAC,CAAC;KAC1F;AAED;;AAEG;IACH,YAAY,CAAC,EAAW,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACpF,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,SAAA,CAAW,EAAE,GAAG,MAAM,CAAC,CAAC;KACnG;AAED;;AAEG;IACH,aAAa,CAAC,EAAW,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACrF,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,UAAA,CAAY,EAAE,GAAG,MAAM,CAAC,CAAC;KAC9F;AAED;;AAEG;AACH,IAAA,WAAW,CAAC,EAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAClE,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,SAAA,CAAW,EAAE,GAAG,MAAM,CAAC,CAAC;KAC7F;AAED;;AAEG;IACH,iBAAiB,CAAC,EAAW,EAAE,IAAa,EAAA;QAC1C,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,cAAA,CAAgB,EAAE,GAAG,MAAM,CAAC,CAAC;KAChG;AAED;;AAEG;AACH,IAAA,wBAAwB,CAAC,EAAW,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAQ,MAAA,CAAA,EAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,mBAAA,CAAqB,CAAC,CAAC;KAChF;AAED;;AAEG;AACH,IAAA,uBAAuB,CAAC,EAAW,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAQ,MAAA,CAAA,EAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,kBAAA,CAAoB,CAAC,CAAC;KAC/E;AAED;;AAEG;IACH,eAAe,CAAC,EAAW,EAAE,IAAyB,EAAA;QACpD,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,MAAA,CAAQ,EAAE,GAAG,MAAM,CAAC,CAAC;KAC5F;AAED;;AAEG;AACH,IAAA,mBAAmB,CAAC,EAAW,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,cAAA,CAAgB,EAAE,EAAE,CAAC,CAAC;KAClF;AAhNU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBAMP,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACxBhC;MAIa,sBAAsB,CAAA;;IAMjC,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,kBAAkB,CAAC;AAInC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA+B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KAChF;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAmB,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA+B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAChI;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAmB,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC/H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAC7E;AAED;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC/D,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAClF;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACjE,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAS,OAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC3F;AArEU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,kBAMb,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACVhC;MAIa,iBAAiB,CAAA;;IAM5B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,YAAY,CAAC;AAI7B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KAC5E;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAe,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC5H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAe,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC3H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACzE;AAED;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,QAAiB,EAAE,QAAiB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACrG,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAA,CAAE,CAAC,CAAC;SAAE;AAC9D,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAA,CAAE,CAAC,CAAC;SAAE;AAC9D,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC9E;AAED;;AAEG;AACH,IAAA,cAAc,CAAC,EAAW,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,QAAA,EAAW,EAAE,CAAA,CAAE,CAAC,CAAC;KAChF;AAED;;AAEG;AACH,IAAA,SAAS,CAAC,IAAa,EAAA;QACrB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAQ,MAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACvF;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,IAAa,EAAA;QACxB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAU,QAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACzF;AArFU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAMR,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACbhC;MAIa,gBAAgB,CAAA;;IAM3B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,YAAY,CAAC;AAI7B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;AACH,IAAA,cAAc,CAAC,MAAe,EAAA;QAC5B,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AAE1D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAkB,gBAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACpG;AAED;;AAEG;AACH,IAAA,cAAc,CAAC,MAAe,EAAA;QAC5B,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AAE1D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAkB,gBAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACpG;AAED;;AAEG;AACH,IAAA,eAAe,CAAC,MAAe,EAAA;QAC7B,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AAE1D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAmB,iBAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACrG;AAtCU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBAMP,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACHhC;MAIa,kBAAkB,CAAA;;IAM7B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,cAAc,CAAC;AAI/B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAc,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC3H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAc,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC1H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACxE;AAED;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,UAAmB,EAAE,IAAa,EAAE,EAAW,EAAE,MAA4B,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC9I,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC,CAAC;SAAE;AACpE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC,CAAC;SAAE;AAC5C,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC7E;AAED;;AAEG;AACH,IAAA,mBAAmB,CAAC,IAAsB,EAAA;QACxC,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAoB,kBAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC9F;AAED;;;AAGG;IACH,aAAa,CAAC,IAAa,EAAE,KAAc,EAAE,GAAY,EAAE,IAAsB,EAAE,UAAmB,EAAA;QACpG,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC,CAAC;SAAE;AACrD,QAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAA,CAAE,CAAC,CAAC;SAAE;AAC/C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC,CAAC;SAAE;AAEtE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAc,YAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC7F;AAED;;AAEG;AACH,IAAA,eAAe,CAAC,MAAe,EAAA;QAC7B,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AAE1D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAc,YAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACxF;AAED;;AAEG;AACH,IAAA,UAAU,CAAC,MAAe,EAAA;QACxB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AAE1D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAS,OAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACnF;AAED;;AAEG;IACH,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAY,UAAA,CAAA,CAAC,CAAC;KAC/E;AAED;;AAEG;AACH,IAAA,WAAW,CAAC,EAAW,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,WAAA,EAAc,EAAE,CAAA,CAAE,CAAC,CAAC;KACnF;AAhHU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAMT,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACRhC;MAIa,iBAAiB,CAAA;;IAM5B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,aAAa,CAAC;AAI9B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACvE;AAED;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,IAAuB,EAAE,MAA2B,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACrH,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC5E;AAED;;AAEG;IACH,KAAK,CAAC,IAAa,EAAE,EAAW,EAAA;QAC9B,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC,CAAC;SAAE;AAE9C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAQ,MAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACtF;AAED;;AAEG;IACH,MAAM,CAAC,OAAgB,EAAE,IAA0B,EAAA;QACjD,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC,CAAC;SAAE;AAC3D,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAS,OAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACrF;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,EAAW,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,YAAA,EAAe,EAAE,CAAA,CAAE,CAAC,CAAC;KACzF;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,IAAoB,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAa,WAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC7H;AAED;;AAEG;AACH,IAAA,aAAa,CAAC,EAAW,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,aAAA,EAAgB,EAAE,CAAA,CAAE,CAAC,CAAC;KAC3F;AAED;;AAEG;AACH,IAAA,aAAa,CAAC,IAAqB,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAc,YAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC9H;AAED;;AAEG;AACH,IAAA,uBAAuB,CAAC,EAAW,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,wBAAA,EAA2B,EAAE,CAAA,CAAE,CAAC,CAAC;KACtG;AAED;;AAEG;AACH,IAAA,uBAAuB,CAAC,IAAqB,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAyB,uBAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACzI;AAED;;AAEG;AACH,IAAA,eAAe,CAAC,IAAa,EAAA;QAC3B,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAgB,cAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC1F;AAED;;AAEG;IACH,wBAAwB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA,MAAA,CAAQ,EAAC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,kBAAA,CAAoB,CAAC,CAAC;KACzE;AA/GU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAMR,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACbhC;MAIa,gBAAgB,CAAA;;IAM3B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,WAAW,CAAC;AAI5B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KAC3E;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAc,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC3H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAc,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC1H;AAED;;AAEG;IACH,YAAY,CAAC,EAAW,EAAE,MAA0B,EAAA;AAClD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,GAAG,IAAI,CAAC,OAAO,CAAA,QAAA,EAAW,EAAE,CAAI,CAAA,EAAA,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;KAC7F;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACxE;AAED;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,SAAkB,EAAE,SAAkB,EAAE,UAAmB,EAAE,IAAa,EAAE,EAAW,EAAE,MAA4B,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACtL,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC,CAAC;SAAE;AACjE,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC,CAAC;SAAE;AACjE,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC,CAAC;SAAE;AACpE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC,CAAC;SAAE;AAC5C,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC7E;AAED;;AAEG;AACH,IAAA,SAAS,CAAC,MAAe,EAAE,SAAkB,EAAE,SAAkB,EAAE,UAAmB,EAAE,IAAa,EAAE,EAAW,EAAE,MAA4B,EAAA;QAC9I,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC,CAAC;SAAE;AACjE,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC,CAAC;SAAE;AACjE,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC,CAAC;SAAE;AACpE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC,CAAC;SAAE;AAC5C,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AAE1D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAY,UAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAChG;AAED;;AAEG;IACH,QAAQ,CAAC,IAAa,EAAE,KAAc,EAAA;QACpC,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC,CAAC;SAAE;AAEvD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAW,SAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACtF;AAED;;AAEG;AACH,IAAA,UAAU,CAAC,MAAe,EAAE,UAAmB,EAAE,IAAa,EAAE,EAAW,EAAE,MAA4B,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACpJ,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC,CAAC;SAAE;AACpE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC,CAAC;SAAE;AAC5C,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAK,GAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAChF;AAED;;AAEG;AACH,IAAA,cAAc,CAAC,IAAa,EAAE,KAAc,EAAE,GAAY,EAAA;QACxD,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC,CAAC;SAAE;AACrD,QAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAA,CAAE,CAAC,CAAC;SAAE;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAO,KAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACtF;AAED;;AAEG;AACH,IAAA,eAAe,CAAC,IAAa,EAAE,KAAc,EAAE,GAAY,EAAA;QACzD,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC,CAAC;SAAE;AACrD,QAAA,IAAI,GAAG,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,CAAA,CAAE,CAAC,CAAC;SAAE;AAEjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAQ,MAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACvF;AAED;;AAEG;AACH,IAAA,iBAAiB,CAAC,EAAW,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgC,CAAG,EAAA,IAAI,CAAC,OAAO,wBAAwB,EAAE,CAAA,CAAE,EAAE,EAAE,CAAC,CAAC;KACvG;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAc,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAS,OAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACzH;AAED;;AAEG;AACH,IAAA,WAAW,CAAC,EAAW,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,sBAAA,CAAwB,CAAC,CAAC;KACxF;AA9JU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBAMP,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACZhC;MAIa,oBAAoB,CAAA;;IAM/B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,eAAe,CAAC;AAIhC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KAC/E;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAkB,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC/H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAkB,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC9H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAC5E;AAED;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,UAAmB,EAAE,MAAgC,EAAE,MAAqB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC7I,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC,CAAC;SAAE;AACpE,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACjF;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,EAAW,EAAA;AACtB,QAAA,OAAO,GAAG,IAAI,CAAC,OAAO,CAAW,QAAA,EAAA,EAAE,EAAE,CAAC;KACvC;AAED;;AAEG;AACH,IAAA,QAAQ,CAAC,EAAW,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAQ,MAAA,CAAA,EAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,UAAA,EAAa,EAAE,CAAA,CAAE,CAAC,CAAC;KACtE;AAED;;AAEG;AACH,IAAA,eAAe,CAAC,EAAW,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,UAAA,CAAY,CAAC,CAAC;KAC5E;AAhFU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,kBAMX,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACXhC;MAIa,iBAAiB,CAAA;;IAM5B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,aAAa,CAAC;AAI9B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KACzE;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAY,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACzH;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAY,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACxH;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACtE;AAED;;AAEG;IACH,IAAI,CAAC,UAAmB,EAAE,OAA6B,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAClG,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC,CAAC;SAAE;AACpE,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC,CAAC;SAAE;AAC3D,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC3E;AAzDU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAMR,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACXhC;MAIa,kBAAkB,CAAA;;IAM7B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,cAAc,CAAC;AAI/B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACxE;AAED;;AAEG;IACH,IAAI,GAAA;AACF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,CAAC,CAAC;KACpE;AAED;;AAEG;IACH,eAAe,CAAC,EAAW,EAAE,IAAa,EAAA;QACxC,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,cAAA,CAAgB,EAAE,GAAG,MAAM,CAAC,CAAC;KAChG;AAED;;AAEG;AACH,IAAA,wBAAwB,CAAC,EAAW,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAQ,MAAA,CAAA,EAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,mBAAA,CAAqB,CAAC,CAAC;KAChF;AAED;;AAEG;AACH,IAAA,uBAAuB,CAAC,EAAW,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAQ,MAAA,CAAA,EAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,kBAAA,CAAoB,CAAC,CAAC;KAC/E;AA9CU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAMT,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACThC;MAIa,eAAe,CAAA;;IAM1B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,UAAU,CAAC;AAI3B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAa,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC1H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAa,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACzH;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACvE;AAED;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,MAAe,EAAE,KAAc,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAChG,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC,CAAC;SAAE;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC5E;AAED;;AAEG;AACH,IAAA,KAAK,CAAC,MAAe,EAAA;QACnB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AAE1D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAQ,MAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACvF;AA7DU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBAMN,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACRhC;MAIa,uBAAuB,CAAA;;IAMlC,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,mBAAmB,CAAC;AAIpC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KAClF;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAqB,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAO,KAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACvI;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAqB,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACjI;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAC/E;AAED;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,SAAkB,EAAE,SAAkB,EAAE,IAAwB,EAAE,MAA4B,EAAE,QAAyB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC1L,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC,CAAC;SAAE;AACjE,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC,CAAC;SAAE;AACjE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAA,CAAE,CAAC,CAAC;SAAE;AAC9D,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACpF;AAED;;AAEG;AACH,IAAA,mBAAmB,CAAC,EAAW,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,SAAA,CAAW,CAAC,CAAC;KAC1F;AAED;;AAEG;IACH,qBAAqB,CAAC,EAAW,EAAE,KAAc,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,GAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAa,UAAA,EAAA,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;KACtF;AA3EU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,kBAMd,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACXhC;MAIa,cAAc,CAAA;;IAMzB,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,UAAU,CAAC;AAI3B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,IAAkB,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAe,aAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC/H;AAED;;AAEG;AACH,IAAA,SAAS,CAAC,IAAkB,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAY,UAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACrI;AAED;;AAEG;AACH,IAAA,QAAQ,CAAC,IAAkB,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAY,UAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC5H;AAED;;AAEG;AACH,IAAA,UAAU,CAAC,IAAa,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,gBAAgB,IAAI,CAAA,CAAE,EAAE,EAAE,CAAC,CAAC;KAClF;AAED;;AAEG;IACH,gBAAgB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAgB,cAAA,CAAA,CAAC,CAAC;KACvF;AA3CU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBAML,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACXhC;MAIa,sBAAsB,CAAA;;IAMjC,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,kBAAkB,CAAC;AAInC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KAC/E;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAkB,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC/H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAkB,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC9H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAC5E;AAED;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,MAAqB,EAAE,KAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACvG,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC,CAAC;SAAE;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACjF;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,EAAW,EAAA;AACtB,QAAA,OAAO,GAAG,IAAI,CAAC,OAAO,CAAW,QAAA,EAAA,EAAE,EAAE,CAAC;KACvC;AAED;;AAEG;AACH,IAAA,QAAQ,CAAC,EAAW,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAQ,MAAA,CAAA,EAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,UAAA,EAAa,EAAE,CAAA,CAAE,CAAC,CAAC;KACtE;AAED;;AAEG;AACH,IAAA,eAAe,CAAC,EAAW,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,UAAA,CAAY,CAAC,CAAC;KAC5E;AA/EU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,kBAMb,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACXhC;MAIa,cAAc,CAAA;;IAMzB,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,UAAU,CAAC;AAI3B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,MAAe,EAAA;QAC1B,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AAE1D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAU,QAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACzF;AAED;;AAEG;AACH,IAAA,mBAAmB,CAAC,EAAW,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAQ,MAAA,CAAA,EAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,SAAA,EAAY,EAAE,CAAA,SAAA,CAAW,CAAC,CAAC;KAC9E;AAED;;AAEG;IACH,KAAK,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAQ,MAAA,CAAA,CAAC,CAAC;KACtE;AAhCU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBAML,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACThC;MAIa,kBAAkB,CAAA;;IAM7B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,cAAc,CAAC;AAI/B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAC9E;AAED;;AAEG;IACH,IAAI,GAAA;AACF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,CAAC,CAAC;KAC3E;AAED;;AAEG;AACH,IAAA,OAAO,CAAC,EAAW,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,CAAE,EAAE,EAAE,CAAC,CAAC;KACpE;AA7BU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAMT,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACDhC;MAIa,gBAAgB,CAAA;;IAM3B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,WAAW,CAAC;AAI5B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KAC3E;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAc,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC3H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAc,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC1H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACxE;AAED;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,MAA4B,EAAE,IAAwB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACvH,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC7E;AAED;;AAEG;IACH,MAAM,CAAC,MAAe,EAAE,MAA4B,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC/F,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAS,OAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC3F;AAED;;AAEG;IACH,WAAW,CAAC,EAAW,EAAE,MAAe,EAAE,UAAmB,EAAE,IAAuB,EAAE,MAA2B,EAAE,KAAyB,EAAE,OAA6B,EAAE,IAAa,EAAE,EAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACpP,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC,CAAC;SAAE;AACpE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC,CAAC;SAAE;AACrD,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC,CAAC;SAAE;AAC3D,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC,CAAC;SAAE;AAC5C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,QAAA,CAAU,EAAE,GAAG,MAAM,CAAC,CAAC;KAC1F;AAED;;AAEG;IACH,WAAW,CAAC,EAAW,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACnF,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,QAAA,CAAU,EAAE,GAAG,MAAM,CAAC,CAAC;KAC1F;AAED;;AAEG;AACH,IAAA,mBAAmB,CAAC,EAAW,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAQ,MAAA,CAAA,EAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,sBAAA,CAAwB,CAAC,CAAC;KACnF;AAED;;AAEG;IACH,aAAa,CAAC,EAAW,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACrF,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,UAAA,CAAY,EAAE,GAAG,MAAM,CAAC,CAAC;KAC9F;AA7HU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBAMP,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACpBhC;MAIa,iBAAiB,CAAA;;IAM5B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,aAAa,CAAC;AAI9B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAe,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC5H;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACzE;AAED;;AAEG;IACH,IAAI,CAAC,IAAa,EAAE,EAAW,EAAE,MAAe,EAAE,MAAe,EAAE,QAAiB,EAAE,MAAe,EAAE,QAAiB,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACpL,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC,CAAC;SAAE;AAC5C,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAA,CAAE,CAAC,CAAC;SAAE;AAC9D,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAA,CAAE,CAAC,CAAC;SAAE;AAC9D,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC9E;AAED;;AAEG;IACH,SAAS,CAAC,IAAa,EAAE,EAAW,EAAE,MAAe,EAAE,MAAe,EAAE,QAAiB,EAAE,MAAe,EAAE,QAAiB,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACzL,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC,CAAC;SAAE;AAC5C,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAA,CAAE,CAAC,CAAC;SAAE;AAC9D,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,QAAQ,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAA,CAAE,CAAC,CAAC;SAAE;AAC9D,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAY,UAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAChG;AA9DU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAMR,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACVhC;MAIa,eAAe,CAAA;;IAM1B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,UAAU,CAAC;AAI3B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KAC1E;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAa,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC1H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAa,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACzH;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACvE;AAED;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC/D,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC5E;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,EAAW,EAAA;AACtB,QAAA,OAAO,GAAG,IAAI,CAAC,OAAO,CAAW,QAAA,EAAA,EAAE,EAAE,CAAC;KACvC;AAED;;AAEG;AACH,IAAA,QAAQ,CAAC,EAAW,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAQ,MAAA,CAAA,EAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,UAAA,EAAa,EAAE,CAAA,CAAE,CAAC,CAAC;KACtE;AAED;;AAEG;AACH,IAAA,eAAe,CAAC,EAAW,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,UAAA,CAAY,CAAC,CAAC;KAC5E;AAED;;AAEG;AACH,IAAA,4BAA4B,CAAC,SAAkB,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,6BAA6B,SAAS,CAAA,CAAE,EAAE,EAAE,CAAC,CAAC;KACpG;AApFU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBAMN,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACPhC;MAIa,aAAa,CAAA;;IAMxB,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,QAAQ,CAAC;AAIzB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KACxE;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACxH;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACvH;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACrE;AAED;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,IAAqB,EAAE,MAAyB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACjH,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC1E;AAED;;AAEG;IACH,MAAM,CAAC,MAAe,EAAE,IAAqB,EAAE,MAAyB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACnH,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAS,OAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC3F;AAED;;AAEG;IACH,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAgB,cAAA,CAAA,CAAC,CAAC;KACzF;AAhFU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAMJ,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACZhC;MAIa,oBAAoB,CAAA;;IAM/B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,eAAe,CAAC;AAIhC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KAC/E;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAkB,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC/H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAkB,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC9H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAC5E;AAED;;AAEG;AACH,IAAA,IAAI,CAAC,SAAkB,EAAE,MAAe,EAAE,MAAqB,EAAE,KAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC3H,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC,CAAC;SAAE;AACjE,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC,CAAC;SAAE;AACrD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACjF;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,EAAW,EAAA;AACtB,QAAA,OAAO,GAAG,IAAI,CAAC,OAAO,CAAW,QAAA,EAAA,EAAE,EAAE,CAAC;KACvC;AAED;;AAEG;AACH,IAAA,QAAQ,CAAC,EAAW,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAQ,MAAA,CAAA,EAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,UAAA,EAAa,EAAE,CAAA,CAAE,CAAC,CAAC;KACtE;AAED;;AAEG;AACH,IAAA,eAAe,CAAC,EAAW,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,UAAA,CAAY,CAAC,CAAC;KAC5E;AAhFU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,kBAMX,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACVhC;MAIa,qBAAqB,CAAA;;IAMhC,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,iBAAiB,CAAC;AAIlC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA+B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KAChF;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAmB,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA+B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAChI;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAmB,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC/H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAC7E;AAED;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,MAA2B,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC5F,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAClF;AAzDU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAMZ,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACThC;MAIa,sBAAsB,CAAA;;IAMjC,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,kBAAkB,CAAC;AAInC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KACjF;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAoB,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACjI;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAoB,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAChI;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAC9E;AAED;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,IAAwB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACzF,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACnF;AAED;;AAEG;IACH,YAAY,CAAC,EAAW,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACpF,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,SAAA,CAAW,EAAE,GAAG,MAAM,CAAC,CAAC;KACnG;AAED;;AAEG;AACH,IAAA,OAAO,CAAC,EAAW,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,QAAA,CAAU,EAAE,EAAE,CAAC,CAAC;KAC5E;AA7EU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,kBAMb,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFrB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACVhC;MAIa,oBAAoB,CAAA;;IAM/B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,gBAAgB,CAAC;AAIjC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KAC/E;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAkB,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC/H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAkB,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC9H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAC5E;AAED;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC/D,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACjF;AAED;;AAEG;IACH,OAAO,CAAC,IAAa,EAAE,KAAc,EAAA;QACnC,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC,CAAC;SAAE;AAEvD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAU,QAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACzF;AAED;;AAEG;IACH,kBAAkB,CAAC,IAAa,EAAE,KAAc,EAAA;QAC9C,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC,CAAC;SAAE;AAEvD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAuB,qBAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACvG;AAED;;AAEG;AACH,IAAA,cAAc,CAAC,IAAsB,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAgB,cAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAChI;AAED;;AAEG;AACH,IAAA,OAAO,CAAC,EAAa,EAAA;QACnB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC,CAAC;SAAE;AAE9C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,UAAU,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC;KAC/E;AAED;;AAEG;AACH,IAAA,SAAS,CAAC,EAAa,EAAA;QACrB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC,CAAC;SAAE;AAE9C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,YAAY,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC;KACjF;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;QAChB,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC,CAAC;SAAE;AAE9C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,SAAS,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC;KAC9E;AAnHU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,kBAMX,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACDhC;MAIa,iBAAiB,CAAA;;IAM5B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,YAAY,CAAC;AAI7B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;;AAGG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KAC5E;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAe,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC5H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAe,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC3H;AAED;;AAEG;AACH,IAAA,cAAc,CAAC,IAAe,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAY,UAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACrI;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACzE;AAED;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,MAA6B,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC9F,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC9E;AAED;;AAEG;IACH,MAAM,CAAC,MAAe,EAAE,MAA6B,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAChG,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAS,OAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC3F;AAED;;AAEG;IACH,KAAK,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAQ,MAAA,CAAA,CAAC,CAAC;KAC3E;AAED;;AAEG;IACH,WAAW,CAAC,EAAW,EAAE,MAAe,EAAE,IAAuB,EAAE,MAA2B,EAAE,KAAyB,EAAE,OAA6B,EAAE,IAAa,EAAE,EAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC/N,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC,CAAC;SAAE;AACrD,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC,CAAC;SAAE;AAC3D,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC,CAAC;SAAE;AAC5C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,QAAA,CAAU,EAAE,GAAG,MAAM,CAAC,CAAC;KAC1F;AAED;;AAEG;IACH,aAAa,CAAC,EAAW,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACrF,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,UAAA,CAAY,EAAE,GAAG,MAAM,CAAC,CAAC;KAC9F;AAED;;AAEG;AACH,IAAA,eAAe,CAAC,EAAW,EAAE,MAAe,EAAE,MAAqB,EAAE,MAAgC,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAChJ,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,YAAA,CAAc,EAAE,GAAG,MAAM,CAAC,CAAC;KACnG;AArIU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAMR,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACpBhC;MAIa,iBAAiB,CAAA;;IAM5B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,YAAY,CAAC;AAI7B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KAC5E;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAe,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC5H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAe,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC3H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACzE;AAED;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC/D,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC9E;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACjE,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAS,OAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC3F;AArEU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAMR,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACThC;MAIa,gBAAgB,CAAA;;IAM3B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,WAAW,CAAC;AAI5B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KAC5E;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAe,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC5H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAe,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC3H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACzE;AAED;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,IAA2B,EAAE,IAA4B,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC1H,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC9E;AAED;;AAEG;AACH,IAAA,cAAc,CAAC,EAAW,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,UAAA,EAAa,EAAE,CAAA,CAAE,CAAC,CAAC;KACpF;AAED;;AAEG;AACH,IAAA,mBAAmB,CAAC,EAAW,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,aAAa,EAAE,CAAA,KAAA,CAAO,EAAE,EAAE,CAAC,CAAC;KAClF;AAxEU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBAMP,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACZhC;MAIa,qBAAqB,CAAA;;IAMhC,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,iBAAiB,CAAC;AAIlC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAmB,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA+B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAChI;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAmB,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC/H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAC7E;AAED;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC/D,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAClF;AAjDU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAMZ,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACbhC;MAIa,cAAc,CAAA;;IAMzB,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,SAAS,CAAC;AAI1B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,MAAM,CAAC,MAAe,EAAE,EAAW,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,WAAW,MAAM,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAChF;AAfU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBAML,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACRhC;MAIa,YAAY,CAAA;;IAMvB,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,OAAO,CAAC;AAIxB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;;AAGG;AACH,IAAA,SAAS,CAAC,IAAkB,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAY,UAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAClI;AAhBU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,kBAMH,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACMhC;MAIa,eAAe,CAAA;;IAM1B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,UAAU,CAAC;AAI3B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KAC1E;AAED;;AAEG;AACH,IAAA,cAAc,CAAC,EAAW,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,CAAG,EAAA,IAAI,CAAC,OAAO,qBAAqB,EAAE,CAAA,CAAE,EAAE,EAAE,CAAC,CAAC;KAC7F;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAa,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC1H;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAa,EAAA;AAClB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACzH;AAED;;AAEG;AACH,IAAA,UAAU,CAAC,IAAuB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAO,KAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACtH;AAED;;AAEG;IACH,aAAa,CAAC,EAAW,EAAE,IAAkB,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,SAAA,EAAY,EAAE,CAAA,CAAE,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACvI;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACvE;AAED;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,SAAkB,EAAE,SAAkB,EAAE,UAAmB,EAAE,IAAa,EAAE,EAAW,EAAE,IAAuB,EAAE,MAA2B,EAAE,OAA6B,EAAE,OAA6B,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC5Q,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC,CAAC;SAAE;AACjE,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC,CAAC;SAAE;AACjE,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC,CAAC;SAAE;AACpE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC,CAAC;SAAE;AAC5C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC,CAAC;SAAE;AAC3D,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC,CAAC;SAAE;AAC3D,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC5E;AAED;;AAEG;IACH,mBAAmB,CAAC,MAAe,EAAE,SAAkB,EAAE,SAAkB,EAAE,UAAmB,EAAE,IAAa,EAAE,EAAW,EAAE,IAAuB,EAAE,MAA2B,EAAE,OAA6B,EAAE,OAA6B,EAAE,IAAa,EAAA;QAC7P,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC,CAAC;SAAE;AACjE,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC,CAAC;SAAE;AACjE,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC,CAAC;SAAE;AACpE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC,CAAC;SAAE;AAC5C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC,CAAC;SAAE;AAC3D,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC,CAAC;SAAE;AAC3D,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAQ,MAAA,CAAA,EAAC,CAAG,EAAA,IAAI,CAAC,OAAO,CAAA,sBAAA,CAAwB,EAAE,GAAG,MAAM,CAAC,CAAC;KACtF;AAED;;AAEG;AACH,IAAA,SAAS,CAAC,MAAe,EAAE,SAAkB,EAAE,SAAkB,EAAE,UAAmB,EAAE,IAAa,EAAE,EAAW,EAAE,IAAuB,EAAE,MAA2B,EAAE,OAA6B,EAAE,OAA6B,EAAA;QACpO,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC,CAAC;SAAE;AACjE,QAAA,IAAI,SAAS,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,aAAa,SAAS,CAAA,CAAE,CAAC,CAAC;SAAE;AACjE,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC,CAAC;SAAE;AACpE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC,CAAC;SAAE;AAC5C,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC,CAAC;SAAE;AAC3D,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC,CAAC;SAAE;AAE7D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAY,UAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAChG;AAED;;AAEG;IACH,KAAK,CAAC,IAAa,EAAE,EAAW,EAAA;QAC9B,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC,CAAC;SAAE;AAE9C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAQ,MAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACtF;AAED;;AAEG;IACH,QAAQ,CAAC,IAAa,EAAE,KAAc,EAAA;QACpC,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,KAAK,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,SAAS,KAAK,CAAA,CAAE,CAAC,CAAC;SAAE;AAEvD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAW,SAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KACzF;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,IAAa,EAAE,KAAc,EAAE,UAAmB,EAAA;QAC7D,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC,CAAC;SAAE;AAEtE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoC,GAAG,IAAI,CAAC,OAAO,CAAkB,eAAA,EAAA,IAAI,IAAI,KAAK,CAAA,CAAE,EAAE,GAAG,MAAM,CAAC,CAAC;KACpH;AAED;;AAEG;AACH,IAAA,+BAA+B,CAAC,IAAa,EAAE,KAAc,EAAE,UAAmB,EAAA;QAChF,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC,CAAC;SAAE;AAEtE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwD,GAAG,IAAI,CAAC,OAAO,CAA2B,wBAAA,EAAA,IAAI,IAAI,KAAK,CAAA,CAAE,EAAE,GAAG,MAAM,CAAC,CAAC;KACjJ;AAED;;AAEG;IACH,kCAAkC,CAAC,IAAa,EAAE,KAAc,EAAA;AAC9D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+C,CAAG,EAAA,IAAI,CAAC,OAAO,8BAA8B,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAAC,CAAC;KAClI;AAED;;AAEG;AACH,IAAA,kCAAkC,CAAC,IAAa,EAAE,KAAc,EAAE,UAAmB,EAAA;QACnF,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,UAAU,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,cAAc,UAAU,CAAA,CAAE,CAAC,CAAC;SAAE;AAEtE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyD,GAAG,IAAI,CAAC,OAAO,CAA8B,2BAAA,EAAA,IAAI,IAAI,KAAK,CAAA,CAAE,EAAE,GAAG,MAAM,CAAC,CAAC;KACrJ;AAED;;AAEG;IACH,YAAY,CAAC,EAAW,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACpF,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,SAAA,CAAW,EAAE,GAAG,MAAM,CAAC,CAAC;KAC5F;AAED;;AAEG;IACH,WAAW,CAAC,EAAW,EAAE,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACnF,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,QAAA,CAAU,EAAE,GAAG,MAAM,CAAC,CAAC;KAChG;AAED;;AAEG;AACH,IAAA,aAAa,CAAC,EAAW,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,SAAA,CAAW,EAAE,EAAE,CAAC,CAAC;KAC7E;AAED;;AAEG;AACH,IAAA,eAAe,CAAC,EAAW,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,WAAA,CAAa,EAAE,EAAE,CAAC,CAAC;KAC/E;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,EAAW,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,YAAA,EAAe,EAAE,CAAA,CAAE,CAAC,CAAC;KACzF;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,IAAoB,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAa,WAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC7H;AAED;;AAEG;AACH,IAAA,aAAa,CAAC,EAAW,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,aAAA,EAAgB,EAAE,CAAA,CAAE,CAAC,CAAC;KAC3F;AAED;;AAEG;AACH,IAAA,aAAa,CAAC,IAAqB,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAc,YAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KAC9H;AA5PU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBAMN,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACxBhC;MAIa,cAAc,CAAA;;IAMzB,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,SAAS,CAAC;AAI1B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KACzE;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAY,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACzH;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAY,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACxH;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACtE;AAED;;AAEG;AACH,IAAA,IAAI,CAAC,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC/D,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC3E;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,MAAe,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACjE,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAS,OAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC3F;AArEU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,kBAML,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;ACJhC;MAIa,aAAa,CAAA;;IAMxB,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,QAAQ,CAAC;AAIzB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;IACH,GAAG,GAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,IAAA,CAAM,EAAE,EAAE,CAAC,CAAC;KACxE;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACxH;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,IAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,CAAG,EAAA,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACvH;AAED;;AAEG;IACH,YAAY,CAAC,EAAW,EAAE,MAAuB,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,GAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAW,QAAA,EAAA,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;KAC1F;AAED;;AAEG;AACH,IAAA,MAAM,CAAC,EAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KAClE;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACrE;AAED;;AAEG;IACH,IAAI,CAAC,MAAe,EAAE,MAAyB,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC1F,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC1E;AAED;;AAEG;AACH,IAAA,SAAS,CAAC,IAAa,EAAE,EAAW,EAAE,MAAe,EAAE,MAAyB,EAAA;QAC9E,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,EAAE,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA,CAAE,CAAC,CAAC;SAAE;AAC5C,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AACxD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAA,CAAE,CAAC,CAAC;SAAE;AAE1D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAA,EAAG,IAAI,CAAC,OAAO,CAAY,UAAA,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAChG;AAED;;AAEG;IACH,iBAAiB,CAAC,EAAW,EAAE,WAAoB,EAAA;QACjD,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,WAAW,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,eAAe,WAAW,CAAA,CAAE,CAAC,CAAC;SAAE;AAEzE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAuB,GAAG,IAAI,CAAC,OAAO,CAAI,CAAA,EAAA,EAAE,oBAAoB,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC;KACrG;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,IAAiB,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA6B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAU,QAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACtI;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,IAAiB,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAU,QAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACrI;AAED;;AAEG;AACH,IAAA,YAAY,CAAC,EAAW,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,SAAA,EAAY,EAAE,CAAA,CAAE,CAAC,CAAC;KAC1E;AAED;;AAEG;AACH,IAAA,UAAU,CAAC,EAAW,EAAE,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QACjE,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI,EAAE,CAAA,QAAA,CAAU,EAAE,GAAG,MAAM,CAAC,CAAC;KAC9F;AAED;;AAEG;AACH,IAAA,mBAAmB,CAAC,IAAiB,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA+B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAyB,uBAAA,CAAA,EAAE,OAAO,IAAI,KAAK,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;KACvJ;AAED;;AAEG;AACH,IAAA,mBAAmB,CAAC,EAAW,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAA+B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,wBAAA,EAA2B,EAAE,CAAA,CAAE,CAAC,CAAC;KACvG;AAED;;AAEG;IACH,MAAM,CAAC,EAAW,EAAE,EAAW,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,GAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAW,QAAA,EAAA,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;KACtF;AAED;;AAEG;IACH,gBAAgB,CAAC,IAAa,EAAE,KAAc,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAG,EAAA,IAAI,CAAC,OAAO,CAAoB,kBAAA,CAAA,CAAC,CAAC;KACtF;AAED;;AAEG;IACH,UAAU,CAAC,EAAW,EAAE,EAAW,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,GAAG,IAAI,CAAC,OAAO,CAAA,UAAA,EAAa,EAAE,CAAI,CAAA,EAAA,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;KACnF;AAED;;AAEG;AACH,IAAA,aAAa,CAAC,EAAW,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,SAAA,EAAY,EAAE,CAAA,CAAE,CAAC,CAAC;KAC1E;AAED;;AAEG;IACH,YAAY,CAAC,IAAa,EAAE,KAAc,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoC,CAAG,EAAA,IAAI,CAAC,OAAO,kBAAkB,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAAC,CAAC;KAC3G;AAED;;AAEG;IACH,aAAa,CAAC,IAAa,EAAE,KAAc,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAG,EAAA,IAAI,CAAC,OAAO,oBAAoB,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAAC,CAAC;KAC1G;AAED;;AAEG;IACH,aAAa,CAAC,IAAa,EAAE,KAAc,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAG,EAAA,IAAI,CAAC,OAAO,oBAAoB,IAAI,CAAA,CAAA,EAAI,KAAK,CAAA,CAAE,CAAC,CAAC;KACzG;AAvLU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAMJ,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;AClBhC;MAIa,iBAAiB,CAAA;;IAM5B,WAAwC,CAAA,MAAiB,EAAU,IAAe,EAAA;QAA1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;QAAU,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAW;;QAH1E,IAAO,CAAA,OAAA,GAAG,aAAa,CAAC;AAI9B,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;KAC/C;AAED;;AAEG;AACH,IAAA,GAAG,CAAC,EAAW,EAAA;AACb,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC;KACvE;AAED;;AAEG;AACH,IAAA,IAAI,CAAC,IAAa,EAAE,IAAa,EAAE,IAAa,EAAA;QAC9C,MAAM,MAAM,GAAG,EAAE,CAAC;AAClB,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAClD,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AAAE,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAA,CAAE,CAAC,CAAC;SAAE;AAEpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,OAAO,CAAE,CAAA,EAAE,GAAG,MAAM,CAAC,CAAC;KAC5E;AA3BU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAMR,UAAU,EAAA,EAAA,EAAA,KAAA,EAAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AANnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAOc,MAAM;2BAAC,UAAU,CAAA;;;MCXnB,gBAAgB,CAAA;IAC3B,OAAO,OAAO,CAAC,MAAiB,EAAA;QAC9B,OAAO;AACL,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,SAAS,EAAE;AACT,gBAAA,iBAAiB,EAAE;AACnB,gBAAA,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE;AAC1C,aAAA;SACF,CAAC;KACH;+GATU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAFjB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;AAEX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAFjB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA,CAAA;;;ACPD;;AAEG;;ACFH;;AAEG;;;;"}