@mtgame/core 0.2.26 → 2.0.0
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.
- package/api/basketball-game-api.d.ts +3 -0
- package/api/feedback-api.d.ts +5 -2
- package/api/file-api.d.ts +3 -0
- package/api/football-game-api.d.ts +3 -0
- package/api/game-base-api.d.ts +3 -0
- package/api/handball-game-api.d.ts +3 -0
- package/api/hockey-game-api.d.ts +3 -0
- package/api/league-api.d.ts +3 -0
- package/api/league-news-api.d.ts +3 -0
- package/api/league-player-api.d.ts +3 -0
- package/api/media-api.d.ts +5 -2
- package/api/notification-api.d.ts +3 -0
- package/api/notification-base-api.d.ts +3 -0
- package/api/org-notification-api.d.ts +3 -0
- package/api/public-team-api.d.ts +3 -2
- package/api/public-user-api.d.ts +3 -0
- package/api/reference-api.d.ts +3 -0
- package/api/rugby-game-api.d.ts +3 -0
- package/api/team-api.d.ts +4 -1
- package/api/team-event-api.d.ts +3 -0
- package/api/tournament-api.d.ts +3 -2
- package/api/tournament-join-api.d.ts +3 -0
- package/api/tournament-round-api.d.ts +3 -0
- package/api/tournament-season-api.d.ts +3 -0
- package/api/tournament-stage-api.d.ts +3 -0
- package/api/user-api.d.ts +5 -2
- package/api/volleyball-game-api.d.ts +3 -1
- package/api/waterpolo-game-api.d.ts +3 -0
- package/esm2020/api/basketball-game-api.mjs +44 -0
- package/esm2020/api/feedback-api.mjs +29 -0
- package/esm2020/api/file-api.mjs +41 -0
- package/esm2020/api/football-game-api.mjs +49 -0
- package/esm2020/api/game-base-api.mjs +40 -0
- package/esm2020/api/handball-game-api.mjs +49 -0
- package/esm2020/api/hockey-game-api.mjs +49 -0
- package/esm2020/api/league-api.mjs +119 -0
- package/esm2020/api/league-news-api.mjs +57 -0
- package/esm2020/api/league-player-api.mjs +31 -0
- package/esm2020/api/media-api.mjs +124 -0
- package/esm2020/api/notification-api.mjs +16 -0
- package/esm2020/api/notification-base-api.mjs +62 -0
- package/esm2020/api/org-notification-api.mjs +16 -0
- package/{esm2015/api/paginated-response.interface.js → esm2020/api/paginated-response.interface.mjs} +0 -0
- package/{esm2015/api/public-api.js → esm2020/api/public-api.mjs} +0 -0
- package/esm2020/api/public-team-api.mjs +28 -0
- package/esm2020/api/public-user-api.mjs +38 -0
- package/esm2020/api/reference-api.mjs +30 -0
- package/esm2020/api/rugby-game-api.mjs +47 -0
- package/esm2020/api/team-api.mjs +302 -0
- package/esm2020/api/team-event-api.mjs +61 -0
- package/esm2020/api/tournament-api.mjs +391 -0
- package/esm2020/api/tournament-join-api.mjs +55 -0
- package/esm2020/api/tournament-round-api.mjs +57 -0
- package/esm2020/api/tournament-season-api.mjs +92 -0
- package/esm2020/api/tournament-stage-api.mjs +48 -0
- package/esm2020/api/user-api.mjs +219 -0
- package/esm2020/api/volleyball-game-api.mjs +49 -0
- package/esm2020/api/waterpolo-game-api.mjs +49 -0
- package/esm2020/http-cookie.interceptor.mjs +38 -0
- package/{esm2015/localization/basketball-game-log-types.js → esm2020/localization/basketball-game-log-types.mjs} +0 -0
- package/{esm2015/localization/basketball-game-sub-log-types.js → esm2020/localization/basketball-game-sub-log-types.mjs} +2 -5
- package/{esm2015/localization/football-game-log-types.js → esm2020/localization/football-game-log-types.mjs} +0 -0
- package/{esm2015/localization/handball-game-log-types.js → esm2020/localization/handball-game-log-types.mjs} +0 -0
- package/{esm2015/localization/hockey-game-log-types.js → esm2020/localization/hockey-game-log-types.mjs} +2 -5
- package/esm2020/localization/hockey-penalty-types.mjs +50 -0
- package/{esm2015/localization/organization-statuses.js → esm2020/localization/organization-statuses.mjs} +0 -0
- package/{esm2015/localization/overtime-types.js → esm2020/localization/overtime-types.mjs} +0 -0
- package/{esm2015/localization/public-api.js → esm2020/localization/public-api.mjs} +0 -0
- package/{esm2015/localization/rugby-foul-game-stage.js → esm2020/localization/rugby-foul-game-stage.mjs} +0 -0
- package/{esm2015/localization/rugby-foul-sanction.js → esm2020/localization/rugby-foul-sanction.mjs} +0 -0
- package/{esm2015/localization/rugby-game-log-types.js → esm2020/localization/rugby-game-log-types.mjs} +0 -0
- package/{esm2015/localization/team-event-type.js → esm2020/localization/team-event-type.mjs} +0 -0
- package/{esm2015/localization/team-user-role.js → esm2020/localization/team-user-role.mjs} +0 -0
- package/{esm2015/localization/user-profile.js → esm2020/localization/user-profile.mjs} +0 -0
- package/{esm2015/localization/volleyball-game-log-types.js → esm2020/localization/volleyball-game-log-types.mjs} +0 -0
- package/{esm2015/localization/waterpolo-game-log-types.js → esm2020/localization/waterpolo-game-log-types.mjs} +3 -3
- package/esm2020/models/achievement.mjs +18 -0
- package/esm2020/models/base-statistic.mjs +4 -0
- package/esm2020/models/basketball-game-config.mjs +18 -0
- package/esm2020/models/basketball-game-log.mjs +158 -0
- package/esm2020/models/basketball-game-statistic.mjs +47 -0
- package/esm2020/models/basketball-game-team-statistic.mjs +15 -0
- package/esm2020/models/basketball-profile.mjs +27 -0
- package/esm2020/models/basketball-statistic.mjs +62 -0
- package/esm2020/models/city.mjs +9 -0
- package/esm2020/models/feedback.mjs +14 -0
- package/esm2020/models/file.mjs +31 -0
- package/esm2020/models/football-game-config.mjs +22 -0
- package/esm2020/models/football-game-log.mjs +83 -0
- package/esm2020/models/football-game-statistic.mjs +93 -0
- package/esm2020/models/football-game-team-statistic.mjs +15 -0
- package/esm2020/models/football-profile.mjs +27 -0
- package/esm2020/models/football-statistic.mjs +76 -0
- package/esm2020/models/game-bill.mjs +30 -0
- package/esm2020/models/game-config-base.mjs +4 -0
- package/esm2020/models/game-invite.mjs +22 -0
- package/esm2020/models/game-log-base.mjs +4 -0
- package/esm2020/models/game-statistic-base.mjs +7 -0
- package/{esm2015/models/game-team-statistic-base.js → esm2020/models/game-team-statistic-base.mjs} +0 -0
- package/esm2020/models/game-timeline-stages.mjs +19 -0
- package/esm2020/models/game-user-disqualification.mjs +14 -0
- package/esm2020/models/game-user-limitation.mjs +19 -0
- package/esm2020/models/game-user.mjs +20 -0
- package/esm2020/models/game.mjs +188 -0
- package/esm2020/models/handball-game-config.mjs +16 -0
- package/esm2020/models/handball-game-log.mjs +71 -0
- package/esm2020/models/handball-game-statistic.mjs +67 -0
- package/esm2020/models/handball-game-team-statistic.mjs +15 -0
- package/esm2020/models/handball-profile.mjs +23 -0
- package/esm2020/models/handball-statistic.mjs +37 -0
- package/esm2020/models/hockey-game-config.mjs +25 -0
- package/esm2020/models/hockey-game-log.mjs +102 -0
- package/esm2020/models/hockey-game-statistic.mjs +101 -0
- package/esm2020/models/hockey-game-team-statistic.mjs +15 -0
- package/esm2020/models/hockey-penalty-types.mjs +6 -0
- package/esm2020/models/hockey-profile.mjs +25 -0
- package/esm2020/models/hockey-statistic.mjs +49 -0
- package/esm2020/models/league-banner.mjs +21 -0
- package/esm2020/models/league-court.mjs +9 -0
- package/esm2020/models/league-document.mjs +14 -0
- package/esm2020/models/league-news.mjs +25 -0
- package/esm2020/models/league-partner.mjs +14 -0
- package/esm2020/models/league-player.mjs +81 -0
- package/esm2020/models/league-playlist.mjs +14 -0
- package/esm2020/models/league-user.mjs +38 -0
- package/esm2020/models/league.mjs +38 -0
- package/esm2020/models/media-item.mjs +20 -0
- package/esm2020/models/notification-settings.mjs +20 -0
- package/esm2020/models/notification.mjs +105 -0
- package/esm2020/models/organization-bill.mjs +31 -0
- package/esm2020/models/organization-statistic.mjs +9 -0
- package/esm2020/models/organization-tariff.mjs +16 -0
- package/esm2020/models/organization.mjs +21 -0
- package/esm2020/models/playoff.mjs +56 -0
- package/esm2020/models/poll.mjs +83 -0
- package/esm2020/models/public-api.mjs +110 -0
- package/esm2020/models/rugby-foul-type.mjs +39 -0
- package/esm2020/models/rugby-game-config.mjs +23 -0
- package/esm2020/models/rugby-game-log.mjs +120 -0
- package/esm2020/models/rugby-game-statistic.mjs +29 -0
- package/esm2020/models/rugby-game-team-statistic.mjs +15 -0
- package/esm2020/models/rugby-profile.mjs +22 -0
- package/esm2020/models/rugby-statistic.mjs +37 -0
- package/esm2020/models/season-tournament.mjs +9 -0
- package/esm2020/models/sport.mjs +96 -0
- package/esm2020/models/team-access.mjs +14 -0
- package/esm2020/models/team-achievement.mjs +18 -0
- package/esm2020/models/team-event-invite.mjs +18 -0
- package/{esm2015/models/team-event-type.js → esm2020/models/team-event-type.mjs} +0 -0
- package/esm2020/models/team-event.mjs +27 -0
- package/esm2020/models/team-invite-external.mjs +9 -0
- package/esm2020/models/team-invite.mjs +18 -0
- package/esm2020/models/team-permission.mjs +23 -0
- package/esm2020/models/team-user.mjs +30 -0
- package/esm2020/models/team.mjs +46 -0
- package/esm2020/models/teams-and-users.mjs +20 -0
- package/esm2020/models/tournament-disqualification.mjs +14 -0
- package/esm2020/models/tournament-division.mjs +14 -0
- package/esm2020/models/tournament-event.mjs +28 -0
- package/esm2020/models/tournament-group.mjs +9 -0
- package/esm2020/models/tournament-invite.mjs +21 -0
- package/esm2020/models/tournament-join-team.mjs +27 -0
- package/esm2020/models/tournament-join1x1-data.mjs +15 -0
- package/esm2020/models/tournament-news.mjs +17 -0
- package/esm2020/models/tournament-round-team.mjs +40 -0
- package/esm2020/models/tournament-round.mjs +22 -0
- package/esm2020/models/tournament-season.mjs +25 -0
- package/esm2020/models/tournament-stage-team.mjs +22 -0
- package/esm2020/models/tournament-stage.mjs +20 -0
- package/esm2020/models/tournament-team-user-invite.mjs +14 -0
- package/esm2020/models/tournament-team-user.mjs +20 -0
- package/esm2020/models/tournament-team.mjs +28 -0
- package/esm2020/models/tournament.mjs +153 -0
- package/esm2020/models/user-access.mjs +9 -0
- package/esm2020/models/user-permission.mjs +23 -0
- package/esm2020/models/user-profile.mjs +9 -0
- package/esm2020/models/user.mjs +55 -0
- package/esm2020/models/util.mjs +143 -0
- package/esm2020/models/volleyball-game-config.mjs +27 -0
- package/esm2020/models/volleyball-game-log.mjs +124 -0
- package/esm2020/models/volleyball-game-statistic.mjs +34 -0
- package/esm2020/models/volleyball-game-team-statistic.mjs +15 -0
- package/esm2020/models/volleyball-profile.mjs +27 -0
- package/esm2020/models/volleyball-statistic.mjs +44 -0
- package/esm2020/models/waterpolo-game-config.mjs +25 -0
- package/esm2020/models/waterpolo-game-log.mjs +142 -0
- package/esm2020/models/waterpolo-game-statistic.mjs +472 -0
- package/esm2020/models/waterpolo-game-team-statistic.mjs +15 -0
- package/esm2020/models/waterpolo-profile.mjs +26 -0
- package/esm2020/models/waterpolo-statistic.mjs +57 -0
- package/{esm2015/mtgame-core.js → esm2020/mtgame-core.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +2 -1
- package/esm2020/services/base.controller.mjs +19 -0
- package/esm2020/services/base.service.mjs +18 -0
- package/esm2020/services/centrifugo.service.mjs +105 -0
- package/esm2020/services/config.service.mjs +44 -0
- package/{esm2015/services/public-api.js → esm2020/services/public-api.mjs} +2 -1
- package/esm2020/storage/local-storage-engine.mjs +18 -0
- package/esm2020/storage/new.mjs +46 -0
- package/esm2020/storage/old-local-storage-engine.mjs +18 -0
- package/esm2020/storage/old-storage-engine.mjs +49 -0
- package/esm2020/storage/public-api.mjs +7 -0
- package/esm2020/storage/storage-engine.mjs +47 -0
- package/{esm2015/storage/store.js → esm2020/storage/store.mjs} +1 -1
- package/{esm2015/utils/array.js → esm2020/utils/array.mjs} +0 -0
- package/esm2020/utils/component-destroyed.mjs +27 -0
- package/{esm2015/utils/cookie.js → esm2020/utils/cookie.mjs} +0 -0
- package/esm2020/utils/data.mjs +164 -0
- package/{esm2015/utils/date.js → esm2020/utils/date.mjs} +0 -0
- package/{esm2015/utils/device.js → esm2020/utils/device.mjs} +0 -0
- package/{esm2015/utils/enum.js → esm2020/utils/enum.mjs} +0 -0
- package/{esm2015/utils/errors.js → esm2020/utils/errors.mjs} +2 -4
- package/{esm2015/utils/favicon.js → esm2020/utils/favicon.mjs} +0 -0
- package/{esm2015/utils/form.js → esm2020/utils/form.mjs} +0 -0
- package/{esm2015/utils/public-api.js → esm2020/utils/public-api.mjs} +0 -0
- package/{esm2015/utils/validators.js → esm2020/utils/validators.mjs} +0 -0
- package/esm2020/websocket/game.websocket.mjs +61 -0
- package/esm2020/websocket/public-api.mjs +2 -0
- package/fesm2015/{mtgame-core.js → mtgame-core.mjs} +1665 -4848
- package/fesm2015/mtgame-core.mjs.map +1 -0
- package/fesm2020/mtgame-core.mjs +7270 -0
- package/fesm2020/mtgame-core.mjs.map +1 -0
- package/http-cookie.interceptor.d.ts +3 -0
- package/localization/basketball-game-sub-log-types.d.ts +0 -3
- package/localization/football-game-log-types.d.ts +29 -29
- package/localization/hockey-game-log-types.d.ts +0 -3
- package/localization/hockey-penalty-types.d.ts +2 -5
- package/models/achievement.d.ts +0 -2
- package/models/base-statistic.d.ts +2 -1
- package/models/basketball-game-config.d.ts +2 -4
- package/models/basketball-game-log.d.ts +2 -9
- package/models/basketball-game-statistic.d.ts +1 -4
- package/models/basketball-game-team-statistic.d.ts +0 -2
- package/models/basketball-profile.d.ts +0 -2
- package/models/basketball-statistic.d.ts +1 -4
- package/models/city.d.ts +0 -2
- package/models/feedback.d.ts +2 -3
- package/models/file.d.ts +2 -3
- package/models/football-game-config.d.ts +2 -4
- package/models/football-game-log.d.ts +30 -33
- package/models/football-game-statistic.d.ts +1 -4
- package/models/football-game-team-statistic.d.ts +0 -2
- package/models/football-profile.d.ts +0 -2
- package/models/football-statistic.d.ts +1 -4
- package/models/game-bill.d.ts +0 -2
- package/models/game-config-base.d.ts +3 -0
- package/models/game-invite.d.ts +0 -2
- package/models/game-log-base.d.ts +3 -2
- package/models/game-statistic-base.d.ts +3 -1
- package/models/game-timeline-stages.d.ts +1 -5
- package/models/game-user-disqualification.d.ts +0 -2
- package/models/game-user-limitation.d.ts +0 -4
- package/models/game-user.d.ts +0 -2
- package/models/game.d.ts +10 -21
- package/models/handball-game-config.d.ts +2 -4
- package/models/handball-game-log.d.ts +1 -4
- package/models/handball-game-statistic.d.ts +1 -4
- package/models/handball-game-team-statistic.d.ts +0 -2
- package/models/handball-profile.d.ts +0 -2
- package/models/handball-statistic.d.ts +1 -4
- package/models/hockey-game-config.d.ts +2 -4
- package/models/hockey-game-log.d.ts +4 -15
- package/models/hockey-game-statistic.d.ts +1 -18
- package/models/hockey-game-team-statistic.d.ts +0 -2
- package/models/hockey-penalty-types.d.ts +7 -0
- package/models/hockey-profile.d.ts +0 -2
- package/models/hockey-statistic.d.ts +1 -18
- package/models/league-banner.d.ts +0 -2
- package/models/league-court.d.ts +0 -2
- package/models/league-document.d.ts +0 -2
- package/models/league-news.d.ts +0 -2
- package/models/league-partner.d.ts +0 -2
- package/models/league-player.d.ts +2 -13
- package/models/league-playlist.d.ts +0 -2
- package/models/league-user.d.ts +0 -2
- package/models/league.d.ts +1 -6
- package/models/media-item.d.ts +0 -2
- package/models/notification-settings.d.ts +0 -2
- package/models/notification.d.ts +0 -2
- package/models/organization-bill.d.ts +0 -2
- package/models/organization-statistic.d.ts +0 -2
- package/models/organization-tariff.d.ts +0 -2
- package/models/organization.d.ts +0 -2
- package/models/playoff.d.ts +0 -4
- package/models/poll.d.ts +0 -6
- package/models/public-api.d.ts +0 -6
- package/models/rugby-foul-type.d.ts +0 -2
- package/models/rugby-game-config.d.ts +2 -4
- package/models/rugby-game-log.d.ts +1 -4
- package/models/rugby-game-statistic.d.ts +7 -10
- package/models/rugby-game-team-statistic.d.ts +0 -2
- package/models/rugby-profile.d.ts +0 -2
- package/models/rugby-statistic.d.ts +1 -4
- package/models/season-tournament.d.ts +0 -2
- package/models/sport.d.ts +0 -2
- package/models/team-access.d.ts +0 -2
- package/models/team-achievement.d.ts +0 -2
- package/models/team-event-invite.d.ts +2 -3
- package/models/team-event.d.ts +0 -2
- package/models/team-invite-external.d.ts +0 -2
- package/models/team-invite.d.ts +0 -2
- package/models/team-permission.d.ts +0 -2
- package/models/team-user.d.ts +0 -2
- package/models/team.d.ts +0 -2
- package/models/teams-and-users.d.ts +0 -2
- package/models/tournament-disqualification.d.ts +0 -2
- package/models/tournament-division.d.ts +0 -2
- package/models/tournament-event.d.ts +0 -2
- package/models/tournament-group.d.ts +0 -2
- package/models/tournament-invite.d.ts +0 -2
- package/models/tournament-join-team.d.ts +0 -4
- package/models/tournament-join1x1-data.d.ts +0 -2
- package/models/tournament-news.d.ts +0 -2
- package/models/tournament-round-team.d.ts +4 -14
- package/models/tournament-round.d.ts +0 -2
- package/models/tournament-season.d.ts +0 -2
- package/models/tournament-stage-team.d.ts +0 -2
- package/models/tournament-stage.d.ts +0 -2
- package/models/tournament-team-user-invite.d.ts +0 -2
- package/models/tournament-team-user.d.ts +0 -5
- package/models/tournament-team.d.ts +0 -16
- package/models/tournament.d.ts +5 -21
- package/models/user-access.d.ts +0 -2
- package/models/user-permission.d.ts +0 -2
- package/models/user-profile.d.ts +2 -3
- package/models/user.d.ts +2 -6
- package/models/util.d.ts +22 -46
- package/models/volleyball-game-config.d.ts +2 -4
- package/models/volleyball-game-log.d.ts +1 -4
- package/models/volleyball-game-statistic.d.ts +1 -4
- package/models/volleyball-game-team-statistic.d.ts +0 -2
- package/models/volleyball-profile.d.ts +0 -2
- package/models/volleyball-statistic.d.ts +1 -4
- package/models/waterpolo-game-config.d.ts +2 -4
- package/models/waterpolo-game-log.d.ts +1 -4
- package/models/waterpolo-game-statistic.d.ts +1 -4
- package/models/waterpolo-game-team-statistic.d.ts +0 -2
- package/models/waterpolo-profile.d.ts +0 -2
- package/models/waterpolo-statistic.d.ts +1 -4
- package/mtgame-core.d.ts +1 -0
- package/package.json +23 -10
- package/public-api.d.ts +1 -0
- package/services/base.controller.d.ts +12 -0
- package/services/base.service.d.ts +3 -0
- package/services/centrifugo.service.d.ts +6 -4
- package/services/config.service.d.ts +3 -0
- package/services/public-api.d.ts +1 -0
- package/storage/local-storage-engine.d.ts +2 -2
- package/storage/new.d.ts +17 -0
- package/storage/old-local-storage-engine.d.ts +6 -0
- package/storage/old-storage-engine.d.ts +24 -0
- package/storage/public-api.d.ts +5 -2
- package/storage/storage-engine.d.ts +25 -18
- package/storage/store.d.ts +3 -3
- package/utils/component-destroyed.d.ts +1 -1
- package/utils/data.d.ts +36 -6
- package/websocket/game.websocket.d.ts +24 -0
- package/websocket/public-api.d.ts +1 -0
- package/bundles/mtgame-core.umd.js +0 -14010
- package/bundles/mtgame-core.umd.js.map +0 -1
- package/esm2015/api/basketball-game-api.js +0 -61
- package/esm2015/api/feedback-api.js +0 -38
- package/esm2015/api/file-api.js +0 -49
- package/esm2015/api/football-game-api.js +0 -65
- package/esm2015/api/game-base-api.js +0 -54
- package/esm2015/api/handball-game-api.js +0 -65
- package/esm2015/api/hockey-game-api.js +0 -65
- package/esm2015/api/league-api.js +0 -151
- package/esm2015/api/league-news-api.js +0 -71
- package/esm2015/api/league-player-api.js +0 -34
- package/esm2015/api/media-api.js +0 -131
- package/esm2015/api/notification-api.js +0 -16
- package/esm2015/api/notification-base-api.js +0 -82
- package/esm2015/api/org-notification-api.js +0 -16
- package/esm2015/api/public-team-api.js +0 -41
- package/esm2015/api/public-user-api.js +0 -41
- package/esm2015/api/reference-api.js +0 -39
- package/esm2015/api/rugby-game-api.js +0 -63
- package/esm2015/api/team-api.js +0 -393
- package/esm2015/api/team-event-api.js +0 -80
- package/esm2015/api/tournament-api.js +0 -471
- package/esm2015/api/tournament-join-api.js +0 -72
- package/esm2015/api/tournament-round-api.js +0 -71
- package/esm2015/api/tournament-season-api.js +0 -112
- package/esm2015/api/tournament-stage-api.js +0 -63
- package/esm2015/api/user-api.js +0 -283
- package/esm2015/api/volleyball-game-api.js +0 -73
- package/esm2015/api/waterpolo-game-api.js +0 -65
- package/esm2015/http-cookie.interceptor.js +0 -37
- package/esm2015/localization/hockey-penalty-types.js +0 -50
- package/esm2015/models/achievement.js +0 -33
- package/esm2015/models/base-statistic.js +0 -2
- package/esm2015/models/basketball-game-config.js +0 -41
- package/esm2015/models/basketball-game-log.js +0 -192
- package/esm2015/models/basketball-game-statistic.js +0 -81
- package/esm2015/models/basketball-game-team-statistic.js +0 -27
- package/esm2015/models/basketball-profile.js +0 -43
- package/esm2015/models/basketball-statistic.js +0 -114
- package/esm2015/models/city.js +0 -22
- package/esm2015/models/feedback.js +0 -34
- package/esm2015/models/file.js +0 -54
- package/esm2015/models/football-game-config.js +0 -44
- package/esm2015/models/football-game-log.js +0 -104
- package/esm2015/models/football-game-statistic.js +0 -137
- package/esm2015/models/football-game-team-statistic.js +0 -27
- package/esm2015/models/football-profile.js +0 -43
- package/esm2015/models/football-statistic.js +0 -150
- package/esm2015/models/game-bill.js +0 -47
- package/esm2015/models/game-invite.js +0 -37
- package/esm2015/models/game-log-base.js +0 -2
- package/esm2015/models/game-statistic-base.js +0 -2
- package/esm2015/models/game-timeline-stages.js +0 -53
- package/esm2015/models/game-user-disqualification.js +0 -28
- package/esm2015/models/game-user-limitation.js +0 -51
- package/esm2015/models/game-user.js +0 -37
- package/esm2015/models/game.js +0 -281
- package/esm2015/models/handball-game-config.js +0 -34
- package/esm2015/models/handball-game-log.js +0 -92
- package/esm2015/models/handball-game-statistic.js +0 -101
- package/esm2015/models/handball-game-team-statistic.js +0 -27
- package/esm2015/models/handball-profile.js +0 -39
- package/esm2015/models/handball-statistic.js +0 -95
- package/esm2015/models/hockey-game-config.js +0 -48
- package/esm2015/models/hockey-game-log.js +0 -128
- package/esm2015/models/hockey-game-statistic.js +0 -159
- package/esm2015/models/hockey-game-team-statistic.js +0 -27
- package/esm2015/models/hockey-profile.js +0 -41
- package/esm2015/models/hockey-statistic.js +0 -143
- package/esm2015/models/league-banner.js +0 -39
- package/esm2015/models/league-court.js +0 -25
- package/esm2015/models/league-document.js +0 -26
- package/esm2015/models/league-field-base-value.js +0 -4
- package/esm2015/models/league-field-base.js +0 -25
- package/esm2015/models/league-news.js +0 -50
- package/esm2015/models/league-partner.js +0 -29
- package/esm2015/models/league-player-field-value.js +0 -32
- package/esm2015/models/league-player-field.js +0 -30
- package/esm2015/models/league-player.js +0 -116
- package/esm2015/models/league-playlist.js +0 -28
- package/esm2015/models/league-team-field.js +0 -30
- package/esm2015/models/league-user.js +0 -52
- package/esm2015/models/league.js +0 -71
- package/esm2015/models/media-item.js +0 -41
- package/esm2015/models/notification-settings.js +0 -35
- package/esm2015/models/notification.js +0 -134
- package/esm2015/models/organization-bill.js +0 -50
- package/esm2015/models/organization-statistic.js +0 -26
- package/esm2015/models/organization-tariff.js +0 -30
- package/esm2015/models/organization.js +0 -40
- package/esm2015/models/playoff.js +0 -91
- package/esm2015/models/poll.js +0 -132
- package/esm2015/models/public-api.js +0 -116
- package/esm2015/models/rugby-foul-type.js +0 -53
- package/esm2015/models/rugby-game-config.js +0 -42
- package/esm2015/models/rugby-game-log.js +0 -144
- package/esm2015/models/rugby-game-statistic.js +0 -89
- package/esm2015/models/rugby-game-team-statistic.js +0 -27
- package/esm2015/models/rugby-profile.js +0 -37
- package/esm2015/models/rugby-statistic.js +0 -123
- package/esm2015/models/season-tournament.js +0 -22
- package/esm2015/models/sport.js +0 -115
- package/esm2015/models/team-access.js +0 -45
- package/esm2015/models/team-achievement.js +0 -34
- package/esm2015/models/team-event-invite.js +0 -32
- package/esm2015/models/team-event.js +0 -45
- package/esm2015/models/team-invite-external.js +0 -25
- package/esm2015/models/team-invite.js +0 -41
- package/esm2015/models/team-permission.js +0 -38
- package/esm2015/models/team-user.js +0 -48
- package/esm2015/models/team.js +0 -71
- package/esm2015/models/teams-and-users.js +0 -32
- package/esm2015/models/tournament-disqualification.js +0 -30
- package/esm2015/models/tournament-division.js +0 -27
- package/esm2015/models/tournament-event.js +0 -45
- package/esm2015/models/tournament-group.js +0 -26
- package/esm2015/models/tournament-invite.js +0 -39
- package/esm2015/models/tournament-join-team.js +0 -55
- package/esm2015/models/tournament-join1x1-data.js +0 -32
- package/esm2015/models/tournament-news.js +0 -33
- package/esm2015/models/tournament-round-team.js +0 -95
- package/esm2015/models/tournament-round.js +0 -36
- package/esm2015/models/tournament-season.js +0 -45
- package/esm2015/models/tournament-stage-team.js +0 -47
- package/esm2015/models/tournament-stage.js +0 -35
- package/esm2015/models/tournament-team-field-value.js +0 -32
- package/esm2015/models/tournament-team-user-invite.js +0 -29
- package/esm2015/models/tournament-team-user.js +0 -39
- package/esm2015/models/tournament-team.js +0 -103
- package/esm2015/models/tournament.js +0 -266
- package/esm2015/models/user-access.js +0 -25
- package/esm2015/models/user-permission.js +0 -38
- package/esm2015/models/user-profile.js +0 -24
- package/esm2015/models/user.js +0 -91
- package/esm2015/models/util.js +0 -237
- package/esm2015/models/volleyball-game-config.js +0 -44
- package/esm2015/models/volleyball-game-log.js +0 -145
- package/esm2015/models/volleyball-game-statistic.js +0 -64
- package/esm2015/models/volleyball-game-team-statistic.js +0 -27
- package/esm2015/models/volleyball-profile.js +0 -43
- package/esm2015/models/volleyball-statistic.js +0 -92
- package/esm2015/models/waterpolo-game-config.js +0 -45
- package/esm2015/models/waterpolo-game-log.js +0 -167
- package/esm2015/models/waterpolo-game-statistic.js +0 -641
- package/esm2015/models/waterpolo-game-team-statistic.js +0 -27
- package/esm2015/models/waterpolo-profile.js +0 -42
- package/esm2015/models/waterpolo-statistic.js +0 -336
- package/esm2015/services/base.service.js +0 -16
- package/esm2015/services/centrifugo.service.js +0 -123
- package/esm2015/services/config.service.js +0 -37
- package/esm2015/storage/local-storage-engine.js +0 -18
- package/esm2015/storage/public-api.js +0 -4
- package/esm2015/storage/storage-engine.js +0 -61
- package/esm2015/utils/component-destroyed.js +0 -26
- package/esm2015/utils/data.js +0 -75
- package/fesm2015/mtgame-core.js.map +0 -1
- package/models/league-field-base-value.d.ts +0 -7
- package/models/league-field-base.d.ts +0 -24
- package/models/league-player-field-value.d.ts +0 -8
- package/models/league-player-field.d.ts +0 -5
- package/models/league-team-field.d.ts +0 -5
- package/models/tournament-team-field-value.d.ts +0 -8
- package/mtgame-core.metadata.json +0 -1
|
@@ -0,0 +1,472 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Model, dateTimeField } from './util';
|
|
3
|
+
import { GameStatisticBase } from './game-statistic-base';
|
|
4
|
+
let WaterpoloGameStatistic = class WaterpoloGameStatistic extends GameStatisticBase {
|
|
5
|
+
get id() {
|
|
6
|
+
return this.gameUserId;
|
|
7
|
+
}
|
|
8
|
+
get gameMinutes() {
|
|
9
|
+
return Math.floor(this.gameTime / 60);
|
|
10
|
+
}
|
|
11
|
+
get penaltyTime() {
|
|
12
|
+
if (!this.penaltyMinutes) {
|
|
13
|
+
return '00:00';
|
|
14
|
+
}
|
|
15
|
+
const minutes = Math.floor(this.penaltyMinutes / 60);
|
|
16
|
+
const seconds = Math.floor(this.penaltyMinutes - minutes * 60);
|
|
17
|
+
return `${minutes < 10 ? 0 : ''}${minutes}:${seconds < 10 ? 0 : ''}${seconds}`;
|
|
18
|
+
}
|
|
19
|
+
get assists() {
|
|
20
|
+
return (this.ppAssists || 0) + (this.shAssists || 0) + (this.evAssists || 0);
|
|
21
|
+
}
|
|
22
|
+
get totalCounterAttackGoals() {
|
|
23
|
+
return (this.ppCounterAttackGoals || 0) + (this.evCounterAttackGoals || 0) + (this.shCounterAttackGoals || 0);
|
|
24
|
+
}
|
|
25
|
+
get ppCounterAttackShots() {
|
|
26
|
+
return (this.ppCounterAttackOnGoals || 0) + (this.ppCounterAttackMisses || 0) + (this.ppCounterAttackShotsBlocked || 0);
|
|
27
|
+
}
|
|
28
|
+
get shCounterAttackShots() {
|
|
29
|
+
return (this.shCounterAttackOnGoals || 0) + (this.shCounterAttackMisses || 0) + (this.shCounterAttackShotsBlocked || 0);
|
|
30
|
+
}
|
|
31
|
+
get evCounterAttackShots() {
|
|
32
|
+
return (this.evCounterAttackOnGoals || 0) + (this.evCounterAttackMisses || 0) + (this.evCounterAttackShotsBlocked || 0);
|
|
33
|
+
}
|
|
34
|
+
get counterAttackShotMisses() {
|
|
35
|
+
return (this.ppCounterAttackMisses || 0) + (this.shCounterAttackMisses || 0) + (this.evCounterAttackMisses || 0);
|
|
36
|
+
}
|
|
37
|
+
get counterAttackShotOnGoals() {
|
|
38
|
+
return (this.ppCounterAttackOnGoals || 0) + (this.shCounterAttackOnGoals || 0) + (this.evCounterAttackOnGoals || 0);
|
|
39
|
+
}
|
|
40
|
+
get counterAttackShotsBlocked() {
|
|
41
|
+
return (this.ppCounterAttackShotsBlocked || 0) + (this.shCounterAttackShotsBlocked || 0) + (this.evCounterAttackShotsBlocked || 0);
|
|
42
|
+
}
|
|
43
|
+
get counterAttackShots() {
|
|
44
|
+
return this.counterAttackShotMisses + this.counterAttackShotOnGoals + this.counterAttackShotsBlocked;
|
|
45
|
+
}
|
|
46
|
+
get counterAttackGoalsPercent() {
|
|
47
|
+
if (!this.totalCounterAttackGoals || !this.counterAttackShots) {
|
|
48
|
+
return 0;
|
|
49
|
+
}
|
|
50
|
+
return Math.round(1000 * this.totalCounterAttackGoals / this.counterAttackShots) / 10;
|
|
51
|
+
}
|
|
52
|
+
get totalManeuverGoals() {
|
|
53
|
+
return (this.ppManeuverGoals || 0) + (this.shManeuverGoals || 0) + (this.evManeuverGoals || 0);
|
|
54
|
+
}
|
|
55
|
+
get ppManeuverShots() {
|
|
56
|
+
return (this.ppManeuverOnGoals || 0) + (this.ppManeuverMisses || 0) + (this.ppManeuverShotsBlocked || 0);
|
|
57
|
+
}
|
|
58
|
+
get shManeuverShots() {
|
|
59
|
+
return (this.shManeuverOnGoals || 0) + (this.shManeuverMisses || 0) + (this.shManeuverShotsBlocked || 0);
|
|
60
|
+
}
|
|
61
|
+
get evManeuverShots() {
|
|
62
|
+
return (this.evManeuverOnGoals || 0) + (this.evManeuverMisses || 0) + (this.evManeuverShotsBlocked || 0);
|
|
63
|
+
}
|
|
64
|
+
get maneuverShotMisses() {
|
|
65
|
+
return (this.ppManeuverMisses || 0) + (this.shManeuverMisses || 0) + (this.evManeuverMisses || 0);
|
|
66
|
+
}
|
|
67
|
+
get maneuverShotOnGoals() {
|
|
68
|
+
return (this.ppManeuverOnGoals || 0) + (this.shManeuverOnGoals || 0) + (this.evManeuverOnGoals || 0);
|
|
69
|
+
}
|
|
70
|
+
get maneuverShotsBlocked() {
|
|
71
|
+
return (this.ppManeuverShotsBlocked || 0) + (this.shManeuverShotsBlocked || 0) + (this.evManeuverShotsBlocked || 0);
|
|
72
|
+
}
|
|
73
|
+
get maneuverShots() {
|
|
74
|
+
return this.maneuverShotMisses + this.maneuverShotOnGoals + this.maneuverShotsBlocked;
|
|
75
|
+
}
|
|
76
|
+
get maneuverGoalsPercent() {
|
|
77
|
+
if (!this.totalManeuverGoals || !this.maneuverShots) {
|
|
78
|
+
return 0;
|
|
79
|
+
}
|
|
80
|
+
return Math.round(1000 * this.totalManeuverGoals / this.maneuverShots) / 10;
|
|
81
|
+
}
|
|
82
|
+
get totalCenterForwardGoals() {
|
|
83
|
+
return (this.ppCenterForwardGoals || 0) + (this.shCenterForwardGoals || 0) + (this.evCenterForwardGoals || 0);
|
|
84
|
+
}
|
|
85
|
+
get ppCenterForwardShots() {
|
|
86
|
+
return (this.ppCenterForwardOnGoals || 0) + (this.ppCenterForwardMisses || 0) + (this.ppCenterForwardShotsBlocked || 0);
|
|
87
|
+
}
|
|
88
|
+
get shCenterForwardShots() {
|
|
89
|
+
return (this.shCenterForwardOnGoals || 0) + (this.shCenterForwardMisses || 0) + (this.shCenterForwardShotsBlocked || 0);
|
|
90
|
+
}
|
|
91
|
+
get evCenterForwardShots() {
|
|
92
|
+
return (this.evCenterForwardOnGoals || 0) + (this.evCenterForwardMisses || 0) + (this.evCenterForwardShotsBlocked || 0);
|
|
93
|
+
}
|
|
94
|
+
get centerForwardShotMisses() {
|
|
95
|
+
return (this.ppCenterForwardMisses || 0) + (this.shCenterForwardMisses || 0) + (this.evCenterForwardMisses || 0);
|
|
96
|
+
}
|
|
97
|
+
get centerForwardShotOnGoals() {
|
|
98
|
+
return (this.ppCenterForwardOnGoals || 0) + (this.shCenterForwardOnGoals || 0) + (this.evCenterForwardOnGoals || 0);
|
|
99
|
+
}
|
|
100
|
+
get centerForwardShotsBlocked() {
|
|
101
|
+
return (this.ppCenterForwardShotsBlocked || 0) + (this.shCenterForwardShotsBlocked || 0) + (this.evCenterForwardShotsBlocked || 0);
|
|
102
|
+
}
|
|
103
|
+
get centerForwardShots() {
|
|
104
|
+
return this.centerForwardShotMisses + this.centerForwardShotOnGoals + this.centerForwardShotsBlocked;
|
|
105
|
+
}
|
|
106
|
+
get centerForwardGoalsPercent() {
|
|
107
|
+
if (!this.totalCenterForwardGoals || !this.centerForwardShots) {
|
|
108
|
+
return 0;
|
|
109
|
+
}
|
|
110
|
+
return Math.round(1000 * this.totalCenterForwardGoals / this.centerForwardShots) / 10;
|
|
111
|
+
}
|
|
112
|
+
get ppShots() {
|
|
113
|
+
return (this.ppShotMisses || 0) + (this.ppShotsOnGoal || 0) + (this.ppShotsBlocked || 0) +
|
|
114
|
+
(this.ppFreeKickMisses || 0) + (this.ppFreeKickOnGoals || 0) + (this.ppFreeKickShotsBlocked || 0) +
|
|
115
|
+
(this.ppCornerMisses || 0) + (this.ppCornerOnGoals || 0) + (this.ppCornerShotsBlocked || 0) +
|
|
116
|
+
this.ppCounterAttackShots + this.ppManeuverShots + this.ppCenterForwardShots;
|
|
117
|
+
}
|
|
118
|
+
get evShots() {
|
|
119
|
+
return (this.evShotMisses || 0) + (this.evShotsOnGoal || 0) + (this.evShotsBlocked || 0) +
|
|
120
|
+
(this.evFreeKickMisses || 0) + (this.evFreeKickOnGoals || 0) + (this.evFreeKickShotsBlocked || 0) +
|
|
121
|
+
(this.evCornerMisses || 0) + (this.evCornerOnGoals || 0) + (this.evCornerShotsBlocked || 0) +
|
|
122
|
+
this.evCounterAttackShots + this.evManeuverShots + this.evCenterForwardShots;
|
|
123
|
+
}
|
|
124
|
+
get shShots() {
|
|
125
|
+
return (this.shShotMisses || 0) + (this.shShotsOnGoal || 0) + (this.shShotsBlocked || 0) +
|
|
126
|
+
(this.shFreeKickMisses || 0) + (this.shFreeKickOnGoals || 0) + (this.shFreeKickShotsBlocked || 0) +
|
|
127
|
+
(this.shCornerMisses || 0) + (this.shCornerOnGoals || 0) + (this.shCornerShotsBlocked || 0) +
|
|
128
|
+
this.shCounterAttackShots + this.shManeuverShots + this.shCenterForwardShots;
|
|
129
|
+
}
|
|
130
|
+
get totalShGoals() {
|
|
131
|
+
return (this.shGoals || 0) + (this.shFreeKickGoals || 0) + (this.shCornerGoals || 0) +
|
|
132
|
+
(this.shCounterAttackGoals || 0) + (this.shManeuverGoals || 0) + (this.shCenterForwardGoals || 0);
|
|
133
|
+
}
|
|
134
|
+
get totalEvGoals() {
|
|
135
|
+
return (this.evGoals || 0) + (this.evFreeKickGoals || 0) + (this.evCornerGoals || 0) +
|
|
136
|
+
(this.evCounterAttackGoals || 0) + (this.evManeuverGoals || 0) + (this.evCenterForwardGoals || 0);
|
|
137
|
+
}
|
|
138
|
+
get totalPpGoals() {
|
|
139
|
+
return (this.ppGoals || 0) + (this.ppFreeKickGoals || 0) + (this.ppCornerGoals || 0) +
|
|
140
|
+
(this.ppCounterAttackGoals || 0) + (this.ppManeuverGoals || 0) + (this.ppCenterForwardGoals || 0);
|
|
141
|
+
}
|
|
142
|
+
get goals() {
|
|
143
|
+
return this.totalShGoals + this.totalEvGoals + this.totalPpGoals;
|
|
144
|
+
}
|
|
145
|
+
get totalGoals() {
|
|
146
|
+
return this.goals + (this.shootoutGoals || 0);
|
|
147
|
+
}
|
|
148
|
+
get shootoutShots() {
|
|
149
|
+
return (this.shootoutGoals || 0) + (this.shootoutAttempts || 0);
|
|
150
|
+
}
|
|
151
|
+
get inGameShotMisses() {
|
|
152
|
+
return (this.ppShotMisses || 0) + (this.evShotMisses || 0) + (this.shShotMisses || 0) +
|
|
153
|
+
this.counterAttackShotMisses + this.maneuverShotMisses + this.centerForwardShotMisses;
|
|
154
|
+
}
|
|
155
|
+
get shotMisses() {
|
|
156
|
+
return (this.ppFreeKickMisses || 0) + (this.evFreeKickMisses || 0) + (this.shFreeKickMisses || 0) +
|
|
157
|
+
(this.ppCornerMisses || 0) + (this.evCornerMisses || 0) + (this.shCornerMisses || 0) +
|
|
158
|
+
this.inGameShotMisses;
|
|
159
|
+
}
|
|
160
|
+
get totalPpShotMisses() {
|
|
161
|
+
return (this.ppShotMisses || 0) + (this.ppFreeKickMisses || 0) + (this.ppCornerMisses || 0) +
|
|
162
|
+
(this.ppCounterAttackMisses || 0) + (this.ppManeuverMisses || 0) + (this.ppCenterForwardMisses || 0);
|
|
163
|
+
}
|
|
164
|
+
get shotsOnGoal() {
|
|
165
|
+
return (this.ppShotsOnGoal || 0) + (this.evShotsOnGoal || 0) + (this.shShotsOnGoal || 0) +
|
|
166
|
+
(this.ppFreeKickOnGoals || 0) + (this.evFreeKickOnGoals || 0) + (this.shFreeKickOnGoals || 0) +
|
|
167
|
+
(this.ppCornerOnGoals || 0) + (this.evCornerOnGoals || 0) + (this.shCornerOnGoals || 0) +
|
|
168
|
+
this.counterAttackShotOnGoals + this.maneuverShotOnGoals + this.centerForwardShotOnGoals;
|
|
169
|
+
}
|
|
170
|
+
get totalPpShotsOnGoal() {
|
|
171
|
+
return (this.ppShotsOnGoal || 0) + (this.ppFreeKickOnGoals || 0) + (this.ppCornerOnGoals || 0) +
|
|
172
|
+
(this.ppCounterAttackOnGoals || 0) + (this.ppManeuverOnGoals || 0) + (this.ppCenterForwardOnGoals || 0);
|
|
173
|
+
}
|
|
174
|
+
get inGameShotsOnGoals() {
|
|
175
|
+
return (this.ppShotsOnGoal || 0) + (this.evShotsOnGoal || 0) + (this.shShotsOnGoal || 0) +
|
|
176
|
+
this.counterAttackShotOnGoals + this.maneuverShotOnGoals + this.centerForwardShotOnGoals;
|
|
177
|
+
}
|
|
178
|
+
get shots() {
|
|
179
|
+
return this.ppShots + this.evShots + this.shShots;
|
|
180
|
+
}
|
|
181
|
+
get totalShots() {
|
|
182
|
+
return this.shots + (this.shootoutAttempts || 0);
|
|
183
|
+
}
|
|
184
|
+
get faceOffs() {
|
|
185
|
+
return (this.faceOffWins || 0) + (this.faceOffLosses || 0);
|
|
186
|
+
}
|
|
187
|
+
get freeKickShotMisses() {
|
|
188
|
+
return (this.ppFreeKickMisses || 0) + (this.evFreeKickMisses || 0) + (this.shFreeKickMisses || 0);
|
|
189
|
+
}
|
|
190
|
+
get freeKickShotsBlocked() {
|
|
191
|
+
return (this.ppFreeKickShotsBlocked || 0) + (this.evFreeKickShotsBlocked || 0) + (this.shFreeKickShotsBlocked || 0);
|
|
192
|
+
}
|
|
193
|
+
get freeKickOnGoals() {
|
|
194
|
+
return (this.ppFreeKickOnGoals || 0) + (this.evFreeKickOnGoals || 0) + (this.shFreeKickOnGoals || 0);
|
|
195
|
+
}
|
|
196
|
+
get totalFreeKickGoals() {
|
|
197
|
+
return (this.ppFreeKickGoals || 0) + (this.shFreeKickGoals || 0) + (this.evFreeKickGoals || 0);
|
|
198
|
+
}
|
|
199
|
+
get totalFreeKicks() {
|
|
200
|
+
return (this.freeKickSelfs || 0) + (this.freeKickPasses || 0) +
|
|
201
|
+
this.freeKickShotMisses + this.freeKickOnGoals + this.totalFreeKickGoals + this.freeKickShotsBlocked;
|
|
202
|
+
}
|
|
203
|
+
get freeKickGoalsPercent() {
|
|
204
|
+
if (!this.totalFreeKickGoals || !this.totalFreeKicks) {
|
|
205
|
+
return 0;
|
|
206
|
+
}
|
|
207
|
+
return Math.round(1000 * this.totalFreeKickGoals / this.totalFreeKicks) / 10;
|
|
208
|
+
}
|
|
209
|
+
get totalCornerGoals() {
|
|
210
|
+
return (this.ppCornerGoals || 0) + (this.shCornerGoals || 0) + (this.evCornerGoals || 0);
|
|
211
|
+
}
|
|
212
|
+
get cornerShotMisses() {
|
|
213
|
+
return (this.ppCornerMisses || 0) + (this.shCornerMisses || 0) + (this.evCornerMisses || 0);
|
|
214
|
+
}
|
|
215
|
+
get cornerOnGoals() {
|
|
216
|
+
return (this.ppCornerOnGoals || 0) + (this.shCornerOnGoals || 0) + (this.evCornerOnGoals || 0);
|
|
217
|
+
}
|
|
218
|
+
get cornerShotsBlocked() {
|
|
219
|
+
return (this.ppCornerShotsBlocked || 0) + (this.shCornerShotsBlocked || 0) + (this.evCornerShotsBlocked || 0);
|
|
220
|
+
}
|
|
221
|
+
get totalCorners() {
|
|
222
|
+
return (this.cornerSelfs || 0) + (this.cornerPasses || 0) + this.cornerShotsBlocked +
|
|
223
|
+
this.cornerOnGoals + this.cornerShotMisses + this.totalCornerGoals;
|
|
224
|
+
}
|
|
225
|
+
get shotsBlocked() {
|
|
226
|
+
return (this.ppShotsBlocked || 0) + (this.evShotsBlocked || 0) + (this.shShotsBlocked || 0) +
|
|
227
|
+
this.counterAttackShotsBlocked + this.maneuverShotsBlocked + this.centerForwardShotsBlocked +
|
|
228
|
+
this.freeKickShotsBlocked + this.cornerShotsBlocked;
|
|
229
|
+
}
|
|
230
|
+
get totalFouls() {
|
|
231
|
+
return (this.fouls || 0) + (this.penaltyFouls || 0) + (this.attackFouls || 0) + (this.personalFouls || 0) +
|
|
232
|
+
(this.minorPenalties || 0) + (this.majorPenalties || 0) + (this.matchPenalties || 0);
|
|
233
|
+
}
|
|
234
|
+
get totalPenalties() {
|
|
235
|
+
return (this.minorPenalties || 0) + (this.majorPenalties || 0) + (this.matchPenalties || 0);
|
|
236
|
+
}
|
|
237
|
+
get positionAttackGoals() {
|
|
238
|
+
return (this.shGoals || 0) + (this.evGoals || 0) + (this.ppGoals || 0);
|
|
239
|
+
}
|
|
240
|
+
get positionAttackShotsOnGoal() {
|
|
241
|
+
return (this.ppShotsOnGoal || 0) + (this.evShotsOnGoal || 0) + (this.shShotsOnGoal || 0);
|
|
242
|
+
}
|
|
243
|
+
get positionAttackShotsMiss() {
|
|
244
|
+
return (this.ppShotMisses || 0) + (this.evShotMisses || 0) + (this.shShotMisses || 0);
|
|
245
|
+
}
|
|
246
|
+
get positionAttackShots() {
|
|
247
|
+
return this.positionAttackShotsOnGoal + this.positionAttackShotsMiss;
|
|
248
|
+
}
|
|
249
|
+
get positionAttackGoalsPercent() {
|
|
250
|
+
if (!this.positionAttackGoals || !this.positionAttackShots) {
|
|
251
|
+
return 0;
|
|
252
|
+
}
|
|
253
|
+
return Math.round(1000 * this.positionAttackGoals / this.positionAttackShots) / 10;
|
|
254
|
+
}
|
|
255
|
+
get totalInGameGoals() {
|
|
256
|
+
return this.totalCenterForwardGoals + this.totalManeuverGoals + this.totalCounterAttackGoals + this.positionAttackGoals;
|
|
257
|
+
}
|
|
258
|
+
get ppGoalsPercent() {
|
|
259
|
+
if (!this.totalPpGoals || !this.ppShots) {
|
|
260
|
+
return 0;
|
|
261
|
+
}
|
|
262
|
+
return Math.round(1000 * this.totalPpGoals / this.ppShots) / 10;
|
|
263
|
+
}
|
|
264
|
+
get evGoalsPercent() {
|
|
265
|
+
if (!this.totalEvGoals || !this.evShots) {
|
|
266
|
+
return 0;
|
|
267
|
+
}
|
|
268
|
+
return Math.round(1000 * this.totalEvGoals / this.evShots) / 10;
|
|
269
|
+
}
|
|
270
|
+
get shGoalsPercent() {
|
|
271
|
+
if (!this.totalShGoals || !this.shShots) {
|
|
272
|
+
return 0;
|
|
273
|
+
}
|
|
274
|
+
return Math.round(1000 * this.totalShGoals / this.shShots) / 10;
|
|
275
|
+
}
|
|
276
|
+
get shotsOnGoalPercent() {
|
|
277
|
+
if (!this.shotsOnGoal || !this.shots) {
|
|
278
|
+
return 0;
|
|
279
|
+
}
|
|
280
|
+
return Math.round(1000 * this.shotsOnGoal / this.shots) / 10;
|
|
281
|
+
}
|
|
282
|
+
get goalsPercent() {
|
|
283
|
+
if (!this.goals || !this.shots) {
|
|
284
|
+
return 0;
|
|
285
|
+
}
|
|
286
|
+
return Math.round(1000 * this.goals / this.shots) / 10;
|
|
287
|
+
}
|
|
288
|
+
get totalGoalsPercent() {
|
|
289
|
+
if (!this.totalGoals || !this.totalShots) {
|
|
290
|
+
return 0;
|
|
291
|
+
}
|
|
292
|
+
return Math.round(1000 * this.totalGoals / this.totalShots) / 10;
|
|
293
|
+
}
|
|
294
|
+
get faceOffPercent() {
|
|
295
|
+
if (!this.faceOffWins || !this.faceOffs) {
|
|
296
|
+
return 0;
|
|
297
|
+
}
|
|
298
|
+
return Math.round(1000 * this.faceOffWins / this.faceOffs) / 10;
|
|
299
|
+
}
|
|
300
|
+
get shootoutGoalsPercent() {
|
|
301
|
+
if (!this.shootoutGoals || !this.shootoutShots) {
|
|
302
|
+
return 0;
|
|
303
|
+
}
|
|
304
|
+
return Math.round(1000 * this.shootoutGoals / this.shootoutShots) / 10;
|
|
305
|
+
}
|
|
306
|
+
get goalpass() {
|
|
307
|
+
return (this.totalGoals || 0) + (this.assists || 0);
|
|
308
|
+
}
|
|
309
|
+
/*goalie stat */
|
|
310
|
+
get positionAttackSaves() {
|
|
311
|
+
return (this.ppSaves || 0) + (this.shSaves || 0) + (this.evSaves || 0);
|
|
312
|
+
}
|
|
313
|
+
get positionAttackShotsAgainst() {
|
|
314
|
+
return this.positionAttackSaves + (this.goalsAgainst || 0);
|
|
315
|
+
}
|
|
316
|
+
get positionAttackSavesPercent() {
|
|
317
|
+
if (!this.positionAttackSaves || !this.positionAttackShotsAgainst) {
|
|
318
|
+
return 0;
|
|
319
|
+
}
|
|
320
|
+
return Math.round(1000 * this.positionAttackSaves / this.positionAttackShotsAgainst) / 10;
|
|
321
|
+
}
|
|
322
|
+
get counterAttackSaves() {
|
|
323
|
+
return (this.ppCounterAttackSaves || 0) + (this.shCounterAttackSaves || 0) + (this.evCounterAttackSaves || 0);
|
|
324
|
+
}
|
|
325
|
+
get counterAttackShotsAgainst() {
|
|
326
|
+
return this.counterAttackSaves + (this.counterAttackGoalsAgainst || 0);
|
|
327
|
+
}
|
|
328
|
+
get counterAttackSavesPercent() {
|
|
329
|
+
if (!this.counterAttackSaves || !this.counterAttackShotsAgainst) {
|
|
330
|
+
return 0;
|
|
331
|
+
}
|
|
332
|
+
return Math.round(1000 * this.counterAttackSaves / this.counterAttackShotsAgainst) / 10;
|
|
333
|
+
}
|
|
334
|
+
get centerForwardSaves() {
|
|
335
|
+
return (this.ppCenterForwardSaves || 0) + (this.shCenterForwardSaves || 0) + (this.evCenterForwardSaves || 0);
|
|
336
|
+
}
|
|
337
|
+
get centerForwardShotsAgainst() {
|
|
338
|
+
return this.centerForwardSaves + (this.centerForwardGoalsAgainst || 0);
|
|
339
|
+
}
|
|
340
|
+
get centerForwardSavesPercent() {
|
|
341
|
+
if (!this.centerForwardSaves || !this.centerForwardShotsAgainst) {
|
|
342
|
+
return 0;
|
|
343
|
+
}
|
|
344
|
+
return Math.round(1000 * this.centerForwardSaves / this.centerForwardShotsAgainst) / 10;
|
|
345
|
+
}
|
|
346
|
+
get maneuverSaves() {
|
|
347
|
+
return (this.ppManeuverSaves || 0) + (this.shManeuverSaves || 0) + (this.evManeuverSaves || 0);
|
|
348
|
+
}
|
|
349
|
+
get maneuverShotsAgainst() {
|
|
350
|
+
return this.maneuverSaves + (this.maneuverGoalsAgainst || 0);
|
|
351
|
+
}
|
|
352
|
+
get maneuverSavesPercent() {
|
|
353
|
+
if (!this.maneuverSaves || !this.maneuverShotsAgainst) {
|
|
354
|
+
return 0;
|
|
355
|
+
}
|
|
356
|
+
return Math.round(1000 * this.maneuverSaves / this.maneuverShotsAgainst) / 10;
|
|
357
|
+
}
|
|
358
|
+
get freeKickSaves() {
|
|
359
|
+
return (this.ppFreeKickSaves || 0) + (this.shFreeKickSaves || 0) + (this.evFreeKickSaves || 0);
|
|
360
|
+
}
|
|
361
|
+
get freeKickShotsAgainst() {
|
|
362
|
+
return this.freeKickSaves + (this.freeKickGoalsAgainst || 0);
|
|
363
|
+
}
|
|
364
|
+
get freeKickSavesPercent() {
|
|
365
|
+
if (!this.freeKickSaves || !this.freeKickShotsAgainst) {
|
|
366
|
+
return 0;
|
|
367
|
+
}
|
|
368
|
+
return Math.round(1000 * this.freeKickSaves / this.freeKickShotsAgainst) / 10;
|
|
369
|
+
}
|
|
370
|
+
get cornerSaves() {
|
|
371
|
+
return (this.ppCornerSaves || 0) + (this.shCornerSaves || 0) + (this.evCornerSaves || 0);
|
|
372
|
+
}
|
|
373
|
+
get cornerShotsAgainst() {
|
|
374
|
+
return this.cornerSaves + (this.cornerGoalsAgainst || 0);
|
|
375
|
+
}
|
|
376
|
+
get cornerSavesPercent() {
|
|
377
|
+
if (!this.cornerSaves || !this.cornerShotsAgainst) {
|
|
378
|
+
return 0;
|
|
379
|
+
}
|
|
380
|
+
return Math.round(1000 * this.cornerSaves / this.cornerShotsAgainst) / 10;
|
|
381
|
+
}
|
|
382
|
+
get inGameSaves() {
|
|
383
|
+
return (this.shSaves || 0) + (this.evSaves || 0) + (this.ppSaves || 0) +
|
|
384
|
+
this.counterAttackSaves + this.maneuverSaves + this.centerForwardSaves;
|
|
385
|
+
}
|
|
386
|
+
get saves() {
|
|
387
|
+
return this.inGameSaves + this.freeKickSaves + this.cornerSaves;
|
|
388
|
+
}
|
|
389
|
+
get totalSaves() {
|
|
390
|
+
return this.saves + (this.shootoutSaves || 0);
|
|
391
|
+
}
|
|
392
|
+
get inGameGoalsAgainst() {
|
|
393
|
+
return (this.goalsAgainst || 0) + (this.counterAttackGoalsAgainst || 0) + (this.maneuverGoalsAgainst || 0) +
|
|
394
|
+
(this.centerForwardGoalsAgainst || 0);
|
|
395
|
+
}
|
|
396
|
+
get shootoutShotsAgainst() {
|
|
397
|
+
return (this.shootoutSaves || 0) + (this.shootoutGoalsAgainst || 0);
|
|
398
|
+
}
|
|
399
|
+
get gameGoalsAgainst() {
|
|
400
|
+
return this.inGameGoalsAgainst + (this.freeKickGoalsAgainst || 0) + (this.cornerGoalsAgainst || 0);
|
|
401
|
+
}
|
|
402
|
+
get totalGoalsAgainst() {
|
|
403
|
+
return this.gameGoalsAgainst + (this.shootoutGoalsAgainst || 0);
|
|
404
|
+
}
|
|
405
|
+
get gameShotsAgainst() {
|
|
406
|
+
return this.saves + this.gameGoalsAgainst;
|
|
407
|
+
}
|
|
408
|
+
get totalShotsAgainst() {
|
|
409
|
+
return this.gameShotsAgainst + this.shootoutShotsAgainst;
|
|
410
|
+
}
|
|
411
|
+
get shootoutSavesPercent() {
|
|
412
|
+
if (!this.shootoutSaves || !this.shootoutShotsAgainst) {
|
|
413
|
+
return 0;
|
|
414
|
+
}
|
|
415
|
+
return Math.round(1000 * this.shootoutSaves / this.shootoutShotsAgainst) / 10;
|
|
416
|
+
}
|
|
417
|
+
get savesPercent() {
|
|
418
|
+
if (!this.saves || !this.gameShotsAgainst) {
|
|
419
|
+
return 0;
|
|
420
|
+
}
|
|
421
|
+
return Math.round(1000 * this.saves / this.gameShotsAgainst) / 10;
|
|
422
|
+
}
|
|
423
|
+
get totalSavesPercent() {
|
|
424
|
+
if (!this.totalSaves || !this.totalShotsAgainst) {
|
|
425
|
+
return 0;
|
|
426
|
+
}
|
|
427
|
+
return Math.round(1000 * this.totalSaves / this.totalShotsAgainst) / 10;
|
|
428
|
+
}
|
|
429
|
+
get totalShSaves() {
|
|
430
|
+
return (this.shCounterAttackSaves || 0) + (this.shManeuverSaves || 0) + (this.shCenterForwardSaves || 0) +
|
|
431
|
+
(this.shSaves || 0) + (this.shFreeKickSaves || 0) + (this.shCornerSaves || 0);
|
|
432
|
+
}
|
|
433
|
+
get totalShGoalsAgainst() {
|
|
434
|
+
return (this.shGoalsAgainst || 0) + (this.shFreeKickGoalsAgainst || 0) + (this.shCornerGoalsAgainst || 0) +
|
|
435
|
+
(this.shCounterAttackGoalsAgainst || 0) + (this.shManeuverGoalsAgainst || 0) + (this.shCenterForwardGoalsAgainst || 0);
|
|
436
|
+
}
|
|
437
|
+
get totalShShotsAgainst() {
|
|
438
|
+
return this.totalShSaves + this.totalShGoalsAgainst;
|
|
439
|
+
}
|
|
440
|
+
get totalShSavesPercent() {
|
|
441
|
+
if (!this.totalShSaves || !this.totalShShotsAgainst) {
|
|
442
|
+
return 0;
|
|
443
|
+
}
|
|
444
|
+
return Math.round(1000 * this.totalShSaves / this.totalShShotsAgainst) / 10;
|
|
445
|
+
}
|
|
446
|
+
get totalEvSaves() {
|
|
447
|
+
return (this.evCounterAttackSaves || 0) + (this.evManeuverSaves || 0) + (this.evCenterForwardSaves || 0) +
|
|
448
|
+
(this.evSaves || 0) + (this.evFreeKickSaves || 0) + (this.evCornerSaves || 0);
|
|
449
|
+
}
|
|
450
|
+
get totalEvGoalsAgainst() {
|
|
451
|
+
return (this.evGoalsAgainst || 0) + (this.evFreeKickGoalsAgainst || 0) + (this.evCornerGoalsAgainst || 0) +
|
|
452
|
+
(this.evCounterAttackGoalsAgainst || 0) + (this.evManeuverGoalsAgainst || 0) + (this.evCenterForwardGoalsAgainst || 0);
|
|
453
|
+
}
|
|
454
|
+
get totalEvShotsAgainst() {
|
|
455
|
+
return this.totalEvSaves + this.totalEvGoalsAgainst;
|
|
456
|
+
}
|
|
457
|
+
get totalEvSavesPercent() {
|
|
458
|
+
if (!this.totalEvSaves || !this.totalEvShotsAgainst) {
|
|
459
|
+
return 0;
|
|
460
|
+
}
|
|
461
|
+
return Math.round(1000 * this.totalEvSaves / this.totalEvShotsAgainst) / 10;
|
|
462
|
+
}
|
|
463
|
+
};
|
|
464
|
+
WaterpoloGameStatistic = __decorate([
|
|
465
|
+
Model({
|
|
466
|
+
relation: {
|
|
467
|
+
updatedAt: dateTimeField,
|
|
468
|
+
}
|
|
469
|
+
})
|
|
470
|
+
], WaterpoloGameStatistic);
|
|
471
|
+
export { WaterpoloGameStatistic };
|
|
472
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0ZXJwb2xvLWdhbWUtc3RhdGlzdGljLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS9zcmMvbW9kZWxzL3dhdGVycG9sby1nYW1lLXN0YXRpc3RpYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFPMUQsSUFBYSxzQkFBc0IsR0FBbkMsTUFBYSxzQkFBdUIsU0FBUSxpQkFBaUI7SUFtSzNELElBQUksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3hCLE9BQU8sT0FBTyxDQUFDO1NBQ2hCO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDL0QsT0FBTyxHQUFHLE9BQU8sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLE9BQU8sSUFBSSxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQztJQUNqRixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxHQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLENBQUMsR0FBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqSCxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQywyQkFBMkIsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxSCxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQywyQkFBMkIsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxSCxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQywyQkFBMkIsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxSCxDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLENBQUMsR0FBRyxD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QUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLG1CQUFtQjtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUNuRCxPQUFPLENBQUMsQ0FBQztTQUNWO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUM5RSxDQUFDO0NBQ0YsQ0FBQTtBQWp1Qlksc0JBQXNCO0lBTGxDLEtBQUssQ0FBQztRQUNMLFFBQVEsRUFBRTtZQUNSLFNBQVMsRUFBRSxhQUFhO1NBQ3pCO0tBQ0YsQ0FBQztHQUNXLHNCQUFzQixDQWl1QmxDO1NBanVCWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RlbCwgZGF0ZVRpbWVGaWVsZCB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgeyBHYW1lU3RhdGlzdGljQmFzZSB9IGZyb20gJy4vZ2FtZS1zdGF0aXN0aWMtYmFzZSc7XG5cbkBNb2RlbCh7XG4gIHJlbGF0aW9uOiB7XG4gICAgdXBkYXRlZEF0OiBkYXRlVGltZUZpZWxkLFxuICB9XG59KVxuZXhwb3J0IGNsYXNzIFdhdGVycG9sb0dhbWVTdGF0aXN0aWMgZXh0ZW5kcyBHYW1lU3RhdGlzdGljQmFzZSB7XG4gIGdhbWVVc2VySWQ6IG51bWJlcjtcbiAgcG9pbnRzOiBudW1iZXI7XG4gIHBwU2hvdE1pc3NlczogbnVtYmVyO1xuICBwcFNob3RzT25Hb2FsOiBudW1iZXI7XG4gIHBwU2hvdHNCbG9ja2VkOiBudW1iZXI7XG4gIGV2U2hvdE1pc3NlczogbnVtYmVyO1xuICBldlNob3RzT25Hb2FsOiBudW1iZXI7XG4gIGV2U2hvdHNCbG9ja2VkOiBudW1iZXI7XG4gIHNoU2hvdE1pc3NlczogbnVtYmVyO1xuICBzaFNob3RzT25Hb2FsOiBudW1iZXI7XG4gIHNoU2hvdHNCbG9ja2VkOiBudW1iZXI7XG4gIHBwVG90YWxTaG90c09uR29hbDogbnVtYmVyO1xuICBldlRvdGFsU2hvdHNPbkdvYWw6IG51bWJlcjtcbiAgc2hUb3RhbFNob3RzT25Hb2FsOiBudW1iZXI7XG4gIHBwR29hbHM6IG51bWJlcjtcbiAgZXZHb2FsczogbnVtYmVyO1xuICBzaEdvYWxzOiBudW1iZXI7XG4gIHBwQ291bnRlckF0dGFja0dvYWxzOiBudW1iZXI7XG4gIHBwQ291bnRlckF0dGFja09uR29hbHM6IG51bWJlcjtcbiAgcHBDb3VudGVyQXR0YWNrTWlzc2VzOiBudW1iZXI7XG4gIHBwQ291bnRlckF0dGFja1Nob3RzQmxvY2tlZDogbnVtYmVyO1xuICBldkNvdW50ZXJBdHRhY2tHb2FsczogbnVtYmVyO1xuICBldkNvdW50ZXJBdHRhY2tPbkdvYWxzOiBudW1iZXI7XG4gIGV2Q291bnRlckF0dGFja01pc3NlczogbnVtYmVyO1xuICBldkNvdW50ZXJBdHRhY2tTaG90c0Jsb2NrZWQ6IG51bWJlcjtcbiAgc2hDb3VudGVyQXR0YWNrR29hbHM6IG51bWJlcjtcbiAgc2hDb3VudGVyQXR0YWNrT25Hb2FsczogbnVtYmVyO1xuICBzaENvdW50ZXJBdHRhY2tNaXNzZXM6IG51bWJlcjtcbiAgc2hDb3VudGVyQXR0YWNrU2hvdHNCbG9ja2VkOiBudW1iZXI7XG4gIHBwTWFuZXV2ZXJHb2FsczogbnVtYmVyO1xuICBwcE1hbmV1dmVyT25Hb2FsczogbnVtYmVyO1xuICBwcE1hbmV1dmVyTWlzc2VzOiBudW1iZXI7XG4gIHBwTWFuZXV2ZXJTaG90c0Jsb2NrZWQ6IG51bWJlcjtcbiAgZXZNYW5ldXZlckdvYWxzOiBudW1iZXI7XG4gIGV2TWFuZXV2ZXJPbkdvYWxzOiBudW1iZXI7XG4gIGV2TWFuZXV2ZXJNaXNzZXM6IG51bWJlcjtcbiAgZXZNYW5ldXZlclNob3RzQmxvY2tlZDogbnVtYmVyO1xuICBzaE1hbmV1dmVyR29hbHM6IG51bWJlcjtcbiAgc2hNYW5ldXZlck9uR29hbHM6IG51bWJlcjtcbiAgc2hNYW5ldXZlck1pc3NlczogbnVtYmVyO1xuICBzaE1hbmV1dmVyU2hvdHNCbG9ja2VkOiBudW1iZXI7XG4gIHBwQ2VudGVyRm9yd2FyZEdvYWxzOiBudW1iZXI7XG4gIHBwQ2VudGVyRm9yd2FyZE9uR29hbHM6IG51bWJlcjtcbiAgcHBDZW50ZXJGb3J3YXJkTWlzc2VzOiBudW1iZXI7XG4gIHBwQ2VudGVyRm9yd2FyZFNob3RzQmxvY2tlZDogbnVtYmVyO1xuICBldkNlbnRlckZvcndhcmRHb2FsczogbnVtYmVyO1xuICBldkNlbnRlckZvcndhcmRPbkdvYWxzOiBudW1iZXI7XG4gIGV2Q2VudGVyRm9yd2FyZE1pc3NlczogbnVtYmVyO1xuICBldkNlbnRlckZvcndhcmRTaG90c0Jsb2NrZWQ6IG51bWJlcjtcbiAgc2hDZW50ZXJGb3J3YXJkR29hbHM6IG51bWJlcjtcbiAgc2hDZW50ZXJGb3J3YXJkT25Hb2FsczogbnVtYmVyO1xuICBzaENlbnRlckZvcndhcmRNaXNzZXM6IG51bWJlcjtcbiAgc2hDZW50ZXJGb3J3YXJkU2hvdHNCbG9ja2VkOiBudW1iZXI7XG4gIHBwQXNzaXN0czogbnVtYmVyO1xuICBldkFzc2lzdHM6IG51bWJlcjtcbiAgc2hBc3Npc3RzOiBudW1iZXI7XG4gIHNob290b3V0QXR0ZW1wdHM6IG51bWJlcjtcbiAgc2hvb3RvdXRHb2FsczogbnVtYmVyO1xuICBhZnRlckdhbWVTaG9vdG91dEF0dGVtcHRzOiBudW1iZXI7XG4gIGFmdGVyR2FtZVNob290b3V0R29hbHM6IG51bWJlcjtcbiAgYmxvY2tTaG90czogbnVtYmVyO1xuICBmYWNlT2ZmTG9zc2VzOiBudW1iZXI7XG4gIGZhY2VPZmZXaW5zOiBudW1iZXI7XG4gIHBwU2F2ZXM6IG51bWJlcjtcbiAgc2hTYXZlczogbnVtYmVyO1xuICBldlNhdmVzOiBudW1iZXI7XG4gIHBwQ291bnRlckF0dGFja1NhdmVzOiBudW1iZXI7XG4gIHNoQ291bnRlckF0dGFja1NhdmVzOiBudW1iZXI7XG4gIGV2Q291bnRlckF0dGFja1NhdmVzOiBudW1iZXI7XG4gIHBwTWFuZXV2ZXJTYXZlczogbnVtYmVyO1xuICBzaE1hbmV1dmVyU2F2ZXM6IG51bWJlcjtcbiAgZXZNYW5ldXZlclNhdmVzOiBudW1iZXI7XG4gIHBwQ2VudGVyRm9yd2FyZFNhdmVzOiBudW1iZXI7XG4gIHNoQ2VudGVyRm9yd2FyZFNhdmVzOiBudW1iZXI7XG4gIGV2Q2VudGVyRm9yd2FyZFNhdmVzOiBudW1iZXI7XG4gIHBwRnJlZUtpY2tTYXZlczogbnVtYmVyO1xuICBzaEZyZWVLaWNrU2F2ZXM6IG51bWJlcjtcbiAgZXZGcmVlS2lja1NhdmVzOiBudW1iZXI7XG4gIHBwQ29ybmVyU2F2ZXM6IG51bWJlcjtcbiAgc2hDb3JuZXJTYXZlczogbnVtYmVyO1xuICBldkNvcm5lclNhdmVzOiBudW1iZXI7XG4gIHBwVG90YWxHYW1lU2F2ZXM6IG51bWJlcjtcbiAgc2hUb3RhbEdhbWVTYXZlczogbnVtYmVyO1xuICBldlRvdGFsR2FtZVNhdmVzOiBudW1iZXI7XG4gIHNob290b3V0U2F2ZXM6IG51bWJlcjtcbiAgYWZ0ZXJHYW1lU2hvb3RvdXRTYXZlczogbnVtYmVyO1xuICBwcEdvYWxzQWdhaW5zdDogbnVtYmVyO1xuICBzaEdvYWxzQWdhaW5zdDogbnVtYmVyO1xuICBldkdvYWxzQWdhaW5zdDogbnVtYmVyO1xuICBnb2Fsc0FnYWluc3Q6IG51bWJlcjtcbiAgcHBDb3VudGVyQXR0YWNrR29hbHNBZ2FpbnN0OiBudW1iZXI7XG4gIHNoQ291bnRlckF0dGFja0dvYWxzQWdhaW5zdDogbnVtYmVyO1xuICBldkNvdW50ZXJBdHRhY2tHb2Fsc0FnYWluc3Q6IG51bWJlcjtcbiAgY291bnRlckF0dGFja0dvYWxzQWdhaW5zdDogbnVtYmVyO1xuICBwcE1hbmV1dmVyR29hbHNBZ2FpbnN0OiBudW1iZXI7XG4gIHNoTWFuZXV2ZXJHb2Fsc0FnYWluc3Q6IG51bWJlcjtcbiAgZXZNYW5ldXZlckdvYWxzQWdhaW5zdDogbnVtYmVyO1xuICBtYW5ldXZlckdvYWxzQWdhaW5zdDogbnVtYmVyO1xuICBwcENlbnRlckZvcndhcmRHb2Fsc0FnYWluc3Q6IG51bWJlcjtcbiAgc2hDZW50ZXJGb3J3YXJkR29hbHNBZ2FpbnN0OiBudW1iZXI7XG4gIGV2Q2VudGVyRm9yd2FyZEdvYWxzQWdhaW5zdDogbnVtYmVyO1xuICBjZW50ZXJGb3J3YXJkR29hbHNBZ2FpbnN0OiBudW1iZXI7XG4gIHBwRnJlZUtpY2tHb2Fsc0FnYWluc3Q6IG51bWJlcjtcbiAgc2hGcmVlS2lja0dvYWxzQWdhaW5zdDogbnVtYmVyO1xuICBldkZyZWVLaWNrR29hbHNBZ2FpbnN0OiBudW1iZXI7XG4gIGZyZWVLaWNrR29hbHNBZ2FpbnN0OiBudW1iZXI7XG4gIHBwQ29ybmVyR29hbHNBZ2FpbnN0OiBudW1iZXI7XG4gIHNoQ29ybmVyR29hbHNBZ2FpbnN0OiBudW1iZXI7XG4gIGV2Q29ybmVyR29hbHNBZ2FpbnN0OiBudW1iZXI7XG4gIGNvcm5lckdvYWxzQWdhaW5zdDogbnVtYmVyO1xuICBzaG9vdG91dEdvYWxzQWdhaW5zdDogbnVtYmVyO1xuICBhZnRlckdhbWVTaG9vdG91dEdvYWxzQWdhaW5zdDogbnVtYmVyO1xuICBzYWZldHlSYXRlOiBudW1iZXI7XG4gIHBlbmFsdHlNaW51dGVzOiBudW1iZXI7XG4gIGdhbWVUaW1lOiBudW1iZXI7XG4gIHBsdXNNaW51czogbnVtYmVyO1xuICBmb3VsczogbnVtYmVyO1xuICBtaW5vclBlbmFsdGllczogbnVtYmVyO1xuICBtYWpvclBlbmFsdGllczogbnVtYmVyO1xuICBtYXRjaFBlbmFsdGllczogbnVtYmVyO1xuICBwZW5hbHR5Rm91bHM6IG51bWJlcjtcbiAgdHVybm92ZXJzOiBudW1iZXI7XG4gIGF0dGFja0ZvdWxzOiBudW1iZXI7XG4gIHBlcnNvbmFsRm91bHM6IG51bWJlcjtcbiAgZHJhd25Gb3VsczogbnVtYmVyO1xuICBkcmF3blR1cm5vdmVyczogbnVtYmVyO1xuICB5ZWxsb3dDYXJkczogbnVtYmVyO1xuICByZWRDYXJkczogbnVtYmVyO1xuICBsb3NzZXM6IG51bWJlcjtcbiAgc3RlYWxzOiBudW1iZXI7XG4gIHBwRnJlZUtpY2tHb2FsczogbnVtYmVyO1xuICBwcEZyZWVLaWNrT25Hb2FsczogbnVtYmVyO1xuICBwcEZyZWVLaWNrTWlzc2VzOiBudW1iZXI7XG4gIHBwRnJlZUtpY2tTaG90c0Jsb2NrZWQ6IG51bWJlcjtcbiAgc2hGcmVlS2lja0dvYWxzOiBudW1iZXI7XG4gIHNoRnJlZUtpY2tPbkdvYWxzOiBudW1iZXI7XG4gIHNoRnJlZUtpY2tNaXNzZXM6IG51bWJlcjtcbiAgc2hGcmVlS2lja1Nob3RzQmxvY2tlZDogbnVtYmVyO1xuICBldkZyZWVLaWNrR29hbHM6IG51bWJlcjtcbiAgZXZGcmVlS2lja09uR29hbHM6IG51bWJlcjtcbiAgZXZGcmVlS2lja01pc3NlczogbnVtYmVyO1xuICBldkZyZWVLaWNrU2hvdHNCbG9ja2VkOiBudW1iZXI7XG4gIGZyZWVLaWNrUGFzc2VzOiBudW1iZXI7XG4gIGZyZWVLaWNrU2VsZnM6IG51bWJlcjtcbiAgcHBDb3JuZXJHb2FsczogbnVtYmVyO1xuICBwcENvcm5lck9uR29hbHM6IG51bWJlcjtcbiAgcHBDb3JuZXJNaXNzZXM6IG51bWJlcjtcbiAgcHBDb3JuZXJTaG90c0Jsb2NrZWQ6IG51bWJlcjtcbiAgc2hDb3JuZXJHb2FsczogbnVtYmVyO1xuICBzaENvcm5lck9uR29hbHM6IG51bWJlcjtcbiAgc2hDb3JuZXJNaXNzZXM6IG51bWJlcjtcbiAgc2hDb3JuZXJTaG90c0Jsb2NrZWQ6IG51bWJlcjtcbiAgZXZDb3JuZXJHb2FsczogbnVtYmVyO1xuICBldkNvcm5lck9uR29hbHM6IG51bWJlcjtcbiAgZXZDb3JuZXJNaXNzZXM6IG51bWJlcjtcbiAgZXZDb3JuZXJTaG90c0Jsb2NrZWQ6IG51bWJlcjtcbiAgY29ybmVyUGFzc2VzOiBudW1iZXI7XG4gIGNvcm5lclNlbGZzOiBudW1iZXI7XG4gIHRhY2tsZXM6IG51bWJlcjtcbiAgcGxheWVyRWZmaWNpZW5jeTogbnVtYmVyO1xuICB1cGRhdGVkQXQ6IERhdGU7XG5cbiAgZ2V0IGlkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ2FtZVVzZXJJZDtcbiAgfVxuXG4gIGdldCBnYW1lTWludXRlcygpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMuZ2FtZVRpbWUgLyA2MCk7XG4gIH1cblxuICBnZXQgcGVuYWx0eVRpbWUoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMucGVuYWx0eU1pbnV0ZXMpIHtcbiAgICAgIHJldHVybiAnMDA6MDAnO1xuICAgIH1cbiAgICBjb25zdCBtaW51dGVzID0gTWF0aC5mbG9vcih0aGlzLnBlbmFsdHlNaW51dGVzIC8gNjApO1xuICAgIGNvbnN0IHNlY29uZHMgPSBNYXRoLmZsb29yKHRoaXMucGVuYWx0eU1pbnV0ZXMgLSBtaW51dGVzICogNjApO1xuICAgIHJldHVybiBgJHttaW51dGVzIDwgMTAgPyAwIDogJyd9JHttaW51dGVzfToke3NlY29uZHMgPCAxMCA/IDAgOiAnJ30ke3NlY29uZHN9YDtcbiAgfVxuXG4gIGdldCBhc3Npc3RzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLnBwQXNzaXN0cyB8fCAwKSArICh0aGlzLnNoQXNzaXN0cyB8fCAwKSAgKyAodGhpcy5ldkFzc2lzdHMgfHwgMCk7XG4gIH1cblxuICBnZXQgdG90YWxDb3VudGVyQXR0YWNrR29hbHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMucHBDb3VudGVyQXR0YWNrR29hbHMgfHwgMCkgKyAodGhpcy5ldkNvdW50ZXJBdHRhY2tHb2FscyB8fCAwKSAgKyAodGhpcy5zaENvdW50ZXJBdHRhY2tHb2FscyB8fCAwKTtcbiAgfVxuXG4gIGdldCBwcENvdW50ZXJBdHRhY2tTaG90cygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5wcENvdW50ZXJBdHRhY2tPbkdvYWxzIHx8IDApICsgKHRoaXMucHBDb3VudGVyQXR0YWNrTWlzc2VzIHx8IDApICsgKHRoaXMucHBDb3VudGVyQXR0YWNrU2hvdHNCbG9ja2VkIHx8IDApO1xuICB9XG5cbiAgZ2V0IHNoQ291bnRlckF0dGFja1Nob3RzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLnNoQ291bnRlckF0dGFja09uR29hbHMgfHwgMCkgKyAodGhpcy5zaENvdW50ZXJBdHRhY2tNaXNzZXMgfHwgMCkgKyAodGhpcy5zaENvdW50ZXJBdHRhY2tTaG90c0Jsb2NrZWQgfHwgMCk7XG4gIH1cblxuICBnZXQgZXZDb3VudGVyQXR0YWNrU2hvdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMuZXZDb3VudGVyQXR0YWNrT25Hb2FscyB8fCAwKSArICh0aGlzLmV2Q291bnRlckF0dGFja01pc3NlcyB8fCAwKSArICh0aGlzLmV2Q291bnRlckF0dGFja1Nob3RzQmxvY2tlZCB8fCAwKTtcbiAgfVxuXG4gIGdldCBjb3VudGVyQXR0YWNrU2hvdE1pc3NlcygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5wcENvdW50ZXJBdHRhY2tNaXNzZXMgfHwgMCkgKyAodGhpcy5zaENvdW50ZXJBdHRhY2tNaXNzZXMgfHwgMCkgKyAodGhpcy5ldkNvdW50ZXJBdHRhY2tNaXNzZXMgfHwgMCk7XG4gIH1cblxuICBnZXQgY291bnRlckF0dGFja1Nob3RPbkdvYWxzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLnBwQ291bnRlckF0dGFja09uR29hbHMgfHwgMCkgKyAodGhpcy5zaENvdW50ZXJBdHRhY2tPbkdvYWxzIHx8IDApICsgKHRoaXMuZXZDb3VudGVyQXR0YWNrT25Hb2FscyB8fCAwKTtcbiAgfVxuXG4gIGdldCBjb3VudGVyQXR0YWNrU2hvdHNCbG9ja2VkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLnBwQ291bnRlckF0dGFja1Nob3RzQmxvY2tlZCB8fCAwKSArICh0aGlzLnNoQ291bnRlckF0dGFja1Nob3RzQmxvY2tlZCB8fCAwKSArICh0aGlzLmV2Q291bnRlckF0dGFja1Nob3RzQmxvY2tlZCB8fCAwKTtcbiAgfVxuXG4gIGdldCBjb3VudGVyQXR0YWNrU2hvdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jb3VudGVyQXR0YWNrU2hvdE1pc3NlcyArIHRoaXMuY291bnRlckF0dGFja1Nob3RPbkdvYWxzICsgdGhpcy5jb3VudGVyQXR0YWNrU2hvdHNCbG9ja2VkO1xuICB9XG5cbiAgZ2V0IGNvdW50ZXJBdHRhY2tHb2Fsc1BlcmNlbnQoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMudG90YWxDb3VudGVyQXR0YWNrR29hbHMgfHwgIXRoaXMuY291bnRlckF0dGFja1Nob3RzKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGgucm91bmQoMTAwMCAqIHRoaXMudG90YWxDb3VudGVyQXR0YWNrR29hbHMgLyB0aGlzLmNvdW50ZXJBdHRhY2tTaG90cykgLyAxMDtcbiAgfVxuXG4gIGdldCB0b3RhbE1hbmV1dmVyR29hbHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMucHBNYW5ldXZlckdvYWxzIHx8IDApICsgKHRoaXMuc2hNYW5ldXZlckdvYWxzIHx8IDApICsgKHRoaXMuZXZNYW5ldXZlckdvYWxzIHx8IDApO1xuICB9XG5cbiAgZ2V0IHBwTWFuZXV2ZXJTaG90cygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5wcE1hbmV1dmVyT25Hb2FscyB8fCAwKSArICh0aGlzLnBwTWFuZXV2ZXJNaXNzZXMgfHwgMCkgKyAodGhpcy5wcE1hbmV1dmVyU2hvdHNCbG9ja2VkIHx8IDApO1xuICB9XG5cbiAgZ2V0IHNoTWFuZXV2ZXJTaG90cygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5zaE1hbmV1dmVyT25Hb2FscyB8fCAwKSArICh0aGlzLnNoTWFuZXV2ZXJNaXNzZXMgfHwgMCkgKyAodGhpcy5zaE1hbmV1dmVyU2hvdHNCbG9ja2VkIHx8IDApO1xuICB9XG5cbiAgZ2V0IGV2TWFuZXV2ZXJTaG90cygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5ldk1hbmV1dmVyT25Hb2FscyB8fCAwKSArICh0aGlzLmV2TWFuZXV2ZXJNaXNzZXMgfHwgMCkgKyAodGhpcy5ldk1hbmV1dmVyU2hvdHNCbG9ja2VkIHx8IDApO1xuICB9XG5cbiAgZ2V0IG1hbmV1dmVyU2hvdE1pc3NlcygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5wcE1hbmV1dmVyTWlzc2VzIHx8IDApICsgKHRoaXMuc2hNYW5ldXZlck1pc3NlcyB8fCAwKSArICAodGhpcy5ldk1hbmV1dmVyTWlzc2VzIHx8IDApO1xuICB9XG5cbiAgZ2V0IG1hbmV1dmVyU2hvdE9uR29hbHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMucHBNYW5ldXZlck9uR29hbHMgfHwgMCkgKyAodGhpcy5zaE1hbmV1dmVyT25Hb2FscyB8fCAwKSArICAodGhpcy5ldk1hbmV1dmVyT25Hb2FscyB8fCAwKTtcbiAgfVxuXG4gIGdldCBtYW5ldXZlclNob3RzQmxvY2tlZCgpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5wcE1hbmV1dmVyU2hvdHNCbG9ja2VkIHx8IDApICsgKHRoaXMuc2hNYW5ldXZlclNob3RzQmxvY2tlZCB8fCAwKSArICAodGhpcy5ldk1hbmV1dmVyU2hvdHNCbG9ja2VkIHx8IDApO1xuICB9XG5cbiAgZ2V0IG1hbmV1dmVyU2hvdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5tYW5ldXZlclNob3RNaXNzZXMgKyB0aGlzLm1hbmV1dmVyU2hvdE9uR29hbHMgKyB0aGlzLm1hbmV1dmVyU2hvdHNCbG9ja2VkO1xuICB9XG5cbiAgZ2V0IG1hbmV1dmVyR29hbHNQZXJjZW50KCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLnRvdGFsTWFuZXV2ZXJHb2FscyB8fCAhdGhpcy5tYW5ldXZlclNob3RzKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGgucm91bmQoMTAwMCAqIHRoaXMudG90YWxNYW5ldXZlckdvYWxzIC8gdGhpcy5tYW5ldXZlclNob3RzKSAvIDEwO1xuICB9XG5cbiAgZ2V0IHRvdGFsQ2VudGVyRm9yd2FyZEdvYWxzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLnBwQ2VudGVyRm9yd2FyZEdvYWxzIHx8IDApICsgKHRoaXMuc2hDZW50ZXJGb3J3YXJkR29hbHMgfHwgMCkgKyAgKHRoaXMuZXZDZW50ZXJGb3J3YXJkR29hbHMgfHwgMCk7XG4gIH1cblxuICBnZXQgcHBDZW50ZXJGb3J3YXJkU2hvdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMucHBDZW50ZXJGb3J3YXJkT25Hb2FscyB8fCAwKSArICh0aGlzLnBwQ2VudGVyRm9yd2FyZE1pc3NlcyB8fCAwKSArICh0aGlzLnBwQ2VudGVyRm9yd2FyZFNob3RzQmxvY2tlZCB8fCAwKTtcbiAgfVxuXG4gIGdldCBzaENlbnRlckZvcndhcmRTaG90cygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5zaENlbnRlckZvcndhcmRPbkdvYWxzIHx8IDApICsgKHRoaXMuc2hDZW50ZXJGb3J3YXJkTWlzc2VzIHx8IDApICsgKHRoaXMuc2hDZW50ZXJGb3J3YXJkU2hvdHNCbG9ja2VkIHx8IDApO1xuICB9XG5cbiAgZ2V0IGV2Q2VudGVyRm9yd2FyZFNob3RzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLmV2Q2VudGVyRm9yd2FyZE9uR29hbHMgfHwgMCkgKyAodGhpcy5ldkNlbnRlckZvcndhcmRNaXNzZXMgfHwgMCkgKyAodGhpcy5ldkNlbnRlckZvcndhcmRTaG90c0Jsb2NrZWQgfHwgMCk7XG4gIH1cblxuICBnZXQgY2VudGVyRm9yd2FyZFNob3RNaXNzZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMucHBDZW50ZXJGb3J3YXJkTWlzc2VzIHx8IDApICsgKHRoaXMuc2hDZW50ZXJGb3J3YXJkTWlzc2VzIHx8IDApICsgKHRoaXMuZXZDZW50ZXJGb3J3YXJkTWlzc2VzIHx8IDApO1xuICB9XG5cbiAgZ2V0IGNlbnRlckZvcndhcmRTaG90T25Hb2FscygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5wcENlbnRlckZvcndhcmRPbkdvYWxzIHx8IDApICsgKHRoaXMuc2hDZW50ZXJGb3J3YXJkT25Hb2FscyB8fCAwKSArICh0aGlzLmV2Q2VudGVyRm9yd2FyZE9uR29hbHMgfHwgMCk7XG4gIH1cblxuICBnZXQgY2VudGVyRm9yd2FyZFNob3RzQmxvY2tlZCgpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5wcENlbnRlckZvcndhcmRTaG90c0Jsb2NrZWQgfHwgMCkgKyAodGhpcy5zaENlbnRlckZvcndhcmRTaG90c0Jsb2NrZWQgfHwgMCkgKyAodGhpcy5ldkNlbnRlckZvcndhcmRTaG90c0Jsb2NrZWQgfHwgMCk7XG4gIH1cblxuICBnZXQgY2VudGVyRm9yd2FyZFNob3RzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY2VudGVyRm9yd2FyZFNob3RNaXNzZXMgKyB0aGlzLmNlbnRlckZvcndhcmRTaG90T25Hb2FscyArIHRoaXMuY2VudGVyRm9yd2FyZFNob3RzQmxvY2tlZDtcbiAgfVxuXG4gIGdldCBjZW50ZXJGb3J3YXJkR29hbHNQZXJjZW50KCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLnRvdGFsQ2VudGVyRm9yd2FyZEdvYWxzIHx8ICF0aGlzLmNlbnRlckZvcndhcmRTaG90cykge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiBNYXRoLnJvdW5kKDEwMDAgKiB0aGlzLnRvdGFsQ2VudGVyRm9yd2FyZEdvYWxzIC8gdGhpcy5jZW50ZXJGb3J3YXJkU2hvdHMpIC8gMTA7XG4gIH1cblxuICBnZXQgcHBTaG90cygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5wcFNob3RNaXNzZXMgfHwgMCkgKyAodGhpcy5wcFNob3RzT25Hb2FsIHx8IDApICsgKHRoaXMucHBTaG90c0Jsb2NrZWQgfHwgMCkgK1xuICAgICAgKHRoaXMucHBGcmVlS2lja01pc3NlcyB8fCAwKSArICh0aGlzLnBwRnJlZUtpY2tPbkdvYWxzIHx8IDApICsgKHRoaXMucHBGcmVlS2lja1Nob3RzQmxvY2tlZCB8fCAwKSArXG4gICAgICAodGhpcy5wcENvcm5lck1pc3NlcyB8fCAwKSArICh0aGlzLnBwQ29ybmVyT25Hb2FscyB8fCAwKSArICh0aGlzLnBwQ29ybmVyU2hvdHNCbG9ja2VkIHx8IDApICtcbiAgICAgIHRoaXMucHBDb3VudGVyQXR0YWNrU2hvdHMgKyB0aGlzLnBwTWFuZXV2ZXJTaG90cyArIHRoaXMucHBDZW50ZXJGb3J3YXJkU2hvdHM7XG4gIH1cblxuICBnZXQgZXZTaG90cygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5ldlNob3RNaXNzZXMgfHwgMCkgKyAodGhpcy5ldlNob3RzT25Hb2FsIHx8IDApICsgKHRoaXMuZXZTaG90c0Jsb2NrZWQgfHwgMCkgK1xuICAgICAgKHRoaXMuZXZGcmVlS2lja01pc3NlcyB8fCAwKSArICh0aGlzLmV2RnJlZUtpY2tPbkdvYWxzIHx8IDApICsgKHRoaXMuZXZGcmVlS2lja1Nob3RzQmxvY2tlZCB8fCAwKSArXG4gICAgICAodGhpcy5ldkNvcm5lck1pc3NlcyB8fCAwKSArICh0aGlzLmV2Q29ybmVyT25Hb2FscyB8fCAwKSArICh0aGlzLmV2Q29ybmVyU2hvdHNCbG9ja2VkIHx8IDApICArXG4gICAgICB0aGlzLmV2Q291bnRlckF0dGFja1Nob3RzICsgdGhpcy5ldk1hbmV1dmVyU2hvdHMgKyB0aGlzLmV2Q2VudGVyRm9yd2FyZFNob3RzO1xuICB9XG5cbiAgZ2V0IHNoU2hvdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMuc2hTaG90TWlzc2VzIHx8IDApICsgKHRoaXMuc2hTaG90c09uR29hbCB8fCAwKSArICh0aGlzLnNoU2hvdHNCbG9ja2VkIHx8IDApICtcbiAgICAgICh0aGlzLnNoRnJlZUtpY2tNaXNzZXMgfHwgMCkgKyAodGhpcy5zaEZyZWVLaWNrT25Hb2FscyB8fCAwKSArICh0aGlzLnNoRnJlZUtpY2tTaG90c0Jsb2NrZWQgfHwgMCkgK1xuICAgICAgKHRoaXMuc2hDb3JuZXJNaXNzZXMgfHwgMCkgKyAodGhpcy5zaENvcm5lck9uR29hbHMgfHwgMCkgKyAodGhpcy5zaENvcm5lclNob3RzQmxvY2tlZCB8fCAwKSArXG4gICAgICB0aGlzLnNoQ291bnRlckF0dGFja1Nob3RzICsgdGhpcy5zaE1hbmV1dmVyU2hvdHMgKyB0aGlzLnNoQ2VudGVyRm9yd2FyZFNob3RzO1xuICB9XG5cbiAgZ2V0IHRvdGFsU2hHb2FscygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5zaEdvYWxzIHx8IDApICsgKHRoaXMuc2hGcmVlS2lja0dvYWxzIHx8IDApICsgKHRoaXMuc2hDb3JuZXJHb2FscyB8fCAwKSArXG4gICAgICAodGhpcy5zaENvdW50ZXJBdHRhY2tHb2FscyB8fCAwKSArICh0aGlzLnNoTWFuZXV2ZXJHb2FscyB8fCAwKSArICh0aGlzLnNoQ2VudGVyRm9yd2FyZEdvYWxzIHx8IDApO1xuICB9XG5cbiAgZ2V0IHRvdGFsRXZHb2FscygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5ldkdvYWxzIHx8IDApICsgKHRoaXMuZXZGcmVlS2lja0dvYWxzIHx8IDApICsgKHRoaXMuZXZDb3JuZXJHb2FscyB8fCAwKSArXG4gICAgICAodGhpcy5ldkNvdW50ZXJBdHRhY2tHb2FscyB8fCAwKSArICh0aGlzLmV2TWFuZXV2ZXJHb2FscyB8fCAwKSArICh0aGlzLmV2Q2VudGVyRm9yd2FyZEdvYWxzIHx8IDApO1xuICB9XG5cbiAgZ2V0IHRvdGFsUHBHb2FscygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5wcEdvYWxzIHx8IDApICsgKHRoaXMucHBGcmVlS2lja0dvYWxzIHx8IDApICsgKHRoaXMucHBDb3JuZXJHb2FscyB8fCAwKSArXG4gICAgICAodGhpcy5wcENvdW50ZXJBdHRhY2tHb2FscyB8fCAwKSArICh0aGlzLnBwTWFuZXV2ZXJHb2FscyB8fCAwKSArICh0aGlzLnBwQ2VudGVyRm9yd2FyZEdvYWxzIHx8IDApO1xuICB9XG5cbiAgZ2V0IGdvYWxzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudG90YWxTaEdvYWxzICsgdGhpcy50b3RhbEV2R29hbHMgKyB0aGlzLnRvdGFsUHBHb2FscztcbiAgfVxuXG4gIGdldCB0b3RhbEdvYWxzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZ29hbHMgKyAodGhpcy5zaG9vdG91dEdvYWxzIHx8IDApO1xuICB9XG5cbiAgZ2V0IHNob290b3V0U2hvdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMuc2hvb3RvdXRHb2FscyB8fCAwKSArICh0aGlzLnNob290b3V0QXR0ZW1wdHMgfHwgMCk7XG4gIH1cblxuICBnZXQgaW5HYW1lU2hvdE1pc3NlcygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5wcFNob3RNaXNzZXMgfHwgMCkgKyAodGhpcy5ldlNob3RNaXNzZXMgfHwgMCkgKyAodGhpcy5zaFNob3RNaXNzZXMgfHwgMCkgK1xuICAgICAgdGhpcy5jb3VudGVyQXR0YWNrU2hvdE1pc3NlcyArIHRoaXMubWFuZXV2ZXJTaG90TWlzc2VzICsgdGhpcy5jZW50ZXJGb3J3YXJkU2hvdE1pc3NlcztcbiAgfVxuXG4gIGdldCBzaG90TWlzc2VzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLnBwRnJlZUtpY2tNaXNzZXMgfHwgMCkgKyAodGhpcy5ldkZyZWVLaWNrTWlzc2VzIHx8IDApICsgKHRoaXMuc2hGcmVlS2lja01pc3NlcyB8fCAwKSArXG4gICAgICAodGhpcy5wcENvcm5lck1pc3NlcyB8fCAwKSArICh0aGlzLmV2Q29ybmVyTWlzc2VzIHx8IDApICsgKHRoaXMuc2hDb3JuZXJNaXNzZXMgfHwgMCkgK1xuICAgICAgdGhpcy5pbkdhbWVTaG90TWlzc2VzO1xuICB9XG5cbiAgZ2V0IHRvdGFsUHBTaG90TWlzc2VzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLnBwU2hvdE1pc3NlcyB8fCAwKSArICh0aGlzLnBwRnJlZUtpY2tNaXNzZXMgfHwgMCkgKyAodGhpcy5wcENvcm5lck1pc3NlcyB8fCAwKSArXG4gICAgICAodGhpcy5wcENvdW50ZXJBdHRhY2tNaXNzZXMgfHwgMCkgKyAodGhpcy5wcE1hbmV1dmVyTWlzc2VzIHx8IDApICsgKHRoaXMucHBDZW50ZXJGb3J3YXJkTWlzc2VzIHx8IDApO1xuICB9XG5cbiAgZ2V0IHNob3RzT25Hb2FsKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLnBwU2hvdHNPbkdvYWwgfHwgMCkgKyAodGhpcy5ldlNob3RzT25Hb2FsIHx8IDApICsgKHRoaXMuc2hTaG90c09uR29hbCB8fCAwKSArXG4gICAgICAodGhpcy5wcEZyZWVLaWNrT25Hb2FscyB8fCAwKSArICh0aGlzLmV2RnJlZUtpY2tPbkdvYWxzIHx8IDApICsgKHRoaXMuc2hGcmVlS2lja09uR29hbHMgfHwgMCkgK1xuICAgICAgKHRoaXMucHBDb3JuZXJPbkdvYWxzIHx8IDApICsgKHRoaXMuZXZDb3JuZXJPbkdvYWxzIHx8IDApICsgKHRoaXMuc2hDb3JuZXJPbkdvYWxzIHx8IDApICtcbiAgICAgIHRoaXMuY291bnRlckF0dGFja1Nob3RPbkdvYWxzICsgdGhpcy5tYW5ldXZlclNob3RPbkdvYWxzICsgdGhpcy5jZW50ZXJGb3J3YXJkU2hvdE9uR29hbHM7XG4gIH1cblxuICBnZXQgdG90YWxQcFNob3RzT25Hb2FsKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLnBwU2hvdHNPbkdvYWwgfHwgMCkgKyAodGhpcy5wcEZyZWVLaWNrT25Hb2FscyB8fCAwKSArICh0aGlzLnBwQ29ybmVyT25Hb2FscyB8fCAwKSArXG4gICAgICAodGhpcy5wcENvdW50ZXJBdHRhY2tPbkdvYWxzIHx8IDApICsgKHRoaXMucHBNYW5ldXZlck9uR29hbHMgfHwgMCkgKyAodGhpcy5wcENlbnRlckZvcndhcmRPbkdvYWxzIHx8IDApO1xuICB9XG5cbiAgZ2V0IGluR2FtZVNob3RzT25Hb2FscygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5wcFNob3RzT25Hb2FsIHx8IDApICsgKHRoaXMuZXZTaG90c09uR29hbCB8fCAwKSArICh0aGlzLnNoU2hvdHNPbkdvYWwgfHwgMCkgK1xuICAgICAgdGhpcy5jb3VudGVyQXR0YWNrU2hvdE9uR29hbHMgKyB0aGlzLm1hbmV1dmVyU2hvdE9uR29hbHMgKyB0aGlzLmNlbnRlckZvcndhcmRTaG90T25Hb2FscztcbiAgfVxuXG4gIGdldCBzaG90cygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBwU2hvdHMgKyB0aGlzLmV2U2hvdHMgKyB0aGlzLnNoU2hvdHM7XG4gIH1cblxuICBnZXQgdG90YWxTaG90cygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnNob3RzICsgKHRoaXMuc2hvb3RvdXRBdHRlbXB0cyB8fCAwKTtcbiAgfVxuXG4gIGdldCBmYWNlT2ZmcygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5mYWNlT2ZmV2lucyB8fCAwKSArICh0aGlzLmZhY2VPZmZMb3NzZXMgfHwgMCk7XG4gIH1cblxuICBnZXQgZnJlZUtpY2tTaG90TWlzc2VzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLnBwRnJlZUtpY2tNaXNzZXMgfHwgMCkgKyAodGhpcy5ldkZyZWVLaWNrTWlzc2VzIHx8IDApICsgKHRoaXMuc2hGcmVlS2lja01pc3NlcyB8fCAwKTtcbiAgfVxuXG4gIGdldCBmcmVlS2lja1Nob3RzQmxvY2tlZCgpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5wcEZyZWVLaWNrU2hvdHNCbG9ja2VkIHx8IDApICsgKHRoaXMuZXZGcmVlS2lja1Nob3RzQmxvY2tlZCB8fCAwKSArICh0aGlzLnNoRnJlZUtpY2tTaG90c0Jsb2NrZWQgfHwgMCk7XG4gIH1cblxuICBnZXQgZnJlZUtpY2tPbkdvYWxzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLnBwRnJlZUtpY2tPbkdvYWxzIHx8IDApICsgKHRoaXMuZXZGcmVlS2lja09uR29hbHMgfHwgMCkgKyAodGhpcy5zaEZyZWVLaWNrT25Hb2FscyB8fCAwKTtcbiAgfVxuXG4gIGdldCB0b3RhbEZyZWVLaWNrR29hbHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMucHBGcmVlS2lja0dvYWxzIHx8IDApICsgKHRoaXMuc2hGcmVlS2lja0dvYWxzIHx8IDApICsgKHRoaXMuZXZGcmVlS2lja0dvYWxzIHx8IDApO1xuICB9XG5cbiAgZ2V0IHRvdGFsRnJlZUtpY2tzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLmZyZWVLaWNrU2VsZnMgfHwgMCkgKyAodGhpcy5mcmVlS2lja1Bhc3NlcyB8fCAwKSArXG4gICAgICB0aGlzLmZyZWVLaWNrU2hvdE1pc3NlcyArIHRoaXMuZnJlZUtpY2tPbkdvYWxzICsgdGhpcy50b3RhbEZyZWVLaWNrR29hbHMgKyB0aGlzLmZyZWVLaWNrU2hvdHNCbG9ja2VkO1xuICB9XG5cbiAgZ2V0IGZyZWVLaWNrR29hbHNQZXJjZW50KCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLnRvdGFsRnJlZUtpY2tHb2FscyB8fCAhdGhpcy50b3RhbEZyZWVLaWNrcykge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiBNYXRoLnJvdW5kKDEwMDAgKiB0aGlzLnRvdGFsRnJlZUtpY2tHb2FscyAvIHRoaXMudG90YWxGcmVlS2lja3MpIC8gMTA7XG4gIH1cblxuICBnZXQgdG90YWxDb3JuZXJHb2FscygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5wcENvcm5lckdvYWxzIHx8IDApICsgKHRoaXMuc2hDb3JuZXJHb2FscyB8fCAwKSArICh0aGlzLmV2Q29ybmVyR29hbHMgfHwgMCk7XG4gIH1cblxuICBnZXQgY29ybmVyU2hvdE1pc3NlcygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5wcENvcm5lck1pc3NlcyB8fCAwKSArICh0aGlzLnNoQ29ybmVyTWlzc2VzIHx8IDApICsgKHRoaXMuZXZDb3JuZXJNaXNzZXMgfHwgMCk7XG4gIH1cblxuICBnZXQgY29ybmVyT25Hb2FscygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5wcENvcm5lck9uR29hbHMgfHwgMCkgKyAodGhpcy5zaENvcm5lck9uR29hbHMgfHwgMCkgKyAodGhpcy5ldkNvcm5lck9uR29hbHMgfHwgMCk7XG4gIH1cblxuICBnZXQgY29ybmVyU2hvdHNCbG9ja2VkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLnBwQ29ybmVyU2hvdHNCbG9ja2VkIHx8IDApICsgKHRoaXMuc2hDb3JuZXJTaG90c0Jsb2NrZWQgfHwgMCkgKyAodGhpcy5ldkNvcm5lclNob3RzQmxvY2tlZCB8fCAwKTtcbiAgfVxuXG4gIGdldCB0b3RhbENvcm5lcnMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMuY29ybmVyU2VsZnMgfHwgMCkgKyAodGhpcy5jb3JuZXJQYXNzZXMgfHwgMCkgKyB0aGlzLmNvcm5lclNob3RzQmxvY2tlZCArXG4gICAgICB0aGlzLmNvcm5lck9uR29hbHMgKyB0aGlzLmNvcm5lclNob3RNaXNzZXMgKyB0aGlzLnRvdGFsQ29ybmVyR29hbHM7XG4gIH1cblxuICBnZXQgc2hvdHNCbG9ja2VkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLnBwU2hvdHNCbG9ja2VkIHx8IDApICsgKHRoaXMuZXZTaG90c0Jsb2NrZWQgfHwgMCkgKyAodGhpcy5zaFNob3RzQmxvY2tlZCB8fCAwKSArXG4gICAgICB0aGlzLmNvdW50ZXJBdHRhY2tTaG90c0Jsb2NrZWQgKyB0aGlzLm1hbmV1dmVyU2hvdHNCbG9ja2VkICsgdGhpcy5jZW50ZXJGb3J3YXJkU2hvdHNCbG9ja2VkICtcbiAgICAgIHRoaXMuZnJlZUtpY2tTaG90c0Jsb2NrZWQgKyB0aGlzLmNvcm5lclNob3RzQmxvY2tlZDtcbiAgfVxuXG4gIGdldCB0b3RhbEZvdWxzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLmZvdWxzIHx8IDApICsgKHRoaXMucGVuYWx0eUZvdWxzIHx8IDApICsgKHRoaXMuYXR0YWNrRm91bHMgfHwgMCkgKyAodGhpcy5wZXJzb25hbEZvdWxzIHx8IDApICtcbiAgICAgICh0aGlzLm1pbm9yUGVuYWx0aWVzIHx8IDApICsgKHRoaXMubWFqb3JQZW5hbHRpZXMgfHwgMCkgKyAodGhpcy5tYXRjaFBlbmFsdGllcyB8fCAwKTtcbiAgfVxuXG4gIGdldCB0b3RhbFBlbmFsdGllcygpOiBudW1iZXIge1xuICAgICAgcmV0dXJuICh0aGlzLm1pbm9yUGVuYWx0aWVzIHx8IDApICsgKHRoaXMubWFqb3JQZW5hbHRpZXMgfHwgMCkgKyAodGhpcy5tYXRjaFBlbmFsdGllcyB8fCAwKTtcbiAgfVxuXG4gIGdldCBwb3NpdGlvbkF0dGFja0dvYWxzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLnNoR29hbHMgfHwgMCkgKyAodGhpcy5ldkdvYWxzIHx8IDApICsgKHRoaXMucHBHb2FscyB8fCAwKTtcbiAgfVxuXG4gIGdldCBwb3NpdGlvbkF0dGFja1Nob3RzT25Hb2FsKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLnBwU2hvdHNPbkdvYWwgfHwgMCkgKyAodGhpcy5ldlNob3RzT25Hb2FsIHx8IDApICsgKHRoaXMuc2hTaG90c09uR29hbCB8fCAwKTtcbiAgfVxuXG4gIGdldCBwb3NpdGlvbkF0dGFja1Nob3RzTWlzcygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5wcFNob3RNaXNzZXMgfHwgMCkgKyAodGhpcy5ldlNob3RNaXNzZXMgfHwgMCkgKyAodGhpcy5zaFNob3RNaXNzZXMgfHwgMCk7XG4gIH1cblxuICBnZXQgcG9zaXRpb25BdHRhY2tTaG90cygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnBvc2l0aW9uQXR0YWNrU2hvdHNPbkdvYWwgKyB0aGlzLnBvc2l0aW9uQXR0YWNrU2hvdHNNaXNzO1xuICB9XG5cbiAgZ2V0IHBvc2l0aW9uQXR0YWNrR29hbHNQZXJjZW50KCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLnBvc2l0aW9uQXR0YWNrR29hbHMgfHwgIXRoaXMucG9zaXRpb25BdHRhY2tTaG90cykge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiBNYXRoLnJvdW5kKDEwMDAgKiB0aGlzLnBvc2l0aW9uQXR0YWNrR29hbHMgLyB0aGlzLnBvc2l0aW9uQXR0YWNrU2hvdHMpIC8gMTA7XG4gIH1cblxuICBnZXQgdG90YWxJbkdhbWVHb2FscygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnRvdGFsQ2VudGVyRm9yd2FyZEdvYWxzICsgdGhpcy50b3RhbE1hbmV1dmVyR29hbHMgKyB0aGlzLnRvdGFsQ291bnRlckF0dGFja0dvYWxzICsgdGhpcy5wb3NpdGlvbkF0dGFja0dvYWxzO1xuICB9XG5cbiAgZ2V0IHBwR29hbHNQZXJjZW50KCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLnRvdGFsUHBHb2FscyB8fCAhdGhpcy5wcFNob3RzKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGgucm91bmQoMTAwMCAqIHRoaXMudG90YWxQcEdvYWxzIC8gdGhpcy5wcFNob3RzKSAvIDEwO1xuICB9XG5cbiAgZ2V0IGV2R29hbHNQZXJjZW50KCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLnRvdGFsRXZHb2FscyB8fCAhdGhpcy5ldlNob3RzKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGgucm91bmQoMTAwMCAqIHRoaXMudG90YWxFdkdvYWxzIC8gdGhpcy5ldlNob3RzKSAvIDEwO1xuICB9XG5cbiAgZ2V0IHNoR29hbHNQZXJjZW50KCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLnRvdGFsU2hHb2FscyB8fCAhdGhpcy5zaFNob3RzKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGgucm91bmQoMTAwMCAqIHRoaXMudG90YWxTaEdvYWxzIC8gdGhpcy5zaFNob3RzKSAvIDEwO1xuICB9XG5cbiAgZ2V0IHNob3RzT25Hb2FsUGVyY2VudCgpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy5zaG90c09uR29hbCB8fCAhdGhpcy5zaG90cykge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiBNYXRoLnJvdW5kKDEwMDAgKiB0aGlzLnNob3RzT25Hb2FsIC8gdGhpcy5zaG90cykgLyAxMDtcbiAgfVxuXG4gIGdldCBnb2Fsc1BlcmNlbnQoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMuZ29hbHMgfHwgIXRoaXMuc2hvdHMpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5yb3VuZCgxMDAwICogdGhpcy5nb2FscyAvIHRoaXMuc2hvdHMpIC8gMTA7XG4gIH1cblxuICBnZXQgdG90YWxHb2Fsc1BlcmNlbnQoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMudG90YWxHb2FscyB8fCAhdGhpcy50b3RhbFNob3RzKSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGgucm91bmQoMTAwMCAqIHRoaXMudG90YWxHb2FscyAvIHRoaXMudG90YWxTaG90cykgLyAxMDtcbiAgfVxuXG4gIGdldCBmYWNlT2ZmUGVyY2VudCgpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy5mYWNlT2ZmV2lucyB8fCAhdGhpcy5mYWNlT2Zmcykge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiBNYXRoLnJvdW5kKDEwMDAgKiB0aGlzLmZhY2VPZmZXaW5zIC8gdGhpcy5mYWNlT2ZmcykgLyAxMDtcbiAgfVxuXG4gIGdldCBzaG9vdG91dEdvYWxzUGVyY2VudCgpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy5zaG9vdG91dEdvYWxzIHx8ICF0aGlzLnNob290b3V0U2hvdHMpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5yb3VuZCgxMDAwICogdGhpcy5zaG9vdG91dEdvYWxzIC8gdGhpcy5zaG9vdG91dFNob3RzKSAvIDEwO1xuICB9XG5cbiAgZ2V0IGdvYWxwYXNzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLnRvdGFsR29hbHMgfHwgMCkgKyAodGhpcy5hc3Npc3RzIHx8IDApO1xuICB9XG5cbiAgLypnb2FsaWUgc3RhdCAqL1xuICBnZXQgcG9zaXRpb25BdHRhY2tTYXZlcygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5wcFNhdmVzIHx8IDApICsgKHRoaXMuc2hTYXZlcyB8fCAwKSArICh0aGlzLmV2U2F2ZXMgfHwgMCk7XG4gIH1cblxuICBnZXQgcG9zaXRpb25BdHRhY2tTaG90c0FnYWluc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wb3NpdGlvbkF0dGFja1NhdmVzICsgKHRoaXMuZ29hbHNBZ2FpbnN0IHx8IDApO1xuICB9XG5cbiAgZ2V0IHBvc2l0aW9uQXR0YWNrU2F2ZXNQZXJjZW50KCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLnBvc2l0aW9uQXR0YWNrU2F2ZXMgfHwgIXRoaXMucG9zaXRpb25BdHRhY2tTaG90c0FnYWluc3QpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5yb3VuZCgxMDAwICogdGhpcy5wb3NpdGlvbkF0dGFja1NhdmVzIC8gdGhpcy5wb3NpdGlvbkF0dGFja1Nob3RzQWdhaW5zdCkgLyAxMDtcbiAgfVxuXG4gIGdldCBjb3VudGVyQXR0YWNrU2F2ZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMucHBDb3VudGVyQXR0YWNrU2F2ZXMgfHwgMCkgKyAodGhpcy5zaENvdW50ZXJBdHRhY2tTYXZlcyB8fCAwKSArICh0aGlzLmV2Q291bnRlckF0dGFja1NhdmVzIHx8IDApO1xuICB9XG5cbiAgZ2V0IGNvdW50ZXJBdHRhY2tTaG90c0FnYWluc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jb3VudGVyQXR0YWNrU2F2ZXMgKyAodGhpcy5jb3VudGVyQXR0YWNrR29hbHNBZ2FpbnN0IHx8IDApO1xuICB9XG5cbiAgZ2V0IGNvdW50ZXJBdHRhY2tTYXZlc1BlcmNlbnQoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMuY291bnRlckF0dGFja1NhdmVzIHx8ICF0aGlzLmNvdW50ZXJBdHRhY2tTaG90c0FnYWluc3QpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5yb3VuZCgxMDAwICogdGhpcy5jb3VudGVyQXR0YWNrU2F2ZXMgLyB0aGlzLmNvdW50ZXJBdHRhY2tTaG90c0FnYWluc3QpIC8gMTA7XG4gIH1cblxuXG4gIGdldCBjZW50ZXJGb3J3YXJkU2F2ZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMucHBDZW50ZXJGb3J3YXJkU2F2ZXMgfHwgMCkgKyAodGhpcy5zaENlbnRlckZvcndhcmRTYXZlcyB8fCAwKSArICh0aGlzLmV2Q2VudGVyRm9yd2FyZFNhdmVzIHx8IDApO1xuICB9XG5cbiAgZ2V0IGNlbnRlckZvcndhcmRTaG90c0FnYWluc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jZW50ZXJGb3J3YXJkU2F2ZXMgKyAodGhpcy5jZW50ZXJGb3J3YXJkR29hbHNBZ2FpbnN0IHx8IDApO1xuICB9XG5cbiAgZ2V0IGNlbnRlckZvcndhcmRTYXZlc1BlcmNlbnQoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMuY2VudGVyRm9yd2FyZFNhdmVzIHx8ICF0aGlzLmNlbnRlckZvcndhcmRTaG90c0FnYWluc3QpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5yb3VuZCgxMDAwICogdGhpcy5jZW50ZXJGb3J3YXJkU2F2ZXMgLyB0aGlzLmNlbnRlckZvcndhcmRTaG90c0FnYWluc3QpIC8gMTA7XG4gIH1cblxuICBnZXQgbWFuZXV2ZXJTYXZlcygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5wcE1hbmV1dmVyU2F2ZXMgfHwgMCkgKyAodGhpcy5zaE1hbmV1dmVyU2F2ZXMgfHwgMCkgKyAodGhpcy5ldk1hbmV1dmVyU2F2ZXMgfHwgMCk7XG4gIH1cblxuICBnZXQgbWFuZXV2ZXJTaG90c0FnYWluc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5tYW5ldXZlclNhdmVzICsgKHRoaXMubWFuZXV2ZXJHb2Fsc0FnYWluc3QgfHwgMCk7XG4gIH1cblxuICBnZXQgbWFuZXV2ZXJTYXZlc1BlcmNlbnQoKTogbnVtYmVyIHtcbiAgICBpZiAoIXRoaXMubWFuZXV2ZXJTYXZlcyB8fCAhdGhpcy5tYW5ldXZlclNob3RzQWdhaW5zdCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiBNYXRoLnJvdW5kKDEwMDAgKiB0aGlzLm1hbmV1dmVyU2F2ZXMgLyB0aGlzLm1hbmV1dmVyU2hvdHNBZ2FpbnN0KSAvIDEwO1xuICB9XG5cbiAgZ2V0IGZyZWVLaWNrU2F2ZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMucHBGcmVlS2lja1NhdmVzIHx8IDApICsgKHRoaXMuc2hGcmVlS2lja1NhdmVzIHx8IDApICsgKHRoaXMuZXZGcmVlS2lja1NhdmVzIHx8IDApO1xuICB9XG5cbiAgZ2V0IGZyZWVLaWNrU2hvdHNBZ2FpbnN0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZnJlZUtpY2tTYXZlcyArICh0aGlzLmZyZWVLaWNrR29hbHNBZ2FpbnN0IHx8IDApO1xuICB9XG5cbiAgZ2V0IGZyZWVLaWNrU2F2ZXNQZXJjZW50KCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLmZyZWVLaWNrU2F2ZXMgfHwgIXRoaXMuZnJlZUtpY2tTaG90c0FnYWluc3QpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5yb3VuZCgxMDAwICogdGhpcy5mcmVlS2lja1NhdmVzIC8gdGhpcy5mcmVlS2lja1Nob3RzQWdhaW5zdCkgLyAxMDtcbiAgfVxuXG4gIGdldCBjb3JuZXJTYXZlcygpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5wcENvcm5lclNhdmVzIHx8IDApICsgKHRoaXMuc2hDb3JuZXJTYXZlcyB8fCAwKSArICh0aGlzLmV2Q29ybmVyU2F2ZXMgfHwgMCk7XG4gIH1cblxuICBnZXQgY29ybmVyU2hvdHNBZ2FpbnN0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuY29ybmVyU2F2ZXMgKyAodGhpcy5jb3JuZXJHb2Fsc0FnYWluc3QgfHwgMCk7XG4gIH1cblxuICBnZXQgY29ybmVyU2F2ZXNQZXJjZW50KCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLmNvcm5lclNhdmVzIHx8ICF0aGlzLmNvcm5lclNob3RzQWdhaW5zdCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiBNYXRoLnJvdW5kKDEwMDAgKiB0aGlzLmNvcm5lclNhdmVzIC8gdGhpcy5jb3JuZXJTaG90c0FnYWluc3QpIC8gMTA7XG4gIH1cblxuICBnZXQgaW5HYW1lU2F2ZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMuc2hTYXZlcyB8fCAwKSArICh0aGlzLmV2U2F2ZXMgfHwgMCkgKyAodGhpcy5wcFNhdmVzIHx8IDApICtcbiAgICAgIHRoaXMuY291bnRlckF0dGFja1NhdmVzICsgdGhpcy5tYW5ldXZlclNhdmVzICsgdGhpcy5jZW50ZXJGb3J3YXJkU2F2ZXM7XG4gIH1cblxuICBnZXQgc2F2ZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pbkdhbWVTYXZlcyArIHRoaXMuZnJlZUtpY2tTYXZlcyArIHRoaXMuY29ybmVyU2F2ZXM7XG4gIH1cblxuICBnZXQgdG90YWxTYXZlcygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnNhdmVzICsgKHRoaXMuc2hvb3RvdXRTYXZlcyB8fCAwKTtcbiAgfVxuXG4gIGdldCBpbkdhbWVHb2Fsc0FnYWluc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMuZ29hbHNBZ2FpbnN0IHx8IDApICsgKHRoaXMuY291bnRlckF0dGFja0dvYWxzQWdhaW5zdCB8fCAwKSArICh0aGlzLm1hbmV1dmVyR29hbHNBZ2FpbnN0IHx8IDApICtcbiAgICAgICh0aGlzLmNlbnRlckZvcndhcmRHb2Fsc0FnYWluc3QgfHwgMCk7XG4gIH1cblxuICBnZXQgc2hvb3RvdXRTaG90c0FnYWluc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMuc2hvb3RvdXRTYXZlcyB8fCAwKSArICh0aGlzLnNob290b3V0R29hbHNBZ2FpbnN0IHx8IDApO1xuICB9XG5cbiAgZ2V0IGdhbWVHb2Fsc0FnYWluc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pbkdhbWVHb2Fsc0FnYWluc3QgKyAodGhpcy5mcmVlS2lja0dvYWxzQWdhaW5zdCB8fCAwKSArICh0aGlzLmNvcm5lckdvYWxzQWdhaW5zdCB8fCAwKTtcbiAgfVxuXG4gIGdldCB0b3RhbEdvYWxzQWdhaW5zdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdhbWVHb2Fsc0FnYWluc3QgKyAodGhpcy5zaG9vdG91dEdvYWxzQWdhaW5zdCB8fCAwKTtcbiAgfVxuXG4gIGdldCBnYW1lU2hvdHNBZ2FpbnN0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuc2F2ZXMgKyB0aGlzLmdhbWVHb2Fsc0FnYWluc3Q7XG4gIH1cblxuICBnZXQgdG90YWxTaG90c0FnYWluc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nYW1lU2hvdHNBZ2FpbnN0ICsgdGhpcy5zaG9vdG91dFNob3RzQWdhaW5zdDtcbiAgfVxuXG4gIGdldCBzaG9vdG91dFNhdmVzUGVyY2VudCgpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy5zaG9vdG91dFNhdmVzIHx8ICF0aGlzLnNob290b3V0U2hvdHNBZ2FpbnN0KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGgucm91bmQoMTAwMCAqIHRoaXMuc2hvb3RvdXRTYXZlcyAvIHRoaXMuc2hvb3RvdXRTaG90c0FnYWluc3QpIC8gMTA7XG4gIH1cblxuICBnZXQgc2F2ZXNQZXJjZW50KCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLnNhdmVzIHx8ICF0aGlzLmdhbWVTaG90c0FnYWluc3QpIHtcbiAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgICByZXR1cm4gTWF0aC5yb3VuZCgxMDAwICogdGhpcy5zYXZlcyAvIHRoaXMuZ2FtZVNob3RzQWdhaW5zdCkgLyAxMDtcbiAgfVxuXG4gIGdldCB0b3RhbFNhdmVzUGVyY2VudCgpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy50b3RhbFNhdmVzIHx8ICF0aGlzLnRvdGFsU2hvdHNBZ2FpbnN0KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGgucm91bmQoMTAwMCAqIHRoaXMudG90YWxTYXZlcyAvIHRoaXMudG90YWxTaG90c0FnYWluc3QpIC8gMTA7XG4gIH1cblxuICBnZXQgdG90YWxTaFNhdmVzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLnNoQ291bnRlckF0dGFja1NhdmVzIHx8IDApICsgKHRoaXMuc2hNYW5ldXZlclNhdmVzIHx8IDApICsgKHRoaXMuc2hDZW50ZXJGb3J3YXJkU2F2ZXMgfHwgMCkgK1xuICAgICAgKHRoaXMuc2hTYXZlcyB8fCAwKSArICh0aGlzLnNoRnJlZUtpY2tTYXZlcyB8fCAwKSArICh0aGlzLnNoQ29ybmVyU2F2ZXMgfHwgMCk7XG4gIH1cblxuICBnZXQgdG90YWxTaEdvYWxzQWdhaW5zdCgpOiBudW1iZXIge1xuICAgIHJldHVybiAodGhpcy5zaEdvYWxzQWdhaW5zdCB8fCAwKSArICh0aGlzLnNoRnJlZUtpY2tHb2Fsc0FnYWluc3QgfHwgMCkgKyAodGhpcy5zaENvcm5lckdvYWxzQWdhaW5zdCB8fCAwKSArXG4gICAgICAodGhpcy5zaENvdW50ZXJBdHRhY2tHb2Fsc0FnYWluc3QgfHwgMCkgKyAodGhpcy5zaE1hbmV1dmVyR29hbHNBZ2FpbnN0IHx8IDApICsgKHRoaXMuc2hDZW50ZXJGb3J3YXJkR29hbHNBZ2FpbnN0IHx8IDApO1xuICB9XG5cbiAgZ2V0IHRvdGFsU2hTaG90c0FnYWluc3QoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy50b3RhbFNoU2F2ZXMgKyB0aGlzLnRvdGFsU2hHb2Fsc0FnYWluc3Q7XG4gIH1cblxuICBnZXQgdG90YWxTaFNhdmVzUGVyY2VudCgpOiBudW1iZXIge1xuICAgIGlmICghdGhpcy50b3RhbFNoU2F2ZXMgfHwgIXRoaXMudG90YWxTaFNob3RzQWdhaW5zdCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIHJldHVybiBNYXRoLnJvdW5kKDEwMDAgKiB0aGlzLnRvdGFsU2hTYXZlcyAvIHRoaXMudG90YWxTaFNob3RzQWdhaW5zdCkgLyAxMDtcbiAgfVxuXG4gIGdldCB0b3RhbEV2U2F2ZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKHRoaXMuZXZDb3VudGVyQXR0YWNrU2F2ZXMgfHwgMCkgKyAodGhpcy5ldk1hbmV1dmVyU2F2ZXMgfHwgMCkgKyAodGhpcy5ldkNlbnRlckZvcndhcmRTYXZlcyB8fCAwKSArXG4gICAgICAodGhpcy5ldlNhdmVzIHx8IDApICsgKHRoaXMuZXZGcmVlS2lja1NhdmVzIHx8IDApICsgKHRoaXMuZXZDb3JuZXJTYXZlcyB8fCAwKTtcbiAgfVxuXG4gIGdldCB0b3RhbEV2R29hbHNBZ2FpbnN0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuICh0aGlzLmV2R29hbHNBZ2FpbnN0IHx8IDApICsgKHRoaXMuZXZGcmVlS2lja0dvYWxzQWdhaW5zdCB8fCAwKSArICh0aGlzLmV2Q29ybmVyR29hbHNBZ2FpbnN0IHx8IDApICtcbiAgICAgICh0aGlzLmV2Q291bnRlckF0dGFja0dvYWxzQWdhaW5zdCB8fCAwKSArICh0aGlzLmV2TWFuZXV2ZXJHb2Fsc0FnYWluc3QgfHwgMCkgKyAodGhpcy5ldkNlbnRlckZvcndhcmRHb2Fsc0FnYWluc3QgfHwgMCk7XG4gIH1cblxuICBnZXQgdG90YWxFdlNob3RzQWdhaW5zdCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnRvdGFsRXZTYXZlcyArIHRoaXMudG90YWxFdkdvYWxzQWdhaW5zdDtcbiAgfVxuXG4gIGdldCB0b3RhbEV2U2F2ZXNQZXJjZW50KCk6IG51bWJlciB7XG4gICAgaWYgKCF0aGlzLnRvdGFsRXZTYXZlcyB8fCAhdGhpcy50b3RhbEV2U2hvdHNBZ2FpbnN0KSB7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gICAgcmV0dXJuIE1hdGgucm91bmQoMTAwMCAqIHRoaXMudG90YWxFdlNhdmVzIC8gdGhpcy50b3RhbEV2U2hvdHNBZ2FpbnN0KSAvIDEwO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { Model, BaseModel, nestedModel } from './util';
|
|
3
|
+
import { WaterpoloStatistic } from './waterpolo-statistic';
|
|
4
|
+
let WaterpoloGameTeamStatistic = class WaterpoloGameTeamStatistic extends BaseModel {
|
|
5
|
+
};
|
|
6
|
+
WaterpoloGameTeamStatistic = __decorate([
|
|
7
|
+
Model({
|
|
8
|
+
relation: {
|
|
9
|
+
team: nestedModel(WaterpoloStatistic),
|
|
10
|
+
competitorTeam: nestedModel(WaterpoloStatistic),
|
|
11
|
+
}
|
|
12
|
+
})
|
|
13
|
+
], WaterpoloGameTeamStatistic);
|
|
14
|
+
export { WaterpoloGameTeamStatistic };
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0ZXJwb2xvLWdhbWUtdGVhbS1zdGF0aXN0aWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9tb2RlbHMvd2F0ZXJwb2xvLWdhbWUtdGVhbS1zdGF0aXN0aWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVMzRCxJQUFhLDBCQUEwQixHQUF2QyxNQUFhLDBCQUEyQixTQUFRLFNBQVM7Q0FHeEQsQ0FBQTtBQUhZLDBCQUEwQjtJQU50QyxLQUFLLENBQUM7UUFDTCxRQUFRLEVBQUU7WUFDUixJQUFJLEVBQUUsV0FBVyxDQUFDLGtCQUFrQixDQUFDO1lBQ3JDLGNBQWMsRUFBRSxXQUFXLENBQUMsa0JBQWtCLENBQUM7U0FDaEQ7S0FDRixDQUFDO0dBQ1csMEJBQTBCLENBR3RDO1NBSFksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWwsIEJhc2VNb2RlbCwgbmVzdGVkTW9kZWwgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IHsgV2F0ZXJwb2xvU3RhdGlzdGljIH0gZnJvbSAnLi93YXRlcnBvbG8tc3RhdGlzdGljJztcbmltcG9ydCB7IEdhbWVUZWFtU3RhdGlzdGljQmFzZSB9IGZyb20gJy4vZ2FtZS10ZWFtLXN0YXRpc3RpYy1iYXNlJztcblxuQE1vZGVsKHtcbiAgcmVsYXRpb246IHtcbiAgICB0ZWFtOiBuZXN0ZWRNb2RlbChXYXRlcnBvbG9TdGF0aXN0aWMpLFxuICAgIGNvbXBldGl0b3JUZWFtOiBuZXN0ZWRNb2RlbChXYXRlcnBvbG9TdGF0aXN0aWMpLFxuICB9XG59KVxuZXhwb3J0IGNsYXNzIFdhdGVycG9sb0dhbWVUZWFtU3RhdGlzdGljIGV4dGVuZHMgQmFzZU1vZGVsIGltcGxlbWVudHMgR2FtZVRlYW1TdGF0aXN0aWNCYXNlIHtcbiAgdGVhbTogV2F0ZXJwb2xvU3RhdGlzdGljO1xuICBjb21wZXRpdG9yVGVhbTogV2F0ZXJwb2xvU3RhdGlzdGljO1xufVxuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { BaseModel, enumField, Model } from './util';
|
|
3
|
+
export var GameWaterpoloPosition;
|
|
4
|
+
(function (GameWaterpoloPosition) {
|
|
5
|
+
GameWaterpoloPosition[GameWaterpoloPosition["goalkeeper"] = 1] = "goalkeeper";
|
|
6
|
+
GameWaterpoloPosition[GameWaterpoloPosition["defensemen"] = 2] = "defensemen";
|
|
7
|
+
GameWaterpoloPosition[GameWaterpoloPosition["center_forward"] = 3] = "center_forward";
|
|
8
|
+
GameWaterpoloPosition[GameWaterpoloPosition["mobile_forward"] = 4] = "mobile_forward";
|
|
9
|
+
})(GameWaterpoloPosition || (GameWaterpoloPosition = {}));
|
|
10
|
+
export var WaterpoloWorkHand;
|
|
11
|
+
(function (WaterpoloWorkHand) {
|
|
12
|
+
WaterpoloWorkHand[WaterpoloWorkHand["left"] = 1] = "left";
|
|
13
|
+
WaterpoloWorkHand[WaterpoloWorkHand["right"] = 2] = "right";
|
|
14
|
+
})(WaterpoloWorkHand || (WaterpoloWorkHand = {}));
|
|
15
|
+
let WaterpoloProfile = class WaterpoloProfile extends BaseModel {
|
|
16
|
+
};
|
|
17
|
+
WaterpoloProfile = __decorate([
|
|
18
|
+
Model({
|
|
19
|
+
relation: {
|
|
20
|
+
position: enumField(GameWaterpoloPosition),
|
|
21
|
+
workHand: enumField(WaterpoloWorkHand)
|
|
22
|
+
}
|
|
23
|
+
})
|
|
24
|
+
], WaterpoloProfile);
|
|
25
|
+
export { WaterpoloProfile };
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2F0ZXJwb2xvLXByb2ZpbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9tb2RlbHMvd2F0ZXJwb2xvLXByb2ZpbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVyRCxNQUFNLENBQU4sSUFBWSxxQkFLWDtBQUxELFdBQVkscUJBQXFCO0lBQy9CLDZFQUFjLENBQUE7SUFDZCw2RUFBVSxDQUFBO0lBQ1YscUZBQWMsQ0FBQTtJQUNkLHFGQUFjLENBQUE7QUFDaEIsQ0FBQyxFQUxXLHFCQUFxQixLQUFyQixxQkFBcUIsUUFLaEM7QUFFRCxNQUFNLENBQU4sSUFBWSxpQkFHWDtBQUhELFdBQVksaUJBQWlCO0lBQzNCLHlEQUFRLENBQUE7SUFDUiwyREFBSyxDQUFBO0FBQ1AsQ0FBQyxFQUhXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFHNUI7QUFRRCxJQUFhLGdCQUFnQixHQUE3QixNQUFhLGdCQUFpQixTQUFRLFNBQVM7Q0FLOUMsQ0FBQTtBQUxZLGdCQUFnQjtJQU41QixLQUFLLENBQUM7UUFDTCxRQUFRLEVBQUU7WUFDUixRQUFRLEVBQUUsU0FBUyxDQUFDLHFCQUFxQixDQUFDO1lBQzFDLFFBQVEsRUFBRSxTQUFTLENBQUMsaUJBQWlCLENBQUM7U0FDdkM7S0FDRixDQUFDO0dBQ1csZ0JBQWdCLENBSzVCO1NBTFksZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZU1vZGVsLCBlbnVtRmllbGQsIE1vZGVsIH0gZnJvbSAnLi91dGlsJztcblxuZXhwb3J0IGVudW0gR2FtZVdhdGVycG9sb1Bvc2l0aW9uIHtcbiAgZ29hbGtlZXBlciA9IDEsXG4gIGRlZmVuc2VtZW4sXG4gIGNlbnRlcl9mb3J3YXJkLFxuICBtb2JpbGVfZm9yd2FyZFxufVxuXG5leHBvcnQgZW51bSBXYXRlcnBvbG9Xb3JrSGFuZCB7XG4gIGxlZnQgPSAxLFxuICByaWdodFxufVxuXG5ATW9kZWwoe1xuICByZWxhdGlvbjoge1xuICAgIHBvc2l0aW9uOiBlbnVtRmllbGQoR2FtZVdhdGVycG9sb1Bvc2l0aW9uKSxcbiAgICB3b3JrSGFuZDogZW51bUZpZWxkKFdhdGVycG9sb1dvcmtIYW5kKVxuICB9XG59KVxuZXhwb3J0IGNsYXNzIFdhdGVycG9sb1Byb2ZpbGUgZXh0ZW5kcyBCYXNlTW9kZWwge1xuICBpZDogbnVtYmVyO1xuICB1c2VySWQ6IG51bWJlcjtcbiAgcG9zaXRpb246IEdhbWVXYXRlcnBvbG9Qb3NpdGlvbjtcbiAgd29ya0hhbmQ6IFdhdGVycG9sb1dvcmtIYW5kO1xufVxuIl19
|