From d70bb0b0842bfa205fc53d34b5e5368364877251 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MilanMajchr=C3=A1k?= Date: Mon, 5 Sep 2022 10:08:29 +0200 Subject: [PATCH 01/54] Initial commit From 24267f41bcb480f972c59ed84e5bdc48366b2c72 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Thu, 6 Oct 2022 15:14:15 +0200 Subject: [PATCH 02/54] feature/lf-3-license-selector-dtq-lf (#103) design changes, clarin licenses changed to two steps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Initial commit * styles for license-selector * added license selector * added yarn * temp commit - work on progress * the license show validation errors * licenses 4 license selector is loaded from definition * Added messages to the license step page * working on selecting license definitoin * Select the license and assign it to the attribute value * working on sending clarin license from license selector to the BE * Show not supported clarin license error * Loaded the license after refresh * Added section status * Trying to add distribution license satic page * Added static page distribution licenses * added contract breadcrumbs * Trying to send the accepting distribution license to the BE * working on clarin license distribution step * Distribution license agreement is in the separated step * contract page license data is loaded dynamically * fixed choosing the resource licenses * some refactoring and design changes * some refactoring and design changes * some design changes * some design changes * strange tast failure fixing - temp commit * test github actions if wont fail * Added test classes * Fixed error after fixing conflicts * Added license selector css * trying of fixing 'cannot find license-selector.js' error Co-authored-by: MilanMajchrák Co-authored-by: MajoBerger --- angular.json | 5 +- package.json | 2 + src/app/app-routing-paths.ts | 5 + src/app/app-routing.module.ts | 10 +- src/app/core/core.module.ts | 2 + .../clarin/clarin-license-data.service.ts | 39 + .../clarin-license-confirmation-serializer.ts | 25 + ...larin-license-label-extended-serializer.ts | 10 + .../clarin/clarin-license-label.model.ts | 73 + .../clarin-license-label.resource-type.ts | 9 + ...clarin-license-required-info-serializer.ts | 54 + .../shared/clarin/clarin-license.model.ts | 102 + .../clarin/clarin-license.resource-type.ts | 78 + .../license-contract-page-routing.module.ts | 21 + .../license-contract-page.component.html | 13 + .../license-contract-page.component.scss | 0 .../license-contract-page.component.spec.ts | 78 + .../license-contract-page.component.ts | 45 + .../license-contract-page.module.ts | 19 + ...clarin-license-distribution.component.html | 42 + ...clarin-license-distribution.component.scss | 24 + ...rin-license-distribution.component.spec.ts | 169 + .../clarin-license-distribution.component.ts | 211 + .../sections/clarin-license-resource/base.css | 81 + .../bootstrap-theme.css | 384 + .../clarin-license-resource/bootstrap.css | 6809 +++++++++++++++++ .../license-4-selector.model.ts | 5 + .../license-definitions.json | 377 + .../clarin-license-resource/repository.css | 364 + .../section-license.component.html | 105 + .../section-license.component.scss | 52 + .../section-license.component.spec.ts | 380 + .../section-license.component.ts | 507 ++ .../section-license.model.ts | 28 + .../clarin-license-resource/ufal-theme.css | 1504 ++++ .../form/section-form-operations.service.ts | 4 + .../sections/form/section-form.component.ts | 1 - .../license/section-license.component.scss | 3 + .../license/section-license.component.ts | 4 +- src/app/submission/sections/sections-type.ts | 1 + src/app/submission/submission.module.ts | 11 +- src/assets/i18n/en.json5 | 50 + src/index.html | 4 +- src/license-selector-creation.js | 77 + src/license-selector.js | 2 + .../distribution-license-agreement.html | 10 + src/styles/startup.scss | 3 + yarn.lock | 12 + 48 files changed, 11806 insertions(+), 8 deletions(-) create mode 100644 src/app/core/data/clarin/clarin-license-data.service.ts create mode 100644 src/app/core/shared/clarin/clarin-license-confirmation-serializer.ts create mode 100644 src/app/core/shared/clarin/clarin-license-label-extended-serializer.ts create mode 100644 src/app/core/shared/clarin/clarin-license-label.model.ts create mode 100644 src/app/core/shared/clarin/clarin-license-label.resource-type.ts create mode 100644 src/app/core/shared/clarin/clarin-license-required-info-serializer.ts create mode 100644 src/app/core/shared/clarin/clarin-license.model.ts create mode 100644 src/app/core/shared/clarin/clarin-license.resource-type.ts create mode 100644 src/app/license-contract-page/license-contract-page-routing.module.ts create mode 100644 src/app/license-contract-page/license-contract-page.component.html create mode 100644 src/app/license-contract-page/license-contract-page.component.scss create mode 100644 src/app/license-contract-page/license-contract-page.component.spec.ts create mode 100644 src/app/license-contract-page/license-contract-page.component.ts create mode 100644 src/app/license-contract-page/license-contract-page.module.ts create mode 100644 src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.html create mode 100644 src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.scss create mode 100644 src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.spec.ts create mode 100644 src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.ts create mode 100644 src/app/submission/sections/clarin-license-resource/base.css create mode 100644 src/app/submission/sections/clarin-license-resource/bootstrap-theme.css create mode 100644 src/app/submission/sections/clarin-license-resource/bootstrap.css create mode 100644 src/app/submission/sections/clarin-license-resource/license-4-selector.model.ts create mode 100644 src/app/submission/sections/clarin-license-resource/license-definitions.json create mode 100644 src/app/submission/sections/clarin-license-resource/repository.css create mode 100644 src/app/submission/sections/clarin-license-resource/section-license.component.html create mode 100644 src/app/submission/sections/clarin-license-resource/section-license.component.scss create mode 100644 src/app/submission/sections/clarin-license-resource/section-license.component.spec.ts create mode 100644 src/app/submission/sections/clarin-license-resource/section-license.component.ts create mode 100644 src/app/submission/sections/clarin-license-resource/section-license.model.ts create mode 100644 src/app/submission/sections/clarin-license-resource/ufal-theme.css create mode 100644 src/license-selector-creation.js create mode 100644 src/license-selector.js create mode 100644 src/static/distribution-license-agreement.html diff --git a/angular.json b/angular.json index 7291a28298f..bb3a8850bb5 100644 --- a/angular.json +++ b/angular.json @@ -64,7 +64,10 @@ "bundleName": "dspace-theme" } ], - "scripts": [] + "scripts": [ + "src/license-selector.js", + "src/license-selector-creation.js" + ] }, "configurations": { "development": { diff --git a/package.json b/package.json index 5a9fa299a5a..5438a6fc3cf 100644 --- a/package.json +++ b/package.json @@ -71,6 +71,7 @@ "@nguniversal/express-engine": "11.2.1", "@ngx-translate/core": "^13.0.0", "@nicky-lenaers/ngx-scroll-to": "^9.0.0", + "@nth-cloud/ng-toggle": "7.0.0", "angular-idle-preload": "3.0.0", "angular2-text-mask": "9.0.0", "angulartics2": "^10.0.0", @@ -90,6 +91,7 @@ "font-awesome": "4.7.0", "http-proxy-middleware": "^1.0.5", "https": "1.0.0", + "jquery": "^3.6.1", "js-cookie": "2.2.1", "js-yaml": "^4.1.0", "json5": "^2.1.3", diff --git a/src/app/app-routing-paths.ts b/src/app/app-routing-paths.ts index 4760a6c4748..af68b2ddd12 100644 --- a/src/app/app-routing-paths.ts +++ b/src/app/app-routing-paths.ts @@ -117,6 +117,11 @@ export function getRequestCopyModulePath() { return `/${REQUEST_COPY_MODULE_PATH}`; } +export const STATIC_PAGE_MODULE_PATH = 'contract'; +export function getLicenseContractPagePath() { + return `/${STATIC_PAGE_MODULE_PATH}`; +} + export const HANDLE_TABLE_MODULE_PATH = 'handle-table'; export function getHandleTableModulePath() { return `/${HANDLE_TABLE_MODULE_PATH}`; diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 73b5f47ef79..cc2d2d3d84a 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -16,7 +16,7 @@ import { LEGACY_BITSTREAM_MODULE_PATH, PROFILE_MODULE_PATH, REGISTER_PATH, - REQUEST_COPY_MODULE_PATH, + REQUEST_COPY_MODULE_PATH, STATIC_PAGE_MODULE_PATH, WORKFLOW_ITEM_MODULE_PATH, } from './app-routing-paths'; import { COLLECTION_MODULE_PATH } from './collection-page/collection-page-routing-paths'; @@ -31,6 +31,8 @@ import { ThemedForbiddenComponent } from './forbidden/themed-forbidden.component import { GroupAdministratorGuard } from './core/data/feature-authorization/feature-authorization-guard/group-administrator.guard'; import { ThemedPageInternalServerErrorComponent } from './page-internal-server-error/themed-page-internal-server-error.component'; import { ServerCheckGuard } from './core/server-check/server-check.guard'; +import {LicenseContractPageComponent} from './license-contract-page/license-contract-page.component'; +import {LicenseContractPageModule} from './license-contract-page/license-contract-page.module'; @NgModule({ imports: [ @@ -214,6 +216,12 @@ import { ServerCheckGuard } from './core/server-check/server-check.guard'; loadChildren: () => import('./access-control/access-control.module').then((m) => m.AccessControlModule), canActivate: [GroupAdministratorGuard], }, + { + path: STATIC_PAGE_MODULE_PATH, + loadChildren: () => import('./license-contract-page/license-contract-page.module') + .then((m) => m.LicenseContractPageModule), + canActivate: [EndUserAgreementCurrentUserGuard] + }, { path: HANDLE_TABLE_MODULE_PATH, loadChildren: () => import('./handle-page/handle-page.module').then((m) => m.HandlePageModule), diff --git a/src/app/core/core.module.ts b/src/app/core/core.module.ts index 5936293159d..842ff9c69f4 100644 --- a/src/app/core/core.module.ts +++ b/src/app/core/core.module.ts @@ -164,6 +164,7 @@ import { SearchConfig } from './shared/search/search-filters/search-config.model import { SequenceService } from './shared/sequence.service'; import { GroupDataService } from './eperson/group-data.service'; import { SubmissionAccessesModel } from './config/models/config-submission-accesses.model'; +import {ClarinLicenseDataService} from './data/clarin/clarin-license-data.service'; import { HandleDataService } from './data/handle-data.service'; import { Handle } from './handle/handle.model'; @@ -292,6 +293,7 @@ const PROVIDERS = [ SequenceService, GroupDataService, FeedbackDataService, + ClarinLicenseDataService, HandleDataService ]; diff --git a/src/app/core/data/clarin/clarin-license-data.service.ts b/src/app/core/data/clarin/clarin-license-data.service.ts new file mode 100644 index 00000000000..ddf4422a140 --- /dev/null +++ b/src/app/core/data/clarin/clarin-license-data.service.ts @@ -0,0 +1,39 @@ +import { ResourceType } from '../../shared/resource-type'; +import { Injectable } from '@angular/core'; +import { dataService } from '../../cache/builders/build-decorators'; +import { DataService } from '../data.service'; +import { RequestService } from '../request.service'; +import { RemoteDataBuildService } from '../../cache/builders/remote-data-build.service'; +import { Store } from '@ngrx/store'; +import { CoreState } from '../../core.reducers'; +import { HALEndpointService } from '../../shared/hal-endpoint.service'; +import { ObjectCacheService } from '../../cache/object-cache.service'; +import { DefaultChangeAnalyzer } from '../default-change-analyzer.service'; +import { HttpClient } from '@angular/common/http'; +import { NotificationsService } from '../../../shared/notifications/notifications.service'; +import { ClarinLicense } from '../../shared/clarin/clarin-license.model'; + +export const linkName = 'clarinlicenses'; +export const AUTOCOMPLETE = new ResourceType(linkName); + +/** + * A service responsible for fetching/sending license data from/to the Clarin License REST API + */ +@Injectable() +@dataService(ClarinLicense.type) +export class ClarinLicenseDataService extends DataService { + protected linkPath = linkName; + + constructor( + protected requestService: RequestService, + protected rdbService: RemoteDataBuildService, + protected store: Store, + protected halService: HALEndpointService, + protected objectCache: ObjectCacheService, + protected comparator: DefaultChangeAnalyzer, + protected http: HttpClient, + protected notificationsService: NotificationsService, + ) { + super(); + } +} diff --git a/src/app/core/shared/clarin/clarin-license-confirmation-serializer.ts b/src/app/core/shared/clarin/clarin-license-confirmation-serializer.ts new file mode 100644 index 00000000000..c14ee33ef83 --- /dev/null +++ b/src/app/core/shared/clarin/clarin-license-confirmation-serializer.ts @@ -0,0 +1,25 @@ +import { CLARIN_LICENSE_CONFIRMATION } from './clarin-license.resource-type'; + +/** + * The Clarin License REST/API returns license.confirmation as number and this serializer converts it to the + * appropriate string message and vice versa. + */ +export const ClarinLicenseConfirmationSerializer = { + + Serialize(confirmationMessage: any): number { + switch (confirmationMessage) { + case CLARIN_LICENSE_CONFIRMATION[1]: + return 1; + case CLARIN_LICENSE_CONFIRMATION[2]: + return 2; + case CLARIN_LICENSE_CONFIRMATION[3]: + return 3; + default: + return 0; + } + }, + + Deserialize(confirmationId: any): string { + return CLARIN_LICENSE_CONFIRMATION[confirmationId]; + } +}; diff --git a/src/app/core/shared/clarin/clarin-license-label-extended-serializer.ts b/src/app/core/shared/clarin/clarin-license-label-extended-serializer.ts new file mode 100644 index 00000000000..b9128dc4d03 --- /dev/null +++ b/src/app/core/shared/clarin/clarin-license-label-extended-serializer.ts @@ -0,0 +1,10 @@ +/** + * The Clarin License REST/API accepts the licenseLabel.extended as boolean value but it is a string value + * in the `define-license-label-form`. This serializer converts the string value to the appropriate boolean. + */ +export const ClarinLicenseLabelExtendedSerializer = { + + Serialize(extended: any): boolean { + return extended === 'Yes'; + }, +}; diff --git a/src/app/core/shared/clarin/clarin-license-label.model.ts b/src/app/core/shared/clarin/clarin-license-label.model.ts new file mode 100644 index 00000000000..01fd16a17a7 --- /dev/null +++ b/src/app/core/shared/clarin/clarin-license-label.model.ts @@ -0,0 +1,73 @@ +import { typedObject } from '../../cache/builders/build-decorators'; +import { ListableObject } from '../../../shared/object-collection/shared/listable-object.model'; +import { HALResource } from '../hal-resource.model'; +import { excludeFromEquals } from '../../utilities/equals.decorators'; +import { autoserialize , autoserializeAs, deserialize} from 'cerialize'; +import { ResourceType } from '../resource-type'; +import { HALLink } from '../hal-link.model'; +import { GenericConstructor } from '../generic-constructor'; +import { CLARIN_LICENSE_LABEL } from './clarin-license-label.resource-type'; +import { ClarinLicenseLabelExtendedSerializer } from './clarin-license-label-extended-serializer'; + +/** + * Class that represents a Clarin License Label + */ +@typedObject +export class ClarinLicenseLabel extends ListableObject implements HALResource { + /** + * The `clarinlicenselabel` object type. + */ + static type = CLARIN_LICENSE_LABEL; + + /** + * The object type + */ + @excludeFromEquals + @autoserialize + type: ResourceType; + + /** + * The identifier of the Clarin License Label + */ + @autoserialize + id: number; + + /** + * The label of the Clarin License Label. It is a shortcut value, it could be max 5 characters long. + */ + @autoserialize + label: string; + + /** + * The title of the Clarin License Label. + */ + @autoserialize + title: string; + + /** + * The extended value of the Clarin License Label. + */ + @autoserializeAs(ClarinLicenseLabelExtendedSerializer) + extended: boolean; + + /** + * The icon of the Clarin License Label. It is converted to the byte array. + */ + @autoserialize + icon: any; + + /** + * The {@link HALLink}s for this Clarin License Label + */ + @deserialize + _links: { + self: HALLink + }; + + /** + * Method that returns as which type of object this object should be rendered + */ + getRenderTypes(): (string | GenericConstructor)[] { + return [this.constructor as GenericConstructor]; + } +} diff --git a/src/app/core/shared/clarin/clarin-license-label.resource-type.ts b/src/app/core/shared/clarin/clarin-license-label.resource-type.ts new file mode 100644 index 00000000000..3c88c263269 --- /dev/null +++ b/src/app/core/shared/clarin/clarin-license-label.resource-type.ts @@ -0,0 +1,9 @@ +/** + * The resource type for the Clarin License Label endpoint + * + * Needs to be in a separate file to prevent circular + * dependencies in webpack. + */ +import {ResourceType} from '../resource-type'; + +export const CLARIN_LICENSE_LABEL = new ResourceType('clarinlicenselabel'); diff --git a/src/app/core/shared/clarin/clarin-license-required-info-serializer.ts b/src/app/core/shared/clarin/clarin-license-required-info-serializer.ts new file mode 100644 index 00000000000..2526c0b255a --- /dev/null +++ b/src/app/core/shared/clarin/clarin-license-required-info-serializer.ts @@ -0,0 +1,54 @@ +import { + CLARIN_LICENSE_REQUIRED_INFO, + ClarinLicenseRequiredInfo +} from './clarin-license.resource-type'; +import {isEmpty} from '../../../shared/empty.util'; + +/** + * The Clarin License REST/API returns license.confirmation as number and this serializer converts it to the + * appropriate string message and vice versa. + */ +export const ClarinLicenseRequiredInfoSerializer = { + + Serialize(requiredInfoArray: ClarinLicenseRequiredInfo[]): string { + if (isEmpty(requiredInfoArray)) { + return ''; + } + + // sometimes the requiredInfoArray is string + if (typeof requiredInfoArray === 'string') { + return requiredInfoArray; + } + + let requiredInfoString = ''; + requiredInfoArray.forEach(requiredInfo => { + requiredInfoString += requiredInfo.name + ','; + }); + + // remove `,` from end of the string + requiredInfoString = requiredInfoString.substring(0, requiredInfoString.length - 1); + return requiredInfoString; + }, + + Deserialize(requiredInfoString: string): string[] { + const requiredInfoArray = requiredInfoString.split(','); + if (isEmpty(requiredInfoArray)) { + return []; + } + + const clarinLicenseRequiredInfo = []; + requiredInfoArray.forEach(requiredInfo => { + if (isEmpty(requiredInfo)) { + return; + } + clarinLicenseRequiredInfo.push( + Object.assign(new ClarinLicenseRequiredInfo(), { + id: clarinLicenseRequiredInfo.length, + value: CLARIN_LICENSE_REQUIRED_INFO[requiredInfo], + name: requiredInfo + }) + ); + }); + return clarinLicenseRequiredInfo; + } +}; diff --git a/src/app/core/shared/clarin/clarin-license.model.ts b/src/app/core/shared/clarin/clarin-license.model.ts new file mode 100644 index 00000000000..60f98fb7b63 --- /dev/null +++ b/src/app/core/shared/clarin/clarin-license.model.ts @@ -0,0 +1,102 @@ +import {link, typedObject} from '../../cache/builders/build-decorators'; +import {ListableObject} from '../../../shared/object-collection/shared/listable-object.model'; +import {HALResource} from '../hal-resource.model'; +import {METADATA_VALUE} from '../../metadata/metadata-value.resource-type'; +import {excludeFromEquals} from '../../utilities/equals.decorators'; +import {autoserialize, autoserializeAs, deserialize, deserializeAs, serializeAs} from 'cerialize'; +import {ResourceType} from '../resource-type'; +import {HALLink} from '../hal-link.model'; +import {METADATA_FIELD} from '../../metadata/metadata-field.resource-type'; +import {Observable} from 'rxjs'; +import {RemoteData} from '../../data/remote-data'; +import {MetadataField} from '../../metadata/metadata-field.model'; +import {GenericConstructor} from '../generic-constructor'; +import {CLARIN_LICENSE} from './clarin-license.resource-type'; +import {CLARIN_LICENSE_LABEL} from './clarin-license-label.resource-type'; +import {ClarinLicenseLabel} from './clarin-license-label.model'; +import {ClarinLicenseConfirmationSerializer} from './clarin-license-confirmation-serializer'; +import {ClarinLicenseRequiredInfoSerializer} from './clarin-license-required-info-serializer'; + +/** + * Class that represents a Clarin License + */ +@typedObject +export class ClarinLicense extends ListableObject implements HALResource { + /** + * The `clarinlicense` object type. + */ + static type = CLARIN_LICENSE; + + /** + * The object type + */ + @excludeFromEquals + @autoserialize + type: ResourceType; + + /** + * The identifier of this Clarin License + */ + @autoserialize + id: number; + + /** + * The name of this Clarin License object + */ + @autoserialize + name: string; + + /** + * The definition of this Clarin License object + */ + @autoserialize + definition: string; + + /** + * The confirmation of this Clarin License object. Number value is converted to the appropriate message by the + * `ClarinLicenseConfirmationSerializer`. + */ + @autoserializeAs(ClarinLicenseConfirmationSerializer) + confirmation: number; + + /** + * The requiredInfo of this Clarin License object + */ + @autoserializeAs(ClarinLicenseRequiredInfoSerializer) + requiredInfo: string; + + /** + * The non extended clarinLicenseLabel of this Clarin License object. Clarin License could have only one + * non extended clarinLicenseLabel. + */ + @autoserialize + clarinLicenseLabel: ClarinLicenseLabel; + + /** + * The extended clarinLicenseLabel of this Clarin License object. Clarin License could have multiple + * extended clarinLicenseLabel. + */ + @autoserialize + extendedClarinLicenseLabels: ClarinLicenseLabel[]; + + /** + * The number value of how many bitstreams are used by this Clarin License. + */ + @autoserialize + bitstreams: number; + + /** + * The {@link HALLink}s for this Clarin License + */ + @deserialize + _links: { + self: HALLink + }; + + /** + * Method that returns as which type of object this object should be rendered + */ + getRenderTypes(): (string | GenericConstructor)[] { + return [this.constructor as GenericConstructor]; + } +} diff --git a/src/app/core/shared/clarin/clarin-license.resource-type.ts b/src/app/core/shared/clarin/clarin-license.resource-type.ts new file mode 100644 index 00000000000..972bf4fb5c3 --- /dev/null +++ b/src/app/core/shared/clarin/clarin-license.resource-type.ts @@ -0,0 +1,78 @@ +/** + * The resource type for the Clarin License endpoint + * + * Needs to be in a separate file to prevent circular + * dependencies in webpack. + */ +import {ResourceType} from '../resource-type'; + +export const CLARIN_LICENSE = new ResourceType('clarinlicense'); + +export const CLARIN_LICENSE_CONFIRMATION = ['Not required', 'Ask only once', 'Ask always', 'Allow anonymous']; + +export class ClarinLicenseRequiredInfo { + id: number; + value: string; + name: string; +} + +export const CLARIN_LICENSE_REQUIRED_INFO = { + SEND_TOKEN: 'The user will receive an email with download instructions', + NAME: 'User name', + DOB: 'Date of birth', + ADDRESS: 'Address', + COUNTRY: 'Country', + EXTRA_EMAIL: 'Ask user for another email address', + ORGANIZATION: 'Ask user for organization (optional)', + REQUIRED_ORGANIZATION: 'Ask user for organization (mandatory)', + INTENDED_USE: 'Ask user for intentions with the item' +}; + +export const CLARIN_LICENSE_FORM_REQUIRED_OPTIONS = [ + Object.assign(new ClarinLicenseRequiredInfo(), { + id: 0, + value: CLARIN_LICENSE_REQUIRED_INFO.SEND_TOKEN, + name: 'SEND_TOKEN' + }), + Object.assign(new ClarinLicenseRequiredInfo(), { + id: 1, + value: CLARIN_LICENSE_REQUIRED_INFO.NAME, + name: 'NAME' + }), + Object.assign(new ClarinLicenseRequiredInfo(), { + id: 2, + value: CLARIN_LICENSE_REQUIRED_INFO.DOB, + name: 'DOB' + }), + Object.assign(new ClarinLicenseRequiredInfo(), { + id: 3, + value: CLARIN_LICENSE_REQUIRED_INFO.ADDRESS, + name: 'ADDRESS' + }), + Object.assign(new ClarinLicenseRequiredInfo(), { + id: 4, + value: CLARIN_LICENSE_REQUIRED_INFO.COUNTRY, + name: 'COUNTRY' + }), + Object.assign(new ClarinLicenseRequiredInfo(), { + id: 5, + value: CLARIN_LICENSE_REQUIRED_INFO.EXTRA_EMAIL, + name: 'EXTRA_EMAIL' + }), + Object.assign(new ClarinLicenseRequiredInfo(), { + id: 6, + value: CLARIN_LICENSE_REQUIRED_INFO.ORGANIZATION, + name: 'ORGANIZATION' + }), + Object.assign(new ClarinLicenseRequiredInfo(), { + id: 7, + value: CLARIN_LICENSE_REQUIRED_INFO.REQUIRED_ORGANIZATION, + name: 'REQUIRED_ORGANIZATION' + }), + Object.assign(new ClarinLicenseRequiredInfo(), { + id: 8, + value: CLARIN_LICENSE_REQUIRED_INFO.INTENDED_USE, + name: 'INTENDED_USE' + }) +]; + diff --git a/src/app/license-contract-page/license-contract-page-routing.module.ts b/src/app/license-contract-page/license-contract-page-routing.module.ts new file mode 100644 index 00000000000..088b95f9b5d --- /dev/null +++ b/src/app/license-contract-page/license-contract-page-routing.module.ts @@ -0,0 +1,21 @@ +import {NgModule} from '@angular/core'; +import {RouterModule} from '@angular/router'; +import {ThemedLoginPageComponent} from '../login-page/themed-login-page.component'; +import {I18nBreadcrumbResolver} from '../core/breadcrumbs/i18n-breadcrumb.resolver'; +import {I18nBreadcrumbsService} from '../core/breadcrumbs/i18n-breadcrumbs.service'; +import {LicenseContractPageComponent} from './license-contract-page.component'; + +@NgModule({ + imports: [ + RouterModule.forChild([ + { path: '', pathMatch: 'full', + resolve: { breadcrumb: I18nBreadcrumbResolver }, + data: { + breadcrumbKey: 'contract', + }, + component: LicenseContractPageComponent} + ]) + ] +}) +export class LicenseContractPageRoutingModule { +} diff --git a/src/app/license-contract-page/license-contract-page.component.html b/src/app/license-contract-page/license-contract-page.component.html new file mode 100644 index 00000000000..d0704bf2910 --- /dev/null +++ b/src/app/license-contract-page/license-contract-page.component.html @@ -0,0 +1,13 @@ +
+
+
{{'contract.message.distribution-license-agreement' | translate}}
+
+
+

{{collection?.name}}

+ +
+
+
+
diff --git a/src/app/license-contract-page/license-contract-page.component.scss b/src/app/license-contract-page/license-contract-page.component.scss new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/app/license-contract-page/license-contract-page.component.spec.ts b/src/app/license-contract-page/license-contract-page.component.spec.ts new file mode 100644 index 00000000000..6dbd782cfbf --- /dev/null +++ b/src/app/license-contract-page/license-contract-page.component.spec.ts @@ -0,0 +1,78 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { LicenseContractPageComponent } from './license-contract-page.component'; +import {BrowserModule} from '@angular/platform-browser'; +import {CommonModule} from '@angular/common'; +import {FormsModule, ReactiveFormsModule} from '@angular/forms'; +import {TranslateModule} from '@ngx-translate/core'; +import {FormComponent} from '../shared/form/form.component'; +import {SubmissionSectionLicenseComponent} from '../submission/sections/license/section-license.component'; +import {ActivatedRoute, Params} from '@angular/router'; +import {createSuccessfulRemoteDataObject$} from '../shared/remote-data.utils'; +import {CollectionDataService} from '../core/data/collection-data.service'; +import {ContentSource} from '../core/shared/content-source.model'; +import {Collection} from '../core/shared/collection.model'; + +describe('LicenseContractPageComponent', () => { + let component: LicenseContractPageComponent; + let fixture: ComponentFixture; + + let collection: Collection; + + let routeStub: any; + let collectionService: CollectionDataService; + + const paramCollectionId = 'collectionId'; + const paramCollectionIdValue = '1'; + + const paramObject: Params = {}; + paramObject[paramCollectionId] = paramCollectionIdValue; + + collection = Object.assign(new Collection(), { + uuid: 'fake-collection-id', + _links: { + self: {href: 'collection-selflink'}, + license: {href: 'license-link'} + } + }); + + routeStub = { + snapshot: { + queryParams: paramObject, + } + }; + + collectionService = jasmine.createSpyObj('collectionService', { + findById: createSuccessfulRemoteDataObject$(collection) + }); + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ + BrowserModule, + CommonModule, + FormsModule, + ReactiveFormsModule, + TranslateModule.forRoot() + ], + declarations: [ + LicenseContractPageComponent + ], + providers: [ + { provide: ActivatedRoute, useValue: routeStub }, + { provide: CollectionDataService, useValue: collectionService }, + ] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(LicenseContractPageComponent); + component = fixture.componentInstance; + // fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/license-contract-page/license-contract-page.component.ts b/src/app/license-contract-page/license-contract-page.component.ts new file mode 100644 index 00000000000..4494de2cc01 --- /dev/null +++ b/src/app/license-contract-page/license-contract-page.component.ts @@ -0,0 +1,45 @@ +import { Component, OnInit } from '@angular/core'; +import {ActivatedRoute} from '@angular/router'; +import {BehaviorSubject} from 'rxjs'; +import {RemoteData} from '../core/data/remote-data'; +import {Collection} from '../core/shared/collection.model'; +import {CollectionDataService} from '../core/data/collection-data.service'; +import {getFirstCompletedRemoteData} from '../core/shared/operators'; +import {License} from '../core/shared/license.model'; +import {followLink} from '../shared/utils/follow-link-config.model'; +import {filter} from 'rxjs/operators'; +import {isNotUndefined} from '../shared/empty.util'; + +@Component({ + selector: 'ds-license-contract-page', + templateUrl: './license-contract-page.component.html', + styleUrls: ['./license-contract-page.component.scss'] +}) +export class LicenseContractPageComponent implements OnInit { + + constructor(private route: ActivatedRoute, + protected collectionDataService: CollectionDataService,) { + } + + collectionId: string; + + collectionRD$: BehaviorSubject> = new BehaviorSubject>(null); + + licenseRD$: BehaviorSubject> = new BehaviorSubject>(null); + + ngOnInit(): void { + this.collectionId = this.route.snapshot.queryParams.collectionId; + this.collectionDataService.findById(this.collectionId, false, true, followLink('license')) + .pipe( + filter((collectionData: RemoteData) => isNotUndefined((collectionData.payload)))) + .subscribe(res => { + // load collection + this.collectionRD$.next(res); + res.payload.license.subscribe(licenseRD$ => { + // load license of the collection + this.licenseRD$.next(licenseRD$); + }); + }); + } + +} diff --git a/src/app/license-contract-page/license-contract-page.module.ts b/src/app/license-contract-page/license-contract-page.module.ts new file mode 100644 index 00000000000..ef4aa872c00 --- /dev/null +++ b/src/app/license-contract-page/license-contract-page.module.ts @@ -0,0 +1,19 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { LicenseContractPageComponent } from './license-contract-page.component'; +import {SharedModule} from '../shared/shared.module'; +import {LicenseContractPageRoutingModule} from './license-contract-page-routing.module'; + + + +@NgModule({ + declarations: [ + LicenseContractPageComponent + ], + imports: [ + CommonModule, + SharedModule, + LicenseContractPageRoutingModule + ] +}) +export class LicenseContractPageModule { } diff --git a/src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.html b/src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.html new file mode 100644 index 00000000000..7ae979615d1 --- /dev/null +++ b/src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.html @@ -0,0 +1,42 @@ +
+ +
+
+
+ {{'submission.sections.clarin-license.head.read-accept' | translate}} + + {{'submission.sections.clarin-license.head.license-agreement' | translate}} + +
+
+
+ +
+
+ + +
+
{{ 'submission.sections.clarin-license.head.license-decision-message' | translate}}
+
+
+
+
+ + {{'submission.sections.clarin-license.head.license-question-help-desk.0' | translate}} + + {{'submission.sections.clarin-license.head.license-question-help-desk.1' | translate}} + + +
+
+
+
diff --git a/src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.scss b/src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.scss new file mode 100644 index 00000000000..f43c76b77ce --- /dev/null +++ b/src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.scss @@ -0,0 +1,24 @@ +.container { + max-width: none; +} + +.distribution_licnese_head { + font-size: 24px; + font-weight: 500; +} + +.license-decision-message { + display: table-cell; + vertical-align: middle; + padding-left: 10px; + font-size: 14px; + font-weight: normal; + line-height: 1.4em; + color: #525558; +} + +//.alert { +// color: #c09853; +// background-color: #fcf8e3; +// border: 1px solid #fbeed5; +//} diff --git a/src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.spec.ts b/src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.spec.ts new file mode 100644 index 00000000000..d011dc7ae5b --- /dev/null +++ b/src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.spec.ts @@ -0,0 +1,169 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { SubmissionSectionClarinLicenseDistributionComponent } from './clarin-license-distribution.component'; +import {BrowserModule} from '@angular/platform-browser'; +import {CommonModule} from '@angular/common'; +import {FormsModule, ReactiveFormsModule} from '@angular/forms'; +import {TranslateModule} from '@ngx-translate/core'; +import {LicenseContractPageComponent} from '../../../license-contract-page/license-contract-page.component'; +import {ActivatedRoute, Params} from '@angular/router'; +import {CollectionDataService} from '../../../core/data/collection-data.service'; +import {Collection} from '../../../core/shared/collection.model'; +import {createSuccessfulRemoteDataObject$} from '../../../shared/remote-data.utils'; +import {FormComponent} from '../../../shared/form/form.component'; +import {SubmissionSectionLicenseComponent} from '../license/section-license.component'; +import {SectionFormOperationsService} from '../form/section-form-operations.service'; +import {getMockFormOperationsService} from '../../../shared/mocks/form-operations-service.mock'; +import {FormService} from '../../../shared/form/form.service'; +import {getMockFormService} from '../../../shared/mocks/form-service.mock'; +import {JsonPatchOperationsBuilder} from '../../../core/json-patch/builder/json-patch-operations-builder'; +import {SubmissionFormsConfigService} from '../../../core/config/submission-forms-config.service'; +import {NotificationsService} from '../../../shared/notifications/notifications.service'; +import {NotificationsServiceStub} from '../../../shared/testing/notifications-service.stub'; +import {SectionsService} from '../sections.service'; +import {SubmissionService} from '../../submission.service'; +import {SubmissionServiceStub} from '../../../shared/testing/submission-service.stub'; +import {ChangeDetectorRef, Component, NO_ERRORS_SCHEMA} from '@angular/core'; +import {FormBuilderService} from '../../../shared/form/builder/form-builder.service'; +import {SectionsServiceStub} from '../../../shared/testing/sections-service.stub'; +import {mockSubmissionCollectionId, mockSubmissionId} from '../../../shared/mocks/submission.mock'; +import {JsonPatchOperationPathCombiner} from '../../../core/json-patch/builder/json-patch-operation-path-combiner'; +import {License} from '../../../core/shared/license.model'; +import {SectionDataObject} from '../models/section-data.model'; +import {SectionsType} from '../sections-type'; +import {DynamicFormControlEvent, DynamicFormControlEventType} from '@ng-dynamic-forms/core'; +import {ConfigurationDataService} from '../../../core/data/configuration-data.service'; +import {of as observableOf, of} from 'rxjs'; +import {createTestComponent} from '../../../shared/testing/utils.test'; + +const collectionId = mockSubmissionCollectionId; +const licenseText = 'License text'; +const helpDeskMail = 'test@mail.com'; +const mockCollection = Object.assign(new Collection(), { + name: 'Community 1-Collection 1', + id: collectionId, + metadata: [ + { + key: 'dc.title', + language: 'en_US', + value: 'Community 1-Collection 1' + }], + license: createSuccessfulRemoteDataObject$(Object.assign(new License(), { text: licenseText })) +}); + +function getMockSubmissionFormsConfigService(): SubmissionFormsConfigService { + return jasmine.createSpyObj('FormOperationsService', { + getConfigAll: jasmine.createSpy('getConfigAll'), + getConfigByHref: jasmine.createSpy('getConfigByHref'), + getConfigByName: jasmine.createSpy('getConfigByName'), + getConfigBySearch: jasmine.createSpy('getConfigBySearch') + }); +} + +const sectionObject: SectionDataObject = { + config: 'https://dspace7.4science.it/or2018/api/config/submissionforms/license', + mandatory: true, + data: { + url: null, + acceptanceDate: null, + granted: false + }, + errorsToShow: [], + serverValidationErrors: [], + header: 'submit.progressbar.describe.license', + id: 'license', + sectionType: SectionsType.License +}; + +const dynamicFormControlEvent: DynamicFormControlEvent = { + $event: new Event('change'), + context: null, + control: null, + group: null, + model: null, + type: DynamicFormControlEventType.Change +}; + +describe('SubmissionSectionClarinLicenseDistributionComponent', () => { + let component: SubmissionSectionClarinLicenseDistributionComponent; + let fixture: ComponentFixture; + + const sectionsServiceStub: any = new SectionsServiceStub(); + const submissionId = mockSubmissionId; + + const pathCombiner = new JsonPatchOperationPathCombiner('sections', sectionObject.id); + const jsonPatchOpBuilder: any = jasmine.createSpyObj('jsonPatchOpBuilder', { + add: jasmine.createSpy('add'), + replace: jasmine.createSpy('replace'), + remove: jasmine.createSpy('remove'), + }); + + const mockCollectionDataService = jasmine.createSpyObj('CollectionDataService', { + findById: jasmine.createSpy('findById'), + findByHref: jasmine.createSpy('findByHref') + }); + + const configurationServiceSpy = jasmine.createSpyObj('configurationService', { + findByPropertyName: of(helpDeskMail), + }); + + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [ + BrowserModule, + CommonModule, + FormsModule, + ReactiveFormsModule, + TranslateModule.forRoot() + ], + declarations: [ + FormComponent, + SubmissionSectionClarinLicenseDistributionComponent, + TestComponent + ], + providers: [ + { provide: CollectionDataService, useValue: mockCollectionDataService }, + { provide: SectionFormOperationsService, useValue: getMockFormOperationsService() }, + { provide: FormService, useValue: getMockFormService() }, + { provide: JsonPatchOperationsBuilder, useValue: jsonPatchOpBuilder }, + { provide: SubmissionFormsConfigService, useValue: getMockSubmissionFormsConfigService() }, + { provide: NotificationsService, useClass: NotificationsServiceStub }, + { provide: SectionsService, useValue: sectionsServiceStub }, + { provide: SubmissionService, useClass: SubmissionServiceStub }, + { provide: ConfigurationDataService, useValue: configurationServiceSpy }, + { provide: 'collectionIdProvider', useValue: collectionId }, + { provide: 'sectionDataProvider', useValue: Object.assign({}, sectionObject) }, + { provide: 'submissionIdProvider', useValue: submissionId }, + ChangeDetectorRef, + FormBuilderService, + SubmissionSectionLicenseComponent + ], + schemas: [NO_ERRORS_SCHEMA] + }) + .compileComponents(); + }); + + beforeEach(() => { + mockCollectionDataService.findById.and.returnValue(createSuccessfulRemoteDataObject$(mockCollection)); + sectionsServiceStub.isSectionReadOnly.and.returnValue(observableOf(false)); + sectionsServiceStub.getSectionErrors.and.returnValue(observableOf([])); + + fixture = TestBed.createComponent(SubmissionSectionClarinLicenseDistributionComponent); + component = fixture.componentInstance; + // fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); + +// declare a test component +@Component({ + selector: 'ds-test-cmp', + template: `` +}) +class TestComponent { + +} diff --git a/src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.ts b/src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.ts new file mode 100644 index 00000000000..005503413d2 --- /dev/null +++ b/src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.ts @@ -0,0 +1,211 @@ +import {ChangeDetectorRef, Component, Inject, OnInit} from '@angular/core'; +import {SubmissionSectionLicenseComponent} from '../license/section-license.component'; +import {renderSectionFor} from '../sections-decorator'; +import {SectionsType} from '../sections-type'; +import {CollectionDataService} from '../../../core/data/collection-data.service'; +import {FormBuilderService} from '../../../shared/form/builder/form-builder.service'; +import {SectionFormOperationsService} from '../form/section-form-operations.service'; +import {FormService} from '../../../shared/form/form.service'; +import {JsonPatchOperationsBuilder} from '../../../core/json-patch/builder/json-patch-operations-builder'; +import {SectionsService} from '../sections.service'; +import {SubmissionService} from '../../submission.service'; +import {SectionDataObject} from '../models/section-data.model'; +import {TranslateService} from '@ngx-translate/core'; +import {HELP_DESK_PROPERTY} from '../../../item-page/tombstone/tombstone.component'; +import {Observable, of} from 'rxjs'; +import {RemoteData} from '../../../core/data/remote-data'; +import {ConfigurationProperty} from '../../../core/shared/configuration-property.model'; +import {ConfigurationDataService} from '../../../core/data/configuration-data.service'; +import {DynamicCheckboxModel, DynamicFormControlEvent} from '@ng-dynamic-forms/core'; +import { + JsonPatchOperationPathCombiner, + JsonPatchOperationPathObject +} from '../../../core/json-patch/builder/json-patch-operation-path-combiner'; +import {SECTION_LICENSE_FORM_MODEL} from '../license/section-license.model'; +import {WorkspaceitemSectionLicenseObject} from '../../../core/submission/models/workspaceitem-section-license.model'; +import {followLink} from '../../../shared/utils/follow-link-config.model'; +import {distinctUntilChanged, filter, find, map, mergeMap, startWith, take} from 'rxjs/operators'; +import {Collection} from '../../../core/shared/collection.model'; +import {isNotEmpty, isNotNull, isNotUndefined, isNull} from '../../../shared/empty.util'; +import {License} from '../../../core/shared/license.model'; +import {getLicenseContractPagePath} from '../../../app-routing-paths'; +import {ActivatedRoute} from '@angular/router'; + +@Component({ + selector: 'ds-clarin-license-distribution', + templateUrl: './clarin-license-distribution.component.html', + styleUrls: ['./clarin-license-distribution.component.scss'] +}) +@renderSectionFor(SectionsType.License) +export class SubmissionSectionClarinLicenseDistributionComponent extends SubmissionSectionLicenseComponent { + + constructor(protected changeDetectorRef: ChangeDetectorRef, + protected collectionDataService: CollectionDataService, + protected formBuilderService: FormBuilderService, + protected formOperationsService: SectionFormOperationsService, + protected formService: FormService, + protected translateService: TranslateService, + private configurationDataService: ConfigurationDataService, + protected operationsBuilder: JsonPatchOperationsBuilder, + protected sectionService: SectionsService, + protected submissionService: SubmissionService, + @Inject('collectionIdProvider') public injectedCollectionId: string, + @Inject('sectionDataProvider') public injectedSectionData: SectionDataObject, + @Inject('submissionIdProvider') public injectedSubmissionId: string) { + super(changeDetectorRef, + collectionDataService, + formBuilderService, + formOperationsService, + formService, + operationsBuilder, + sectionService, + submissionService, + injectedCollectionId, + injectedSectionData, + injectedSubmissionId); + } + + toggleAcceptation: LicenseAcceptButton; + + /** + * The mail for the help desk is loaded from the server. + */ + helpDesk$: Observable>; + + contractRoutingPath = ''; + + isInit = false; + + onSectionInit(): void { + this.isInit = true; + + this.contractRoutingPath = getLicenseContractPagePath(); + + this.pathCombiner = new JsonPatchOperationPathCombiner('sections', this.sectionData.id); + this.formId = this.formService.getUniqueId(this.sectionData.id); + this.formModel = this.formBuilderService.fromJSON(SECTION_LICENSE_FORM_MODEL); + const model = this.formBuilderService.findById('granted', this.formModel); + + // Retrieve license accepted status + (model as DynamicCheckboxModel).value = (this.sectionData.data as WorkspaceitemSectionLicenseObject).granted; + + this.subs.push( + // Disable checkbox whether it's in workflow or item scope + this.sectionService.isSectionReadOnly( + this.submissionId, + this.sectionData.id, + this.submissionService.getSubmissionScope()).pipe( + take(1), + filter((isReadOnly) => isReadOnly)) + .subscribe(() => { + model.disabled = true; + }), + + this.sectionService.getSectionErrors(this.submissionId, this.sectionData.id).pipe( + filter((errors) => isNotEmpty(errors)), + distinctUntilChanged()) + .subscribe((errors) => { + // parse errors + const newErrors = errors.map((error) => { + // When the error path is only on the section, + // replace it with the path to the form field to display error also on the form + if (error.path === '/sections/license') { + // check whether license is not accepted + if (!(model as DynamicCheckboxModel).checked) { + return Object.assign({}, error, {path: '/sections/license/granted'}); + } else { + return null; + } + } else { + return error; + } + }).filter((error) => isNotNull(error)); + + if (isNotEmpty(newErrors)) { + this.sectionService.checkSectionErrors(this.submissionId, this.sectionData.id, this.formId, newErrors); + this.sectionData.errors = errors; + } else { + // Remove any section's errors + this.sectionService.dispatchRemoveSectionErrors(this.submissionId, this.sectionData.id); + } + this.changeDetectorRef.detectChanges(); + }) + ); + + this.toggleAcceptation = { + handleColor: 'dark', + handleOnColor: 'danger', + handleOffColor: 'info', + onColor: 'success', + offColor: 'danger', + onText: this.translateService.instant('submission.sections.clarin-license.toggle.on-text'), + offText: this.translateService.instant('submission.sections.clarin-license.toggle.off-text'), + disabled: false, + size: 'sm', + value: (model as DynamicCheckboxModel).value + }; + + this.helpDesk$ = this.configurationDataService.findByPropertyName(HELP_DESK_PROPERTY); + } + + changeToNotInit() { + if (this.isInit) { + this.isInit = false; + } + } + + /** + * Method called when a form dfChange event is fired. + * Dispatch form operations based on changes. + */ + onChange(event: any) { + // Filter changing value on init + if (isNull(event)) { + return; + } + if (this.isInit === true) { + this.isInit = false; + return; + } + + const path = '/sections/license/granted'; + const pathObj: JsonPatchOperationPathObject = this.pathCombiner.getPath(path); + pathObj.path = path; + + if (isNotUndefined(this.toggleAcceptation.value)) { + this.operationsBuilder.add(pathObj, String(this.toggleAcceptation.value), false, true); + // Remove any section's errors + this.sectionService.dispatchRemoveSectionErrors(this.submissionId, this.sectionData.id); + } else { + this.operationsBuilder.remove(pathObj); + } + this.updateSectionStatus(); + } + + /** + * Get section status + * + * @return Observable + * the section status + */ + protected getSectionStatus(): Observable { + if (this.toggleAcceptation.value) { + return of(true); + } + return of(false); + } +} + + +interface LicenseAcceptButton { + handleColor: string|null; + handleOnColor: string|null; + handleOffColor: string|null; + onColor: string; + offColor: string; + onText: string; + offText: string; + disabled: boolean; + size: 'sm' | 'lg' | ''; + value: boolean; +} diff --git a/src/app/submission/sections/clarin-license-resource/base.css b/src/app/submission/sections/clarin-license-resource/base.css new file mode 100644 index 00000000000..968e29c194b --- /dev/null +++ b/src/app/submission/sections/clarin-license-resource/base.css @@ -0,0 +1,81 @@ +/** + * The contents of this file are subject to the license and copyright + * detailed in the LICENSE and NOTICE files at the root of the source + * tree and available online at + * + * http://www.dspace.org/license/ + */ +/* + * base.css + * + * minimal base styles + */ + + +/* #444 looks better than black: twitter.com/H_FJ/statuses/11800719859 */ +body, select, input, textarea { color:#444; } + +/* www.aestheticallyloyal.com/public/optimize-legibility/ */ +h1,h2,h3,h4,h5,h6 { font-weight: bold; text-rendering: optimizeLegibility; } + +/* maxvoltar.com/archive/-webkit-font-smoothing */ +html { -webkit-font-smoothing: antialiased; } + + +/* Accessible focus treatment: people.opera.com/patrickl/experiments/keyboard/test */ +a:hover, a:active { outline: none; } + +a, a:active, a:visited { color:#607890; } +a:hover { color:#036; } + + +ul { margin-left:30px; } +ol { margin-left:30px; list-style-type: decimal; } + +small { font-size:85%; } +.bold, strong, th { font-weight: bold; } + +td, td img { vertical-align:top; } + +sub { vertical-align: sub; font-size: smaller; } +sup { vertical-align: super; font-size: smaller; } + +pre { + padding: 15px; + + /* www.pathf.com/blogs/2008/05/formatting-quoted-code-in-blog-posts-css21-white-space-pre-wrap/ */ + white-space: pre; /* CSS2 */ + white-space: pre-wrap; /* CSS 2.1 */ + white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */ + word-wrap: break-word; /* IE */ +} + +/* align checkboxes, radios, text inputs with their label + by: Thierry Koblentz tjkdesign.com/ez-css/css/base.css */ +input[type="radio"] { vertical-align: text-bottom; } +input[type="checkbox"] { vertical-align: bottom; *vertical-align: baseline; } +.ie6 input { vertical-align: text-bottom; } + +/* hand cursor on clickable input elements */ +label, input[type=button], input[type=submit], button { cursor: pointer; } + + +/* These selection declarations have to be separate. + No text-shadow: twitter.com/miketaylr/status/12228805301 */ +::-moz-selection{ background: #5e9fff; color:#fff; text-shadow: none; } +::selection { background:#5e9fff; color:#fff; text-shadow: none; } + +/* j.mp/webkit-tap-highlight-color */ +a:link { -webkit-tap-highlight-color: #5e9fff; } + + +/* always force a scrollbar in non-IE */ +html { overflow-y: scroll; } + +/* make buttons play nice in IE: + www.viget.com/inspire/styling-the-button-element-in-internet-explorer/ */ +button { width: auto; overflow: visible; } + +/* bicubic resizing for non-native sized IMG: + code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ */ +.ie7 img { -ms-interpolation-mode: bicubic; } \ No newline at end of file diff --git a/src/app/submission/sections/clarin-license-resource/bootstrap-theme.css b/src/app/submission/sections/clarin-license-resource/bootstrap-theme.css new file mode 100644 index 00000000000..7f028785666 --- /dev/null +++ b/src/app/submission/sections/clarin-license-resource/bootstrap-theme.css @@ -0,0 +1,384 @@ +.btn-default, +.btn-primary, +.btn-success, +.btn-info, +.btn-warning, +.btn-danger { + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.btn-default:active, +.btn-primary:active, +.btn-success:active, +.btn-info:active, +.btn-warning:active, +.btn-danger:active, +.btn-default.active, +.btn-primary.active, +.btn-success.active, +.btn-info.active, +.btn-warning.active, +.btn-danger.active { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} + +.btn:active, +.btn.active { + background-image: none; +} + +.btn-default { + text-shadow: 0 1px 0 #fff; + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#e6e6e6)); + background-image: -webkit-linear-gradient(top, #ffffff 0%, #e6e6e6 100%); + background-image: -moz-linear-gradient(top, #ffffff 0%, #e6e6e6 100%); + background-image: linear-gradient(to bottom, #ffffff 0%, #e6e6e6 100%); + background-repeat: repeat-x; + border-color: #e0e0e0; + border-color: #ccc; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0); +} + +.btn-default:active, +.btn-default.active { + background-color: #e6e6e6; + border-color: #e0e0e0; +} + +.btn-primary { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3071a9)); + background-image: -webkit-linear-gradient(top, #428bca, 0%, #3071a9, 100%); + background-image: -moz-linear-gradient(top, #428bca 0%, #3071a9 100%); + background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%); + background-repeat: repeat-x; + border-color: #2d6ca2; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0); +} + +.btn-primary:active, +.btn-primary.active { + background-color: #3071a9; + border-color: #2d6ca2; +} + +.btn-success { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5cb85c), to(#449d44)); + background-image: -webkit-linear-gradient(top, #5cb85c, 0%, #449d44, 100%); + background-image: -moz-linear-gradient(top, #5cb85c 0%, #449d44 100%); + background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); + background-repeat: repeat-x; + border-color: #419641; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); +} + +.btn-success:active, +.btn-success.active { + background-color: #449d44; + border-color: #419641; +} + +.btn-warning { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f0ad4e), to(#ec971f)); + background-image: -webkit-linear-gradient(top, #f0ad4e, 0%, #ec971f, 100%); + background-image: -moz-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); + background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); + background-repeat: repeat-x; + border-color: #eb9316; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); +} + +.btn-warning:active, +.btn-warning.active { + background-color: #ec971f; + border-color: #eb9316; +} + +.btn-danger { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9534f), to(#c9302c)); + background-image: -webkit-linear-gradient(top, #d9534f, 0%, #c9302c, 100%); + background-image: -moz-linear-gradient(top, #d9534f 0%, #c9302c 100%); + background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); + background-repeat: repeat-x; + border-color: #c12e2a; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); +} + +.btn-danger:active, +.btn-danger.active { + background-color: #c9302c; + border-color: #c12e2a; +} + +.btn-info { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5bc0de), to(#31b0d5)); + background-image: -webkit-linear-gradient(top, #5bc0de, 0%, #31b0d5, 100%); + background-image: -moz-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); + background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); + background-repeat: repeat-x; + border-color: #2aabd2; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); +} + +.btn-info:active, +.btn-info.active { + background-color: #31b0d5; + border-color: #2aabd2; +} + +.thumbnail, +.img-thumbnail { + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus, +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + background-color: #357ebd; + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#357ebd)); + background-image: -webkit-linear-gradient(top, #428bca, 0%, #357ebd, 100%); + background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%); + background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0); +} + +.navbar { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ffffff), to(#f8f8f8)); + background-image: -webkit-linear-gradient(top, #ffffff, 0%, #f8f8f8, 100%); + background-image: -moz-linear-gradient(top, #ffffff 0%, #f8f8f8 100%); + background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%); + background-repeat: repeat-x; + border-radius: 4px; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075); +} + +.navbar .navbar-nav > .active > a { + background-color: #f8f8f8; +} + +.navbar-brand, +.navbar-nav > li > a { + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25); +} + +.navbar-inverse { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#3c3c3c), to(#222222)); + background-image: -webkit-linear-gradient(top, #3c3c3c, 0%, #222222, 100%); + background-image: -moz-linear-gradient(top, #3c3c3c 0%, #222222 100%); + background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0); +} + +.navbar-inverse .navbar-nav > .active > a { + background-color: #222222; +} + +.navbar-inverse .navbar-brand, +.navbar-inverse .navbar-nav > li > a { + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); +} + +.navbar-static-top, +.navbar-fixed-top, +.navbar-fixed-bottom { + border-radius: 0; +} + +.alert { + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2); + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.alert-success { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#dff0d8), to(#c8e5bc)); + background-image: -webkit-linear-gradient(top, #dff0d8, 0%, #c8e5bc, 100%); + background-image: -moz-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%); + background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%); + background-repeat: repeat-x; + border-color: #b2dba1; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0); +} + +.alert-info { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9edf7), to(#b9def0)); + background-image: -webkit-linear-gradient(top, #d9edf7, 0%, #b9def0, 100%); + background-image: -moz-linear-gradient(top, #d9edf7 0%, #b9def0 100%); + background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%); + background-repeat: repeat-x; + border-color: #9acfea; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0); +} + +.alert-warning { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fcf8e3), to(#f8efc0)); + background-image: -webkit-linear-gradient(top, #fcf8e3, 0% #f8efc0 100%); + background-image: -moz-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%); + background-repeat: repeat-x; + border-color: #f5e79e; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0); +} + +.alert-danger { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f2dede), to(#e7c3c3)); + background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); + background-image: -moz-linear-gradient(top, #f2dede 0%, #e7c3c3 100%); + background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%); + background-repeat: repeat-x; + border-color: #dca7a7; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0); +} + +.progress { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#ebebeb), to(#f5f5f5)); + background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); + background-image: -moz-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%); + background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0); +} + +.progress-bar { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3071a9)); + background-image: -webkit-linear-gradient(top, #428bca, 0%, #3071a9, 100%); + background-image: -moz-linear-gradient(top, #428bca 0%, #3071a9 100%); + background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0); +} + +.progress-bar-success { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5cb85c), to(#449d44)); + background-image: -webkit-linear-gradient(top, #5cb85c, 0%, #449d44, 100%); + background-image: -moz-linear-gradient(top, #5cb85c 0%, #449d44 100%); + background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0); +} + +.progress-bar-info { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#5bc0de), to(#31b0d5)); + background-image: -webkit-linear-gradient(top, #5bc0de, 0%, #31b0d5, 100%); + background-image: -moz-linear-gradient(top, #5bc0de 0%, #31b0d5 100%); + background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0); +} + +.progress-bar-warning { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f0ad4e), to(#ec971f)); + background-image: -webkit-linear-gradient(top, #f0ad4e, 0%, #ec971f, 100%); + background-image: -moz-linear-gradient(top, #f0ad4e 0%, #ec971f 100%); + background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0); +} + +.progress-bar-danger { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9534f), to(#c9302c)); + background-image: -webkit-linear-gradient(top, #d9534f, 0%, #c9302c, 100%); + background-image: -moz-linear-gradient(top, #d9534f 0%, #c9302c 100%); + background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0); +} + +.list-group { + border-radius: 4px; + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075); +} + +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + text-shadow: 0 -1px 0 #3071a9; + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#3278b3)); + background-image: -webkit-linear-gradient(top, #428bca, 0%, #3278b3, 100%); + background-image: -moz-linear-gradient(top, #428bca 0%, #3278b3 100%); + background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%); + background-repeat: repeat-x; + border-color: #3278b3; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0); +} + +.panel { + -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); +} + +.panel-default > .panel-heading { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f5f5f5), to(#e8e8e8)); + background-image: -webkit-linear-gradient(top, #f5f5f5, 0%, #e8e8e8, 100%); + background-image: -moz-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%); + background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0); +} + +.panel-primary > .panel-heading { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#428bca), to(#357ebd)); + background-image: -webkit-linear-gradient(top, #428bca, 0%, #357ebd, 100%); + background-image: -moz-linear-gradient(top, #428bca 0%, #357ebd 100%); + background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0); +} + +.panel-success > .panel-heading { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#dff0d8), to(#d0e9c6)); + background-image: -webkit-linear-gradient(top, #dff0d8, 0%, #d0e9c6, 100%); + background-image: -moz-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%); + background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0); +} + +.panel-info > .panel-heading { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#d9edf7), to(#c4e3f3)); + background-image: -webkit-linear-gradient(top, #d9edf7, 0%, #c4e3f3, 100%); + background-image: -moz-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%); + background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0); +} + +.panel-warning > .panel-heading { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#fcf8e3), to(#faf2cc)); + background-image: -webkit-linear-gradient(top, #fcf8e3, 0%, #faf2cc, 100%); + background-image: -moz-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%); + background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0); +} + +.panel-danger > .panel-heading { + background-image: -webkit-gradient(linear, left 0%, left 100%, from(#f2dede), to(#ebcccc)); + background-image: -webkit-linear-gradient(top, #f2dede, 0%, #ebcccc, 100%); + background-image: -moz-linear-gradient(top, #f2dede 0%, #ebcccc 100%); + background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0); +} + +.well { + /*background-image: -webkit-gradient(linear, left 0%, left 100%, from(#e8e8e8), to(#f5f5f5));*/ + /*background-image: -webkit-linear-gradient(top, #e8e8e8, 0%, #f5f5f5, 100%);*/ + /*background-image: -moz-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);*/ + /*background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);*/ + background-repeat: repeat-x; + border-color: #dcdcdc; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0); + -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1); +} diff --git a/src/app/submission/sections/clarin-license-resource/bootstrap.css b/src/app/submission/sections/clarin-license-resource/bootstrap.css new file mode 100644 index 00000000000..0cb0372570a --- /dev/null +++ b/src/app/submission/sections/clarin-license-resource/bootstrap.css @@ -0,0 +1,6809 @@ +/*! + * Bootstrap v3.0.0 + * + * Copyright 2013 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world by @mdo and @fat. + */ + +/*! normalize.css v2.1.0 | MIT License | git.io/normalize */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} + +audio, +canvas, +video { + display: inline-block; +} + +audio:not([controls]) { + display: none; + height: 0; +} + +[hidden] { + display: none; +} + +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +body { + margin: 0; +} + +a:focus { + outline: thin dotted; +} + +a:active, +a:hover { + outline: 0; +} + +h1 { + margin: 0.67em 0; + font-size: 2em; +} + +abbr[title] { + border-bottom: 1px dotted; +} + +b, +strong { + font-weight: bold; +} + +dfn { + font-style: italic; +} + +hr { + height: 0; + -moz-box-sizing: content-box; + box-sizing: content-box; +} + +mark { + color: #000; + background: #ff0; +} + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + font-size: 1em; +} + +pre { + white-space: pre-wrap; +} + +q { + quotes: "\201C" "\201D" "\2018" "\2019"; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +img { + border: 0; +} + +svg:not(:root) { + overflow: hidden; +} + +figure { + margin: 0; +} + +fieldset { + padding: 0.35em 0.625em 0.75em; + margin: 0 2px; + border: 1px solid #c0c0c0; +} + +legend { + padding: 0; + border: 0; +} + +button, +input, +select, +textarea { + margin: 0; + font-family: inherit; + font-size: 100%; +} + +button, +input { + line-height: normal; +} + +button, +select { + text-transform: none; +} + +button, +html input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; + -webkit-appearance: button; +} + +button[disabled], +html input[disabled] { + cursor: default; +} + +input[type="checkbox"], +input[type="radio"] { + padding: 0; + box-sizing: border-box; +} + +input[type="search"] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; +} + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +button::-moz-focus-inner, +input::-moz-focus-inner { + padding: 0; + border: 0; +} + +textarea { + overflow: auto; + vertical-align: top; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +@media print { + * { + color: #000 !important; + text-shadow: none !important; + background: transparent !important; + box-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + .ir a:after, + a[href^="javascript:"]:after, + a[href^="#"]:after { + content: ""; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + img { + max-width: 100% !important; + } + @page { + margin: 2cm .5cm; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + .navbar { + display: none; + } + .table td, + .table th { + background-color: #fff !important; + } + .btn > .caret, + .dropup > .btn > .caret { + border-top-color: #000 !important; + } + .label { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #ddd !important; + } +} + +*, +*:before, +*:after { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +html { + font-size: 62.5%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +body { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.428571429; + color: #333333; + background-color: #ffffff; +} + +input, +button, +select, +textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input, +select[multiple], +textarea { + background-image: none; +} + +a { + color: #428bca; + text-decoration: none; +} + +a:hover, +a:focus { + color: #2a6496; + text-decoration: underline; +} + +a:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +img { + vertical-align: middle; +} + +.img-responsive { + display: block; + height: auto; + max-width: 100%; +} + +.img-rounded { + border-radius: 6px; +} + +.img-thumbnail { + display: inline-block; + height: auto; + max-width: 100%; + padding: 4px; + line-height: 1.428571429; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +.img-circle { + border-radius: 50%; +} + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eeeeee; +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0 0 0 0); + border: 0; +} + +p { + margin: 0 0 10px; +} + +.lead { + margin-bottom: 20px; + font-size: 16.099999999999998px; + font-weight: 200; + line-height: 1.4; +} + +@media (min-width: 768px) { + .lead { + font-size: 21px; + } +} + +small { + font-size: 85%; +} + +cite { + font-style: normal; +} + +.text-muted { + color: #999999; +} + +.text-primary { + color: #428bca; +} + +.text-warning { + color: #c09853; +} + +.text-danger { + color: #b94a48; +} + +.text-success { + color: #468847; +} + +.text-info { + color: #3a87ad; +} + +.text-left { + text-align: left; +} + +.text-right { + text-align: right; +} + +.text-center { + text-align: center; +} + +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-weight: 500; + line-height: 1.1; +} + +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small, +.h1 small, +.h2 small, +.h3 small, +.h4 small, +.h5 small, +.h6 small { + font-weight: normal; + line-height: 1; + color: #999999; +} + +h1, +h2, +h3 { + margin-top: 20px; + margin-bottom: 10px; +} + +h4, +h5, +h6 { + margin-top: 10px; + margin-bottom: 10px; +} + +h1, +.h1 { + font-size: 36px; +} + +h2, +.h2 { + font-size: 30px; +} + +h3, +.h3 { + font-size: 24px; +} + +h4, +.h4 { + font-size: 18px; +} + +h5, +.h5 { + font-size: 14px; +} + +h6, +.h6 { + font-size: 12px; +} + +h1 small, +.h1 small { + font-size: 24px; +} + +h2 small, +.h2 small { + font-size: 18px; +} + +h3 small, +.h3 small, +h4 small, +.h4 small { + font-size: 14px; +} + +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eeeeee; +} + +ul, +ol { + margin-top: 0; + margin-bottom: 10px; +} + +ul ul, +ol ul, +ul ol, +ol ol { + margin-bottom: 0; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; +} + +dl { + margin-bottom: 20px; +} + +dt, +dd { + line-height: 1.428571429; +} + +dt { + font-weight: bold; +} + +dd { + margin-left: 0; +} + +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; + } + .dl-horizontal dd { + margin-left: 180px; + } + .dl-horizontal dd:before, + .dl-horizontal dd:after { + display: table; + content: " "; + } + .dl-horizontal dd:after { + clear: both; + } + .dl-horizontal dd:before, + .dl-horizontal dd:after { + display: table; + content: " "; + } + .dl-horizontal dd:after { + clear: both; + } +} + +abbr[title], +abbr[data-original-title] { + cursor: help; + border-bottom: 1px dotted #999999; +} + +abbr.initialism { + font-size: 90%; + text-transform: uppercase; +} + +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + border-left: 5px solid #eeeeee; +} + +blockquote p { + font-size: 17.5px; + font-weight: 300; + line-height: 1.25; +} + +blockquote p:last-child { + margin-bottom: 0; +} + +blockquote small { + display: block; + line-height: 1.428571429; + color: #999999; +} + +blockquote small:before { + content: '\2014 \00A0'; +} + +blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + border-right: 5px solid #eeeeee; + border-left: 0; +} + +blockquote.pull-right p, +blockquote.pull-right small { + text-align: right; +} + +blockquote.pull-right small:before { + content: ''; +} + +blockquote.pull-right small:after { + content: '\00A0 \2014'; +} + +q:before, +q:after, +blockquote:before, +blockquote:after { + content: ""; +} + +address { + display: block; + margin-bottom: 20px; + font-style: normal; + line-height: 1.428571429; +} + +code, +pre { + font-family: Monaco, Menlo, Consolas, "Courier New", monospace; +} + +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + white-space: nowrap; + background-color: #f9f2f4; + border-radius: 4px; +} + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.428571429; + color: #333333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #cccccc; + border-radius: 4px; +} + +pre.prettyprint { + margin-bottom: 20px; +} + +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border: 0; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +.container:before, +.container:after { + display: table; + content: " "; +} + +.container:after { + clear: both; +} + +.container:before, +.container:after { + display: table; + content: " "; +} + +.container:after { + clear: both; +} + +.row { + margin-right: -15px; + margin-left: -15px; +} + +.row:before, +.row:after { + display: table; + content: " "; +} + +.row:after { + clear: both; +} + +.row:before, +.row:after { + display: table; + content: " "; +} + +.row:after { + clear: both; +} + +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11, +.col-xs-12, +.col-sm-1, +.col-sm-2, +.col-sm-3, +.col-sm-4, +.col-sm-5, +.col-sm-6, +.col-sm-7, +.col-sm-8, +.col-sm-9, +.col-sm-10, +.col-sm-11, +.col-sm-12, +.col-md-1, +.col-md-2, +.col-md-3, +.col-md-4, +.col-md-5, +.col-md-6, +.col-md-7, +.col-md-8, +.col-md-9, +.col-md-10, +.col-md-11, +.col-md-12, +.col-lg-1, +.col-lg-2, +.col-lg-3, +.col-lg-4, +.col-lg-5, +.col-lg-6, +.col-lg-7, +.col-lg-8, +.col-lg-9, +.col-lg-10, +.col-lg-11, +.col-lg-12 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; +} + +.col-xs-1, +.col-xs-2, +.col-xs-3, +.col-xs-4, +.col-xs-5, +.col-xs-6, +.col-xs-7, +.col-xs-8, +.col-xs-9, +.col-xs-10, +.col-xs-11 { + float: left; +} + +.col-xs-1 { + width: 8.333333333333332%; +} + +.col-xs-2 { + width: 16.666666666666664%; +} + +.col-xs-3 { + width: 25%; +} + +.col-xs-4 { + width: 33.33333333333333%; +} + +.col-xs-5 { + width: 41.66666666666667%; +} + +.col-xs-6 { + width: 50%; +} + +.col-xs-7 { + width: 58.333333333333336%; +} + +.col-xs-8 { + width: 66.66666666666666%; +} + +.col-xs-9 { + width: 75%; +} + +.col-xs-10 { + width: 83.33333333333334%; +} + +.col-xs-11 { + width: 91.66666666666666%; +} + +.col-xs-12 { + width: 100%; +} + +@media (min-width: 768px) { + .container { + max-width: 750px; + } + .col-sm-1, + .col-sm-2, + .col-sm-3, + .col-sm-4, + .col-sm-5, + .col-sm-6, + .col-sm-7, + .col-sm-8, + .col-sm-9, + .col-sm-10, + .col-sm-11 { + float: left; + } + .col-sm-1 { + width: 8.333333333333332%; + } + .col-sm-2 { + width: 16.666666666666664%; + } + .col-sm-3 { + width: 25%; + } + .col-sm-4 { + width: 33.33333333333333%; + } + .col-sm-5 { + width: 41.66666666666667%; + } + .col-sm-6 { + width: 50%; + } + .col-sm-7 { + width: 58.333333333333336%; + } + .col-sm-8 { + width: 66.66666666666666%; + } + .col-sm-9 { + width: 75%; + } + .col-sm-10 { + width: 83.33333333333334%; + } + .col-sm-11 { + width: 91.66666666666666%; + } + .col-sm-12 { + width: 100%; + } + .col-sm-push-1 { + left: 8.333333333333332%; + } + .col-sm-push-2 { + left: 16.666666666666664%; + } + .col-sm-push-3 { + left: 25%; + } + .col-sm-push-4 { + left: 33.33333333333333%; + } + .col-sm-push-5 { + left: 41.66666666666667%; + } + .col-sm-push-6 { + left: 50%; + } + .col-sm-push-7 { + left: 58.333333333333336%; + } + .col-sm-push-8 { + left: 66.66666666666666%; + } + .col-sm-push-9 { + left: 75%; + } + .col-sm-push-10 { + left: 83.33333333333334%; + } + .col-sm-push-11 { + left: 91.66666666666666%; + } + .col-sm-pull-1 { + right: 8.333333333333332%; + } + .col-sm-pull-2 { + right: 16.666666666666664%; + } + .col-sm-pull-3 { + right: 25%; + } + .col-sm-pull-4 { + right: 33.33333333333333%; + } + .col-sm-pull-5 { + right: 41.66666666666667%; + } + .col-sm-pull-6 { + right: 50%; + } + .col-sm-pull-7 { + right: 58.333333333333336%; + } + .col-sm-pull-8 { + right: 66.66666666666666%; + } + .col-sm-pull-9 { + right: 75%; + } + .col-sm-pull-10 { + right: 83.33333333333334%; + } + .col-sm-pull-11 { + right: 91.66666666666666%; + } + .col-sm-offset-1 { + margin-left: 8.333333333333332%; + } + .col-sm-offset-2 { + margin-left: 16.666666666666664%; + } + .col-sm-offset-3 { + margin-left: 25%; + } + .col-sm-offset-4 { + margin-left: 33.33333333333333%; + } + .col-sm-offset-5 { + margin-left: 41.66666666666667%; + } + .col-sm-offset-6 { + margin-left: 50%; + } + .col-sm-offset-7 { + margin-left: 58.333333333333336%; + } + .col-sm-offset-8 { + margin-left: 66.66666666666666%; + } + .col-sm-offset-9 { + margin-left: 75%; + } + .col-sm-offset-10 { + margin-left: 83.33333333333334%; + } + .col-sm-offset-11 { + margin-left: 91.66666666666666%; + } +} + +@media (min-width: 992px) { + .container { + max-width: 970px; + } + .col-md-1, + .col-md-2, + .col-md-3, + .col-md-4, + .col-md-5, + .col-md-6, + .col-md-7, + .col-md-8, + .col-md-9, + .col-md-10, + .col-md-11 { + float: left; + } + .col-md-1 { + width: 8.333333333333332%; + } + .col-md-2 { + width: 16.666666666666664%; + } + .col-md-3 { + width: 25%; + } + .col-md-4 { + width: 33.33333333333333%; + } + .col-md-5 { + width: 41.66666666666667%; + } + .col-md-6 { + width: 50%; + } + .col-md-7 { + width: 58.333333333333336%; + } + .col-md-8 { + width: 66.66666666666666%; + } + .col-md-9 { + width: 75%; + } + .col-md-10 { + width: 83.33333333333334%; + } + .col-md-11 { + width: 91.66666666666666%; + } + .col-md-12 { + width: 100%; + } + .col-md-push-0 { + left: auto; + } + .col-md-push-1 { + left: 8.333333333333332%; + } + .col-md-push-2 { + left: 16.666666666666664%; + } + .col-md-push-3 { + left: 25%; + } + .col-md-push-4 { + left: 33.33333333333333%; + } + .col-md-push-5 { + left: 41.66666666666667%; + } + .col-md-push-6 { + left: 50%; + } + .col-md-push-7 { + left: 58.333333333333336%; + } + .col-md-push-8 { + left: 66.66666666666666%; + } + .col-md-push-9 { + left: 75%; + } + .col-md-push-10 { + left: 83.33333333333334%; + } + .col-md-push-11 { + left: 91.66666666666666%; + } + .col-md-pull-0 { + right: auto; + } + .col-md-pull-1 { + right: 8.333333333333332%; + } + .col-md-pull-2 { + right: 16.666666666666664%; + } + .col-md-pull-3 { + right: 25%; + } + .col-md-pull-4 { + right: 33.33333333333333%; + } + .col-md-pull-5 { + right: 41.66666666666667%; + } + .col-md-pull-6 { + right: 50%; + } + .col-md-pull-7 { + right: 58.333333333333336%; + } + .col-md-pull-8 { + right: 66.66666666666666%; + } + .col-md-pull-9 { + right: 75%; + } + .col-md-pull-10 { + right: 83.33333333333334%; + } + .col-md-pull-11 { + right: 91.66666666666666%; + } + .col-md-offset-0 { + margin-left: 0; + } + .col-md-offset-1 { + margin-left: 8.333333333333332%; + } + .col-md-offset-2 { + margin-left: 16.666666666666664%; + } + .col-md-offset-3 { + margin-left: 25%; + } + .col-md-offset-4 { + margin-left: 33.33333333333333%; + } + .col-md-offset-5 { + margin-left: 41.66666666666667%; + } + .col-md-offset-6 { + margin-left: 50%; + } + .col-md-offset-7 { + margin-left: 58.333333333333336%; + } + .col-md-offset-8 { + margin-left: 66.66666666666666%; + } + .col-md-offset-9 { + margin-left: 75%; + } + .col-md-offset-10 { + margin-left: 83.33333333333334%; + } + .col-md-offset-11 { + margin-left: 91.66666666666666%; + } +} + +@media (min-width: 1200px) { + .container { + max-width: 1170px; + } + .col-lg-1, + .col-lg-2, + .col-lg-3, + .col-lg-4, + .col-lg-5, + .col-lg-6, + .col-lg-7, + .col-lg-8, + .col-lg-9, + .col-lg-10, + .col-lg-11 { + float: left; + } + .col-lg-1 { + width: 8.333333333333332%; + } + .col-lg-2 { + width: 16.666666666666664%; + } + .col-lg-3 { + width: 25%; + } + .col-lg-4 { + width: 33.33333333333333%; + } + .col-lg-5 { + width: 41.66666666666667%; + } + .col-lg-6 { + width: 50%; + } + .col-lg-7 { + width: 58.333333333333336%; + } + .col-lg-8 { + width: 66.66666666666666%; + } + .col-lg-9 { + width: 75%; + } + .col-lg-10 { + width: 83.33333333333334%; + } + .col-lg-11 { + width: 91.66666666666666%; + } + .col-lg-12 { + width: 100%; + } + .col-lg-push-0 { + left: auto; + } + .col-lg-push-1 { + left: 8.333333333333332%; + } + .col-lg-push-2 { + left: 16.666666666666664%; + } + .col-lg-push-3 { + left: 25%; + } + .col-lg-push-4 { + left: 33.33333333333333%; + } + .col-lg-push-5 { + left: 41.66666666666667%; + } + .col-lg-push-6 { + left: 50%; + } + .col-lg-push-7 { + left: 58.333333333333336%; + } + .col-lg-push-8 { + left: 66.66666666666666%; + } + .col-lg-push-9 { + left: 75%; + } + .col-lg-push-10 { + left: 83.33333333333334%; + } + .col-lg-push-11 { + left: 91.66666666666666%; + } + .col-lg-pull-0 { + right: auto; + } + .col-lg-pull-1 { + right: 8.333333333333332%; + } + .col-lg-pull-2 { + right: 16.666666666666664%; + } + .col-lg-pull-3 { + right: 25%; + } + .col-lg-pull-4 { + right: 33.33333333333333%; + } + .col-lg-pull-5 { + right: 41.66666666666667%; + } + .col-lg-pull-6 { + right: 50%; + } + .col-lg-pull-7 { + right: 58.333333333333336%; + } + .col-lg-pull-8 { + right: 66.66666666666666%; + } + .col-lg-pull-9 { + right: 75%; + } + .col-lg-pull-10 { + right: 83.33333333333334%; + } + .col-lg-pull-11 { + right: 91.66666666666666%; + } + .col-lg-offset-0 { + margin-left: 0; + } + .col-lg-offset-1 { + margin-left: 8.333333333333332%; + } + .col-lg-offset-2 { + margin-left: 16.666666666666664%; + } + .col-lg-offset-3 { + margin-left: 25%; + } + .col-lg-offset-4 { + margin-left: 33.33333333333333%; + } + .col-lg-offset-5 { + margin-left: 41.66666666666667%; + } + .col-lg-offset-6 { + margin-left: 50%; + } + .col-lg-offset-7 { + margin-left: 58.333333333333336%; + } + .col-lg-offset-8 { + margin-left: 66.66666666666666%; + } + .col-lg-offset-9 { + margin-left: 75%; + } + .col-lg-offset-10 { + margin-left: 83.33333333333334%; + } + .col-lg-offset-11 { + margin-left: 91.66666666666666%; + } +} + +table { + max-width: 100%; + background-color: transparent; +} + +th { + text-align: left; +} + +.table { + width: 100%; + margin-bottom: 20px; +} + +.table thead > tr > th, +.table tbody > tr > th, +.table tfoot > tr > th, +.table thead > tr > td, +.table tbody > tr > td, +.table tfoot > tr > td { + padding: 8px; + line-height: 1.428571429; + vertical-align: top; + border-top: 1px solid #dddddd; +} + +.table thead > tr > th { + vertical-align: bottom; + border-bottom: 2px solid #dddddd; +} + +.table caption + thead tr:first-child th, +.table colgroup + thead tr:first-child th, +.table thead:first-child tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child td { + border-top: 0; +} + +.table tbody + tbody { + border-top: 2px solid #dddddd; +} + +.table .table { + background-color: #ffffff; +} + +.table-condensed thead > tr > th, +.table-condensed tbody > tr > th, +.table-condensed tfoot > tr > th, +.table-condensed thead > tr > td, +.table-condensed tbody > tr > td, +.table-condensed tfoot > tr > td { + padding: 5px; +} + +.table-bordered { + border: 1px solid #dddddd; +} + +.table-bordered > thead > tr > th, +.table-bordered > tbody > tr > th, +.table-bordered > tfoot > tr > th, +.table-bordered > thead > tr > td, +.table-bordered > tbody > tr > td, +.table-bordered > tfoot > tr > td { + border: 1px solid #dddddd; +} + +.table-bordered > thead > tr > th, +.table-bordered > thead > tr > td { + border-bottom-width: 2px; +} + +.table-striped > tbody > tr:nth-child(odd) > td, +.table-striped > tbody > tr:nth-child(odd) > th { + background-color: #f9f9f9; +} + +.table-hover > tbody > tr:hover > td, +.table-hover > tbody > tr:hover > th { + background-color: #f5f5f5; +} + +table col[class*="col-"] { + display: table-column; + float: none; +} + +table td[class*="col-"], +table th[class*="col-"] { + display: table-cell; + float: none; +} + +.table > thead > tr > td.active, +.table > tbody > tr > td.active, +.table > tfoot > tr > td.active, +.table > thead > tr > th.active, +.table > tbody > tr > th.active, +.table > tfoot > tr > th.active, +.table > thead > tr.active > td, +.table > tbody > tr.active > td, +.table > tfoot > tr.active > td, +.table > thead > tr.active > th, +.table > tbody > tr.active > th, +.table > tfoot > tr.active > th { + background-color: #f5f5f5; +} + +.table > thead > tr > td.success, +.table > tbody > tr > td.success, +.table > tfoot > tr > td.success, +.table > thead > tr > th.success, +.table > tbody > tr > th.success, +.table > tfoot > tr > th.success, +.table > thead > tr.success > td, +.table > tbody > tr.success > td, +.table > tfoot > tr.success > td, +.table > thead > tr.success > th, +.table > tbody > tr.success > th, +.table > tfoot > tr.success > th { + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.table-hover > tbody > tr > td.success:hover, +.table-hover > tbody > tr > th.success:hover, +.table-hover > tbody > tr.success:hover > td { + background-color: #d0e9c6; + border-color: #c9e2b3; +} + +.table > thead > tr > td.danger, +.table > tbody > tr > td.danger, +.table > tfoot > tr > td.danger, +.table > thead > tr > th.danger, +.table > tbody > tr > th.danger, +.table > tfoot > tr > th.danger, +.table > thead > tr.danger > td, +.table > tbody > tr.danger > td, +.table > tfoot > tr.danger > td, +.table > thead > tr.danger > th, +.table > tbody > tr.danger > th, +.table > tfoot > tr.danger > th { + background-color: #f2dede; + border-color: #eed3d7; +} + +.table-hover > tbody > tr > td.danger:hover, +.table-hover > tbody > tr > th.danger:hover, +.table-hover > tbody > tr.danger:hover > td { + background-color: #ebcccc; + border-color: #e6c1c7; +} + +.table > thead > tr > td.warning, +.table > tbody > tr > td.warning, +.table > tfoot > tr > td.warning, +.table > thead > tr > th.warning, +.table > tbody > tr > th.warning, +.table > tfoot > tr > th.warning, +.table > thead > tr.warning > td, +.table > tbody > tr.warning > td, +.table > tfoot > tr.warning > td, +.table > thead > tr.warning > th, +.table > tbody > tr.warning > th, +.table > tfoot > tr.warning > th { + background-color: #fcf8e3; + border-color: #fbeed5; +} + +.table-hover > tbody > tr > td.warning:hover, +.table-hover > tbody > tr > th.warning:hover, +.table-hover > tbody > tr.warning:hover > td { + background-color: #faf2cc; + border-color: #f8e5be; +} + +@media (max-width: 768px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-x: scroll; + overflow-y: hidden; + border: 1px solid #dddddd; + } + .table-responsive > .table { + margin-bottom: 0; + background-color: #fff; + } + .table-responsive > .table > thead > tr > th, + .table-responsive > .table > tbody > tr > th, + .table-responsive > .table > tfoot > tr > th, + .table-responsive > .table > thead > tr > td, + .table-responsive > .table > tbody > tr > td, + .table-responsive > .table > tfoot > tr > td { + white-space: nowrap; + } + .table-responsive > .table-bordered { + border: 0; + } + .table-responsive > .table-bordered > thead > tr > th:first-child, + .table-responsive > .table-bordered > tbody > tr > th:first-child, + .table-responsive > .table-bordered > tfoot > tr > th:first-child, + .table-responsive > .table-bordered > thead > tr > td:first-child, + .table-responsive > .table-bordered > tbody > tr > td:first-child, + .table-responsive > .table-bordered > tfoot > tr > td:first-child { + border-left: 0; + } + .table-responsive > .table-bordered > thead > tr > th:last-child, + .table-responsive > .table-bordered > tbody > tr > th:last-child, + .table-responsive > .table-bordered > tfoot > tr > th:last-child, + .table-responsive > .table-bordered > thead > tr > td:last-child, + .table-responsive > .table-bordered > tbody > tr > td:last-child, + .table-responsive > .table-bordered > tfoot > tr > td:last-child { + border-right: 0; + } + .table-responsive > .table-bordered > thead > tr:last-child > th, + .table-responsive > .table-bordered > tbody > tr:last-child > th, + .table-responsive > .table-bordered > tfoot > tr:last-child > th, + .table-responsive > .table-bordered > thead > tr:last-child > td, + .table-responsive > .table-bordered > tbody > tr:last-child > td, + .table-responsive > .table-bordered > tfoot > tr:last-child > td { + border-bottom: 0; + } +} + +fieldset { + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + padding: 0; + margin-bottom: 20px; + font-size: 21px; + line-height: inherit; + color: #333333; + border: 0; + border-bottom: 1px solid #e5e5e5; +} + +label { + display: inline-block; + margin-bottom: 5px; + font-weight: bold; +} + +input[type="search"] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +input[type="radio"], +input[type="checkbox"] { + margin: 4px 0 0; + margin-top: 1px \9; + /* IE8-9 */ + + line-height: normal; +} + +input[type="file"] { + display: block; +} + +select[multiple], +select[size] { + height: auto; +} + +select optgroup { + font-family: inherit; + font-size: inherit; + font-style: inherit; +} + +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +input[type="number"]::-webkit-outer-spin-button, +input[type="number"]::-webkit-inner-spin-button { + height: auto; +} + +.form-control:-moz-placeholder { + color: #999999; +} + +.form-control::-moz-placeholder { + color: #999999; +} + +.form-control:-ms-input-placeholder { + color: #999999; +} + +.form-control::-webkit-input-placeholder { + color: #999999; +} + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.428571429; + color: #555555; + vertical-align: middle; + background-color: #ffffff; + border: 1px solid #cccccc; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; + transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; +} + +.form-control:focus { + border-color: #66afe9; + outline: 0; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); +} + +.form-control[disabled], +.form-control[readonly], +fieldset[disabled] .form-control { + cursor: not-allowed; + background-color: #eeeeee; +} + +textarea.form-control { + height: auto; +} + +.form-group { + margin-bottom: 15px; +} + +.radio, +.checkbox { + display: block; + min-height: 20px; + padding-left: 20px; + margin-top: 10px; + margin-bottom: 10px; + vertical-align: middle; +} + +.radio label, +.checkbox label { + display: inline; + margin-bottom: 0; + font-weight: normal; + cursor: pointer; +} + +.radio input[type="radio"], +.radio-inline input[type="radio"], +.checkbox input[type="checkbox"], +.checkbox-inline input[type="checkbox"] { + float: left; + margin-left: -20px; +} + +.radio + .radio, +.checkbox + .checkbox { + margin-top: -5px; +} + +.radio-inline, +.checkbox-inline { + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: normal; + vertical-align: middle; + cursor: pointer; +} + +.radio-inline + .radio-inline, +.checkbox-inline + .checkbox-inline { + margin-top: 0; + margin-left: 10px; +} + +input[type="radio"][disabled], +input[type="checkbox"][disabled], +.radio[disabled], +.radio-inline[disabled], +.checkbox[disabled], +.checkbox-inline[disabled], +fieldset[disabled] input[type="radio"], +fieldset[disabled] input[type="checkbox"], +fieldset[disabled] .radio, +fieldset[disabled] .radio-inline, +fieldset[disabled] .checkbox, +fieldset[disabled] .checkbox-inline { + cursor: not-allowed; +} + +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +select.input-sm { + height: 30px; + line-height: 30px; +} + +textarea.input-sm { + height: auto; +} + +.input-lg { + height: 45px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +select.input-lg { + height: 45px; + line-height: 45px; +} + +textarea.input-lg { + height: auto; +} + +.has-warning .help-block, +.has-warning .control-label { + color: #c09853; +} + +.has-warning .form-control { + border-color: #c09853; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.has-warning .form-control:focus { + border-color: #a47e3c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e; +} + +.has-warning .input-group-addon { + color: #c09853; + background-color: #fcf8e3; + border-color: #c09853; +} + +.has-error .help-block, +.has-error .control-label { + color: #b94a48; +} + +.has-error .form-control { + border-color: #b94a48; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.has-error .form-control:focus { + border-color: #953b39; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; +} + +.has-error .input-group-addon { + color: #b94a48; + background-color: #f2dede; + border-color: #b94a48; +} + +.has-success .help-block, +.has-success .control-label { + color: #468847; +} + +.has-success .form-control { + border-color: #468847; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.has-success .form-control:focus { + border-color: #356635; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b; +} + +.has-success .input-group-addon { + color: #468847; + background-color: #dff0d8; + border-color: #468847; +} + +.form-control-static { + padding-top: 7px; + margin-bottom: 0; +} + +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; +} + +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .form-inline .form-control { + display: inline-block; + } + .form-inline .radio, + .form-inline .checkbox { + display: inline-block; + padding-left: 0; + margin-top: 0; + margin-bottom: 0; + } + .form-inline .radio input[type="radio"], + .form-inline .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } +} + +.form-horizontal .control-label, +.form-horizontal .radio, +.form-horizontal .checkbox, +.form-horizontal .radio-inline, +.form-horizontal .checkbox-inline { + padding-top: 7px; + margin-top: 0; + margin-bottom: 0; +} + +.form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px; +} + +.form-horizontal .form-group:before, +.form-horizontal .form-group:after { + display: table; + content: " "; +} + +.form-horizontal .form-group:after { + clear: both; +} + +.form-horizontal .form-group:before, +.form-horizontal .form-group:after { + display: table; + content: " "; +} + +.form-horizontal .form-group:after { + clear: both; +} + +@media (min-width: 768px) { + .form-horizontal .control-label { + text-align: right; + } +} + +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: normal; + line-height: 1.428571429; + text-align: center; + white-space: nowrap; + vertical-align: middle; + cursor: pointer; + border: 1px solid transparent; + border-radius: 4px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + -o-user-select: none; + user-select: none; +} + +.btn:focus { + outline: thin dotted #333; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; +} + +.btn:hover, +.btn:focus { + color: #333333; + text-decoration: none; +} + +.btn:active, +.btn.active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} + +.btn.disabled, +.btn[disabled], +fieldset[disabled] .btn { + pointer-events: none; + cursor: not-allowed; + opacity: 0.65; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-default { + color: #333333; + background-color: #ffffff; + border-color: #cccccc; +} + +.btn-default:hover, +.btn-default:focus, +.btn-default:active, +.btn-default.active, +.open .dropdown-toggle.btn-default { + color: #333333; + background-color: #ebebeb; + border-color: #adadad; +} + +.btn-default:active, +.btn-default.active, +.open .dropdown-toggle.btn-default { + background-image: none; +} + +.btn-default.disabled, +.btn-default[disabled], +fieldset[disabled] .btn-default, +.btn-default.disabled:hover, +.btn-default[disabled]:hover, +fieldset[disabled] .btn-default:hover, +.btn-default.disabled:focus, +.btn-default[disabled]:focus, +fieldset[disabled] .btn-default:focus, +.btn-default.disabled:active, +.btn-default[disabled]:active, +fieldset[disabled] .btn-default:active, +.btn-default.disabled.active, +.btn-default[disabled].active, +fieldset[disabled] .btn-default.active { + background-color: #ffffff; + border-color: #cccccc; +} + +.btn-primary { + color: #ffffff; + background-color: #428bca; + border-color: #357ebd; +} + +.btn-primary:hover, +.btn-primary:focus, +.btn-primary:active, +.btn-primary.active, +.open .dropdown-toggle.btn-primary { + color: #ffffff; + background-color: #3276b1; + border-color: #285e8e; +} + +.btn-primary:active, +.btn-primary.active, +.open .dropdown-toggle.btn-primary { + background-image: none; +} + +.btn-primary.disabled, +.btn-primary[disabled], +fieldset[disabled] .btn-primary, +.btn-primary.disabled:hover, +.btn-primary[disabled]:hover, +fieldset[disabled] .btn-primary:hover, +.btn-primary.disabled:focus, +.btn-primary[disabled]:focus, +fieldset[disabled] .btn-primary:focus, +.btn-primary.disabled:active, +.btn-primary[disabled]:active, +fieldset[disabled] .btn-primary:active, +.btn-primary.disabled.active, +.btn-primary[disabled].active, +fieldset[disabled] .btn-primary.active { + background-color: #428bca; + border-color: #357ebd; +} + +.btn-warning { + color: #ffffff; + background-color: #f0ad4e; + border-color: #eea236; +} + +.btn-warning:hover, +.btn-warning:focus, +.btn-warning:active, +.btn-warning.active, +.open .dropdown-toggle.btn-warning { + color: #ffffff; + background-color: #ed9c28; + border-color: #d58512; +} + +.btn-warning:active, +.btn-warning.active, +.open .dropdown-toggle.btn-warning { + background-image: none; +} + +.btn-warning.disabled, +.btn-warning[disabled], +fieldset[disabled] .btn-warning, +.btn-warning.disabled:hover, +.btn-warning[disabled]:hover, +fieldset[disabled] .btn-warning:hover, +.btn-warning.disabled:focus, +.btn-warning[disabled]:focus, +fieldset[disabled] .btn-warning:focus, +.btn-warning.disabled:active, +.btn-warning[disabled]:active, +fieldset[disabled] .btn-warning:active, +.btn-warning.disabled.active, +.btn-warning[disabled].active, +fieldset[disabled] .btn-warning.active { + background-color: #f0ad4e; + border-color: #eea236; +} + +.btn-danger { + color: #ffffff; + background-color: #d9534f; + border-color: #d43f3a; +} + +.btn-danger:hover, +.btn-danger:focus, +.btn-danger:active, +.btn-danger.active, +.open .dropdown-toggle.btn-danger { + color: #ffffff; + background-color: #d2322d; + border-color: #ac2925; +} + +.btn-danger:active, +.btn-danger.active, +.open .dropdown-toggle.btn-danger { + background-image: none; +} + +.btn-danger.disabled, +.btn-danger[disabled], +fieldset[disabled] .btn-danger, +.btn-danger.disabled:hover, +.btn-danger[disabled]:hover, +fieldset[disabled] .btn-danger:hover, +.btn-danger.disabled:focus, +.btn-danger[disabled]:focus, +fieldset[disabled] .btn-danger:focus, +.btn-danger.disabled:active, +.btn-danger[disabled]:active, +fieldset[disabled] .btn-danger:active, +.btn-danger.disabled.active, +.btn-danger[disabled].active, +fieldset[disabled] .btn-danger.active { + background-color: #d9534f; + border-color: #d43f3a; +} + +.btn-success { + color: #ffffff; + background-color: #5cb85c; + border-color: #4cae4c; +} + +.btn-success:hover, +.btn-success:focus, +.btn-success:active, +.btn-success.active, +.open .dropdown-toggle.btn-success { + color: #ffffff; + background-color: #47a447; + border-color: #398439; +} + +.btn-success:active, +.btn-success.active, +.open .dropdown-toggle.btn-success { + background-image: none; +} + +.btn-success.disabled, +.btn-success[disabled], +fieldset[disabled] .btn-success, +.btn-success.disabled:hover, +.btn-success[disabled]:hover, +fieldset[disabled] .btn-success:hover, +.btn-success.disabled:focus, +.btn-success[disabled]:focus, +fieldset[disabled] .btn-success:focus, +.btn-success.disabled:active, +.btn-success[disabled]:active, +fieldset[disabled] .btn-success:active, +.btn-success.disabled.active, +.btn-success[disabled].active, +fieldset[disabled] .btn-success.active { + background-color: #5cb85c; + border-color: #4cae4c; +} + +.btn-info { + color: #ffffff; + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-info:hover, +.btn-info:focus, +.btn-info:active, +.btn-info.active, +.open .dropdown-toggle.btn-info { + color: #ffffff; + background-color: #39b3d7; + border-color: #269abc; +} + +.btn-info:active, +.btn-info.active, +.open .dropdown-toggle.btn-info { + background-image: none; +} + +.btn-info.disabled, +.btn-info[disabled], +fieldset[disabled] .btn-info, +.btn-info.disabled:hover, +.btn-info[disabled]:hover, +fieldset[disabled] .btn-info:hover, +.btn-info.disabled:focus, +.btn-info[disabled]:focus, +fieldset[disabled] .btn-info:focus, +.btn-info.disabled:active, +.btn-info[disabled]:active, +fieldset[disabled] .btn-info:active, +.btn-info.disabled.active, +.btn-info[disabled].active, +fieldset[disabled] .btn-info.active { + background-color: #5bc0de; + border-color: #46b8da; +} + +.btn-link { + font-weight: normal; + color: #428bca; + cursor: pointer; + border-radius: 0; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled], +fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +.btn-link, +.btn-link:hover, +.btn-link:focus, +.btn-link:active { + border-color: transparent; +} + +.btn-link:hover, +.btn-link:focus { + color: #2a6496; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +fieldset[disabled] .btn-link:hover, +.btn-link[disabled]:focus, +fieldset[disabled] .btn-link:focus { + color: #999999; + text-decoration: none; +} + +.btn-lg { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +.btn-sm, +.btn-xs { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-xs { + padding: 1px 5px; +} + +.btn-block { + display: block; + width: 100%; + padding-right: 0; + padding-left: 0; +} + +.btn-block + .btn-block { + margin-top: 5px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; +} + +.fade.in { + opacity: 1; +} + +.collapse { + display: none; +} + +.collapse.in { + display: block; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition: height 0.35s ease; + transition: height 0.35s ease; +} + +@font-face { + font-family: 'Glyphicons Halflings'; + /*src: url('../fonts/glyphicons-halflings-regular.eot');*/ + /*src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');*/ +} + +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + -webkit-font-smoothing: antialiased; + font-style: normal; + font-weight: normal; + line-height: 1; +} + +.glyphicon-asterisk:before { + content: "\2a"; +} + +.glyphicon-plus:before { + content: "\2b"; +} + +.glyphicon-euro:before { + content: "\20ac"; +} + +.glyphicon-minus:before { + content: "\2212"; +} + +.glyphicon-cloud:before { + content: "\2601"; +} + +.glyphicon-envelope:before { + content: "\2709"; +} + +.glyphicon-pencil:before { + content: "\270f"; +} + +.glyphicon-glass:before { + content: "\e001"; +} + +.glyphicon-music:before { + content: "\e002"; +} + +.glyphicon-search:before { + content: "\e003"; +} + +.glyphicon-heart:before { + content: "\e005"; +} + +.glyphicon-star:before { + content: "\e006"; +} + +.glyphicon-star-empty:before { + content: "\e007"; +} + +.glyphicon-user:before { + content: "\e008"; +} + +.glyphicon-film:before { + content: "\e009"; +} + +.glyphicon-th-large:before { + content: "\e010"; +} + +.glyphicon-th:before { + content: "\e011"; +} + +.glyphicon-th-list:before { + content: "\e012"; +} + +.glyphicon-ok:before { + content: "\e013"; +} + +.glyphicon-remove:before { + content: "\e014"; +} + +.glyphicon-zoom-in:before { + content: "\e015"; +} + +.glyphicon-zoom-out:before { + content: "\e016"; +} + +.glyphicon-off:before { + content: "\e017"; +} + +.glyphicon-signal:before { + content: "\e018"; +} + +.glyphicon-cog:before { + content: "\e019"; +} + +.glyphicon-trash:before { + content: "\e020"; +} + +.glyphicon-home:before { + content: "\e021"; +} + +.glyphicon-file:before { + content: "\e022"; +} + +.glyphicon-time:before { + content: "\e023"; +} + +.glyphicon-road:before { + content: "\e024"; +} + +.glyphicon-download-alt:before { + content: "\e025"; +} + +.glyphicon-download:before { + content: "\e026"; +} + +.glyphicon-upload:before { + content: "\e027"; +} + +.glyphicon-inbox:before { + content: "\e028"; +} + +.glyphicon-play-circle:before { + content: "\e029"; +} + +.glyphicon-repeat:before { + content: "\e030"; +} + +.glyphicon-refresh:before { + content: "\e031"; +} + +.glyphicon-list-alt:before { + content: "\e032"; +} + +.glyphicon-flag:before { + content: "\e034"; +} + +.glyphicon-headphones:before { + content: "\e035"; +} + +.glyphicon-volume-off:before { + content: "\e036"; +} + +.glyphicon-volume-down:before { + content: "\e037"; +} + +.glyphicon-volume-up:before { + content: "\e038"; +} + +.glyphicon-qrcode:before { + content: "\e039"; +} + +.glyphicon-barcode:before { + content: "\e040"; +} + +.glyphicon-tag:before { + content: "\e041"; +} + +.glyphicon-tags:before { + content: "\e042"; +} + +.glyphicon-book:before { + content: "\e043"; +} + +.glyphicon-print:before { + content: "\e045"; +} + +.glyphicon-font:before { + content: "\e047"; +} + +.glyphicon-bold:before { + content: "\e048"; +} + +.glyphicon-italic:before { + content: "\e049"; +} + +.glyphicon-text-height:before { + content: "\e050"; +} + +.glyphicon-text-width:before { + content: "\e051"; +} + +.glyphicon-align-left:before { + content: "\e052"; +} + +.glyphicon-align-center:before { + content: "\e053"; +} + +.glyphicon-align-right:before { + content: "\e054"; +} + +.glyphicon-align-justify:before { + content: "\e055"; +} + +.glyphicon-list:before { + content: "\e056"; +} + +.glyphicon-indent-left:before { + content: "\e057"; +} + +.glyphicon-indent-right:before { + content: "\e058"; +} + +.glyphicon-facetime-video:before { + content: "\e059"; +} + +.glyphicon-picture:before { + content: "\e060"; +} + +.glyphicon-map-marker:before { + content: "\e062"; +} + +.glyphicon-adjust:before { + content: "\e063"; +} + +.glyphicon-tint:before { + content: "\e064"; +} + +.glyphicon-edit:before { + content: "\e065"; +} + +.glyphicon-share:before { + content: "\e066"; +} + +.glyphicon-check:before { + content: "\e067"; +} + +.glyphicon-move:before { + content: "\e068"; +} + +.glyphicon-step-backward:before { + content: "\e069"; +} + +.glyphicon-fast-backward:before { + content: "\e070"; +} + +.glyphicon-backward:before { + content: "\e071"; +} + +.glyphicon-play:before { + content: "\e072"; +} + +.glyphicon-pause:before { + content: "\e073"; +} + +.glyphicon-stop:before { + content: "\e074"; +} + +.glyphicon-forward:before { + content: "\e075"; +} + +.glyphicon-fast-forward:before { + content: "\e076"; +} + +.glyphicon-step-forward:before { + content: "\e077"; +} + +.glyphicon-eject:before { + content: "\e078"; +} + +.glyphicon-chevron-left:before { + content: "\e079"; +} + +.glyphicon-chevron-right:before { + content: "\e080"; +} + +.glyphicon-plus-sign:before { + content: "\e081"; +} + +.glyphicon-minus-sign:before { + content: "\e082"; +} + +.glyphicon-remove-sign:before { + content: "\e083"; +} + +.glyphicon-ok-sign:before { + content: "\e084"; +} + +.glyphicon-question-sign:before { + content: "\e085"; +} + +.glyphicon-info-sign:before { + content: "\e086"; +} + +.glyphicon-screenshot:before { + content: "\e087"; +} + +.glyphicon-remove-circle:before { + content: "\e088"; +} + +.glyphicon-ok-circle:before { + content: "\e089"; +} + +.glyphicon-ban-circle:before { + content: "\e090"; +} + +.glyphicon-arrow-left:before { + content: "\e091"; +} + +.glyphicon-arrow-right:before { + content: "\e092"; +} + +.glyphicon-arrow-up:before { + content: "\e093"; +} + +.glyphicon-arrow-down:before { + content: "\e094"; +} + +.glyphicon-share-alt:before { + content: "\e095"; +} + +.glyphicon-resize-full:before { + content: "\e096"; +} + +.glyphicon-resize-small:before { + content: "\e097"; +} + +.glyphicon-exclamation-sign:before { + content: "\e101"; +} + +.glyphicon-gift:before { + content: "\e102"; +} + +.glyphicon-leaf:before { + content: "\e103"; +} + +.glyphicon-eye-open:before { + content: "\e105"; +} + +.glyphicon-eye-close:before { + content: "\e106"; +} + +.glyphicon-warning-sign:before { + content: "\e107"; +} + +.glyphicon-plane:before { + content: "\e108"; +} + +.glyphicon-random:before { + content: "\e110"; +} + +.glyphicon-comment:before { + content: "\e111"; +} + +.glyphicon-magnet:before { + content: "\e112"; +} + +.glyphicon-chevron-up:before { + content: "\e113"; +} + +.glyphicon-chevron-down:before { + content: "\e114"; +} + +.glyphicon-retweet:before { + content: "\e115"; +} + +.glyphicon-shopping-cart:before { + content: "\e116"; +} + +.glyphicon-folder-close:before { + content: "\e117"; +} + +.glyphicon-folder-open:before { + content: "\e118"; +} + +.glyphicon-resize-vertical:before { + content: "\e119"; +} + +.glyphicon-resize-horizontal:before { + content: "\e120"; +} + +.glyphicon-hdd:before { + content: "\e121"; +} + +.glyphicon-bullhorn:before { + content: "\e122"; +} + +.glyphicon-certificate:before { + content: "\e124"; +} + +.glyphicon-thumbs-up:before { + content: "\e125"; +} + +.glyphicon-thumbs-down:before { + content: "\e126"; +} + +.glyphicon-hand-right:before { + content: "\e127"; +} + +.glyphicon-hand-left:before { + content: "\e128"; +} + +.glyphicon-hand-up:before { + content: "\e129"; +} + +.glyphicon-hand-down:before { + content: "\e130"; +} + +.glyphicon-circle-arrow-right:before { + content: "\e131"; +} + +.glyphicon-circle-arrow-left:before { + content: "\e132"; +} + +.glyphicon-circle-arrow-up:before { + content: "\e133"; +} + +.glyphicon-circle-arrow-down:before { + content: "\e134"; +} + +.glyphicon-globe:before { + content: "\e135"; +} + +.glyphicon-tasks:before { + content: "\e137"; +} + +.glyphicon-filter:before { + content: "\e138"; +} + +.glyphicon-fullscreen:before { + content: "\e140"; +} + +.glyphicon-dashboard:before { + content: "\e141"; +} + +.glyphicon-heart-empty:before { + content: "\e143"; +} + +.glyphicon-link:before { + content: "\e144"; +} + +.glyphicon-phone:before { + content: "\e145"; +} + +.glyphicon-usd:before { + content: "\e148"; +} + +.glyphicon-gbp:before { + content: "\e149"; +} + +.glyphicon-sort:before { + content: "\e150"; +} + +.glyphicon-sort-by-alphabet:before { + content: "\e151"; +} + +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; +} + +.glyphicon-sort-by-order:before { + content: "\e153"; +} + +.glyphicon-sort-by-order-alt:before { + content: "\e154"; +} + +.glyphicon-sort-by-attributes:before { + content: "\e155"; +} + +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; +} + +.glyphicon-unchecked:before { + content: "\e157"; +} + +.glyphicon-expand:before { + content: "\e158"; +} + +.glyphicon-collapse-down:before { + content: "\e159"; +} + +.glyphicon-collapse-up:before { + content: "\e160"; +} + +.glyphicon-log-in:before { + content: "\e161"; +} + +.glyphicon-flash:before { + content: "\e162"; +} + +.glyphicon-log-out:before { + content: "\e163"; +} + +.glyphicon-new-window:before { + content: "\e164"; +} + +.glyphicon-record:before { + content: "\e165"; +} + +.glyphicon-save:before { + content: "\e166"; +} + +.glyphicon-open:before { + content: "\e167"; +} + +.glyphicon-saved:before { + content: "\e168"; +} + +.glyphicon-import:before { + content: "\e169"; +} + +.glyphicon-export:before { + content: "\e170"; +} + +.glyphicon-send:before { + content: "\e171"; +} + +.glyphicon-floppy-disk:before { + content: "\e172"; +} + +.glyphicon-floppy-saved:before { + content: "\e173"; +} + +.glyphicon-floppy-remove:before { + content: "\e174"; +} + +.glyphicon-floppy-save:before { + content: "\e175"; +} + +.glyphicon-floppy-open:before { + content: "\e176"; +} + +.glyphicon-credit-card:before { + content: "\e177"; +} + +.glyphicon-transfer:before { + content: "\e178"; +} + +.glyphicon-cutlery:before { + content: "\e179"; +} + +.glyphicon-header:before { + content: "\e180"; +} + +.glyphicon-compressed:before { + content: "\e181"; +} + +.glyphicon-earphone:before { + content: "\e182"; +} + +.glyphicon-phone-alt:before { + content: "\e183"; +} + +.glyphicon-tower:before { + content: "\e184"; +} + +.glyphicon-stats:before { + content: "\e185"; +} + +.glyphicon-sd-video:before { + content: "\e186"; +} + +.glyphicon-hd-video:before { + content: "\e187"; +} + +.glyphicon-subtitles:before { + content: "\e188"; +} + +.glyphicon-sound-stereo:before { + content: "\e189"; +} + +.glyphicon-sound-dolby:before { + content: "\e190"; +} + +.glyphicon-sound-5-1:before { + content: "\e191"; +} + +.glyphicon-sound-6-1:before { + content: "\e192"; +} + +.glyphicon-sound-7-1:before { + content: "\e193"; +} + +.glyphicon-copyright-mark:before { + content: "\e194"; +} + +.glyphicon-registration-mark:before { + content: "\e195"; +} + +.glyphicon-cloud-download:before { + content: "\e197"; +} + +.glyphicon-cloud-upload:before { + content: "\e198"; +} + +.glyphicon-tree-conifer:before { + content: "\e199"; +} + +.glyphicon-tree-deciduous:before { + content: "\e200"; +} + +.glyphicon-briefcase:before { + content: "\1f4bc"; +} + +.glyphicon-calendar:before { + content: "\1f4c5"; +} + +.glyphicon-pushpin:before { + content: "\1f4cc"; +} + +.glyphicon-paperclip:before { + content: "\1f4ce"; +} + +.glyphicon-camera:before { + content: "\1f4f7"; +} + +.glyphicon-lock:before { + content: "\1f512"; +} + +.glyphicon-bell:before { + content: "\1f514"; +} + +.glyphicon-bookmark:before { + content: "\1f516"; +} + +.glyphicon-fire:before { + content: "\1f525"; +} + +.glyphicon-wrench:before { + content: "\1f527"; +} + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid #000000; + border-right: 4px solid transparent; + border-bottom: 0 dotted; + border-left: 4px solid transparent; + content: ""; +} + +.dropdown { + position: relative; +} + +.dropdown-toggle:focus { + outline: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 14px; + list-style: none; + background-color: #ffffff; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + background-clip: padding-box; +} + +.dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 1.428571429; + color: #333333; + white-space: nowrap; +} + +.dropdown-menu > li > a:hover, +.dropdown-menu > li > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #428bca; +} + +.dropdown-menu > .active > a, +.dropdown-menu > .active > a:hover, +.dropdown-menu > .active > a:focus { + color: #ffffff; + text-decoration: none; + background-color: #428bca; + outline: 0; +} + +.dropdown-menu > .disabled > a, +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + color: #999999; +} + +.dropdown-menu > .disabled > a:hover, +.dropdown-menu > .disabled > a:focus { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} + +.open > .dropdown-menu { + display: block; +} + +.open > a { + outline: 0; +} + +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.428571429; + color: #999999; +} + +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; +} + +.pull-right > .dropdown-menu { + right: 0; + left: auto; +} + +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top: 0 dotted; + border-bottom: 4px solid #000000; + content: ""; +} + +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 1px; +} + +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; + } +} + +.btn-default .caret { + border-top-color: #333333; +} + +.btn-primary .caret, +.btn-success .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret { + border-top-color: #fff; +} + +.dropup .btn-default .caret { + border-bottom-color: #333333; +} + +.dropup .btn-primary .caret, +.dropup .btn-success .caret, +.dropup .btn-warning .caret, +.dropup .btn-danger .caret, +.dropup .btn-info .caret { + border-bottom-color: #fff; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; +} + +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + float: left; +} + +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover, +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus, +.btn-group > .btn:active, +.btn-group-vertical > .btn:active, +.btn-group > .btn.active, +.btn-group-vertical > .btn.active { + z-index: 2; +} + +.btn-group > .btn:focus, +.btn-group-vertical > .btn:focus { + outline: none; +} + +.btn-group .btn + .btn, +.btn-group .btn + .btn-group, +.btn-group .btn-group + .btn, +.btn-group .btn-group + .btn-group { + margin-left: -1px; +} + +.btn-toolbar:before, +.btn-toolbar:after { + display: table; + content: " "; +} + +.btn-toolbar:after { + clear: both; +} + +.btn-toolbar:before, +.btn-toolbar:after { + display: table; + content: " "; +} + +.btn-toolbar:after { + clear: both; +} + +.btn-toolbar .btn-group { + float: left; +} + +.btn-toolbar > .btn + .btn, +.btn-toolbar > .btn-group + .btn, +.btn-toolbar > .btn + .btn-group, +.btn-toolbar > .btn-group + .btn-group { + margin-left: 5px; +} + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; +} + +.btn-group > .btn:first-child { + margin-left: 0; +} + +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn:last-child:not(:first-child), +.btn-group > .dropdown-toggle:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.btn-group > .btn-group { + float: left; +} + +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} + +.btn-group > .btn-group:first-child > .btn:last-child, +.btn-group > .btn-group:first-child > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn-group:last-child > .btn:first-child { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline: 0; +} + +.btn-group-xs > .btn { + padding: 5px 10px; + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-group-sm > .btn { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +.btn-group-lg > .btn { + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; +} + +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; +} + +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); +} + +.btn .caret { + margin-left: 0; +} + +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; +} + +.dropup .btn-lg .caret { + border-width: 0 5px 5px; +} + +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + display: block; + float: none; + width: 100%; + max-width: 100%; +} + +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after { + display: table; + content: " "; +} + +.btn-group-vertical > .btn-group:after { + clear: both; +} + +.btn-group-vertical > .btn-group:before, +.btn-group-vertical > .btn-group:after { + display: table; + content: " "; +} + +.btn-group-vertical > .btn-group:after { + clear: both; +} + +.btn-group-vertical > .btn-group > .btn { + float: none; +} + +.btn-group-vertical > .btn + .btn, +.btn-group-vertical > .btn + .btn-group, +.btn-group-vertical > .btn-group + .btn, +.btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; +} + +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-right-radius: 0; + border-bottom-left-radius: 4px; + border-top-left-radius: 0; +} + +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; +} + +.btn-group-vertical > .btn-group:first-child > .btn:last-child, +.btn-group-vertical > .btn-group:first-child > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn-group:last-child > .btn:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.btn-group-justified { + display: table; + width: 100%; + border-collapse: separate; + table-layout: fixed; +} + +.btn-group-justified .btn { + display: table-cell; + float: none; + width: 1%; +} + +[data-toggle="buttons"] > .btn > input[type="radio"], +[data-toggle="buttons"] > .btn > input[type="checkbox"] { + display: none; +} + +.input-group { + position: relative; + display: table; + border-collapse: separate; +} + +.input-group.col { + float: none; + padding-right: 0; + padding-left: 0; +} + +.input-group .form-control { + width: 100%; + margin-bottom: 0; +} + +.input-group-lg > .form-control, +.input-group-lg > .input-group-addon, +.input-group-lg > .input-group-btn > .btn { + height: 45px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.33; + border-radius: 6px; +} + +select.input-group-lg > .form-control, +select.input-group-lg > .input-group-addon, +select.input-group-lg > .input-group-btn > .btn { + height: 45px; + line-height: 45px; +} + +textarea.input-group-lg > .form-control, +textarea.input-group-lg > .input-group-addon, +textarea.input-group-lg > .input-group-btn > .btn { + height: auto; +} + +.input-group-sm > .form-control, +.input-group-sm > .input-group-addon, +.input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; +} + +select.input-group-sm > .form-control, +select.input-group-sm > .input-group-addon, +select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; +} + +textarea.input-group-sm > .form-control, +textarea.input-group-sm > .input-group-addon, +textarea.input-group-sm > .input-group-btn > .btn { + height: auto; +} + +.input-group-addon, +.input-group-btn, +.input-group .form-control { + display: table-cell; +} + +.input-group-addon:not(:first-child):not(:last-child), +.input-group-btn:not(:first-child):not(:last-child), +.input-group .form-control:not(:first-child):not(:last-child) { + border-radius: 0; +} + +.input-group-addon, +.input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; +} + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: normal; + line-height: 1; + text-align: center; + background-color: #eeeeee; + border: 1px solid #cccccc; + border-radius: 4px; +} + +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; +} + +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; +} + +.input-group-addon input[type="radio"], +.input-group-addon input[type="checkbox"] { + margin-top: 0; +} + +.input-group .form-control:first-child, +.input-group-addon:first-child, +.input-group-btn:first-child > .btn, +.input-group-btn:first-child > .dropdown-toggle, +.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group-addon:first-child { + border-right: 0; +} + +.input-group .form-control:last-child, +.input-group-addon:last-child, +.input-group-btn:last-child > .btn, +.input-group-btn:last-child > .dropdown-toggle, +.input-group-btn:first-child > .btn:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; +} + +.input-group-addon:last-child { + border-left: 0; +} + +.input-group-btn { + position: relative; + white-space: nowrap; +} + +.input-group-btn > .btn { + position: relative; +} + +.input-group-btn > .btn + .btn { + margin-left: -4px; +} + +.input-group-btn > .btn:hover, +.input-group-btn > .btn:active { + z-index: 2; +} + +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav:before, +.nav:after { + display: table; + content: " "; +} + +.nav:after { + clear: both; +} + +.nav:before, +.nav:after { + display: table; + content: " "; +} + +.nav:after { + clear: both; +} + +.nav > li { + position: relative; + display: block; +} + +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; +} + +.nav > li > a:hover, +.nav > li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} + +.nav > li.disabled > a { + color: #999999; +} + +.nav > li.disabled > a:hover, +.nav > li.disabled > a:focus { + color: #999999; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; +} + +.nav .open > a, +.nav .open > a:hover, +.nav .open > a:focus { + background-color: #eeeeee; + border-color: #428bca; +} + +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; +} + +.nav > li > a > img { + max-width: none; +} + +.nav-tabs { + border-bottom: 1px solid #dddddd; +} + +.nav-tabs > li { + float: left; + margin-bottom: -1px; +} + +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.428571429; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; +} + +.nav-tabs > li > a:hover { + border-color: #eeeeee #eeeeee #dddddd; +} + +.nav-tabs > li.active > a, +.nav-tabs > li.active > a:hover, +.nav-tabs > li.active > a:focus { + color: #555555; + cursor: default; + background-color: #ffffff; + border: 1px solid #dddddd; + border-bottom-color: transparent; +} + +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; +} + +.nav-tabs.nav-justified > li { + float: none; +} + +.nav-tabs.nav-justified > li > a { + text-align: center; +} + +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; + } +} + +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-bottom: 1px solid #dddddd; +} + +.nav-tabs.nav-justified > .active > a { + border-bottom-color: #ffffff; +} + +.nav-pills > li { + float: left; +} + +.nav-pills > li > a { + border-radius: 5px; +} + +.nav-pills > li + li { + margin-left: 2px; +} + +.nav-pills > li.active > a, +.nav-pills > li.active > a:hover, +.nav-pills > li.active > a:focus { + color: #ffffff; + background-color: #428bca; +} + +.nav-stacked > li { + float: none; +} + +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; +} + +.nav-justified { + width: 100%; +} + +.nav-justified > li { + float: none; +} + +.nav-justified > li > a { + text-align: center; +} + +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; + } +} + +.nav-tabs-justified { + border-bottom: 0; +} + +.nav-tabs-justified > li > a { + margin-right: 0; + border-bottom: 1px solid #dddddd; +} + +.nav-tabs-justified > .active > a { + border-bottom-color: #ffffff; +} + +.tabbable:before, +.tabbable:after { + display: table; + content: " "; +} + +.tabbable:after { + clear: both; +} + +.tabbable:before, +.tabbable:after { + display: table; + content: " "; +} + +.tabbable:after { + clear: both; +} + +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display: none; +} + +.tab-content > .active, +.pill-content > .active { + display: block; +} + +.nav .caret { + border-top-color: #428bca; + border-bottom-color: #428bca; +} + +.nav a:hover .caret { + border-top-color: #2a6496; + border-bottom-color: #2a6496; +} + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.navbar { + position: relative; + z-index: 1000; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; +} + +.navbar:before, +.navbar:after { + display: table; + content: " "; +} + +.navbar:after { + clear: both; +} + +.navbar:before, +.navbar:after { + display: table; + content: " "; +} + +.navbar:after { + clear: both; +} + +@media (min-width: 768px) { + .navbar { + border-radius: 4px; + } +} + +.navbar-header:before, +.navbar-header:after { + display: table; + content: " "; +} + +.navbar-header:after { + clear: both; +} + +.navbar-header:before, +.navbar-header:after { + display: table; + content: " "; +} + +.navbar-header:after { + clear: both; +} + +@media (min-width: 768px) { + .navbar-header { + float: left; + } +} + +.navbar-collapse { + max-height: 340px; + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + border-top: 1px solid transparent; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + -webkit-overflow-scrolling: touch; +} + +.navbar-collapse:before, +.navbar-collapse:after { + display: table; + content: " "; +} + +.navbar-collapse:after { + clear: both; +} + +.navbar-collapse:before, +.navbar-collapse:after { + display: table; + content: " "; +} + +.navbar-collapse:after { + clear: both; +} + +.navbar-collapse.in { + overflow-y: auto; +} + +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + box-shadow: none; + } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + } + .navbar-collapse.in { + overflow-y: visible; + } + .navbar-collapse .navbar-nav.navbar-left:first-child { + margin-left: -15px; + } + .navbar-collapse .navbar-nav.navbar-right:last-child { + margin-right: -15px; + } + .navbar-collapse .navbar-text:last-child { + margin-right: 0; + } +} + +.container > .navbar-header, +.container > .navbar-collapse { + margin-right: -15px; + margin-left: -15px; +} + +@media (min-width: 768px) { + .container > .navbar-header, + .container > .navbar-collapse { + margin-right: 0; + margin-left: 0; + } +} + +.navbar-static-top { + border-width: 0 0 1px; +} + +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; + } +} + +.navbar-fixed-top, +.navbar-fixed-bottom { + position: fixed; + right: 0; + left: 0; + border-width: 0 0 1px; +} + +@media (min-width: 768px) { + .navbar-fixed-top, + .navbar-fixed-bottom { + border-radius: 0; + } +} + +.navbar-fixed-top { + top: 0; + z-index: 1030; +} + +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; +} + +.navbar-brand { + float: left; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; +} + +.navbar-brand:hover, +.navbar-brand:focus { + text-decoration: none; +} + +@media (min-width: 768px) { + .navbar > .container .navbar-brand { + margin-left: -15px; + } +} + +.navbar-toggle { + position: relative; + float: right; + padding: 9px 10px; + margin-top: 8px; + margin-right: 15px; + margin-bottom: 8px; + background-color: transparent; + border: 1px solid transparent; + border-radius: 4px; +} + +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; +} + +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; +} + +@media (min-width: 768px) { + .navbar-toggle { + display: none; + } +} + +.navbar-nav { + margin: 7.5px -15px; +} + +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; +} + +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + box-shadow: none; + } + .navbar-nav .open .dropdown-menu > li > a, + .navbar-nav .open .dropdown-menu .dropdown-header { + padding: 5px 15px 5px 25px; + } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; + } + .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-nav .open .dropdown-menu > li > a:focus { + background-image: none; + } +} + +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; + } + .navbar-nav > li { + float: left; + } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; + } +} + +@media (min-width: 768px) { + .navbar-left { + float: left !important; + } + .navbar-right { + float: right !important; + } +} + +.navbar-form { + padding: 10px 15px; + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); +} + +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; + } + .navbar-form .form-control { + display: inline-block; + } + .navbar-form .radio, + .navbar-form .checkbox { + display: inline-block; + padding-left: 0; + margin-top: 0; + margin-bottom: 0; + } + .navbar-form .radio input[type="radio"], + .navbar-form .checkbox input[type="checkbox"] { + float: none; + margin-left: 0; + } +} + +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; + } +} + +@media (min-width: 768px) { + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; + } +} + +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.navbar-nav.pull-right > li > .dropdown-menu, +.navbar-nav > li > .dropdown-menu.pull-right { + right: 0; + left: auto; +} + +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px; +} + +.navbar-text { + float: left; + margin-top: 15px; + margin-bottom: 15px; +} + +@media (min-width: 768px) { + .navbar-text { + margin-right: 15px; + margin-left: 15px; + } +} + +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; +} + +.navbar-default .navbar-brand { + color: #777777; +} + +.navbar-default .navbar-brand:hover, +.navbar-default .navbar-brand:focus { + color: #5e5e5e; + background-color: transparent; +} + +.navbar-default .navbar-text { + color: #777777; +} + +.navbar-default .navbar-nav > li > a { + color: #777777; +} + +.navbar-default .navbar-nav > li > a:hover, +.navbar-default .navbar-nav > li > a:focus { + color: #333333; + background-color: transparent; +} + +.navbar-default .navbar-nav > .active > a, +.navbar-default .navbar-nav > .active > a:hover, +.navbar-default .navbar-nav > .active > a:focus { + color: #555555; + background-color: #e7e7e7; +} + +.navbar-default .navbar-nav > .disabled > a, +.navbar-default .navbar-nav > .disabled > a:hover, +.navbar-default .navbar-nav > .disabled > a:focus { + color: #cccccc; + background-color: transparent; +} + +.navbar-default .navbar-toggle { + border-color: #dddddd; +} + +.navbar-default .navbar-toggle:hover, +.navbar-default .navbar-toggle:focus { + background-color: #dddddd; +} + +.navbar-default .navbar-toggle .icon-bar { + background-color: #cccccc; +} + +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #e6e6e6; +} + +.navbar-default .navbar-nav > .dropdown > a:hover .caret, +.navbar-default .navbar-nav > .dropdown > a:focus .caret { + border-top-color: #333333; + border-bottom-color: #333333; +} + +.navbar-default .navbar-nav > .open > a, +.navbar-default .navbar-nav > .open > a:hover, +.navbar-default .navbar-nav > .open > a:focus { + color: #555555; + background-color: #e7e7e7; +} + +.navbar-default .navbar-nav > .open > a .caret, +.navbar-default .navbar-nav > .open > a:hover .caret, +.navbar-default .navbar-nav > .open > a:focus .caret { + border-top-color: #555555; + border-bottom-color: #555555; +} + +.navbar-default .navbar-nav > .dropdown > a .caret { + border-top-color: #777777; + border-bottom-color: #777777; +} + +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777777; + } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus { + color: #333333; + background-color: transparent; + } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #555555; + background-color: #e7e7e7; + } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #cccccc; + background-color: transparent; + } +} + +.navbar-default .navbar-link { + color: #777777; +} + +.navbar-default .navbar-link:hover { + color: #333333; +} + +.navbar-inverse { + background-color: #222222; + border-color: #080808; +} + +.navbar-inverse .navbar-brand { + color: #999999; +} + +.navbar-inverse .navbar-brand:hover, +.navbar-inverse .navbar-brand:focus { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .navbar-text { + color: #999999; +} + +.navbar-inverse .navbar-nav > li > a { + color: #999999; +} + +.navbar-inverse .navbar-nav > li > a:hover, +.navbar-inverse .navbar-nav > li > a:focus { + color: #ffffff; + background-color: transparent; +} + +.navbar-inverse .navbar-nav > .active > a, +.navbar-inverse .navbar-nav > .active > a:hover, +.navbar-inverse .navbar-nav > .active > a:focus { + color: #ffffff; + background-color: #080808; +} + +.navbar-inverse .navbar-nav > .disabled > a, +.navbar-inverse .navbar-nav > .disabled > a:hover, +.navbar-inverse .navbar-nav > .disabled > a:focus { + color: #444444; + background-color: transparent; +} + +.navbar-inverse .navbar-toggle { + border-color: #333333; +} + +.navbar-inverse .navbar-toggle:hover, +.navbar-inverse .navbar-toggle:focus { + background-color: #333333; +} + +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #ffffff; +} + +.navbar-inverse .navbar-collapse, +.navbar-inverse .navbar-form { + border-color: #101010; +} + +.navbar-inverse .navbar-nav > .open > a, +.navbar-inverse .navbar-nav > .open > a:hover, +.navbar-inverse .navbar-nav > .open > a:focus { + color: #ffffff; + background-color: #080808; +} + +.navbar-inverse .navbar-nav > .dropdown > a:hover .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +.navbar-inverse .navbar-nav > .dropdown > a .caret { + border-top-color: #999999; + border-bottom-color: #999999; +} + +.navbar-inverse .navbar-nav > .open > a .caret, +.navbar-inverse .navbar-nav > .open > a:hover .caret, +.navbar-inverse .navbar-nav > .open > a:focus .caret { + border-top-color: #ffffff; + border-bottom-color: #ffffff; +} + +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #999999; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus { + color: #ffffff; + background-color: transparent; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus { + color: #ffffff; + background-color: #080808; + } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus { + color: #444444; + background-color: transparent; + } +} + +.navbar-inverse .navbar-link { + color: #999999; +} + +.navbar-inverse .navbar-link:hover { + color: #ffffff; +} + +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; +} + +.breadcrumb > li { + display: inline-block; +} + +.breadcrumb > li + li:before { + padding: 0 5px; + color: #cccccc; + content: "/\00a0"; +} + +.breadcrumb > .active { + color: #999999; +} + +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; +} + +.pagination > li { + display: inline; +} + +.pagination > li > a, +.pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + margin-left: -1px; + line-height: 1.428571429; + text-decoration: none; + background-color: #ffffff; + border: 1px solid #dddddd; +} + +.pagination > li:first-child > a, +.pagination > li:first-child > span { + margin-left: 0; + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; +} + +.pagination > li:last-child > a, +.pagination > li:last-child > span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; +} + +.pagination > li > a:hover, +.pagination > li > span:hover, +.pagination > li > a:focus, +.pagination > li > span:focus { + background-color: #eeeeee; +} + +.pagination > .active > a, +.pagination > .active > span, +.pagination > .active > a:hover, +.pagination > .active > span:hover, +.pagination > .active > a:focus, +.pagination > .active > span:focus { + z-index: 2; + color: #ffffff; + cursor: default; + background-color: #428bca; + border-color: #428bca; +} + +.pagination > .disabled > span, +.pagination > .disabled > a, +.pagination > .disabled > a:hover, +.pagination > .disabled > a:focus { + color: #999999; + cursor: not-allowed; + background-color: #ffffff; + border-color: #dddddd; +} + +.pagination-lg > li > a, +.pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; +} + +.pagination-lg > li:first-child > a, +.pagination-lg > li:first-child > span { + border-bottom-left-radius: 6px; + border-top-left-radius: 6px; +} + +.pagination-lg > li:last-child > a, +.pagination-lg > li:last-child > span { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; +} + +.pagination-sm > li > a, +.pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; +} + +.pagination-sm > li:first-child > a, +.pagination-sm > li:first-child > span { + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; +} + +.pagination-sm > li:last-child > a, +.pagination-sm > li:last-child > span { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} + +.pager { + padding-left: 0; + margin: 20px 0; + text-align: center; + list-style: none; +} + +.pager:before, +.pager:after { + display: table; + content: " "; +} + +.pager:after { + clear: both; +} + +.pager:before, +.pager:after { + display: table; + content: " "; +} + +.pager:after { + clear: both; +} + +.pager li { + display: inline; +} + +.pager li > a, +.pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 15px; +} + +.pager li > a:hover, +.pager li > a:focus { + text-decoration: none; + background-color: #eeeeee; +} + +.pager .next > a, +.pager .next > span { + float: right; +} + +.pager .previous > a, +.pager .previous > span { + float: left; +} + +.pager .disabled > a, +.pager .disabled > a:hover, +.pager .disabled > a:focus, +.pager .disabled > span { + color: #999999; + cursor: not-allowed; + background-color: #ffffff; +} + +.label { + display: inline; + padding: .2em .6em .3em; + font-size: 75%; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; +} + +.label[href]:hover, +.label[href]:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.label:empty { + display: none; +} + +.label-default { + background-color: #999999; +} + +.label-default[href]:hover, +.label-default[href]:focus { + background-color: #808080; +} + +.label-primary { + background-color: #428bca; +} + +.label-primary[href]:hover, +.label-primary[href]:focus { + background-color: #3071a9; +} + +.label-success { + background-color: #5cb85c; +} + +.label-success[href]:hover, +.label-success[href]:focus { + background-color: #449d44; +} + +.label-info { + background-color: #5bc0de; +} + +.label-info[href]:hover, +.label-info[href]:focus { + background-color: #31b0d5; +} + +.label-warning { + background-color: #f0ad4e; +} + +.label-warning[href]:hover, +.label-warning[href]:focus { + background-color: #ec971f; +} + +.label-danger { + background-color: #d9534f; +} + +.label-danger[href]:hover, +.label-danger[href]:focus { + background-color: #c9302c; +} + +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + line-height: 1; + color: #ffffff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + background-color: #999999; + border-radius: 10px; +} + +.badge:empty { + display: none; +} + +a.badge:hover, +a.badge:focus { + color: #ffffff; + text-decoration: none; + cursor: pointer; +} + +.btn .badge { + position: relative; + top: -1px; +} + +a.list-group-item.active > .badge, +.nav-pills > .active > a > .badge { + color: #428bca; + background-color: #ffffff; +} + +.nav-pills > li > a > .badge { + margin-left: 3px; +} + +.jumbotron { + padding: 30px; + margin-bottom: 30px; + font-size: 21px; + font-weight: 200; + line-height: 2.1428571435; + color: inherit; + background-color: #eeeeee; +} + +.jumbotron h1 { + line-height: 1; + color: inherit; +} + +.jumbotron p { + line-height: 1.4; +} + +.container .jumbotron { + border-radius: 6px; +} + +@media screen and (min-width: 768px) { + .jumbotron { + padding-top: 48px; + padding-bottom: 48px; + } + .container .jumbotron { + padding-right: 60px; + padding-left: 60px; + } + .jumbotron h1 { + font-size: 63px; + } +} + +.thumbnail { + display: inline-block; + display: block; + height: auto; + max-width: 100%; + padding: 4px; + line-height: 1.428571429; + background-color: #ffffff; + border: 1px solid #dddddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; +} + +.thumbnail > img { + display: block; + height: auto; + max-width: 100%; +} + +a.thumbnail:hover, +a.thumbnail:focus { + border-color: #428bca; +} + +.thumbnail > img { + margin-right: auto; + margin-left: auto; +} + +.thumbnail .caption { + padding: 9px; + color: #333333; +} + +.alert { + padding: 15px; + margin-bottom: 20px; + /*border: 1px solid transparent;*/ + border-radius: 4px; +} + +.alert h4 { + margin-top: 0; + color: inherit; +} + +.alert .alert-link { + font-weight: bold; +} + +.alert > p, +.alert > ul { + margin-bottom: 0; +} + +.alert > p + p { + margin-top: 5px; +} + +.alert-dismissable { + padding-right: 35px; +} + +.alert-dismissable .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; +} + +.alert-success { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-success hr { + border-top-color: #c9e2b3; +} + +.alert-success .alert-link { + color: #356635; +} + +.alert-info { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-info hr { + border-top-color: #a6e1ec; +} + +.alert-info .alert-link { + color: #2d6987; +} + +.alert-warning { + color: #c09853; + background-color: #fcf8e3; + border-color: #fbeed5; +} + +.alert-warning hr { + border-top-color: #f8e5be; +} + +.alert-warning .alert-link { + color: #a47e3c; +} + +.alert-danger { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.alert-danger hr { + border-top-color: #e6c1c7; +} + +.alert-danger .alert-link { + color: #953b39; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-moz-keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +@-o-keyframes progress-bar-stripes { + from { + background-position: 0 0; + } + to { + background-position: 40px 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; + } + to { + background-position: 0 0; + } +} + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); +} + +.progress-bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + color: #ffffff; + text-align: center; + background-color: #428bca; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-transition: width 0.6s ease; + transition: width 0.6s ease; +} + +.progress-striped .progress-bar { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 40px 40px; +} + +.progress.active .progress-bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -moz-animation: progress-bar-stripes 2s linear infinite; + -ms-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; +} + +.progress-bar-success { + background-color: #5cb85c; +} + +.progress-striped .progress-bar-success { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-bar-info { + background-color: #5bc0de; +} + +.progress-striped .progress-bar-info { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-bar-warning { + background-color: #f0ad4e; +} + +.progress-striped .progress-bar-warning { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.progress-bar-danger { + background-color: #d9534f; +} + +.progress-striped .progress-bar-danger { + background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); +} + +.media, +.media-body { + overflow: hidden; + zoom: 1; +} + +.media, +.media .media { + margin-top: 15px; +} + +.media:first-child { + margin-top: 0; +} + +.media-object { + display: block; +} + +.media-heading { + margin: 0 0 5px; +} + +.media > .pull-left { + margin-right: 10px; +} + +.media > .pull-right { + margin-left: 10px; +} + +.media-list { + padding-left: 0; + list-style: none; +} + +.list-group { + padding-left: 0; + margin-bottom: 20px; +} + +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #ffffff; + border: 1px solid #dddddd; +} + +.list-group-item:first-child { + border-top-right-radius: 4px; + border-top-left-radius: 4px; +} + +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; +} + +.list-group-item > .badge { + float: right; +} + +.list-group-item > .badge + .badge { + margin-right: 5px; +} + +a.list-group-item { + color: #555555; +} + +a.list-group-item .list-group-item-heading { + color: #333333; +} + +a.list-group-item:hover, +a.list-group-item:focus { + text-decoration: none; + background-color: #f5f5f5; +} + +.list-group-item.active, +.list-group-item.active:hover, +.list-group-item.active:focus { + z-index: 2; + color: #ffffff; + background-color: #428bca; + border-color: #428bca; +} + +.list-group-item.active .list-group-item-heading, +.list-group-item.active:hover .list-group-item-heading, +.list-group-item.active:focus .list-group-item-heading { + color: inherit; +} + +.list-group-item.active .list-group-item-text, +.list-group-item.active:hover .list-group-item-text, +.list-group-item.active:focus .list-group-item-text { + color: #e1edf7; +} + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; +} + +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; +} + +.panel { + margin-bottom: 20px; + background-color: #ffffff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.panel-body { + padding: 15px; +} + +.panel-body:before, +.panel-body:after { + display: table; + content: " "; +} + +.panel-body:after { + clear: both; +} + +.panel-body:before, +.panel-body:after { + display: table; + content: " "; +} + +.panel-body:after { + clear: both; +} + +.panel > .list-group { + margin-bottom: 0; +} + +.panel > .list-group .list-group-item { + border-width: 1px 0; +} + +.panel > .list-group .list-group-item:first-child { + border-top-right-radius: 0; + border-top-left-radius: 0; +} + +.panel > .list-group .list-group-item:last-child { + border-bottom: 0; +} + +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; +} + +.panel > .table { + margin-bottom: 0; +} + +.panel > .panel-body + .table { + border-top: 1px solid #dddddd; +} + +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-right-radius: 3px; + border-top-left-radius: 3px; +} + +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; +} + +.panel-title > a { + color: inherit; +} + +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #dddddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; +} + +.panel-group .panel { + margin-bottom: 0; + overflow: hidden; + border-radius: 4px; +} + +.panel-group .panel + .panel { + margin-top: 5px; +} + +.panel-group .panel-heading { + border-bottom: 0; +} + +.panel-group .panel-heading + .panel-collapse .panel-body { + border-top: 1px solid #dddddd; +} + +.panel-group .panel-footer { + border-top: 0; +} + +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #dddddd; +} + +.panel-default { + border-color: #dddddd; +} + +.panel-default > .panel-heading { + color: #333333; + background-color: #f5f5f5; + border-color: #dddddd; +} + +.panel-default > .panel-heading + .panel-collapse .panel-body { + border-top-color: #dddddd; +} + +.panel-default > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #dddddd; +} + +.panel-primary { + border-color: #428bca; +} + +.panel-primary > .panel-heading { + color: #ffffff; + background-color: #428bca; + border-color: #428bca; +} + +.panel-primary > .panel-heading + .panel-collapse .panel-body { + border-top-color: #428bca; +} + +.panel-primary > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #428bca; +} + +.panel-success { + border-color: #d6e9c6; +} + +.panel-success > .panel-heading { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.panel-success > .panel-heading + .panel-collapse .panel-body { + border-top-color: #d6e9c6; +} + +.panel-success > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #d6e9c6; +} + +.panel-warning { + border-color: #fbeed5; +} + +.panel-warning > .panel-heading { + color: #c09853; + background-color: #fcf8e3; + border-color: #fbeed5; +} + +.panel-warning > .panel-heading + .panel-collapse .panel-body { + border-top-color: #fbeed5; +} + +.panel-warning > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #fbeed5; +} + +.panel-danger { + border-color: #eed3d7; +} + +.panel-danger > .panel-heading { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.panel-danger > .panel-heading + .panel-collapse .panel-body { + border-top-color: #eed3d7; +} + +.panel-danger > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #eed3d7; +} + +.panel-info { + border-color: #bce8f1; +} + +.panel-info > .panel-heading { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.panel-info > .panel-heading + .panel-collapse .panel-body { + border-top-color: #bce8f1; +} + +.panel-info > .panel-footer + .panel-collapse .panel-body { + border-bottom-color: #bce8f1; +} + +.well-dark { + background-color: #f5f5f5; +} + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} + +.well-lg { + padding: 24px; + border-radius: 6px; +} + +.well-sm { + padding: 9px; + border-radius: 3px; +} + +.close { + float: right; + font-size: 21px; + font-weight: bold; + line-height: 1; + color: #000000; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); +} + +.close:hover, +.close:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.5; + filter: alpha(opacity=50); +} + +button.close { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.modal-open { + overflow: hidden; +} + +body.modal-open, +.modal-open .navbar-fixed-top, +.modal-open .navbar-fixed-bottom { + margin-right: 15px; +} + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + display: none; + overflow: auto; + overflow-y: scroll; +} + +.modal.fade .modal-dialog { + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + transform: translate(0, -25%); + -webkit-transition: -webkit-transform 0.3s ease-out; + -moz-transition: -moz-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: transform 0.3s ease-out; +} + +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + transform: translate(0, 0); +} + +.modal-dialog { + z-index: 1050; + width: auto; + padding: 10px; + margin-right: auto; + margin-left: auto; +} + +.modal-content { + position: relative; + background-color: #ffffff; + border: 1px solid #999999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + outline: none; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + background-clip: padding-box; +} + +.modal-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; + background-color: #000000; +} + +.modal-backdrop.fade { + opacity: 0; + filter: alpha(opacity=0); +} + +.modal-backdrop.in { + opacity: 0.5; + filter: alpha(opacity=50); +} + +.modal-header { + min-height: 16.428571429px; + padding: 15px; + border-bottom: 1px solid #e5e5e5; +} + +.modal-header .close { + margin-top: -2px; +} + +.modal-title { + margin: 0; + line-height: 1.428571429; +} + +.modal-body { + position: relative; + padding: 20px; +} + +.modal-footer { + padding: 19px 20px 20px; + margin-top: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer:before, +.modal-footer:after { + display: table; + content: " "; +} + +.modal-footer:after { + clear: both; +} + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; +} + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; +} + +.modal-footer .btn-block + .btn-block { + margin-left: 0; +} + +@media screen and (min-width: 768px) { + .modal-dialog { + right: auto; + left: 50%; + width: 600px; + padding-top: 30px; + padding-bottom: 30px; + } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + } +} + +.tooltip { + position: absolute; + z-index: 1030; + display: block; + font-size: 12px; + line-height: 1.4; + opacity: 0; + filter: alpha(opacity=0); + visibility: visible; +} + +.tooltip.in { + opacity: 0.9; + filter: alpha(opacity=90); +} + +.tooltip.top { + padding: 5px 0; + margin-top: -3px; +} + +.tooltip.right { + padding: 0 5px; + margin-left: 3px; +} + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; +} + +.tooltip.left { + padding: 0 5px; + margin-left: -3px; +} + +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #ffffff; + text-align: center; + text-decoration: none; + background-color: #000000; + border-radius: 4px; +} + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.top-left .tooltip-arrow { + bottom: 0; + left: 5px; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.top-right .tooltip-arrow { + right: 5px; + bottom: 0; + border-top-color: #000000; + border-width: 5px 5px 0; +} + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-right-color: #000000; + border-width: 5px 5px 5px 0; +} + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-left-color: #000000; + border-width: 5px 0 5px 5px; +} + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.tooltip.bottom-left .tooltip-arrow { + top: 0; + left: 5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.tooltip.bottom-right .tooltip-arrow { + top: 0; + right: 5px; + border-bottom-color: #000000; + border-width: 0 5px 5px; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1010; + display: none; + max-width: 276px; + padding: 1px; + text-align: left; + white-space: normal; + background-color: #ffffff; + border: 1px solid #cccccc; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + background-clip: padding-box; +} + +.popover.top { + margin-top: -10px; +} + +.popover.right { + margin-left: 10px; +} + +.popover.bottom { + margin-top: 10px; +} + +.popover.left { + margin-left: -10px; +} + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + font-weight: normal; + line-height: 18px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; +} + +.popover-content { + padding: 9px 14px; +} + +.popover .arrow, +.popover .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; +} + +.popover .arrow { + border-width: 11px; +} + +.popover .arrow:after { + border-width: 10px; + content: ""; +} + +.popover.top .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999999; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; +} + +.popover.top .arrow:after { + bottom: 1px; + margin-left: -10px; + border-top-color: #ffffff; + border-bottom-width: 0; + content: " "; +} + +.popover.right .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; +} + +.popover.right .arrow:after { + bottom: -10px; + left: 1px; + border-right-color: #ffffff; + border-left-width: 0; + content: " "; +} + +.popover.bottom .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-bottom-color: #999999; + border-bottom-color: rgba(0, 0, 0, 0.25); + border-top-width: 0; +} + +.popover.bottom .arrow:after { + top: 1px; + margin-left: -10px; + border-bottom-color: #ffffff; + border-top-width: 0; + content: " "; +} + +.popover.left .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-left-color: #999999; + border-left-color: rgba(0, 0, 0, 0.25); + border-right-width: 0; +} + +.popover.left .arrow:after { + right: 1px; + bottom: -10px; + border-left-color: #ffffff; + border-right-width: 0; + content: " "; +} + +.carousel { + position: relative; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: 0.6s ease-in-out left; + transition: 0.6s ease-in-out left; +} + +.carousel-inner > .item > img, +.carousel-inner > .item > a > img { + display: block; + height: auto; + max-width: 100%; + line-height: 1; +} + +.carousel-inner > .active, +.carousel-inner > .next, +.carousel-inner > .prev { + display: block; +} + +.carousel-inner > .active { + left: 0; +} + +.carousel-inner > .next, +.carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; +} + +.carousel-inner > .next { + left: 100%; +} + +.carousel-inner > .prev { + left: -100%; +} + +.carousel-inner > .next.left, +.carousel-inner > .prev.right { + left: 0; +} + +.carousel-inner > .active.left { + left: -100%; +} + +.carousel-inner > .active.right { + left: 100%; +} + +.carousel-control { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); + opacity: 0.5; + filter: alpha(opacity=50); +} + +.carousel-control.left { + background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0), color-stop(rgba(0, 0, 0, 0.0001) 100%)); + background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); +} + +.carousel-control.right { + right: 0; + left: auto; + background-image: -webkit-gradient(linear, 0 top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); + background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0), color-stop(rgba(0, 0, 0, 0.5) 100%)); + background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); +} + +.carousel-control:hover, +.carousel-control:focus { + color: #ffffff; + text-decoration: none; + opacity: 0.9; + filter: alpha(opacity=90); +} + +.carousel-control .icon-prev, +.carousel-control .icon-next, +.carousel-control .glyphicon-chevron-left, +.carousel-control .glyphicon-chevron-right { + position: absolute; + top: 50%; + left: 50%; + z-index: 5; + display: inline-block; +} + +.carousel-control .icon-prev, +.carousel-control .icon-next { + width: 20px; + height: 20px; + margin-top: -10px; + margin-left: -10px; + font-family: serif; +} + +.carousel-control .icon-prev:before { + content: '\2039'; +} + +.carousel-control .icon-next:before { + content: '\203a'; +} + +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; +} + +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + border: 1px solid #ffffff; + border-radius: 10px; +} + +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #ffffff; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #ffffff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); +} + +.carousel-caption .btn { + text-shadow: none; +} + +@media screen and (min-width: 768px) { + .carousel-control .icon-prev, + .carousel-control .icon-next { + width: 30px; + height: 30px; + margin-top: -15px; + margin-left: -15px; + font-size: 30px; + } + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; + } + .carousel-indicators { + bottom: 20px; + } +} + +.clearfix:before, +.clearfix:after { + display: table; + content: " "; +} + +.clearfix:after { + clear: both; +} + +.pull-right { + float: right !important; +} + +.pull-left { + float: left !important; +} + +.hide { + display: none !important; +} + +.show { + display: block !important; +} + +.invisible { + visibility: hidden; +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.affix { + position: fixed; +} + +@-ms-viewport { + width: device-width; +} + +@media screen and (max-width: 400px) { + @-ms-viewport { + width: 320px; + } +} + +.hidden { + display: none !important; + visibility: hidden !important; +} + +.visible-xs { + display: none !important; +} + +tr.visible-xs { + display: none !important; +} + +th.visible-xs, +td.visible-xs { + display: none !important; +} + +@media (max-width: 767px) { + .visible-xs { + display: block !important; + } + tr.visible-xs { + display: table-row !important; + } + th.visible-xs, + td.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-xs.visible-sm { + display: block !important; + } + tr.visible-xs.visible-sm { + display: table-row !important; + } + th.visible-xs.visible-sm, + td.visible-xs.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-xs.visible-md { + display: block !important; + } + tr.visible-xs.visible-md { + display: table-row !important; + } + th.visible-xs.visible-md, + td.visible-xs.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-xs.visible-lg { + display: block !important; + } + tr.visible-xs.visible-lg { + display: table-row !important; + } + th.visible-xs.visible-lg, + td.visible-xs.visible-lg { + display: table-cell !important; + } +} + +.visible-sm { + display: none !important; +} + +tr.visible-sm { + display: none !important; +} + +th.visible-sm, +td.visible-sm { + display: none !important; +} + +@media (max-width: 767px) { + .visible-sm.visible-xs { + display: block !important; + } + tr.visible-sm.visible-xs { + display: table-row !important; + } + th.visible-sm.visible-xs, + td.visible-sm.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; + } + tr.visible-sm { + display: table-row !important; + } + th.visible-sm, + td.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-sm.visible-md { + display: block !important; + } + tr.visible-sm.visible-md { + display: table-row !important; + } + th.visible-sm.visible-md, + td.visible-sm.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-sm.visible-lg { + display: block !important; + } + tr.visible-sm.visible-lg { + display: table-row !important; + } + th.visible-sm.visible-lg, + td.visible-sm.visible-lg { + display: table-cell !important; + } +} + +.visible-md { + display: none !important; +} + +tr.visible-md { + display: none !important; +} + +th.visible-md, +td.visible-md { + display: none !important; +} + +@media (max-width: 767px) { + .visible-md.visible-xs { + display: block !important; + } + tr.visible-md.visible-xs { + display: table-row !important; + } + th.visible-md.visible-xs, + td.visible-md.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-md.visible-sm { + display: block !important; + } + tr.visible-md.visible-sm { + display: table-row !important; + } + th.visible-md.visible-sm, + td.visible-md.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; + } + tr.visible-md { + display: table-row !important; + } + th.visible-md, + td.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-md.visible-lg { + display: block !important; + } + tr.visible-md.visible-lg { + display: table-row !important; + } + th.visible-md.visible-lg, + td.visible-md.visible-lg { + display: table-cell !important; + } +} + +.visible-lg { + display: none !important; +} + +tr.visible-lg { + display: none !important; +} + +th.visible-lg, +td.visible-lg { + display: none !important; +} + +@media (max-width: 767px) { + .visible-lg.visible-xs { + display: block !important; + } + tr.visible-lg.visible-xs { + display: table-row !important; + } + th.visible-lg.visible-xs, + td.visible-lg.visible-xs { + display: table-cell !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .visible-lg.visible-sm { + display: block !important; + } + tr.visible-lg.visible-sm { + display: table-row !important; + } + th.visible-lg.visible-sm, + td.visible-lg.visible-sm { + display: table-cell !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-lg.visible-md { + display: block !important; + } + tr.visible-lg.visible-md { + display: table-row !important; + } + th.visible-lg.visible-md, + td.visible-lg.visible-md { + display: table-cell !important; + } +} + +@media (min-width: 1200px) { + .visible-lg { + display: block !important; + } + tr.visible-lg { + display: table-row !important; + } + th.visible-lg, + td.visible-lg { + display: table-cell !important; + } +} + +.hidden-xs { + display: block !important; +} + +tr.hidden-xs { + display: table-row !important; +} + +th.hidden-xs, +td.hidden-xs { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-xs { + display: none !important; + } + tr.hidden-xs { + display: none !important; + } + th.hidden-xs, + td.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-xs.hidden-sm { + display: none !important; + } + tr.hidden-xs.hidden-sm { + display: none !important; + } + th.hidden-xs.hidden-sm, + td.hidden-xs.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-xs.hidden-md { + display: none !important; + } + tr.hidden-xs.hidden-md { + display: none !important; + } + th.hidden-xs.hidden-md, + td.hidden-xs.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-xs.hidden-lg { + display: none !important; + } + tr.hidden-xs.hidden-lg { + display: none !important; + } + th.hidden-xs.hidden-lg, + td.hidden-xs.hidden-lg { + display: none !important; + } +} + +.hidden-sm { + display: block !important; +} + +tr.hidden-sm { + display: table-row !important; +} + +th.hidden-sm, +td.hidden-sm { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-sm.hidden-xs { + display: none !important; + } + tr.hidden-sm.hidden-xs { + display: none !important; + } + th.hidden-sm.hidden-xs, + td.hidden-sm.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; + } + tr.hidden-sm { + display: none !important; + } + th.hidden-sm, + td.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-sm.hidden-md { + display: none !important; + } + tr.hidden-sm.hidden-md { + display: none !important; + } + th.hidden-sm.hidden-md, + td.hidden-sm.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-sm.hidden-lg { + display: none !important; + } + tr.hidden-sm.hidden-lg { + display: none !important; + } + th.hidden-sm.hidden-lg, + td.hidden-sm.hidden-lg { + display: none !important; + } +} + +.hidden-md { + display: block !important; +} + +tr.hidden-md { + display: table-row !important; +} + +th.hidden-md, +td.hidden-md { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-md.hidden-xs { + display: none !important; + } + tr.hidden-md.hidden-xs { + display: none !important; + } + th.hidden-md.hidden-xs, + td.hidden-md.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-md.hidden-sm { + display: none !important; + } + tr.hidden-md.hidden-sm { + display: none !important; + } + th.hidden-md.hidden-sm, + td.hidden-md.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; + } + tr.hidden-md { + display: none !important; + } + th.hidden-md, + td.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-md.hidden-lg { + display: none !important; + } + tr.hidden-md.hidden-lg { + display: none !important; + } + th.hidden-md.hidden-lg, + td.hidden-md.hidden-lg { + display: none !important; + } +} + +.hidden-lg { + display: block !important; +} + +tr.hidden-lg { + display: table-row !important; +} + +th.hidden-lg, +td.hidden-lg { + display: table-cell !important; +} + +@media (max-width: 767px) { + .hidden-lg.hidden-xs { + display: none !important; + } + tr.hidden-lg.hidden-xs { + display: none !important; + } + th.hidden-lg.hidden-xs, + td.hidden-lg.hidden-xs { + display: none !important; + } +} + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-lg.hidden-sm { + display: none !important; + } + tr.hidden-lg.hidden-sm { + display: none !important; + } + th.hidden-lg.hidden-sm, + td.hidden-lg.hidden-sm { + display: none !important; + } +} + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-lg.hidden-md { + display: none !important; + } + tr.hidden-lg.hidden-md { + display: none !important; + } + th.hidden-lg.hidden-md, + td.hidden-lg.hidden-md { + display: none !important; + } +} + +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; + } + tr.hidden-lg { + display: none !important; + } + th.hidden-lg, + td.hidden-lg { + display: none !important; + } +} + +.visible-print { + display: none !important; +} + +tr.visible-print { + display: none !important; +} + +th.visible-print, +td.visible-print { + display: none !important; +} + +@media print { + .visible-print { + display: block !important; + } + tr.visible-print { + display: table-row !important; + } + th.visible-print, + td.visible-print { + display: table-cell !important; + } + .hidden-print { + display: none !important; + } + tr.hidden-print { + display: none !important; + } + th.hidden-print, + td.hidden-print { + display: none !important; + } +} diff --git a/src/app/submission/sections/clarin-license-resource/license-4-selector.model.ts b/src/app/submission/sections/clarin-license-resource/license-4-selector.model.ts new file mode 100644 index 00000000000..c48081ba9a5 --- /dev/null +++ b/src/app/submission/sections/clarin-license-resource/license-4-selector.model.ts @@ -0,0 +1,5 @@ +export class License4Selector { + id: number; + name: string; + url: string; +} diff --git a/src/app/submission/sections/clarin-license-resource/license-definitions.json b/src/app/submission/sections/clarin-license-resource/license-definitions.json new file mode 100644 index 00000000000..4f84586da52 --- /dev/null +++ b/src/app/submission/sections/clarin-license-resource/license-definitions.json @@ -0,0 +1,377 @@ +[ + { + "id": 85, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/license-ud-2.10", + "name":"Licence Universal Dependencies v2.10" + }, + { + "id": 84, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-unisegs-1.0", + "name": "Universal Segmentations 1.0 License Terms" + }, + { + "id": 83, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/license-corefud-0.2", + "name": "Licence CorefUD v0.2" + }, + { + "id": 82, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/license-ud-2.9", + "name": "Licence Universal Dependencies v2.9" + }, + { + "id": 81, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-UDer-1.1", + "name": "Universal Derivations v1.1 License Agreement" + }, + { + "id": 80, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/license-ud-2.8", + "name": "Licence Universal Dependencies v2.8" + }, + { + "id": 79, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/license-corefud-0.1", + "name": "Licence CorefUD v0.1" + }, + { + "id": 78, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/deep-sequoia-licence", + "name": "Deep Sequoia Licence" + }, + { + "id": 77, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/license-ud-2.7", + "name": "Licence Universal Dependencies v2.7" + }, + { + "id": 76, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-mwe-1.2-raw", + "name": "PARSEME Shared Task Raw Corpus Data (v. 1.2) Agreement" + }, + { + "id": 75, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-mwe-1.2", + "name": "PARSEME Shared Task Data (v. 1.2) Agreement" + }, + { + "id": 74, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-UDer-1.0", + "name": "Universal Derivations v1.0 License Agreement" + }, + { + "id": 73, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/license-ud-2.6", + "name": "Licence Universal Dependencies v2.6" + }, + { + "id": 72, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-UD-2.5", + "name": "Licence Universal Dependencies v2.5" + }, + { + "id": 71, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-UDer-0.5", + "name": "Universal Derivations v0.5 License Agreement" + }, + { + "id": 70, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-UD-2.4", + "name": "Licence Universal Dependencies v2.4" + }, + { + "id": 69, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-mwe-literal", + "name": "License agreement for The Multilingual corpus of literal occurrences of multiword expressions" + }, + { + "id": 67, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-UD-2.3", + "name": "Licence Universal Dependencies v2.3" + }, + { + "id": 66, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-mwe-1.1", + "name": "PARSEME Shared Task Data (v. 1.1) Agreement" + }, + { + "id": 65, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-UD-2.2", + "name": "Licence Universal Dependencies v2.2" + }, + { + "id": 64, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-UD-2.1", + "name": "Licence Universal Dependencies v2.1" + }, + { + "id": 63, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-mwe-1.0", + "name": "PARSEME Shared Task Data (v. 1.0) Agreement" + }, + { + "id": 62, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-UD-2.0", + "name": "Licence Universal Dependencies v2.0" + }, + { + "id": 60, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-UD-1.4", + "name": "Licence Universal Dependencies v1.4" + }, + { + "id": 59, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-UD-1.3", + "name": "Licence Universal Dependencies v1.3" + }, + { + "id": 58, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-TAUS_QT21", + "name": "AGREEMENT ON THE USE OF DATA IN QT21 APE Task" + }, + { + "id": 57, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-TAUS_QT21", + "name": "AGREEMENT ON THE USE OF DATA IN QT21" + }, + { + "id": 56, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-UD-1.2", + "name": "Licence Universal Dependencies v1.2" + }, + { + "id": 55, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-hamledt-3.0", + "name": "HamleDT 3.0 License Terms" + }, + { + "id": 54, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/licence-UD-1.1", + "name": "Licence Universal Dependencies v1.1" + }, + { + "id": 53, + "url": "http://creativecommons.org/licenses/by-nc-nd/4.0/", + "name": "Creative Commons - Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0)" + }, + { + "id": 52, + "url": "http://creativecommons.org/licenses/by-nc-sa/4.0/", + "name": "Creative Commons - Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)" + }, + { + "id": 51, + "url": "http://creativecommons.org/licenses/by-nc/4.0/", + "name":"Creative Commons - Attribution-NonCommercial 4.0 International (CC BY-NC 4.0)" + }, + { + "id": 50, + "url": "http://creativecommons.org/licenses/by-nd/4.0/", + "name":"Creative Commons - Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0)" + }, + { + "id": 49, + "url": "http://creativecommons.org/licenses/by-sa/4.0/", + "name":"Creative Commons - Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)" + }, + { + "id": 48, + "url": "http://creativecommons.org/licenses/by/4.0/", + "name": "Creative Commons - Attribution 4.0 International (CC BY 4.0)" + }, + { + "id": 47, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/license-ud-1.0", + "name":"Universal Dependencies 1.0 License Set" + }, + { + "id": 46, + "url": "http://creativecommons.org/publicdomain/mark/1.0/", + "name": "Public Domain Mark (PD)" + }, + { + "id": 45, + "url": "http://opendatacommons.org/licenses/pddl/summary/", + "name":"Open Data Commons Public Domain Dedication and License (PDDL)" + }, + { + "id": 44, + "url": "http://opendatacommons.org/licenses/odbl/summary/", + "name":"Open Data Commons Open Database License (ODbL)" + }, + { + "id": 43, + "url": "http://opendatacommons.org/licenses/by/summary/", + "name":"Open Data Commons Attribution License (ODC-By)" + }, + { + "id": 42, + "url": "http://opensource.org/licenses/MPL-2.0", + "name":"Mozilla Public License 2.0" + }, + { + "id": 41, + "url": "http://opensource.org/licenses/LGPL-3.0", + "name": "GNU Library or Lesser General Public License 3.0 (LGPL-3.0)" + }, + { + "id": 40, + "url": "http://opensource.org/licenses/LGPL-2.1", + "name": "GNU Library or Lesser General Public License 2.1 or later (LGPL-2.1)" + }, + { + "id": 39, + "url": "http://opensource.org/licenses/LGPL-2.1", + "name": "GNU Library or Lesser General Public License 2.1 (LGPL-2.1)" + }, + { + "id": 38, + "url": "http://opensource.org/licenses/GPL-2.0", + "name":"GNU General Public License 2 or later (GPL-2.0)" + }, + { + "id": 37, + "url": "http://opensource.org/licenses/EPL-1.0", + "name":"Eclipse Public License 1.0 (EPL-1.0)" + }, + { + "id": 36, + "url": "http://opensource.org/licenses/CDDL-1.0", + "name": "Common Development and Distribution License (CDDL-1.0)" + }, + { + "id": 35, + "url": "http://opensource.org/licenses/AGPL-3.0", + "name": "Affero General Public License 3 (AGPL-3.0)" + }, + { + "id": 34, + "url": "http://www.affero.org/oagpl.html", + "name":"Affero General Public License 1 (AGPL-1.0)" + }, + { + "id": 20, + "url": "http://opensource.org/licenses/Apache-2.0", + "name": "Apache License 2.0" + }, + { + "id": 18, + "url": "http://opensource.org/licenses/Artistic-2.0", + "name": "Artistic License 2.0" + }, + { + "id": 17, + "url": "http://opensource.org/licenses/Artistic-Perl-1.0", + "name": "Artistic License (Perl) 1.0" + }, + { + "id": 16, + "url": "http://opensource.org/licenses/GPL-3.0", + "name": "GNU General Public Licence, version 3" + }, + { + "id": 15, + "url":"http://opensource.org/licenses/BSD-2-Clause", + "name":"BSD 2-Clause Simplified or FreeBSD license" + }, + { + "id": 14, + "url":"http://opensource.org/licenses/BSD-3-Clause", + "name": "BSD 3-Clause New or Revised license" + }, + { + "id": 12, + "url":"http://creativecommons.org/publicdomain/zero/1.0/", + "name": "Public Domain Dedication (CC Zero)" + }, + { + "id": 11, + "url":"http://opensource.org/licenses/mit-license.php", + "name": "The MIT License (MIT)" + }, + { + "id": 8, + "url":"http://creativecommons.org/licenses/by/3.0/", + "name": "Creative Commons - Attribution 3.0 Unported (CC BY 3.0)" + }, + { + "id": 6, + "url":"http://creativecommons.org/licenses/by-sa/3.0/", + "name": "Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0)" + }, + { + "id": 5, + "url":"http://creativecommons.org/licenses/by-nd/3.0/", + "name": "Attribution-NoDerivs 3.0 Unported (CC BY-ND 3.0)" + }, + { + "id": 4, + "url":"http://creativecommons.org/licenses/by-nc-nd/3.0/", + "name": "Attribution-NonCommercial-NoDerivs 3.0 Unported (CC BY-NC-ND 3.0)" + }, + { + "id": 3, + "url":"http://www.gnu.org/licenses/gpl-2.0.html", + "name": "GNU General Public License, version 2" + }, + { + "id": 2, + "url":"http://creativecommons.org/licenses/by-nc-sa/3.0/", + "name": "Attribution-NonCommercial-ShareAlike 3.0 Unported (CC BY-NC-SA 3.0)" + }, + { + "id": 1, + "url":"http://creativecommons.org/licenses/by-nc/3.0/", + "name": "Attribution-NonCommercial 3.0 Unported (CC BY-NC 3.0)" + }, + { + "id": 86, + "url":"https://lindat.mff.cuni.cz/repository/xmlui/page/license-lb", + "name": "Dictionary of Medieval Latin in the Czech Lands - digital version 2.2 License Agreement" + }, + { + "id": 61, + "url":"https://lindat.mff.cuni.cz/repository/xmlui/page/license-cnc-data", + "name": "License Agreement for Czech National Corpus Data" + }, + { + "id": 33, + "url":"https://lindat.mff.cuni.cz/repository/xmlui/page/license-NLPC-WeC", + "name": "NLP Centre Web Corpus License" + }, + { + "id": 27, + "url":"https://lindat.mff.cuni.cz/repository/xmlui/page/licence-hamledt-2.0", + "name": "HamleD 2.0 Licence Agreement" + }, + { + "id": 23, + "url":"https://lindat.mff.cuni.cz/repository/xmlui/page/licence-hamledt", + "name": "HamleD 1.0 Licence Agreement" + }, + { + "id": 21, + "url":"https://lindat.mff.cuni.cz/repository/xmlui/page/license-cnc", + "name": "Czech National Corpus (Shuffled Corpus Data)" + }, + { + "id": 7, + "url":"https://lindat.mff.cuni.cz/repository/xmlui/page/license-pdt2", + "name": "PDT 2.0 License" + }, + { + "id": 19, + "url": "https://lindat.mff.cuni.cz/repository/xmlui/page/license-pcedt2", + "name": "CC-BY-NC-SA + LDC99T42" + }, + { + "id": 22, + "url":"https://lindat.mff.cuni.cz/repository/xmlui/page/licence-pdtsl", + "name": "PDTSL" + }, + { + "id": 68, + "url":"https://lindat.mff.cuni.cz/repository/xmlui/page/license-PAWS", + "name": "PAWS License" + } +] diff --git a/src/app/submission/sections/clarin-license-resource/repository.css b/src/app/submission/sections/clarin-license-resource/repository.css new file mode 100644 index 00000000000..30c03cb4002 --- /dev/null +++ b/src/app/submission/sections/clarin-license-resource/repository.css @@ -0,0 +1,364 @@ +.btn-repository { + color: #FFFFFF !important; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + background-color: #7479B8; + *background-color: #7479B8; + background-image: -moz-linear-gradient(top, #9FA3E6, #7479B8); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9FA3E6), to(#7479B8)); + background-image: -webkit-linear-gradient(top, #9FA3E6, #7479B8); + background-image: -o-linear-gradient(top, #9FA3E6, #7479B8); + background-image: linear-gradient(to bottom, #9FA3E6, #7479B8); + background-repeat: repeat-x; + border-color: #7479B8; + border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#9FA3E6', endColorstr='#7479B8', GradientType=0); + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.btn-repository:hover, +.btn-repository:active, +.btn-repository:focus, +.btn-repository.active, +.btn-repository.disabled, +.btn-repository[disabled] { + color: #FFFFFF; + background-color: #7479B8; + *background-color: #003bb3; +} + +.recent-submissions-head { + color: #797dd4; + border-bottom: 5px solid #797dd4; + font-size: 120%; + margin-top: -10px; +} + +.top-items-head { + color: #ccab28; + border-bottom: 5px solid #ccab28; + font-size: 120%; + margin-top: -10px; +} + +.artifact-icon { + width: 60px; +} + +.artifact-title { + font-size: 120%; +} + +.artifact-info>.author-head { + margin-top: 5px; + font-weight: bold; +} + +.artifact-abstract-head { + margin-top: 5px; + font-weight: bold; +} + + +.PUB { + color: #5cb811 !important; + background-color: #dff0d8 !important; +} + +.label-PUB { + background-color: #5cb811; +} + + +.RES { + color: #c62d1f !important; + background-color: #f2dede !important; +} + +.label-RES { + background-color: #c62d1f; +} + + +.ACA,.PDT { + color: #ffab23 !important; + background-color: #fcf8e3 !important; +} + +.label-ACA, .label-PDT { + background-color: #ffab23; +} + +#cz_cuni_mff_ufal_dspace_app_xmlui_aspect_statistics_GAStatisticsTransformer_div_chart_id { + width: 100%; + height: 400px; +} + +#cz_cuni_mff_ufal_dspace_app_xmlui_aspect_statistics_GAStatisticsTransformer_table_ga-countries { + width: 100%; +} + +#cz_cuni_mff_ufal_dspace_app_xmlui_aspect_statistics_GAStatisticsTransformer_table_ga-countries tr:first-child { + font-weight: bolder; + border-bottom: 2px solid #ababab; +} + +.ok:before, +.header-ok:before { + display: inline-block; + font-family: FontAwesome; + font-style: normal; + font-weight: normal; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\f00c"; + background-color: #468847; + display: inline-block; + padding: 2px 4px; + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + white-space: nowrap; + vertical-align: baseline; + margin: 4px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.notok:before, +.header-not-ok:before { + display: inline-block; + font-family: FontAwesome; + font-style: normal; + font-weight: normal; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + content: "\f071"; + background-color: #b94a48; + display: inline-block; + padding: 2px 4px; + font-size: 11.844px; + font-weight: bold; + line-height: 14px; + color: #ffffff; + text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); + white-space: nowrap; + vertical-align: baseline; + margin: 4px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +#userbox { + opacity: 0.75; +} + + +.form-group.admin-field .control-label, +.form-group.admin-field .help-block, +.form-group.admin-field .help-inline { + color: #f89406; +} + +.form-group.admin-field .checkbox, +.form-group.admin-field .radio, +.form-group.admin-field input:not([type="submit"]), +.form-group.admin-field select, +.form-group.admin-field textarea { + color: #f89406; +} + +.form-group.admin-field input:not([type="submit"]), +.form-group.admin-field select, +.form-group.admin-field textarea { + border-color: #f89406; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.form-group.admin-field input:focus:not([type="submit"]), +.form-group.admin-field select:focus, +.form-group.admin-field textarea:focus { + border-color: #f89406; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; +} + +.form-group.admin-field .input-prepend .add-on, +.form-group.admin-field .input-append .add-on { + color: #f89406; + background-color: #f2dede; + border-color: #f89406; +} + +.admin-field label:after { + content: " (Admin only field)"; +} + +.form-group.specialuser-field .control-label, +.form-group.specialuser-field .help-block, +.form-group.specialuser-field .help-inline { + color: #f89406; +} + +.form-group.specialuser-field .checkbox, +.form-group.specialuser-field .radio, +.form-group.specialuser-field input:not([type="submit"]), +.form-group.specialuser-field select, +.form-group.specialuser-field textarea { + color: #f89406; +} + +.form-group.specialuser-field input:not([type="submit"]), +.form-group.specialuser-field select, +.form-group.specialuser-field textarea { + border-color: #f89406; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); +} + +.form-group.specialuser-field input:focus:not([type="submit"]), +.form-group.specialuser-field select:focus, +.form-group.specialuser-field textarea:focus { + border-color: #f89406; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392; +} + +.form-group.specialuser-field .input-prepend .add-on, +.form-group.specialuser-field .input-append .add-on { + color: #f89406; + background-color: #f2dede; + border-color: #f89406; +} + +.specialuser-field .label { + background-color: #f89406; + color: #FFF !important; +} + +.specialuser-field .label:after { + content: " (Special users only field)"; +} + + +#aspect_general_NoticeTransformer_div_general-message>* { + white-space: pre-line; +} + +.filters .well.well-light, +.filters.well.well-light { + border: none; + margin: 0px; + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; + +} + +.ac_results { + width: auto !important; + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + list-style: none; + background-color: #ffffff; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + *border-right-width: 2px; + *border-bottom-width: 2px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip: padding-box; + -moz-background-clip: padding; + background-clip: padding-box; +} + +.ac_results ul { + margin: 0px; + padding: 0px; +} + +.ac_results li { + display: block; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 20px; + color: #333333; + white-space: nowrap; +} + +.ac_results li:hover, .ac_over { + color: #ffffff !important; + text-decoration: none; + background-color: #0081c2; + background-image: -moz-linear-gradient(top, #0088cc, #0077b3); + background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3)); + background-image: -webkit-linear-gradient(top, #0088cc, #0077b3); + background-image: -o-linear-gradient(top, #0088cc, #0077b3); + background-image: linear-gradient(to bottom, #0088cc, #0077b3); + background-repeat: repeat-x; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0); + cursor: pointer; +} + +ul.ds-referenceSet-list { + margin: 0px; +} + +.label-cell { + width: 250px; +} + +/** + * Welcome page adjustments. + */ + +#aspect_eperson_WelcomeLogin_list_shib-keys { + font-size: 80%; +} + +#aspect_eperson_WelcomeLogin_list_shib-keys tbody tr td { + padding: 0; +} + +.running { + padding: 20px; + padding-left:20px !important; + /*background-image:url('../../../images/running.gif');*/ + background-position: center center; + background-repeat: no-repeat; + background-size: 32px 32px; +} + +.accordion-heading { + padding: 3px; + padding-left: 5px; +} + +.accordion-heading:hover { + color: #7479b8; +} + +#s2id_aspect_administrative_item_EditItemMetadataForm_field_field { + width: 100%; +} diff --git a/src/app/submission/sections/clarin-license-resource/section-license.component.html b/src/app/submission/sections/clarin-license-resource/section-license.component.html new file mode 100644 index 00000000000..bd449f21338 --- /dev/null +++ b/src/app/submission/sections/clarin-license-resource/section-license.component.html @@ -0,0 +1,105 @@ + +
+
+
+
+ {{'submission.sections.clarin-license.head.license-select-resource' | translate}} +
+
+
+
+
+ {{'submission.sections.clarin-license.head.license-select-providing.0' | translate}} + + + {{'submission.sections.clarin-license.head.license-select-providing.1' | translate}} + + + {{'submission.sections.clarin-license.head.license-select-providing.2' | translate}} + +
+
+
+
+
+ {{'submission.sections.clarin-license.head.license-select-or' | translate}} +
+
+
+
+ + {{'submission.sections.clarin-license.head.license-dropdown-info' | translate}} + +
+
+
+
+ {{'submission.sections.clarin-license.head.license-not-supported-message' | translate}} +
+
+
+
+ +
+
+ +
+
+
+ {{'submission.sections.clarin-license.head.license-do-not-suits-needs' | translate}} +
+
+ {{'submission.sections.clarin-license.head.license-not-offer-proceeds' | translate}} +
+
    +
  • {{'submission.sections.clarin-license.head.license-not-offer-proceed-link' | translate}}
  • +
  • {{'submission.sections.clarin-license.head.license-not-offer-proceed-email.0' | translate}} + + {{'submission.sections.clarin-license.head.license-not-offer-proceed-email.1' | translate}} + + {{'submission.sections.clarin-license.head.license-not-offer-proceed-email.2' | translate}} +
  • +
  • {{'submission.sections.clarin-license.head.license-not-offer-proceed-wait' | translate}} +
  • +
  • + {{'submission.sections.clarin-license.head.license-not-offer-proceed-continue' | translate}} +
  • +
+
+ +
diff --git a/src/app/submission/sections/clarin-license-resource/section-license.component.scss b/src/app/submission/sections/clarin-license-resource/section-license.component.scss new file mode 100644 index 00000000000..a16ef1bc75c --- /dev/null +++ b/src/app/submission/sections/clarin-license-resource/section-license.component.scss @@ -0,0 +1,52 @@ +@import "ufal-theme.css"; +@import "bootstrap.css"; +@import "repository.css"; +@import "bootstrap-theme.css"; +@import "base.css"; + +.container { + max-width: none; +} + +#aspect_submission_StepTransformer_item_ { + max-width: 100% !important; + width: 100% !important; +} + +.alert-warning { + color: #7b4d1b !important; + background-color: #fbead6 !important; + border-color: #fae1c6 !important; + background-image: none; +} + +.alert-danger { + color: #6c2323; + background-color: #f5dada; + border-color: #f2cbcb; + background-image: none; + box-shadow: none; + padding-bottom: 12px; + padding-top: 12px; +} + +.alert-primary { + color: #004085; + background-color: #cce5ff; + border-color: #b8daff; +} + +.licenseselector { + box-shadow: none; + background-image: none; +} + + +// might help with alighing license selector button and target icon + +//#text-of-distr-agr { +// min-height: 72px; +//} +//#second-text-of-distr-agr { +// align-content: center; +//} diff --git a/src/app/submission/sections/clarin-license-resource/section-license.component.spec.ts b/src/app/submission/sections/clarin-license-resource/section-license.component.spec.ts new file mode 100644 index 00000000000..c656864889d --- /dev/null +++ b/src/app/submission/sections/clarin-license-resource/section-license.component.spec.ts @@ -0,0 +1,380 @@ +import { ChangeDetectorRef, Component, NO_ERRORS_SCHEMA } from '@angular/core'; +import { BrowserModule } from '@angular/platform-browser'; +import { CommonModule } from '@angular/common'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { ComponentFixture, inject, TestBed, waitForAsync } from '@angular/core/testing'; + +import {of, of as observableOf} from 'rxjs'; +import { TranslateModule } from '@ngx-translate/core'; +import { DynamicCheckboxModel, DynamicFormControlEvent, DynamicFormControlEventType } from '@ng-dynamic-forms/core'; + +import {createSuccessfulRemoteDataObject, createSuccessfulRemoteDataObject$} from '../../../shared/remote-data.utils'; +import {createPaginatedList, createTestComponent} from '../../../shared/testing/utils.test'; +import { NotificationsService } from '../../../shared/notifications/notifications.service'; +import { NotificationsServiceStub } from '../../../shared/testing/notifications-service.stub'; +import { SubmissionService } from '../../submission.service'; +import { SubmissionServiceStub } from '../../../shared/testing/submission-service.stub'; +import { SectionsService } from '../sections.service'; +import { SectionsServiceStub } from '../../../shared/testing/sections-service.stub'; +import { FormBuilderService } from '../../../shared/form/builder/form-builder.service'; +import { getMockFormOperationsService } from '../../../shared/mocks/form-operations-service.mock'; +import { getMockFormService } from '../../../shared/mocks/form-service.mock'; +import { FormService } from '../../../shared/form/form.service'; +import { SubmissionFormsConfigService } from '../../../core/config/submission-forms-config.service'; +import { SectionDataObject } from '../models/section-data.model'; +import { SectionsType } from '../sections-type'; +import { + mockLicenseParsedErrors, + mockSubmissionCollectionId, + mockSubmissionId +} from '../../../shared/mocks/submission.mock'; +import { FormComponent } from '../../../shared/form/form.component'; +import { JsonPatchOperationPathCombiner } from '../../../core/json-patch/builder/json-patch-operation-path-combiner'; +import { SubmissionSectionClarinLicenseComponent } from './section-license.component'; +import { CollectionDataService } from '../../../core/data/collection-data.service'; +import { JsonPatchOperationsBuilder } from '../../../core/json-patch/builder/json-patch-operations-builder'; +import { SectionFormOperationsService } from '../form/section-form-operations.service'; +import { Collection } from '../../../core/shared/collection.model'; +import { License } from '../../../core/shared/license.model'; +import { FormFieldMetadataValueObject } from '../../../shared/form/builder/models/form-field-metadata-value.model'; +import { cold } from 'jasmine-marbles'; +import {ClarinLicenseDataService} from '../../../core/data/clarin/clarin-license-data.service'; +import {ItemDataService} from '../../../core/data/item-data.service'; +import {WorkspaceitemDataService} from '../../../core/submission/workspaceitem-data.service'; +import {HALEndpointService} from '../../../core/shared/hal-endpoint.service'; +import {RemoteDataBuildService} from '../../../core/cache/builders/remote-data-build.service'; +import {ConfigurationDataService} from '../../../core/data/configuration-data.service'; +import {RequestService} from '../../../core/data/request.service'; + +const collectionId = mockSubmissionCollectionId; +const licenseText = 'License text'; +const mockCollection = Object.assign(new Collection(), { + name: 'Community 1-Collection 1', + id: collectionId, + metadata: [ + { + key: 'dc.title', + language: 'en_US', + value: 'Community 1-Collection 1' + }], + license: createSuccessfulRemoteDataObject$(Object.assign(new License(), { text: licenseText })) +}); + +function getMockSubmissionFormsConfigService(): SubmissionFormsConfigService { + return jasmine.createSpyObj('FormOperationsService', { + getConfigAll: jasmine.createSpy('getConfigAll'), + getConfigByHref: jasmine.createSpy('getConfigByHref'), + getConfigByName: jasmine.createSpy('getConfigByName'), + getConfigBySearch: jasmine.createSpy('getConfigBySearch') + }); +} + +const sectionObject: SectionDataObject = { + config: 'https://dspace7.4science.it/or2018/api/config/submissionforms/license', + mandatory: true, + data: { + url: null, + acceptanceDate: null, + granted: false + }, + errorsToShow: [], + serverValidationErrors: [], + header: 'submit.progressbar.describe.license', + id: 'license', + sectionType: SectionsType.License +}; + +const dynamicFormControlEvent: DynamicFormControlEvent = { + $event: new Event('change'), + context: null, + control: null, + group: null, + model: null, + type: DynamicFormControlEventType.Change +}; + +const helpDeskMail = 'test@mail.com'; + +describe('ClarinSubmissionSectionLicenseComponent test suite', () => { + + // let comp: SubmissionSectionClarinLicenseComponent; + // let compAsAny: any; + // let fixture: ComponentFixture; + // let submissionServiceStub: SubmissionServiceStub; + // let formService: any; + // let formOperationsService: any; + // let formBuilderService: any; + + const sectionsServiceStub: any = new SectionsServiceStub(); + const submissionId = mockSubmissionId; + + // const pathCombiner = new JsonPatchOperationPathCombiner('sections', sectionObject.id); + const jsonPatchOpBuilder: any = jasmine.createSpyObj('jsonPatchOpBuilder', { + add: jasmine.createSpy('add'), + replace: jasmine.createSpy('replace'), + remove: jasmine.createSpy('remove'), + }); + + const mockCollectionDataService = jasmine.createSpyObj('CollectionDataService', { + findById: jasmine.createSpy('findById'), + findByHref: jasmine.createSpy('findByHref') + }); + + const mockClarinDataService = jasmine.createSpyObj('ClarinDataService', { + searchBy: jasmine.createSpy('searchBy'), + }); + + const mockItemDataService = jasmine.createSpyObj('ItemDataService', { + findByHref: jasmine.createSpy('findByHref'), + }); + + const mockWorkspaceitemDataService = jasmine.createSpyObj('WorkspaceitemDataService', { + getLinkPath: jasmine.createSpy('getLinkPath'), + findById: jasmine.createSpy('findById'), + }); + + const mockHalService = jasmine.createSpyObj('HALEndpointService', { + getEndpoint: jasmine.createSpy('getEndpoint') + }); + + const mockRdbService = jasmine.createSpyObj('RemoteDataBuildService', { + // buildList: cold('a', { + // a: createSuccessfulRemoteDataObject(createPaginatedList([testObject])) + // }) + buildFromRequestUUID: jasmine.createSpy('buildFromRequestUUID') + }); + + const configurationServiceSpy = jasmine.createSpyObj('configurationService', { + findByPropertyName: of(helpDeskMail), + }); + + const mockRequestService = jasmine.createSpyObj('RequestService', { + generateRequestId: jasmine.createSpy('generateRequestId'), + send: jasmine.createSpy('send'), + }); + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + imports: [ + BrowserModule, + CommonModule, + FormsModule, + ReactiveFormsModule, + TranslateModule.forRoot() + ], + declarations: [ + FormComponent, + SubmissionSectionClarinLicenseComponent, + TestComponent + ], + providers: [ + { provide: SectionFormOperationsService, useValue: getMockFormOperationsService() }, + { provide: FormService, useValue: getMockFormService() }, + { provide: JsonPatchOperationsBuilder, useValue: jsonPatchOpBuilder }, + { provide: SubmissionFormsConfigService, useValue: getMockSubmissionFormsConfigService() }, + { provide: NotificationsService, useClass: NotificationsServiceStub }, + { provide: SectionsService, useValue: sectionsServiceStub }, + { provide: SubmissionService, useClass: SubmissionServiceStub }, + { provide: CollectionDataService, useValue: mockCollectionDataService }, + { provide: ClarinLicenseDataService, useValue: mockClarinDataService }, + { provide: ItemDataService, useValue: mockItemDataService }, + { provide: HALEndpointService, useValue: mockHalService }, + { provide: WorkspaceitemDataService, useValue: mockWorkspaceitemDataService }, + { provide: RemoteDataBuildService, useValue: mockRdbService }, + { provide: ConfigurationDataService, useValue: configurationServiceSpy }, + { provide: RequestService, useValue: mockRequestService }, + { provide: 'collectionIdProvider', useValue: collectionId }, + { provide: 'sectionDataProvider', useValue: Object.assign({}, sectionObject) }, + { provide: 'submissionIdProvider', useValue: submissionId }, + ChangeDetectorRef, + FormBuilderService, + SubmissionSectionClarinLicenseComponent + ], + schemas: [NO_ERRORS_SCHEMA] + }).compileComponents().then(); + })); + + describe('', () => { + let testComp: TestComponent; + let testFixture: ComponentFixture; + + // synchronous beforeEach + beforeEach(() => { + mockCollectionDataService.findById.and.returnValue(createSuccessfulRemoteDataObject$(mockCollection)); + sectionsServiceStub.isSectionReadOnly.and.returnValue(observableOf(false)); + sectionsServiceStub.getSectionErrors.and.returnValue(observableOf([])); + + const html = ` + `; + + testFixture = createTestComponent(html, TestComponent) as ComponentFixture; + testComp = testFixture.componentInstance; + }); + + afterEach(() => { + testFixture.destroy(); + }); + + it('should create ClarinSubmissionSectionLicenseComponent', inject([SubmissionSectionClarinLicenseComponent], (app: SubmissionSectionClarinLicenseComponent) => { + + expect(app).toBeDefined(); + + })); + }); + + // describe('', () => { + // beforeEach(() => { + // fixture = TestBed.createComponent(SubmissionSectionClarinLicenseComponent); + // comp = fixture.componentInstance; + // compAsAny = comp; + // submissionServiceStub = TestBed.inject(SubmissionService as any); + // formService = TestBed.inject(FormService); + // formBuilderService = TestBed.inject(FormBuilderService); + // formOperationsService = TestBed.inject(SectionFormOperationsService); + // + // compAsAny.pathCombiner = new JsonPatchOperationPathCombiner('sections', sectionObject.id); + // + // }); + // + // afterEach(() => { + // fixture.destroy(); + // comp = null; + // compAsAny = null; + // }); + // + // describe('', () => { + // beforeEach(() => { + // mockCollectionDataService.findById.and.returnValue(createSuccessfulRemoteDataObject$(mockCollection)); + // sectionsServiceStub.getSectionErrors.and.returnValue(observableOf([])); + // sectionsServiceStub.isSectionReadOnly.and.returnValue(observableOf(false)); + // }); + // + // it('should init section properly', () => { + // + // spyOn(compAsAny, 'getSectionStatus'); + // + // comp.onSectionInit(); + // + // const model = formBuilderService.findById('granted', comp.formModel); + // + // expect(compAsAny.subs.length).toBe(2); + // expect(comp.formModel).toBeDefined(); + // expect(model.value).toBeFalsy(); + // expect(comp.licenseText$).toBeObservable(cold('(ab|)', { + // a: '', + // b: licenseText + // })); + // }); + // + // it('should set checkbox value to true', () => { + // comp.sectionData.data = { + // url: 'url', + // acceptanceDate: Date.now(), + // granted: true + // } as any; + // + // spyOn(compAsAny, 'getSectionStatus'); + // + // comp.onSectionInit(); + // + // const model = formBuilderService.findById('granted', comp.formModel); + // + // expect(compAsAny.subs.length).toBe(2); + // expect(comp.formModel).toBeDefined(); + // expect(model.value).toBeTruthy(); + // expect(comp.licenseText$).toBeObservable(cold('(ab|)', { + // a: '', + // b: licenseText + // })); + // }); + // + // it('should have status true when checkbox is selected', () => { + // fixture.detectChanges(); + // const model = formBuilderService.findById('granted', comp.formModel); + // + // (model as DynamicCheckboxModel).value = true; + // + // compAsAny.getSectionStatus().subscribe((status) => { + // expect(status).toBeTruthy(); + // }); + // }); + // + // it('should have status false when checkbox is not selected', () => { + // fixture.detectChanges(); + // const model = formBuilderService.findById('granted', comp.formModel); + // + // compAsAny.getSectionStatus().subscribe((status) => { + // expect(status).toBeFalsy(); + // }); + // + // (model as DynamicCheckboxModel).value = false; + // }); + // + // }); + + // describe('', () => { + // beforeEach(() => { + // mockCollectionDataService.findById.and.returnValue(createSuccessfulRemoteDataObject$(mockCollection)); + // sectionsServiceStub.getSectionErrors.and.returnValue(observableOf(mockLicenseParsedErrors.license)); + // sectionsServiceStub.isSectionReadOnly.and.returnValue(observableOf(false)); + // }); + // + // it('should set section errors properly', () => { + // comp.onSectionInit(); + // const expectedErrors = mockLicenseParsedErrors.license; + // + // expect(sectionsServiceStub.checkSectionErrors).toHaveBeenCalled(); + // expect(comp.sectionData.errors).toEqual(expectedErrors); + // + // }); + // + // it('should remove any section\'s errors when checkbox is selected', () => { + // comp.sectionData.data = { + // url: 'url', + // acceptanceDate: Date.now(), + // granted: true + // } as any; + // + // comp.onSectionInit(); + // + // expect(sectionsServiceStub.dispatchRemoveSectionErrors).toHaveBeenCalled(); + // + // }); + // }); + + // describe('', () => { + // let event; + // beforeEach(() => { + // event = dynamicFormControlEvent; + // formOperationsService.getFieldPathSegmentedFromChangeEvent.and.returnValue('granted'); + // }); + // + // it('should dispatch a json-path add operation when checkbox is selected', () => { + // + // formOperationsService.getFieldValueFromChangeEvent.and.returnValue(new FormFieldMetadataValueObject(true)); + // + // comp.onChange(event); + // + // expect(jsonPatchOpBuilder.add).toHaveBeenCalledWith(pathCombiner.getPath('granted'), 'true', false, true); + // expect(sectionsServiceStub.dispatchRemoveSectionErrors).toHaveBeenCalled(); + // }); + // + // it('should dispatch a json-path remove operation when checkbox is not selected', () => { + // + // formOperationsService.getFieldValueFromChangeEvent.and.returnValue(null); + // + // comp.onChange(event); + // + // expect(jsonPatchOpBuilder.remove).toHaveBeenCalledWith(pathCombiner.getPath('granted')); + // }); + // }); + // }); +}); + +// declare a test component +@Component({ + selector: 'ds-test-cmp', + template: `` +}) +class TestComponent { + +} diff --git a/src/app/submission/sections/clarin-license-resource/section-license.component.ts b/src/app/submission/sections/clarin-license-resource/section-license.component.ts new file mode 100644 index 00000000000..aa42592e82a --- /dev/null +++ b/src/app/submission/sections/clarin-license-resource/section-license.component.ts @@ -0,0 +1,507 @@ +import {ChangeDetectorRef, Component, ElementRef, Inject, NgZone, OnInit, ViewChild} from '@angular/core'; +import {DynamicFormControlEvent, DynamicFormControlModel, DynamicFormLayout} from '@ng-dynamic-forms/core'; + +import {BehaviorSubject, combineLatest as observableCombineLatest, Observable, of, Subscription} from 'rxjs'; +import {CollectionDataService} from '../../../core/data/collection-data.service'; +import { + JsonPatchOperationPathCombiner, + JsonPatchOperationPathObject +} from '../../../core/json-patch/builder/json-patch-operation-path-combiner'; +import {JsonPatchOperationsBuilder} from '../../../core/json-patch/builder/json-patch-operations-builder'; +import {hasValue, isEmpty, isNotEmpty, isNotNull, isNotUndefined, isUndefined} from '../../../shared/empty.util'; +import {FormBuilderService} from '../../../shared/form/builder/form-builder.service'; +import {FormService} from '../../../shared/form/form.service'; +import {SubmissionService} from '../../submission.service'; +import {SectionFormOperationsService} from '../form/section-form-operations.service'; +import {SectionDataObject} from '../models/section-data.model'; +import {SectionModelComponent} from '../models/section.model'; +import {renderSectionFor} from '../sections-decorator'; +import {SectionsType} from '../sections-type'; +import {SectionsService} from '../sections.service'; +import {SECTION_LICENSE_FORM_LAYOUT} from './section-license.model'; +import {RequestService} from '../../../core/data/request.service'; +import {PatchRequest} from '../../../core/data/request.models'; +import {Operation} from 'fast-json-patch'; +import {ClarinLicenseDataService} from '../../../core/data/clarin/clarin-license-data.service'; +import {ClarinLicense} from '../../../core/shared/clarin/clarin-license.model'; +import {getFirstCompletedRemoteData} from '../../../core/shared/operators'; +import {distinctUntilChanged, filter, find, map} from 'rxjs/operators'; +import {HALEndpointService} from '../../../core/shared/hal-endpoint.service'; +import {RemoteDataBuildService} from '../../../core/cache/builders/remote-data-build.service'; +import {WorkspaceitemDataService} from '../../../core/submission/workspaceitem-data.service'; +import {RemoteData} from '../../../core/data/remote-data'; +import parseSectionErrors from '../../utils/parseSectionErrors'; +import {normalizeSectionData} from '../../../core/submission/submission-response-parsing.service'; +import licenseDefinitions from './license-definitions.json'; +import {License4Selector} from './license-4-selector.model'; +import {ConfigurationProperty} from '../../../core/shared/configuration-property.model'; +import {HELP_DESK_PROPERTY} from '../../../item-page/tombstone/tombstone.component'; +import {ConfigurationDataService} from '../../../core/data/configuration-data.service'; +import {WorkspaceItem} from '../../../core/submission/models/workspaceitem.model'; +import {PaginatedList} from '../../../core/data/paginated-list.model'; +import {SubmissionSectionError} from '../../objects/submission-objects.reducer'; +import {hasFailed} from '../../../core/data/request.reducer'; +import {ItemDataService} from '../../../core/data/item-data.service'; +import {Item} from '../../../core/shared/item.model'; +import {MetadataValue} from '../../../core/shared/metadata.models'; +import {TranslateService} from '@ngx-translate/core'; + +interface LicenseAcceptButton { + handleColor: string|null; + handleOnColor: string|null; + handleOffColor: string|null; + onColor: string; + offColor: string; + onText: string; + offText: string; + disabled: boolean; + size: 'sm' | 'lg' | ''; + value: boolean; +} + +/** + * This component represents a section that contains the submission license form. + */ + +@Component({ + selector: 'ds-submission-section-clarin-license', + styleUrls: ['./section-license.component.scss'], + templateUrl: './section-license.component.html', +}) +@renderSectionFor(SectionsType.clarinLicense) +export class SubmissionSectionClarinLicenseComponent extends SectionModelComponent { + + couldShowValidationErrors = false; + + @ViewChild('licenseSelection') licenseSelectionRef: ElementRef; + + /** + * The mail for the help desk is loaded from the server. + */ + helpDesk$: Observable>; + + selectedLicenseName = ''; + + private status = false; + + toggleAcceptation: LicenseAcceptButton; + + unsupportedLicenseMsgHidden = new BehaviorSubject(true); + + licenses4Selector: License4Selector[] = []; + + /** + * The form id + * @type {string} + */ + public formId: string; + + /** + * The form toggleAcceptation + * @type {DynamicFormControlModel[]} + */ + public formModel: DynamicFormControlModel[]; + + /** + * The [[DynamicFormLayout]] object + * @type {DynamicFormLayout} + */ + public formLayout: DynamicFormLayout = SECTION_LICENSE_FORM_LAYOUT; + + /** + * A boolean representing if to show form submit and cancel buttons + * @type {boolean} + */ + public displaySubmit = false; + + /** + * The submission license text + * @type {Array} + */ + public licenseText$: Observable; + + /** + * The [[JsonPatchOperationPathCombiner]] object + * @type {JsonPatchOperationPathCombiner} + */ + protected pathCombiner: JsonPatchOperationPathCombiner; + + /** + * Array to track all subscriptions and unsubscribe them onDestroy + * @type {Array} + */ + protected subs: Subscription[] = []; + + + /** + * The FormComponent reference + */ + + /** + * Initialize instance variables + * + * @param {ChangeDetectorRef} changeDetectorRef + * @param clarinLicenseService + * @param translateService + * @param itemService + * @param workspaceItemService + * @param halService + * @param rdbService + * @param configurationDataService + * @param requestService + * @param {FormService} formService + * @param {JsonPatchOperationsBuilder} operationsBuilder + * @param {SectionsService} sectionService + * @param {string} injectedCollectionId + * @param {SectionDataObject} injectedSectionData + * @param {string} injectedSubmissionId + */ + constructor(protected changeDetectorRef: ChangeDetectorRef, + protected clarinLicenseService: ClarinLicenseDataService, + protected translateService: TranslateService, + protected itemService: ItemDataService, + protected workspaceItemService: WorkspaceitemDataService, + protected halService: HALEndpointService, + protected rdbService: RemoteDataBuildService, + private configurationDataService: ConfigurationDataService, + protected requestService: RequestService, + protected formService: FormService, + protected operationsBuilder: JsonPatchOperationsBuilder, + protected sectionService: SectionsService, + @Inject('collectionIdProvider') public injectedCollectionId: string, + @Inject('sectionDataProvider') public injectedSectionData: SectionDataObject, + @Inject('submissionIdProvider') public injectedSubmissionId: string) { + super(injectedCollectionId, injectedSectionData, injectedSubmissionId); + } + + ngOnInit() { + super.ngOnInit(); + this.toggleAcceptation = { + handleColor: 'dark', + handleOnColor: 'danger', + handleOffColor: 'info', + onColor: 'success', + offColor: 'danger', + onText: this.translateService.instant('submission.sections.clarin-license.toggle.on-text'), + offText: this.translateService.instant('submission.sections.clarin-license.toggle.off-text'), + disabled: false, + size: 'sm', + value: false + }; + + this.helpDesk$ = this.configurationDataService.findByPropertyName(HELP_DESK_PROPERTY); + // initialize licenses for license selector + this.loadLicenses4Selector(); + } + + /** + * Unsubscribe from all subscriptions + */ + onSectionDestroy() { + this.subs + .filter((subscription) => hasValue(subscription)) + .forEach((subscription) => subscription.unsubscribe()); + } + + loadLicenses4Selector() { + licenseDefinitions.forEach((license4Selector: License4Selector) => { + this.licenses4Selector.push(license4Selector); + }); + } + + private initializeLicenseFromMetadata(dcRightsMetadata: MetadataValue[]) { + if (isEmpty(dcRightsMetadata)) { + return; + } + + const dcRightsValue = dcRightsMetadata[0].value; + this.selectLicenseOnInit(dcRightsValue) + .then(() => this.updateSectionStatus()) + .catch(err => console.error(err)); + } + + /** + * Initialize all instance variables and retrieve submission license + */ + onSectionInit() { + this.pathCombiner = new JsonPatchOperationPathCombiner('sections', this.sectionData.id); + this.formId = this.formService.getUniqueId(this.sectionData.id); + + // Load the accepted license of the item + this.getActualWorkspaceItem() + .then((workspaceItemRD: RemoteData) => { + console.log('workspaceItemRD', workspaceItemRD); + this.itemService.findByHref(workspaceItemRD.payload._links.item.href) + .pipe(getFirstCompletedRemoteData()) + .subscribe((itemRD: RemoteData) => { + // Load the metadata where is store clarin license name (`dc.rights`). + const item = itemRD.payload; + const dcRightsMetadata = item.metadata['dc.rights']; + if (isUndefined(dcRightsMetadata)) { + return; + } + + this.initializeLicenseFromMetadata(dcRightsMetadata); + }); + }); + + + // subscribe validation errors + this.subs.push( + this.sectionService.getSectionErrors(this.submissionId, this.sectionData.id).pipe( + filter((errors) => isNotEmpty(errors)), + distinctUntilChanged()) + .subscribe((errors) => { + // parse errors + const newErrors = errors.map((error) => { + // When the error path is only on the section, + // replace it with the path to the form field to display error also on the form + if (error.path === '/sections/clarin-license') { + // check whether license is not accepted + // if the license def is null and the toogle acceptation is false + return Object.assign({}, error, { path: '/sections/license/clarin-license' }); + } else { + return error; + } + }).filter((error) => isNotNull(error)); + + if (isNotUndefined(newErrors) && isNotEmpty(newErrors)) { + this.sectionService.checkSectionErrors(this.submissionId, this.sectionData.id, this.formId, newErrors); + this.sectionData.errors = errors; + } else { + // Remove any section's errors + this.sectionService.dispatchRemoveSectionErrors(this.submissionId, this.sectionData.id); + } + this.changeDetectorRef.detectChanges(); + }) + ); + } + + onToggleChange(event: DynamicFormControlEvent) { + // const path = this.formOperationsService.getFieldPathSegmentedFromChangeEvent(event); + const path = '/sections/license/granted'; + if (this.toggleAcceptation.value) { + const pathObj = this.pathCombiner.getPath(path); + pathObj.path = path; + this.operationsBuilder.add(pathObj, String(this.toggleAcceptation.value), false, true); + // Remove any section's errors + this.sectionService.dispatchRemoveSectionErrors(this.submissionId, this.sectionData.id); + } else { + const pathObj = this.pathCombiner.getPath(path); + pathObj.path = path; + this.operationsBuilder.remove(pathObj); + } + console.log('changed toggle to: ' + this.toggleAcceptation.value); + } + /** + * Method called when a form dfChange event is fired. + * Dispatch form operations based on changes. + */ + async changeLicenseNameFromRef() { + this.selectedLicenseName = this.getLicenseNameFromRef(); + await this.maintainLicenseSelection(); + } + + setToggleAcceptation() { + console.log('setting toogle'); + this.toggleAcceptation.value = true; + } + + async selectLicenseOnInit(licenseName) { + if (isEmpty(licenseName)) { + this.selectedLicenseName = ''; + } else { + this.selectedLicenseName = licenseName; + } + + this.setLicenseNameForRef(this.selectedLicenseName); + } + + async selectLicense(selectedLicenseId) { + if (isEmpty(selectedLicenseId)) { + this.selectedLicenseName = ''; + } else { + this.selectedLicenseName = this.getLicenseNameById(selectedLicenseId); + } + + await this.maintainLicenseSelection(); + } + + async maintainLicenseSelection() { + + this.isLicenseSupported(this.selectedLicenseName) + .then(isSupported => { + // the user has chosen first supported license so the validation errors could be showed + if (!this.couldShowValidationErrors) { + this.couldShowValidationErrors = true; + } + this.unsupportedLicenseMsgHidden.next(isSupported); + + let selectedLicenseName = ''; + if (isSupported) { + selectedLicenseName = this.selectedLicenseName; + } + this.sendRequest(selectedLicenseName); + }); + } + + async findClarinLicenseByName(licenseName): Promise>> { + const options = { + searchParams: [ + { + fieldName: 'name', + fieldValue: licenseName + } + ] + }; + return this.clarinLicenseService.searchBy('byName', options, false) + .pipe(getFirstCompletedRemoteData()).toPromise(); + } + + async isLicenseSupported(licenseName) { + let supported = true; + await this.findClarinLicenseByName(licenseName) + .then((response: RemoteData>) => { + if (hasFailed(response?.state) || response?.payload?.page?.length === 0) { + supported = false; + } else { + supported = true; + } + }); + return supported; + } + + async sendRequest(licenseNameRest) { + // Do not send request in initialization because the validation errors will be seen. + if (!this.couldShowValidationErrors) { + return; + } + + // send license definition value only if the acceptation toggle is true + // this.updateSectionStatus(); + + this.updateSectionStatus(); + await this.getActualWorkspaceItem() + .then(workspaceItemRD => { + const requestId = this.requestService.generateRequestId(); + const hrefObs = this.halService.getEndpoint(this.workspaceItemService.getLinkPath()); + + const patchOperation2 = { + op: 'replace', path: '/license', value: licenseNameRest + } as Operation; + + hrefObs.pipe( + find((href: string) => hasValue(href)), + ).subscribe((href: string) => { + const request = new PatchRequest(requestId, href + '/' + workspaceItemRD.payload.id, [patchOperation2]); + this.requestService.send(request); + }); + + // process the response + this.rdbService.buildFromRequestUUID(requestId) + .pipe(getFirstCompletedRemoteData()) + .subscribe((response: RemoteData) => { + + // show validation errors in every section + const workspaceitem = response.payload; + + const {sections} = workspaceitem; + const {errors} = workspaceitem; + + const errorsList = parseSectionErrors(errors); + + if (sections && isNotEmpty(sections)) { + Object.keys(sections) + .forEach((sectionId) => { + const sectionData = normalizeSectionData(sections[sectionId]); + const sectionErrors = errorsList[sectionId]; + // update section data to show validation errors for every section (upload, form) + this.sectionService.updateSectionData(this.submissionId, sectionId, sectionData, sectionErrors, sectionErrors); + }); + } + }); + }); + } + + clickLicense() { + document.getElementById('license-text').click(); + } + + getLicenseNameById(selectionLicenseId) { + let licenseName = ''; + this.licenses4Selector.forEach(license4Selector => { + if (String(license4Selector.id) === selectionLicenseId) { + licenseName = license4Selector.name; + return; + } + }); + return licenseName; + } + + getLicenseIdByName(selectionLicenseName) { + let licenseId = -1; + this.licenses4Selector.forEach(license4Selector => { + if (license4Selector.name === selectionLicenseName) { + licenseId = license4Selector.id; + return; + } + }); + return licenseId; + } + + async getActualWorkspaceItem(): Promise> { + return this.workspaceItemService.findById(this.submissionId) + .pipe(getFirstCompletedRemoteData()).toPromise(); + } + + setLicenseNameForRef(licenseName) { + const licenseId = this.getLicenseIdByName(licenseName); + // @ts-ignore + document.getElementById('aspect_submission_StepTransformer_field_license').value = licenseId; + document.getElementById('secret-change-button').click(); + } + + getLicenseNameFromRef() { + let selectedLicenseId: string; + if (isUndefined(this.licenseSelectionRef)) { + return; + } + selectedLicenseId = this.licenseSelectionRef.nativeElement.value; + let selectedLicense = false; + selectedLicense = selectedLicenseId.trim().length !== 0; + + // is any license selected - create method + if (selectedLicense) { + if (isUndefined(this.licenseSelectionRef.nativeElement)) { + return; + } + let licenseLabel: string; + const options = this.licenseSelectionRef.nativeElement.children; + for (const item of options) { + if (item.value === selectedLicenseId) { + licenseLabel = item.label; + } + } + return licenseLabel; + } + return ''; + } + + /** + * Get section status + * + * @return Observable + * the section status + */ + protected getSectionStatus(): Observable { + if (isEmpty(this.selectedLicenseName)) { + this.status = null; + } else if (isEmpty(this.sectionData.errorsToShow)) { + this.status = true; + } else { + this.status = false; + } + + return of(this.status); + } +} diff --git a/src/app/submission/sections/clarin-license-resource/section-license.model.ts b/src/app/submission/sections/clarin-license-resource/section-license.model.ts new file mode 100644 index 00000000000..8107b736743 --- /dev/null +++ b/src/app/submission/sections/clarin-license-resource/section-license.model.ts @@ -0,0 +1,28 @@ + +export const SECTION_LICENSE_FORM_LAYOUT = { + + granted: { + element: { + container: 'custom-control custom-checkbox pl-1', + control: 'custom-control-input', + label: 'custom-control-label pt-1' + } + } +}; + +export const SECTION_LICENSE_FORM_MODEL = [ + { + id: 'granted', + label: 'I confirm the license above', + required: true, + value: false, + validators: { + required: null + }, + errorMessages: { + required: 'You must accept the license', + notgranted: 'You must accept the license' + }, + type: 'CHECKBOX', + } +]; diff --git a/src/app/submission/sections/clarin-license-resource/ufal-theme.css b/src/app/submission/sections/clarin-license-resource/ufal-theme.css new file mode 100644 index 00000000000..dc42917a4cc --- /dev/null +++ b/src/app/submission/sections/clarin-license-resource/ufal-theme.css @@ -0,0 +1,1504 @@ +.container-fluid>.container:before { + content: ""; + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: -1; + background-color: #FFF; + display: block; +} + + +.container-fluid>.container { + background-color: #FFF; + border-left: 1px solid #C0C0C0; + border-right: 1px solid #C0C0C0; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #C0C0C0; + -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #C0C0C0; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #C0C0C0; +} + +.container>.row { + margin-left: -15px; +} + +.contents { + display: block; + position: relative; +} + +.jumbotron { + background-color: #F2F2F2; + border-bottom: solid 1px #E5E5E5; + border-radius: 0px !important; +} + +.jumbotron li { + font-size: 14px; + line-height: 20px; +} + +.sidebar { + position: relative; + border-left: 1px solid #C0C0C0; + background-color: #f2f2f2; + padding: 0px; + z-index: 1; +} + +.nav-search { + position: absolute; + top: 5px; + right: 22px; + line-height: 24px +} + +.nav-search .form-search { + margin-top: 1px +} + +.nav-search .nav-search-input { + border-color: #6fb3e0; + border-width: 1px; + width: 120px; + height: 18px !important; + -webkit-border-radius: 4px !important; + -moz-border-radius: 4px !important; + border-radius: 4px !important; + font-size: 13px; + color: #666 !important; + z-index: 11; + -webkit-transition: all ease .15s; + -moz-transition: all ease .15s; + -o-transition: all ease .15s; + transition: all ease .15s +} + +.nav-search .nav-search-input+.dropdown-menu { + min-width: 0; + left: 0; + right: 0 +} + +.nav-search .nav-search-input:focus,.nav-search .nav-search-input:hover + { + border-color: #6fb3e0; +} + +.nav-search .nav-search-fa { + color: #6fb3e0 !important; + font-size: 14px !important; + line-height: 24px !important +} + +.sidebar>.nav-search { + position: static; + /*background-color: #fafafa;*/ + border-bottom: 1px solid #DDD; + text-align: center; + height: 35px; + padding-top: 5px +} + +.sidebar>.nav-search .nav-search-input { + width: 130px !important; + border-radius: 0 !important; + max-width: 130px !important; + opacity: 1 !important; + filter: alpha(opacity = 100) !important +} + +.sidebar>.nav-search .nav-search-input+.dropdown-menu { + text-align: left +} + +.sidebar>.nav-search .nav-search-fa { + border: 0; + border-radius: 0; + padding: 0 3px +} + +.sidebar.fixed { + position: fixed; + z-index: 1029; + top: 45px; + left: 0 +} + +.sidebar.fixed:before { + left: 0; + right: auto +} + +.bold { + font-weight: bold; +} + +li [class^="fa-"],li [class*=" fa-"],.nav-list li [class^="fa-"],.nav-list li [class*=" fa-"] + { + width: auto +} + +.nav-list { + margin: 0; + padding: 0; + list-style: none +} + +.nav-list>li>a,.nav-list .nav-header { + margin: 0 +} + +.nav-list>li { + display: block; + padding: 0; + margin: 0; + border: 0; + border-top: 1px solid #fcfcfc; + border-bottom: 1px solid #e5e5e5; + position: relative +} + +.nav-list>li:first-child { + border-top: 0 +} + +.nav-list>li>a { + display: block; + height: 38px; + line-height: 36px; + padding: 0 16px 0 7px; + background-color: #f9f9f9; + color: #585858; + text-shadow: none !important; + font-size: 13px; + text-decoration: none; + font-weight: bold; +} + +.nav-list>li>a>[class*="fa-"]:first-child { + display: inline-block; + vertical-align: middle; + min-width: 30px; + text-align: center; + font-size: 18px; + font-weight: normal +} + +.nav-list>li>a:focus { + background-color: #f9f9f9; + color: #7479b8; +} + +.nav-list>li>a:hover { + background-color: #FFF; + color: #7479b8; +} + +.nav-list>li>a:hover:before { + display: block; + content: ""; + position: absolute; + top: -1px; + bottom: 0; + left: 0; + width: 3px; + max-width: 3px; + overflow: hidden; + background-color: #7479b8; +} + +.nav-list>li a>.arrow { + display: inline-block; + width: 14px !important; + height: 14px; + line-height: 14px; + text-shadow: none; + font-size: 18px; + position: absolute; + right: 9px; + top: 11px; + padding: 0; + color: #666 +} + +.nav-list>li a:hover>.arrow +{ + color: #7479b8; +} + +.nav-list>li.separator { + height: 3px; + background-color: transparent; + position: static; + margin: 1px 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none +} + +.nav-list>li.open>a { + /*background-color: #fafafa;*/ +} + +.nav-list>li.active { + background-color: #fff +} + +.nav-list>li.active>a,.nav-list>li.active>a:hover,.nav-list>li.active>a:focus,.nav-list>li.active>a:active + { + background-color: #fff; + color: #7479b8; + font-weight: bold; + font-size: 13px +} + +.nav-list>li.active>a>[class*="fa-"] { + font-weight: normal +} + +.nav-list>li.active>a:hover:before { + display: none +} + +.nav-list>li.active:after { + display: inline-block; + content: ""; + position: absolute; + right: -2px; + top: -1px; + bottom: 0; + border-right: 2px solid #0b6cbc +} + +.nav-list>li.open { + border-bottom-color: #e5e5e5 +} + +.nav-list>li.open .submenu { + display: block +} + +.nav-list>li .submenu { + display: none; + list-style: none; + margin: 0; + padding: 0; + position: relative; + background-color: #fff; + border-top: 1px solid #e5e5e5 +} + +.nav-list>li .sublist { + list-style: none; + margin: 0; + padding: 0; + position: relative; + border-top: 1px solid #e5e5e5 +} + +.nav-list>li .sublist>li>a { + display: block; + position: relative; + color: #616161; + padding: 3px 0 4px 20px; + margin: 0; + border-top: 1px dotted #e4e4e4 +} + +.nav-list>li .submenu>li { + margin-left: 0; + position: relative +} + +.nav-list>li .submenu>li>a { + display: block; + position: relative; + color: #616161; + padding: 7px 0 8px 37px; + margin: 0; + border-top: 1px dotted #e4e4e4 +} + +.nav-list>li .submenu>li>a:focus { + text-decoration: none +} + +.nav-list>li .submenu>li>a:hover { + text-decoration: none; + color: #7479b8; +} + +.nav-list>li .submenu>li.active>a { + color: #0b6cbc +} + +.nav-list>li .submenu>li a>[class*="fa-"]:first-child { + display: none; + font-size: 12px; + font-weight: normal; + width: 18px; + height: auto; + line-height: 12px; + text-align: center; + position: absolute; + left: 10px; + top: 11px; + z-index: 1; + background-color: #FFF +} + +.nav-list>li .submenu>li.active>a>[class*="fa-"]:first-child,.nav-list>li .submenu>li:hover>a>[class*="fa-"]:first-child + { + display: inline-block +} + +.nav-list>li .submenu>li.active>a>[class*="fa-"]:first-child { + color: #c86139 +} + +.nav-list>li>.submenu>li:first-child>a { + border-top: 1px solid #fafafa +} + +.nav-list>li>.submenu:before { + content: ""; + display: block; + position: absolute; + z-index: 1; + left: 18px; + top: 0; + bottom: 0; + border-left: 1px solid #ccd7e2 +} + +.nav-list>li.active>.submenu>li:before { + border-top-color: #bccfe0 +} + +.nav-list>li.active>.submenu:before { + border-left-color: #bccfe0 +} + +.nav-list li .submenu { + overflow: hidden +} + +.nav-list li.active>a:after { + display: block; + content: ""; + position: absolute !important; + right: 0; + top: 4px; + border: 8px solid transparent; + border-width: 14px 10px; + border-right-color: #0b6cbc +} + +.nav-list li.open>a:after { + display: none +} + +.nav-list li.active.open>.submenu>li.active.open>a.dropdown-toggle:after { + display: none +} + +.nav-list li.active>.submenu>li.active>a:after { + display: none +} + +.nav-list li.active.open>.submenu>li.active>a:after { + display: block +} + +.nav-list li.active.no-active-child>a:after { + display: inline-block !important +} + +.nav-list a .badge,.nav-list a .label { + font-size: 12px; + padding-left: 6px; + padding-right: 6px; + position: absolute; + top: 9px; + right: 11px; + opacity: .88 +} + +.nav-list a .badge [class*="fa-"],.nav-list a .label [class*="fa-"] { + vertical-align: middle; + margin: 0 +} + +.nav-list a.dropdown-toggle .badge,.nav-list a.dropdown-toggle .label { + right: 28px +} + +.nav-list a:hover .badge,.nav-list a:hover .label { + opacity: 1 +} + +.nav-list .submenu .submenu a .badge,.nav-list .submenu .submenu a .label + { + top: 6px +} + +.sidebar-collapse { + border-bottom: 1px solid #e0e0e0; + background-color: #f3f3f3; + text-align: center; + padding: 3px 0; + position: relative +} + +.sidebar-collapse>[class*="fa-"] { + display: inline-block; + cursor: pointer; + font-size: 14px; + color: #aaa; + border: 1px solid #bbb; + padding: 0 5px; + line-height: 18px; + border-radius: 16px; + background-color: #fff; + position: relative +} + +.sidebar-collapse:before { + content: ""; + display: inline-block; + height: 0; + border-top: 1px solid #e0e0e0; + position: absolute; + left: 15px; + right: 15px; + top: 13px +} + +.sidebar-shortcuts { + /*background-color: #fafafa;*/ + border-bottom: 1px solid #ddd; + text-align: center; + line-height: 37px; + max-height: 40px; + margin-bottom: 0 +} + +.sidebar-shortcuts-large { + padding-bottom: 4px +} + +.sidebar-shortcuts-large>.btn>[class*="fa-"] { + font-size: 110% +} + +.nav-list>li>.submenu li>.submenu { + border-top: 0; + background-color: transparent; + display: none +} + +.nav-list>li>.submenu li.active>.submenu { + display: block +} + +.nav-list>li>.submenu a>.arrow { + right: 11px; + top: 10px; + font-size: 16px; + color: #6b828e +} + +.nav-list>li>.submenu li>.submenu>li>a>.arrow { + right: 12px; + top: 9px +} + +.nav-list>li>.submenu li>.submenu>li { + line-height: 16px +} + +.nav-list>li>.submenu li>.submenu>li:before { + display: none +} + +.nav-list>li>.submenu li>.submenu>li>a { + margin-left: 20px; + padding-left: 22px +} + +.nav-list>li>.submenu li>.submenu>li>.submenu>li>a { + margin-left: 20px; + padding-left: 38px +} + +.nav-list>li>.submenu li>.submenu>li a>[class*="fa-"]:first-child { + display: inline-block; + color: inherit; + font-size: 14px; + position: static; + background-color: transparent +} + +.nav-list>li>.submenu li>.submenu>li a { + font-size: 13px; + color: #777 +} + +.nav-list>li>.submenu li>.submenu>li a:hover { + color: #7479b8; + text-decoration: underline +} + +.nav-list>li>.submenu li>.submenu>li a:hover [class*="fa-"] { + text-decoration: none; + color: #7479b8; +} + +.nav-list>li>.submenu li.open>a { + color: #7479b8; +} + +.nav-list>li>.submenu li.open>a>[class*="fa-"]:first-child { + display: inline-block +} + +.nav-list>li>.submenu li.open>a .arrow { + color: #7479b8; +} + +.nav-list>li>.submenu li>.submenu li.open>a { + color: #7479b8; +} + +.nav-list>li>.submenu li>.submenu li.open>a>[class*="fa-"]:first-child { + display: inline-block; + color: #7479b8; +} + +.nav-list>li>.submenu li>.submenu li.open>a .arrow { + color: #7479b8; +} + +.nav-list>li>.submenu li>.submenu li.active>a { + color: #136bb4 +} + +.nav-list>li>.submenu li>.submenu li.active>a>[class*="fa-"]:first-child + { + display: inline-block; + color: #136bb4 +} + +.nav-list>li.active.open li.active>a:after { + top: 2px; + border-width: 14px 8px +} + +.nav-list>li.active.open li.active.open li.active>a:after { + top: 0 +} + +.no-radius { + -webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; +} + +.no-padding { + padding: 0px; +} + +.no-margin { + margin: 0px; +} + +.truncate { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.hr-lindat { + /*background: url('../../../images/lindat_color_line.png');*/ + height: 8px; +} + +.sidebar .open>a>.arrow { + display: none; +} + +.sidebar .always-open>a>.arrow { + display: none; +} + +.item-box { + position: relative; + display: block; + margin: 15px 0; + padding: 39px 19px 14px; + *padding-top: 19px; + background-color: #fff; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.item-box>.item-type { + position: absolute; + top: -1px; + left: -1px; + margin: 0px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + background-color: #f5f5f5; + border: 1px solid #ddd; + color: #616161; + text-transform: capitalize; + -webkit-border-radius: 4px 0 4px 0; + -moz-border-radius: 4px 0 4px 0; + border-radius: 4px 0 4px 0; +} + +.item-box>.item-branding { + position: absolute; + top: -1px; + right: -1px; + margin: 0px; + padding: 3px 7px; + font-size: 10px; + font-weight: bold; + background-color: #f5f5f5; + border: 1px solid #ddd; + color: #909090; + text-transform: capitalize; + -webkit-border-radius: 0 4px 0 4px; + -moz-border-radius: 0 4px 0 4px; + border-radius: 0 4px 0 4px; + text-shadow: none; +} + +.item-box .item-label { + position: absolute; + bottom: -1px; + right: -1px; + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + background-color: #f5f5f5; + border: 1px solid #ddd; + color: #9da0a4; + text-transform: capitalize; + -webkit-border-radius: 4px 0 4px 0; + -moz-border-radius: 4px 0 4px 0; + border-radius: 4px 0 4px 0; +} + +.item-summary-view-metadata>.item-branding { + padding: 3px 7px; + font-size: 12px; + font-weight: bold; + background-color: #f5f5f5; + border: 1px solid #ddd; + color: #9da0a4; + text-transform: capitalize; + -webkit-border-radius: 4px 0 4px 0; + -moz-border-radius: 4px 0 4px 0; + border-radius: 4px 0 4px 0; +} + +.sidebar[class*="col"] { + float: right; + margin: 0px; + z-index: 2; +} + +.sidebar[class*="placeholder"] { + position: absolute; + top: 0; + bottom: 0; + right: 0; + margin: 0px; + z-index: 0; +} + +.nav-list>li.always-open .submenu { + display: block +} + +.item-box>div { + margin-top: 5px; +} + +.navbar .pagination { + margin: 0px; + margin-top: 5px; +} + +.contents>.col-md-9 { + padding: 15px !important; +} + +.contents>.col-sm-9 { + padding: 15px !important; +} + +.contents>.col-lg-9 { + padding: 15px !important; +} + + +@media ( max-width : 768px) { + + body { + padding: 0px; + margin: 0px; + } + +} + +@media ( max-width : 979px) { + + body>:not(.discojuice) img.logo { + top: 35px; + width: 150px; + } + + +} + + +.modal-header>pre { + font-size: 80%; +} + + +.thumbnails dl { + padding: 5px; + display: table; +} + +.pager { + margin: 5px 0; +} + +.table { + background-color: #FFF; + word-break: break-word; +} + +.table .control-group { + margin-bottom: 0px !important; +} + +.table td { + min-width: 50px; +} + +.controls { + margin-left: 20px !important; +} + +.table>caption { + margin: 5px; + text-align: left; + font-weight: bold; +} + +.well>.table { + background-color: #FFF; +} + +.well { + background: none; + /*background-color: #fafafa;*/ +} + +.well-light { + background-color: #fafafa; + box-shadow: none; + -moz-box-shadow: none; + webkit-box-shadow: none; + webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; +} + +.well-light>.well-light { + webkit-border-radius: 0px; + -moz-border-radius: 0px; + border-radius: 0px; + border: none; + padding: 0; + margin: 0; +} + +.well-white { + box-shadow: none; + -moz-box-shadow: none; + webkit-box-shadow: none; + webkit-border-radius: 8px; + -moz-border-radius: 8px; + border-radius: 8px; + background-color: #FFF; +} + +.progressbar { + list-style: none; + display: block; + width: 100%; + padding: 0; + margin: 0 0 20px 0; + position: relative; + counter-reset: progress; +} + +.progressbar li { + display: table-cell; + text-align: center; + width: 1%; + counter-increment: progress; +} + +.progressbar li .step { + border: 5px solid #ced1d6; + color: #546474; + font-size: 15px; + border-radius: 100%; + background-color: #FFF; + position: relative; + z-index: 2; + display: inline-block; + width: 40px; + height: 40px; + line-height: 30px; + text-align: center +} + +.progressbar li .step:before { + content: counter(progress); + font-weight: bold; +} + +.progressbar li:before { + display: block; + content: ""; + width: 100%; + height: 1px; + font-size: 0; + overflow: hidden; + border-top: 4px solid #ced1d6; + position: relative; + top: 22px; + z-index: 1; +} + +.progressbar li.complete:before { + top: 21px; +} + +.progressbar li:last-child:before { + max-width: 50%; + width: 50% +} + +.progressbar li:first-child:before { + max-width: 51%; + left: 50% +} + +.progressbar li.active:before, +.progressbar li.complete:before, +.progressbar li.active .step, +.progressbar li.complete .step { + border-color: #7479b8; +} + +.progressbar li.complete .step { + cursor: default; + color: #FFF; + -webkit-transition: transform ease .1s; + -moz-transition: transform ease .1s; + -o-transition: transform ease .1s; + transition: transform ease .1s +} + +.progressbar li.complete .step:before { + display: block; + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + line-height: 30px; + text-align: center; + border-radius: 100%; + content: "\f00c"; + background-color: #FFF; + z-index: 3; + font-family: FontAwesome; + font-size: 17px; + color: #87ba21; +} + +.progressbar li.active .step { + background-color: #7479b8; + color: #FFF; +} + +.progressbar li.complete:hover .step { + -moz-transform: scale(1.1); + -webkit-transform: scale(1.1); + -o-transform: scale(1.1); + -ms-transform: scale(1.1); + transform: scale(1.1); + border-color: #1F3F5E; + cursor: pointer; +} + +.progressbar li.complete:hover:before { + border-color: #1F3F5E; +} + +.progressbar li .title { + display: block; + margin-top: 4px; + max-width: 100%; + color: #1F3F5E; + font-size: 14px; + z-index: 104; + text-align: center; + table-layout: fixed; + word-wrap: break-word +} + +.progressbar li.complete .title, +.progressbar li.active .title { + color: #2b3d53 +} + +.progressbar .control-group { + display: none; +} + +.discover-search-box ol { + margin-left: 0px; +} + +.inline .control-group { + margin-bottom: 2px; + display: inline-block; +} + +.form-horizontal .control-label { + float: none; + width: 0; + padding-top: 5px; + text-align: left; + display: block; +} + +.ds-checkbox-field legend { + display: none; +} + +input, select, textarea { + vertical-align: top !important; + margin-right: 5px; + margin-bottom: 5px; + display: inline-block !important; +} + +input[type=file] { + line-height: 10px; +} + +.linebreak { + white-space: pre-wrap; +} + +.wordbreak { + word-break: break-word; +} + +.error .label { + background-color: #c62d1f; + color: #FFF !important; +} + +.order-box { + width: 35px; +} + +.error input[type='submit'] { + border-color: #FFF; + color: #FFF; +} + +.alert { + padding: 8px 35px 8px 14px; + margin-bottom: 20px; + text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); + background-color: #fcf8e3; + border: 1px solid #fbeed5; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; +} + +.alert, +.alert h4 { + color: #c09853; +} + +.alert h4 { + margin: 0; +} + +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 20px; +} + +.alert-success { + color: #468847; + background-color: #dff0d8; + border-color: #d6e9c6; +} + +.alert-success h4 { + color: #468847; +} + +.alert-danger, +.alert-error { + color: #b94a48; + background-color: #f2dede; + border-color: #eed3d7; +} + +.alert-danger h4, +.alert-error h4 { + color: #b94a48; +} + +.alert-info { + color: #3a87ad; + background-color: #d9edf7; + border-color: #bce8f1; +} + +.alert-info h4 { + color: #3a87ad; +} + +.alert-block { + padding-top: 14px; + padding-bottom: 14px; +} + +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} + +.alert-block p + p { + margin-top: 5px; +} + + +tr.btn { + display: table-row; +} + +.alert { + margin-top: 20px; +} + +dl { + margin: 0; + border-bottom: 1px dotted #F8F8F8; + padding-top: 10px; + padding-bottom: 10px; +} + +.small-search-input { + -webkit-border-radius: 15px 0px 0px 15px !important; + -moz-border-radius: 15px 0px 0px 15px !important; + border-radius: 15px 0px 0px 15px !important; + margin-left: 1px; +} + +.small-search-btn { + -webkit-border-radius: 0px 15px 15px 0px !important; + -moz-border-radius: 0px 15px 15px 0px !important; + border-radius: 0px 15px 15px 0px !important; + +} + +@media print { + + body>:not(.container), + body>.container>:not(.contents), + body>.container>.contents>:not(.contents), + body>.container>.contents>.contents>:not(.span9), + .thumbnail>a, + .fa-print { + display: none; + } + + a[href]:after { + content: none; + } + +} + +.font_smaller { + font-size: 80%; +} + +.carousel-indicators { + top: 140px; + width: auto; + margin: auto; +} + +.navbar { + z-index: 10 !important; +} + +.navbar-static-top { + margin-left: 0px !important; + margin-right: 0px !important; +} + +.sidebar .nav .open a { + background-color: #FFFFFF !important; +} + +.unstyled { + padding-left: 0; + list-style: none; +} + + +.label-important { + background-color: #d9534f; +} + +.label-important[href]:hover, +.label-important[href]:focus { + background-color: #c9302c; +} + +.text-error { + color: #b94a48; +} + +.nav.nav-tabs.horizontal { + margin-bottom: 10px; +} + +.thumbnails { + list-style: none; +} + +#aspect_discovery_SimpleSearch_item_search-filter-list span { + display: inline-block; +} + + +.badge-default { + background-color: #999999; +} + +.badge-default[href]:hover, +.badge-default[href]:focus { + background-color: #808080; +} + +.badge-primary { + background-color: #428bca; +} + +.badge-primary[href]:hover, +.badge-primary[href]:focus { + background-color: #3071a9; +} + +.badge-success { + background-color: #5cb85c; +} + +.badge-success[href]:hover, +.badge-success[href]:focus { + background-color: #449d44; +} + +.badge-info { + background-color: #5bc0de; +} + +.badge-info[href]:hover, +.badge-info[href]:focus { + background-color: #31b0d5; +} + +.badge-warning { + background-color: #f0ad4e; +} + +.badge-warning[href]:hover, +.badge-warning[href]:focus { + background-color: #ec971f; +} + +.badge-danger { + background-color: #d9534f; +} + +.badge-danger[href]:hover, +.badge-danger[href]:focus { + background-color: #c9302c; +} + +.badge-important { + background-color: #d9534f; +} + +.badge-important[href]:hover, +.badge-important[href]:focus { + background-color: #c9302c; +} + +.publisher-date a, .author a { + color: #808080; +} + +.hangright { + text-align: right; + display: block; +} + +.modal-open { + margin-right: 0px !important; +} + +li.list-complex-field > label { + font-size: 110%; + border-bottom: solid 1px #cdcdcd; +} +li.list-complex-field > div { + padding-left: 15px; +} + +.ui-widget-header { + border: 1px solid #7479b8 !important; + background: #7479b8 !important; +} + +div.modal-scrollbar { + overflow-y: scroll !important; +} + +.label-big { + font-size: 110% !important; +} + +.dist-license div { + font-size: 120%; + margin-bottom: 0; +} +.dist-license input { + margin: 11px; + padding: 10px; + transform: scale(1.5); + /* Webkit browsers*/ + -webkit-transform: scale(1.5); +} + +.licenseselector { + color: #428bca; +} + +.licence_to_sign:before { + font-family: FontAwesome; + content: "\f0e3"; + display: inline-block; + padding-right: 3px; + vertical-align: middle; +} + +.licence_to_sign { + font-family: Arial; +} + + +.distribution_licnese_head { + font-size: 24px; + font-weight: 500; +} + +.license-decision-div { + display: table; +} + +.license-decision-checkbox { + display: table-cell; + vertical-align: middle; +} + +.license-decision-message { + display: table-cell; + vertical-align: middle; + padding-left: 10px; + font-size: 14px; + font-weight: normal; + line-height: 1.4em; + color: #525558; +} + +.license-resource-text { + font-size: 14px; + font-weight: normal; + line-height: 1.4em; + color: #525558; +} + +#cz_cuni_mff_ufal_dspace_app_xmlui_aspect_statistics_PiwikStatisticsTransformer_div_stats:before{ + content: "beta"; + position: absolute; + width: 60px; + height: 20px; + background: #d9534f; + top: 15px; + left: 15px; + text-align: center; + text-transform: uppercase; + font-weight: bold; + color: #fff; + -webkit-border-radius: 8px 0 8px 0; + -moz-border-radius: 8px 0 8px 0; + border-radius: 8px 0 8px 0; +} + +#aspect_submission_StepTransformer_list_controls .licenseselector { + margin: 10px 0px 10px 0px; +} + +/* this overrides the box-sizing in bootstrap.min.css selector.css depends on the default value */ +.license-selector * { + box-sizing: content-box; +} + +.refbox { + margin-bottom: 10px; +} +.treeview, +.treeview ul, +.treeview li +{ + padding: 0px 0px 0px 8px; + margin: 0; + list-style: none; +} + +.treeview .foldername:before { + font-family: FontAwesome; + content: '\f07b'; + margin-right: 5px; + color: #A0A0A0; +} + +.treeview .filename:before { + font-family: FontAwesome; + content: '\f016'; + margin-right: 5px; + color: #A0A0A0; +} + +.filebutton { + font-size: 12px; +} + +.repo-copy-btn-tooltip { + position: relative; + display: inline-block; + background-color: rgba(27,31,35,0.8); + border-radius:3px; + padding: 5px; + color: white; + font: normal normal 11px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, + sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; +} + +.repo-copy-btn-tooltip::after { + content: " "; + position: absolute; + bottom: 100%; /* At the top of the tooltip */ + left: 50%; + margin-left: -5px; + border-width: 5px; + border-style: solid; + border-color: transparent transparent rgba(27,31,35,0.8) transparent; +} + +.repo-copy-btn{ + width: 20px; + height: 20px; + position: relative; + display: inline-block; + padding: 0 !important; +} +.repo-copy-btn:before { + content: " "; + /*background-image: url('../../../images/clippy.svg');*/ + background-size: 13px 15px; + background-repeat: no-repeat; + display: inline-block; + width: 13px; + height: 15px; + padding: 0 !important; +} + +#command-div { + display:none; +} + +#command-div .repo-copy-btn { + opacity: 0; + -webkit-transition: opacity 0.3s ease-in-out; + -o-transition: opacity 0.3s ease-in-out; + transition: opacity 0.3s ease-in-out; +} + +#command-div:hover .repo-copy-btn, #command-div .repo-copy-btn:focus { + opacity: 1; +} + +.google-drive { + background-image: url("https://www.google.com/drive/static/images/drive/logo-drive.png"); + background-size: contain; + width: 32px; + height: 32px; + background-repeat: no-repeat; + background-color: azure; + display: block; +} + +@media ( max-width : 768px) { + video { + margin-left: 0px; + } +} +@media ( min-width : 769px){ + video { + margin-left: 100px; + } +} diff --git a/src/app/submission/sections/form/section-form-operations.service.ts b/src/app/submission/sections/form/section-form-operations.service.ts index 7c6c242d428..f1219834f38 100644 --- a/src/app/submission/sections/form/section-form-operations.service.ts +++ b/src/app/submission/sections/form/section-form-operations.service.ts @@ -371,6 +371,10 @@ export class SectionFormOperationsService { const path = this.getFieldPathFromEvent(event); const segmentedPath = this.getFieldPathSegmentedFromChangeEvent(event); + + + + const value = this.getFieldValueFromChangeEvent(event); // Detect which operation must be dispatched if (this.formBuilder.isQualdropGroup(event.model.parent as DynamicFormControlModel) diff --git a/src/app/submission/sections/form/section-form.component.ts b/src/app/submission/sections/form/section-form.component.ts index 3c5aafe1cfd..d77af8610ec 100644 --- a/src/app/submission/sections/form/section-form.component.ts +++ b/src/app/submission/sections/form/section-form.component.ts @@ -292,7 +292,6 @@ export class SubmissionSectionFormComponent extends SectionModelComponent { * the section errors retrieved from the server */ updateForm(sectionData: WorkspaceitemSectionFormObject, errors: SubmissionSectionError[]): void { - if (isNotEmpty(sectionData) && !isEqual(sectionData, this.sectionData.data)) { this.sectionData.data = sectionData; if (this.hasMetadataEnrichment(sectionData)) { diff --git a/src/app/submission/sections/license/section-license.component.scss b/src/app/submission/sections/license/section-license.component.scss index e69de29bb2d..0982241f08c 100644 --- a/src/app/submission/sections/license/section-license.component.scss +++ b/src/app/submission/sections/license/section-license.component.scss @@ -0,0 +1,3 @@ +.container { + max-width: none; +} diff --git a/src/app/submission/sections/license/section-license.component.ts b/src/app/submission/sections/license/section-license.component.ts index 8f675dc0cd5..e88bc17c5b2 100644 --- a/src/app/submission/sections/license/section-license.component.ts +++ b/src/app/submission/sections/license/section-license.component.ts @@ -38,7 +38,7 @@ import { SECTION_LICENSE_FORM_LAYOUT, SECTION_LICENSE_FORM_MODEL } from './secti styleUrls: ['./section-license.component.scss'], templateUrl: './section-license.component.html', }) -@renderSectionFor(SectionsType.License) +// @renderSectionFor(SectionsType.License) export class SubmissionSectionLicenseComponent extends SectionModelComponent { /** @@ -197,7 +197,7 @@ export class SubmissionSectionLicenseComponent extends SectionModelComponent { * Method called when a form dfChange event is fired. * Dispatch form operations based on changes. */ - onChange(event: DynamicFormControlEvent) { + onChange(event: DynamicFormControlEvent) { const path = this.formOperationsService.getFieldPathSegmentedFromChangeEvent(event); const value = this.formOperationsService.getFieldValueFromChangeEvent(event); if (value) { diff --git a/src/app/submission/sections/sections-type.ts b/src/app/submission/sections/sections-type.ts index d13aef1da1d..9ad6f4081de 100644 --- a/src/app/submission/sections/sections-type.ts +++ b/src/app/submission/sections/sections-type.ts @@ -6,4 +6,5 @@ export enum SectionsType { CcLicense = 'cclicense', collection = 'collection', AccessesCondition = 'accessCondition', + clarinLicense = 'clarin-license', } diff --git a/src/app/submission/submission.module.ts b/src/app/submission/submission.module.ts index 939d1bff292..e96afb551ef 100644 --- a/src/app/submission/submission.module.ts +++ b/src/app/submission/submission.module.ts @@ -2,6 +2,7 @@ import { NgModule } from '@angular/core'; import { CoreModule } from '../core/core.module'; import { SharedModule } from '../shared/shared.module'; +import { NgToggleModule } from '@nth-cloud/ng-toggle'; import { SubmissionSectionFormComponent } from './sections/form/section-form.component'; import { SectionsDirective } from './sections/sections.directive'; import { SectionsService } from './sections/sections.service'; @@ -19,6 +20,7 @@ import { SubmissionSectionUploadComponent } from './sections/upload/section-uplo import { SectionUploadService } from './sections/upload/section-upload.service'; import { SubmissionUploadFilesComponent } from './form/submission-upload-files/submission-upload-files.component'; import { SubmissionSectionLicenseComponent } from './sections/license/section-license.component'; +import { SubmissionSectionClarinLicenseComponent } from './sections/clarin-license-resource/section-license.component'; import { SubmissionUploadsConfigService } from '../core/config/submission-uploads-config.service'; import { SubmissionEditComponent } from './edit/submission-edit.component'; import { SubmissionSectionUploadFileComponent } from './sections/upload/file/section-upload-file.component'; @@ -42,15 +44,18 @@ import { NgbAccordionModule, NgbModalModule } from '@ng-bootstrap/ng-bootstrap'; import { SubmissionSectionAccessesComponent } from './sections/accesses/section-accesses.component'; import { SubmissionAccessesConfigService } from '../core/config/submission-accesses-config.service'; import { SectionAccessesService } from './sections/accesses/section-accesses.service'; +import {SubmissionSectionClarinLicenseDistributionComponent} from './sections/clarin-license-distribution/clarin-license-distribution.component'; const ENTRY_COMPONENTS = [ // put only entry components that use custom decorator SubmissionSectionUploadComponent, SubmissionSectionFormComponent, SubmissionSectionLicenseComponent, + SubmissionSectionClarinLicenseComponent, SubmissionSectionCcLicensesComponent, SubmissionSectionAccessesComponent, - SubmissionSectionUploadFileEditComponent + SubmissionSectionUploadFileEditComponent, + SubmissionSectionClarinLicenseDistributionComponent ]; const DECLARATIONS = [ @@ -75,6 +80,7 @@ const DECLARATIONS = [ SubmissionImportExternalSearchbarComponent, SubmissionImportExternalPreviewComponent, SubmissionImportExternalCollectionComponent, + // NgToggleModule ]; @NgModule({ @@ -88,7 +94,8 @@ const DECLARATIONS = [ ResearchEntitiesModule.withEntryComponents(), FormModule, NgbAccordionModule, - NgbModalModule + NgbModalModule, + NgToggleModule ], declarations: DECLARATIONS, exports: DECLARATIONS, diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index 616586621af..b247b229d4f 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -1365,6 +1365,8 @@ "error.validation.license.notgranted": "You must grant this license to complete your submission. If you are unable to grant this license at this time you may save your work and return later or remove the submission.", + "error.validation.clarin-license.notgranted": "You must choose one of the resource licenses.", + "error.validation.pattern": "This input is restricted by the current pattern: {{ pattern }}.", "error.validation.filerequired": "The file upload is mandatory", @@ -4005,6 +4007,8 @@ "submission.sections.submit.progressbar.license": "Deposit license", + "submission.sections.submit.progressbar.clarin-license": "Pick license", + "submission.sections.submit.progressbar.upload": "Upload files", @@ -4120,6 +4124,52 @@ "submission.sections.accesses.form.until-placeholder": "Until", + "contract.breadcrumbs": "Distribution License Agreement", + + "contract.message.distribution-license-agreement": "Distribution License Agreement", + + "submission.sections.clarin-license.head.read-accept": "Read and accept the ", + + "submission.sections.clarin-license.head.license-agreement": "Distribution License Agreement", + + "submission.sections.clarin-license.head.license-decision-message": "By checking this box, you agree to the Distribution License Agreement for this repository to reproduce, translate and distribute your submissions worldwide.", + + "submission.sections.clarin-license.head.license-question-help-desk": ["If you have questions regarding this licence please contact the", "Help Desk"], + + "submission.sections.clarin-license.head.license-select-resource": "Select the resource license", + + "submission.sections.clarin-license.head.license-select-providing": ["The License Selector will provide you visual assistance to select the most appropriate license for your data or software. For the list of all supported licenses and their details visit ", "License List Page", "."], + + "submission.sections.clarin-license.head.license-open-selector": "OPEN License Selector", + + "submission.sections.clarin-license.head.license-select-or": "- OR -", + + "submission.sections.clarin-license.head.license-dropdown-info": "If you already know under which license you want to distribute your work, please select from the dropdown below.", + + "submission.sections.clarin-license.head.license-not-supported-message": "The selected license is not supported at the moment. Please follow the procedure described under section \"None of these licenses suits your needs\".", + + "submission.sections.clarin-license.head.license-select-default-value": "Select a License ...", + + "submission.sections.clarin-license.head.license-more-details": "See more details for the licenses", + + "submission.sections.clarin-license.head.license-do-not-suits-needs": "None of these licenses suits your needs", + + "submission.sections.clarin-license.head.license-not-offer-proceeds": "If you need to use a license we currently do not offer, proceed as follows:", + + "submission.sections.clarin-license.head.license-not-offer-proceed-link": "Obtain a link (or a copy) to the license.", + + "submission.sections.clarin-license.head.license-not-offer-proceed-email": ["Send an email to", "Help Desk", "with the license details."], + + "submission.sections.clarin-license.head.license-not-offer-proceed-wait": "Save the unfinished submission and wait. We will add the license to the selection list and contact you.", + + "submission.sections.clarin-license.head.license-not-offer-proceed-continue": "You will be able to continue the submission afterwards.", + + "submission.sections.clarin-license.toggle.off-text": "Click to accept", + + "submission.sections.clarin-license.toggle.on-text": "Accepted", + + + "submission.submit.breadcrumbs": "New submission", "submission.submit.title": "New submission", diff --git a/src/index.html b/src/index.html index ddd448f2892..ed60f62181c 100644 --- a/src/index.html +++ b/src/index.html @@ -7,8 +7,10 @@ DSpace - + + + diff --git a/src/license-selector-creation.js b/src/license-selector-creation.js new file mode 100644 index 00000000000..44932202d96 --- /dev/null +++ b/src/license-selector-creation.js @@ -0,0 +1,77 @@ +$(function() { + $('OPEN License Selector').appendTo('body').licenseSelector({ + licenses: { + 'pcedt2': { + name: 'CC-BY-NC-SA + LDC99T42', + available: true, + url: 'https://lindat.mff.cuni.cz/repository/xmlui/page/license-pcedt2', + description: 'License Agreement for Prague Czech English Dependency Treebank 2.0', + categories: ['data', 'by', 'nc', 'sa'], + }, + 'cnc': { + name: 'Czech National Corpus (Shuffled Corpus Data)', + available: true, + url: 'https://lindat.mff.cuni.cz/repository/xmlui/page/license-cnc', + description: 'License Agreement for the CNC', + categories: ['data'], + }, + 'hamledt': { + name: 'HamleDT 1.0 Licence Agreement', + available: true, + url: 'https://lindat.mff.cuni.cz/repository/xmlui/page/licence-hamledt', + description: 'License Agreement for the HamleDT 1.0', + categories: ['data'], + }, + 'hamledt-2.0': { + name: 'HamleDT 2.0 Licence Agreement', + available: false, + url: 'https://lindat.mff.cuni.cz/repository/xmlui/page/licence-hamledt-2.0', + description: 'HamleDT 2.0 License Agreement', + categories: ['data'], + }, + 'pdt2': { + name: 'PDT 2.0 License', + available: true, + url: 'https://lindat.mff.cuni.cz/repository/xmlui/page/license-pdt2', + description: 'Prague Dependency Treebank, version 2.0 License Agreement', + categories: ['data'], + }, + 'pdtsl': { + name: 'PDTSL', + available: true, + url: 'https://lindat.mff.cuni.cz/repository/xmlui/page/licence-pdtsl', + description: 'Research-Usage License Agreement for the PDTSL', + categories: ['data'], + }, + 'apache-2': { + url: 'http://www.apache.org/licenses/LICENSE-2.0', + }, + 'perl-artistic-2': { + url: 'http://opensource.org/licenses/Artistic-2.0', + }, + 'test-1': { + url: 'http://www.google.com', + } + }, + showLabels : true, + onLicenseSelected: function (license) { + var selectedLic = license["url"]; + var allLic = $("#aspect_submission_StepTransformer_list_license-list li a"); + for (var i = 0; i < allLic.length; i++) { + if (allLic[i].href == selectedLic) { + var id = allLic[i].name.replace("license_", ""); + document.getElementById('aspect_submission_StepTransformer_field_license').value = id; + $("#aspect_submission_StepTransformer_item_license-not-supported-message").addClass("hidden"); + document.getElementById('secret-change-button').click(); + return; + } + } + $("#aspect_submission_StepTransformer_item_license-not-supported-message").removeClass("hidden"); + document.getElementById('secret-change-button').click(); + } + + }) + +}); + +// class="btn btn-repository licenseselector bold btn-block btn-lg diff --git a/src/license-selector.js b/src/license-selector.js new file mode 100644 index 00000000000..19861e21c59 --- /dev/null +++ b/src/license-selector.js @@ -0,0 +1,2 @@ +!function(e){function t(s){if(i[s])return i[s].exports;var n=i[s]={exports:{},id:s,loaded:!1};return e[s].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var i={};return t.m=e,t.c=i,t.p="",t(0)}([function(e,t,i){i(2),e.exports=i(3)},function(e,t){var i,s,n,o,r,a;a=!0,o=!1,n={"cc-public-domain":{name:"Public Domain Mark (PD)",priority:1,available:!0,url:"http://creativecommons.org/publicdomain/mark/1.0/",description:"The work identified as being free of known restrictions under copyright law, including all related and neighboring rights.",categories:["public","data","software","public-domain"],labels:["public","pd"]},"cc-zero":{name:"Public Domain Dedication (CC Zero)",priority:1,available:!0,url:"http://creativecommons.org/publicdomain/zero/1.0/",description:"CC Zero enables scientists, educators, artists and other creators and owners of copyright- or database-protected content to waive those interests in their works and thereby place them as completely as possible in the public domain, so that others may freely build upon, enhance and reuse the works for any purposes without restriction under copyright or database law.",categories:["public","data","public-domain"],labels:["public","cc","zero","opendata"]},pddl:{name:"Open Data Commons Public Domain Dedication and License (PDDL)",priority:1,available:!1,url:"http://opendatacommons.org/licenses/pddl/summary/",description:"This license is meant to be an international, database-specific equivalent of the public domain. You cannot relicense or sublicense any database under this license because, like the public domain, after dedication you no longer own any rights to the database.",categories:["public","data","public-domain"],labels:["public"]},"cc-by":{name:"Creative Commons Attribution (CC-BY)",priority:1,available:!0,url:"http://creativecommons.org/licenses/by/4.0/",description:"This is the standard creative commons license that gives others maximum freedom to do what they want with your work.",categories:["public","data","by"],labels:["public","cc","by","opendata"]},"odc-by":{name:"Open Data Commons Attribution License (ODC-By)",priority:1,available:!1,url:"http://opendatacommons.org/licenses/by/summary/",description:"",categories:["public","data","by"],labels:["public"]},"cc-by-sa":{name:"Creative Commons Attribution-ShareAlike (CC-BY-SA)",priority:1,available:!0,url:"http://creativecommons.org/licenses/by-sa/4.0/",description:"This creative commons license is very similar to the regular Attribution license, but requires you to release all derivative works under this same license.",categories:["public","data","by","sa"],labels:["public","cc","by","sa","opendata"]},odbl:{name:"Open Data Commons Open Database License (ODbL)",priority:1,available:!1,url:"http://opendatacommons.org/licenses/odbl/summary/",description:"A copyleft license used by OpenStreetMap and others with very specific terms designed for databases.",categories:["public","data","by","sa"],labels:["public"]},"cc-by-nd":{name:"Creative Commons Attribution-NoDerivs (CC-BY-ND)",priority:1,available:!0,url:"http://creativecommons.org/licenses/by-nd/4.0/",description:"The no derivatives creative commons license is straightforward; you can take a work released under this license and re-distribute it but you cannot change it.",categories:["public","data","by","nd"],labels:["public","cc","nd"]},"cc-by-nc":{name:"Creative Commons Attribution-NonCommercial (CC-BY-NC)",priority:1,available:!0,url:"http://creativecommons.org/licenses/by-nc/4.0/",description:"A creative commons license that bans commercial use.",categories:["public","data","by","nc"],labels:["public","cc","nc"]},"cc-by-nc-sa":{name:"Creative Commons Attribution-NonCommercial-ShareAlike (CC-BY-NC-SA)",priority:1,available:!0,url:"http://creativecommons.org/licenses/by-nc-sa/4.0/",description:"A creative commons license that bans commercial use and requires you to release any modified works under this license.",categories:["public","data","by","nc","sa"],labels:["public","cc","by","nc","sa"]},"cc-by-nc-nd":{name:"Creative Commons Attribution-NonCommercial-NoDerivs (CC-BY-NC-ND)",priority:1,available:!0,url:"http://creativecommons.org/licenses/by-nc-nd/4.0/",description:"The most restrictive creative commons license. This only allows people to download and share your work for no commercial gain and for no other purposes.",categories:["public","data","by","nc","nd"],labels:["public","cc","by","nc","nd"]},"perl-artistic-1":{name:"Artistic License 1.0",priority:7,available:!0,url:"http://opensource.org/licenses/Artistic-Perl-1.0",description:"NOTE: This license has been superseded by the Artistic License, Version 2.0. This is a license for software packages with the intent of giving the original copyright holder some measure of control over his software while still remaining open source. It is flexible and allows you to distribute or sell modified versions as long as you fulfill one of various conditions. Look at section 4 in the full text for a better explanation.",categories:["public","software","perl"],labels:["public","perl"]},"perl-artistic-2":{name:"Artistic License 2.0",priority:8,available:!0,url:"http://opensource.org/licenses/Artistic-2.0",description:"This is a license for software packages with the intent of giving the original copyright holder some measure of control over his software while still remaining open source. It is flexible and allows you to distribute or sell modified versions as long as you fulfill one of various conditions. Look at section 4 in the full text for a better explanation.",categories:["public","software","perl"],labels:["public","perl","osi"]},"gpl-2+":{name:"GNU General Public License 2 or later (GPL-2.0)",priority:10,available:!0,url:"http://opensource.org/licenses/GPL-2.0",description:"You may copy, distribute and modify the software as long as you track changes/dates of in source files and keep all modifications under GPL. You can distribute your application using a GPL library commercially, but you must also disclose the source code.",categories:["public","software","gpl","copyleft","strong"],labels:["public","gpl","copyleft"]},"gpl-2":{name:"GNU General Public License 2 (GPL-2.0)",priority:10,available:!1,url:"http://opensource.org/licenses/GPL-2.0",description:"Standard GNU GPL version 2 but without support for later versions i.e. you cannot relicense under GPL 3.",categories:["public","software","gpl","copyleft","strong"],labels:["public","gpl","copyleft"]},"gpl-3":{name:"GNU General Public License 3 (GPL-3.0)",priority:11,available:!0,url:"http://opensource.org/licenses/GPL-3.0",description:"You may copy, distribute and modify the software as long as you track changes/dates of in source files and keep modifications under GPL. You can distribute your application using a GPL library commercially, but you must also provide the source code. GPL 3 tries to close some loopholes in GPL 2.",categories:["public","software","gpl","copyleft","strong"],labels:["public","gpl3","copyleft"]},"agpl-1":{name:"Affero General Public License 1 (AGPL-1.0)",priority:50,available:!1,url:"http://www.affero.org/oagpl.html",description:"",categories:["public","software","agpl","copyleft","strong"],labels:["public","copyleft"]},"agpl-3":{name:"Affero General Public License 3 (AGPL-3.0)",priority:51,available:!0,url:"http://opensource.org/licenses/AGPL-3.0",description:"The AGPL license differs from the other GNU licenses in that it was built for network software. You can distribute modified versions if you keep track of the changes and the date you made them. As per usual with GNU licenses, you must license derivatives under AGPL. It provides the same restrictions and freedoms as the GPLv3 but with an additional clause which makes it so that source code must be distributed along with web publication. Since web sites and services are never distributed in the traditional sense, the AGPL is the GPL of the web.",categories:["public","software","agpl","copyleft","strong"],labels:["public","agpl3","copyleft"]},"mpl-2":{name:"Mozilla Public License 2.0",priority:1,available:!0,url:"http://opensource.org/licenses/MPL-2.0",description:"This is a lenient license used by the Mozilla Corporation that allows you a variety of explicit freedoms with the software so long as you keep modifications under this license and distribute the original source code alongside executables. It is a good midway license; it isn’t very strict and has only straightforward requirements.",categories:["public","software","copyleft","weak"],labels:["public","mozilla","copyleft"]},"lgpl-2.1+":{name:'GNU Library or "Lesser" General Public License 2.1 or later (LGPL-2.1)',priority:2,available:!0,url:"http://opensource.org/licenses/LGPL-2.1",description:"You may copy, distribute and modify the software provided that modifications are described inside the modified files and licensed for free under LGPL-2.1. Derivatives or non-separate (statically-linked) works of the software must be licensed under LGPL, but separate, parent projects don't have to be.",categories:["public","software","copyleft","weak"],labels:["public","lgpl","copyleft"]},"lgpl-2.1":{name:'GNU Library or "Lesser" General Public License 2.1 (LGPL-2.1)',priority:2,available:!1,url:"http://opensource.org/licenses/LGPL-2.1",description:"Standard GNU LGPL version 2.1 but without support for later versions i.e. you cannot relicense under LGPL 3.",categories:["public","software","copyleft","weak"],labels:["public","lgpl","copyleft"]},"lgpl-3":{name:'GNU Library or "Lesser" General Public License 3.0 (LGPL-3.0)',priority:3,available:!0,url:"http://opensource.org/licenses/LGPL-3.0",description:"You may copy, distribute and modify the software provided that modifications are described inside the modified files and licensed for free under LGPL-2.1. Derivatives or non-separate (statically-linked) works of the software must be licensed under LGPL, but separate, parent projects don't have to be. LGPL 3 tries to close some loopholes in LGPL 2.1.",categories:["public","software","copyleft","weak"],labels:["public","lgpl3","copyleft"]},"epl-1":{name:"Eclipse Public License 1.0 (EPL-1.0)",priority:4,available:!0,url:"http://opensource.org/licenses/EPL-1.0",description:"This license, made and used by the Eclipse Foundation, isn’t all too stringent and gives both copyright and explicit patent rights. Check the full text of the license to see how liability is accorded.",categories:["public","software","copyleft","weak"],labels:["public","eclipse","copyleft"]},"cddl-1":{name:"Common Development and Distribution License (CDDL-1.0)",priority:5,available:!0,url:"http://opensource.org/licenses/CDDL-1.0",description:"This is a very permissive and popular license made by Sun Microsystems that also includes explicit patent grants. It is relatively simplistic in its conditions, requiring only a small amount of documentation for redistribution (applying to source as well as modified code).",categories:["public","software","copyleft","weak"],labels:["public","copyleft","osi"]},mit:{name:"The MIT License (MIT)",priority:1,available:!0,url:"http://opensource.org/licenses/mit-license.php",description:"A short, permissive software license. Basically, you can do whatever you want as long as you include the original copyright and license.",categories:["public","software","permissive"],labels:["public","mit","osi"]},"bsd-3c":{name:'The BSD 3-Clause "New" or "Revised" License (BSD)',priority:2,available:!0,url:"http://opensource.org/licenses/BSD-3-Clause",description:'The BSD 3-clause license allows you almost unlimited freedom with the software so long as you include the BSD copyright notice in it. "Use trademark" in this case means you cannot use the names of the original company or its members to endorse derived products.',categories:["public","software","permissive"],labels:["public","bsd","osi"]},"bsd-2c":{name:'The BSD 2-Clause "Simplified" or "FreeBSD" License',priority:3,available:!0,url:"http://opensource.org/licenses/BSD-2-Clause",description:"The BSD 2-clause license allows you almost unlimited freedom with the software so long as you include the BSD copyright notice in it.",categories:["public","software","permissive"],labels:["public","bsd","osi"]},"apache-2":{name:"Apache License 2",priority:4,available:!0,url:"http://www.apache.org/licenses/LICENSE-2.0",description:'A license that allows you much freedom with the software, including an explicit right to a patent. "State changes" means that you have to include a notice in each file you modified. ',categories:["public","software","permissive"],labels:["public","apache","osi"]}},s={columns:["cc-public-domain","mit","bsd-2c","bsd-3c","apache-2","lgpl-2.1","lgpl-2.1+","lgpl-3","mpl-2","epl-1","cddl-1","gpl-2","gpl-2+","gpl-3","agpl-1","agpl-3"],table:{"cc-public-domain":[a,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a],mit:[o,a,a,a,a,a,a,a,a,a,a,a,a,a,a,a],"bsd-2c":[o,o,a,a,a,a,a,a,a,a,a,a,a,a,a,a],"bsd-3c":[o,o,o,a,a,a,a,a,a,a,a,a,a,a,a,a],"apache-2":[o,o,o,o,a,o,o,a,a,a,o,o,o,a,o,a],"lgpl-2.1":[o,o,o,o,o,a,o,o,a,o,o,a,o,o,a,o],"lgpl-2.1+":[o,o,o,o,o,o,a,a,a,o,o,a,a,a,a,a],"lgpl-3":[o,o,o,o,o,o,o,a,a,o,o,o,o,a,o,a],"mpl-2":[o,o,o,o,o,a,a,a,a,o,o,a,a,a,a,a],"epl-1":[o,o,o,o,o,o,o,o,a,a,a,o,o,a,o,a],"cddl-1":[o,o,o,o,o,o,o,o,o,o,a,o,o,o,o,o],"gpl-2":[o,o,o,o,o,o,o,o,o,o,o,a,o,o,a,o],"gpl-2+":[o,o,o,o,o,o,o,o,o,o,o,a,a,a,a,a],"gpl-3":[o,o,o,o,o,o,o,o,o,o,o,o,a,a,o,a],"agpl-1":[o,o,o,o,o,o,o,o,o,o,o,o,o,o,a,o],"agpl-3":[o,o,o,o,o,o,o,o,o,o,o,o,o,o,o,a]}},r={KindOfContent:function(){return this.question("What do you want to deposit?"),this.answer("Software",function(){return this.exclude("data"),this["goto"]("YourSoftware")}),this.answer("Data",function(){return this.exclude("software"),this["goto"]("DataCopyrightable")})},DataCopyrightable:function(){return this.question("Is your data within the scope of copyright and related rights?"),this.yes(function(){return this["goto"]("OwnIPR")}),this.no(function(){return this.license("cc-public-domain")})},OwnIPR:function(){return this.question("Do you own copyright and similar rights in your dataset and all its constitutive parts?"),this.yes(function(){return this["goto"]("AllowDerivativeWorks")}),this.no(function(){return this["goto"]("EnsureLicensing")})},AllowDerivativeWorks:function(){return this.question("Do you allow others to make derivative works?"),this.yes(function(){return this.exclude("nd"),this["goto"]("ShareAlike")}),this.no(function(){return this.include("nd"),this.only("nc")?this.license():this["goto"]("CommercialUse")})},ShareAlike:function(){return this.question("Do you require others to share derivative works based on your data under a compatible license?"),this.yes(function(){return this.include("sa"),this.only("nc")?this.license():this["goto"]("CommercialUse")}),this.no(function(){return this.exclude("sa"),this.only("nc")?this.license():this["goto"]("CommercialUse")})},CommercialUse:function(){return this.question("Do you allow others to make commercial use of you data?"),this.yes(function(){return this.exclude("nc"),this.only("by")?this.license():this["goto"]("DecideAttribute")}),this.no(function(){return this.include("nc"),this.include("by"),this.license()})},DecideAttribute:function(){return this.question("Do you want others to attribute your data to you?"),this.yes(function(){return this.include("by"),this.license()}),this.no(function(){return this.include("public-domain"),this.license()})},EnsureLicensing:function(){return this.question("Are all the elements of your dataset licensed under a public license or in the Public Domain?"),this.yes(function(){return this["goto"]("LicenseInteropData")}),this.no(function(){return this.cantlicense("You need additional permission before you can deposit the data!")})},LicenseInteropData:function(){var e,t;return this.question("Choose licenses present in your dataset:"),this.option(["cc-public-domain","cc-zero","pddl"],function(){return this["goto"]("AllowDerivativeWorks")}),this.option(["cc-by","odc-by"],function(){return this.exclude("public-domain"),this["goto"]("AllowDerivativeWorks")}),this.option(["cc-by-nc"],function(){return this.include("nc"),this["goto"]("AllowDerivativeWorks")}),this.option(["cc-by-nc-sa"],function(){return this.license("cc-by-nc-sa")}),this.option(["odbl"],function(){return this.license("odbl","cc-by-sa")}),this.option(["cc-by-sa"],function(){return this.license("cc-by-sa")}),this.option(["cc-by-nd","cc-by-nc-nd"],function(){return this.cantlicense("License doesn't allow derivative works. You need additional permission before you can deposit the data!")}),t=function(e){var t;return t=_(e.options).filter("selected").last(),null!=t?t.action():void 0},e=function(e){return!_.some(e.options,function(e){return e.selected})},this.answer("Next",t,e)},YourSoftware:function(){return this.question("Is your code based on existing software or is it your original work?"),this.answer("Based on existing software",function(){return this["goto"]("LicenseInteropSoftware")}),this.answer("My own code",function(){return this["goto"]("Copyleft")})},LicenseInteropSoftware:function(){var e,t,i,n,o;for(this.question("Select licenses in your code:"),o=s.columns,e=0,t=o.length;t>e;e++)i=o[e],this.option([i]);return n=function(e){var t,n,o,r,a,l,c,h,u,p,d,f,m,y,b,g;if(m=_(e.options).filter("selected").map("licenses").flatten().valueOf(),0!==m.length){for(r=0,c=m.length;c>r;r++)for(p=m[r],n=_.indexOf(s.columns,p.key),a=0,h=m.length;h>a;a++)if(d=m[a],o=_.indexOf(s.columns,d.key),!s.table[d.key][n]&&!s.table[p.key][o])return void this.cantlicense("The licenses "+p.name+" and "+d.name+" in your software are incompatible. Contact the copyright owner and try to talk him into re-licensing.");for(y=null,b=0,u=m.length;u>b;b++)i=m[b],null!=y?(l=s.table[i.key],y=_.map(y,function(e,t){return l[t]&&e})):y=s.table[i.key];m=[];for(t in y)g=y[t],g&&(f=s.columns[t],f&&null!=this.licenses[f]&&m.push(this.licenses[f]));this.licensesList.update(m),this.has("copyleft")&&this.has("permissive")?this["goto"]("Copyleft"):this.has("copyleft")&&this.has("strong")&&this.has("weak")?this["goto"]("StrongCopyleft"):this.license()}},this.answer("Next",n,function(e){return!_.some(e.options,function(e){return e.selected})})},Copyleft:function(){return this.question("Do you want others who modify your code to be forced to also release it under open source license?"),this.yes(function(){return this.include("copyleft"),this.has("weak")&&this.has("strong")?this["goto"]("StrongCopyleft"):this.license()}),this.no(function(){return this.exclude("copyleft"),this.include("permissive"),this.license()})},StrongCopyleft:function(){return this.question("Is your code used directly as an executable or are you licensing a library (your code will be linked)?"),this.answer("Executable",function(){return this.include("strong"),this.license()}),this.answer("Library",function(){return this.include("weak"),this.license()})}},i={"public":{text:"Publicly Available",title:"Under this license your resource will be publicly available",itemClass:"ls-label-public"},aca:{text:"Academic Use",title:"License restricts the use only for research and educational purposes",itemClass:"ls-label-aca"},res:{text:"Restricted Use",title:"License further restricts the use",itemClass:"ls-label-res"},pd:{title:"Public Domain Mark",itemClass:"ls-icon-pd"},cc:{title:"Creative Commons",itemClass:"ls-icon-cc"},zero:{title:"Creative Commons Zero",itemClass:"ls-icon-zero"},by:{title:"Attribution Required",itemClass:"ls-icon-by"},sa:{title:"Share-alike",itemClass:"ls-icon-sa"},nd:{title:"No Derivative Works",itemClass:"ls-icon-nd"},nc:{title:"Noncommercial",itemClass:"ls-icon-nc"},perl:{title:"Recommended for Perl software",itemClass:"ls-icon-perl"},osi:{title:"Approved by Open Source Initiative",itemClass:"ls-icon-osi"},gpl:{title:"General Public License",itemClass:"ls-icon-gpl"},gpl3:{title:"Latest General Public License version 3.0",itemClass:"ls-icon-gpl3"},agpl3:{title:"Latest Affero General Public License version 3.0",itemClass:"ls-icon-agpl3"},lgpl:{title:"Library General Public License",itemClass:"ls-icon-lgpl"},lgpl3:{title:"Latest Library General Public License version 3.0",itemClass:"ls-icon-lgpl3"},copyleft:{title:"Copyleft",itemClass:"ls-icon-copyleft"},mozilla:{title:"License endorsed by Mozilla Foundation",itemClass:"ls-icon-mozilla"},mit:{title:"MIT License",itemClass:"ls-icon-mit"},bsd:{title:"BSD License",itemClass:"ls-icon-bsd"},apache:{title:"License endorsed by Apache Foundation",itemClass:"ls-icon-apache"},eclipse:{title:"License endorsed by Eclipse Foundation",itemClass:"ls-icon-eclipse"},opendata:{title:"Open Data",itemClass:"ls-icon-opendata"}},e.exports={LicenseDefinitions:n,LicenseCompatibility:s,QuestionDefinitions:r,LabelsDefinitions:i}},function(e,t,i){var s,n,o,r,a,l,c,h,u,p,d,f,m,y,b,g,v,w,L,C=[].slice;n="license-selector",s=i(5),g=i(4),L=i(1),h=L.LicenseDefinitions,c=L.LicenseCompatibility,m=L.QuestionDefinitions,l=L.LabelsDefinitions,o={"the scope of copyright and related rights":"

\nCopyright protects original works. Originality is defined as the author’s own\nintellectual creation. Therefore, mere statements of historical facts, results\nof measurements etc. are not protected by copyright, because they exist\nobjectively and therefore cannot be created. The same applies to ideas,\nmathematical formulas, elements of folklore etc. While quantitative data are\nusually not protected by copyright, qualitative data (as their creation\ninvolve some intellectual judgment) or language data are usually\ncopyrightable.\n

\n

\nApart from copyright in the data itself, a compilation of data (a dataset) may\nalso be protected by copyright as an original work. It is the case when the\nselection and arrangement of the dataset involves some degree of intellectual\ncreation or choice. This is not the case when the guiding principle of the\ncollection is exhaustivity and/or completeness. For example, while My\nfavorite works of William Shakespeare will most likely be an original\ncollection, Complete works of William Shakespeare will not, as it leaves\nno room for personal creativity.\n

\n

\nThe investment (of money and/or labor) into the making of the dataset is\nirrelevant from the point of view of copyright law; however, a substantial\ninvestment into the creation of a database may attract a specific kind of\nprotection, the sui generis database right. If your data and your dataset are\nnot original, but you made a substantial investment into the making of a\ndatabase, you can still benefit from legal protection (in such a case, answer\nYES to this question).\n

\n

Answer Yes if ...

\n
    \n
  • selecting a license for language data (in most cases)
  • \n
  • selecting a license for original (creative) selection or arrangement of the dataset
  • \n
  • substantial investment went into the making of the database
  • \n
  • you are not sure that the answer should be No
  • \n
\n

answer No if ...

\n
    \n
  • your dataset contains only quantitative data and/or raw facts
  • \n
  • your dataset is exhaustive and complete (or at least aims to be)
  • \n
  • only if you are sure!
  • \n
","copyright and similar rights":"

\ncopyright – protects original works or original compilations of works\n

\n

\nsui generis database rights – protects substantial investment into the making of a database\n

","licensed under a public license":"

\nBy licensed data we understand data available under a public license, such\nas Creative Commons or ODC licenses. If you have a bespoke license for the\ndata (i.e. a license drafted for a specific contractual agreement, such as\nbetween a publisher and a research institution), contact our legal help desk.\n

","Public Domain":"

\nPublic Domain is a category including works that are not protected by\ncopyright (such as raw facts, ideas) or that are no longer protected by\ncopyright (copyright expires 70 years after the death of the author). In many\njurisdictions, some official texts such as court decisions or statutes are\nalso regarded as part of the public domain.\n

","additional permission":"

\nIn order to be able to deposit your data in our repository, you will have to\ncontact the copyright holder (usually the publisher or the author) and ask him\nfor a written permission to do so. Our legal help desk will help you draft the\npermission. We will also tell you what to do if you cannot identify the\ncopyright holder.\n

","derivative works":"

\nDerivative works are works that are derived from or based upon an original\nwork and in which the original work is translated, altered, arranged,\ntransformed, or otherwise modified. This category does not include parodies.\n

\n

\nPlease note that the use of language resources consists of making derivative\nworks. If you do not allow others to build on your work, it will be of very\nlittle use for the community.\n

","commercial use":"

\nCommercial use is a use that is primarily intended for or directed towards\ncommercial advantage or monetary compensation.\n

\n

\nPlease note that the meaning of this term is not entirely clear (although it\nseems to be generally agreed upon that academic research, even carried out by\nprofessional researchers, is not commercial use) and if you choose this\nrestriction, it may have a chilling effect on the re-use of your resource by\nsome projects (public-private partnerships).\n

",attribute:"

\nIt is your moral right to have your work attributed to you (i.e. your name\nmentioned every time someone uses your work). However, be aware of the fact\nthat the attribution requirement in Creative Commons licenses is more extended\nthan just mentioning your name.\n

\n

\nIn fact, the attribution clause in Creative Commons licenses obliges the user\nto mention a whole set of information (identity of the creator, a copyright\nnotice, a reference to the chosen CC license and a hyperlink to its text, a\ndisclaimer of warranties, an indication of any modifications made to the\noriginal work and even a hyperlink to the work itself). This may lead to a\nphenomenon known as attribution stacking, which will make your work\ndifficult to compile with other works.\n

"},r=g.keys(o),v=function(e){var t,i,s,n;for(t=0,s=r.length;s>t;t++)n=r[t],i=e.indexOf(n),i>=0&&(e=e.substring(0,i)+''+e.substring(i,i+n.length)+""+e.substring(i+n.length));return e},w=function(e,t){s(".ls-term",e).each(function(){var e,i;e=s(this),i=e.html(),o[i]&&new b(s("
").addClass("ls-term-tooltip").html(o[i]),e,{container:t,position:"bottom"})})},b=function(){function e(e,t,i){this.position="top",this.preserve=!1,this.container=!1,this.beforeShow=!1,i&&g.extend(this,i),!this.container||this.container instanceof s||(this.container=s(this.container)),this.hovered=!1,g.bindAll(this,["onEvenIn","onEventOut"]),this.buildContainer().setElement(e).setAnchor(t)}return e.prototype.buildContainer=function(){return this.$wrapper=s("
").addClass("ls-tooltip-wrapper").addClass("ls-tooltip-"+this.position),this},e.prototype.setElement=function(e){return this.$wrapper.empty().append(this.$el=e instanceof s?e:s(e)),this},e.prototype.setAnchor=function(e){return this.$anchor&&this.$anchor.css("position",null),this.$anchor=e instanceof s?e:s(e),this.$anchor.on({focusin:this.onEvenIn,mouseenter:this.onEvenIn,mouseleave:this.onEventOut,focusout:this.onEventOut}).css("position","relative"),this},e.prototype.show=function(){return(!this.beforeShow||this.beforeShow(this,this.$anchor,this.$el))&&(this.container?this.container.append(this.$wrapper):this.$anchor.parent().append(this.$wrapper),this.move()),this},e.prototype.hide=function(){return this.$wrapper[this.preserve?"detach":"remove"](),this.hovered=!1,this},e.prototype.move=function(){var e,t,i,s,n,o,r,a;switch(t=this.$wrapper,e=this.$anchor,a=t.outerWidth(),r=t.outerHeight(),n=e.outerWidth(),i=e.outerHeight(),s=e.offset(),o={left:s.left+parseInt(e.css("marginLeft"),10),top:s.top+parseInt(e.css("marginTop"),10)},this.position){case"top":o.left+=(n-a)/2,o.top-=r;break;case"right":o.left+=n,o.top+=(i-r)/2;break;case"bottom":o.left+=(n-a)/2,o.top+=i;break;case"left":o.left-=a,o.top+=(i-r)/2}return t.css(o),(t.outerWidth()>a||t.outerHeight()>r)&&this.move(),this},e.prototype.destroy=function(){return this.hide(),this.$anchor.off({focusin:this.onEvenIn,mouseenter:this.onEvenIn,mouseleave:this.onEventOut,focusout:this.onEventOut}),this},e.prototype.onEvenIn=function(){return this.hovered?void 0:(this.hovered=!0,this.show())},e.prototype.onEventOut=function(){return this.hovered?(this.hovered=!1,this.hide()):void 0},e}(),a=function(){function e(e,t){var i;this.parent=e,this.licenseSelector=t,this.current=-1,this.historyStack=[],this.prevButton=s(" +
+ + +
+
+
+
+ +
+
+ +
+ + + + diff --git a/src/app/clarin-licenses/clarin-license-table/clarin-license-table.component.scss b/src/app/clarin-licenses/clarin-license-table/clarin-license-table.component.scss new file mode 100644 index 00000000000..3f109e548f0 --- /dev/null +++ b/src/app/clarin-licenses/clarin-license-table/clarin-license-table.component.scss @@ -0,0 +1,3 @@ +/** + The file for styling `clarin-license-table.component.html`. No styling needed. + */ diff --git a/src/app/clarin-licenses/clarin-license-table/clarin-license-table.component.spec.ts b/src/app/clarin-licenses/clarin-license-table/clarin-license-table.component.spec.ts new file mode 100644 index 00000000000..568d512ad05 --- /dev/null +++ b/src/app/clarin-licenses/clarin-license-table/clarin-license-table.component.spec.ts @@ -0,0 +1,151 @@ +import {ComponentFixture, fakeAsync, TestBed, waitForAsync} from '@angular/core/testing'; + +import { ClarinLicenseTableComponent } from './clarin-license-table.component'; +import {createSuccessfulRemoteDataObject$} from '../../shared/remote-data.utils'; +import {buildPaginatedList} from '../../core/data/paginated-list.model'; +import {PageInfo} from '../../core/shared/page-info.model'; +import {NotificationsServiceStub} from '../../shared/testing/notifications-service.stub'; +import {ClarinLicenseDataService} from '../../core/data/clarin/clarin-license-data.service'; +import {RequestService} from '../../core/data/request.service'; +import {of as observableOf} from 'rxjs'; +import {SharedModule} from '../../shared/shared.module'; +import {CommonModule} from '@angular/common'; +import {ReactiveFormsModule} from '@angular/forms'; +import {TranslateModule} from '@ngx-translate/core'; +import {RouterTestingModule} from '@angular/router/testing'; +import {PaginationService} from '../../core/pagination/pagination.service'; +import {PaginationServiceStub} from '../../shared/testing/pagination-service.stub'; +import {NotificationsService} from '../../shared/notifications/notifications.service'; +import {defaultPagination} from '../clarin-license-table-pagination'; +import {ClarinLicenseLabelDataService} from '../../core/data/clarin/clarin-license-label-data.service'; +import {NgbActiveModal} from '@ng-bootstrap/ng-bootstrap'; +import {HostWindowService} from '../../shared/host-window.service'; +import {HostWindowServiceStub} from '../../shared/testing/host-window-service.stub'; +import { + createdLicenseLabelRD$, + createdLicenseRD$, + mockExtendedLicenseLabel, + mockLicense, mockLicenseRD$, + mockNonExtendedLicenseLabel, successfulResponse +} from '../../shared/testing/clarin-license-mock'; + +describe('ClarinLicenseTableComponent', () => { + let component: ClarinLicenseTableComponent; + let fixture: ComponentFixture; + + let clarinLicenseDataService: ClarinLicenseDataService; + let clarinLicenseLabelDataService: ClarinLicenseLabelDataService; + let requestService: RequestService; + let notificationService: NotificationsServiceStub; + let modalStub: NgbActiveModal; + + + + beforeEach(async () => { + notificationService = new NotificationsServiceStub(); + clarinLicenseDataService = jasmine.createSpyObj('clarinLicenseService', { + findAll: mockLicenseRD$, + create: createdLicenseRD$, + put: createdLicenseRD$, + getLinkPath: observableOf('') + }); + clarinLicenseLabelDataService = jasmine.createSpyObj('clarinLicenseLabelService', { + create: createdLicenseLabelRD$ + }); + requestService = jasmine.createSpyObj('requestService', { + send: observableOf('response'), + getByUUID: observableOf(successfulResponse), + generateRequestId: observableOf('123456'), + }); + modalStub = jasmine.createSpyObj('modalService', ['close', 'open']); + + await TestBed.configureTestingModule({ + imports: [ + SharedModule, + CommonModule, + ReactiveFormsModule, + TranslateModule.forRoot(), + RouterTestingModule.withRoutes([]) + ], + declarations: [ ClarinLicenseTableComponent ], + providers: [ + { provide: RequestService, useValue: requestService }, + { provide: ClarinLicenseDataService, useValue: clarinLicenseDataService }, + { provide: ClarinLicenseLabelDataService, useValue: clarinLicenseLabelDataService }, + { provide: PaginationService, useValue: new PaginationServiceStub() }, + { provide: NotificationsService, useValue: notificationService }, + { provide: NgbActiveModal, useValue: modalStub }, + { provide: HostWindowService, useValue: new HostWindowServiceStub(0) }, + ], + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(ClarinLicenseTableComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + afterEach(() => { + fixture.destroy(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + it('should initialize paginationOptions', () => { + (component as ClarinLicenseTableComponent).ngOnInit(); + expect((component as ClarinLicenseTableComponent).options).toEqual(defaultPagination); + }); + + it('should onInit should initialize clarin license table data', () => { + (component as ClarinLicenseTableComponent).ngOnInit(); + expect((component as any).clarinLicenseService.findAll).toHaveBeenCalled(); + expect((component as ClarinLicenseTableComponent).licensesRD$).not.toBeNull(); + }); + + it('should create new clarin license and reload the licenses table', () => { + (component as ClarinLicenseTableComponent).defineNewLicense(mockLicense); + expect((component as any).clarinLicenseService.create).toHaveBeenCalled(); + // notificate successful response + expect((component as any).notificationService.success).toHaveBeenCalled(); + // load table data + expect((component as any).clarinLicenseService.findAll).toHaveBeenCalled(); + expect((component as ClarinLicenseTableComponent).licensesRD$).not.toBeNull(); + }); + + it('should not create new clarin license label when icon image is null', () => { + // non extended ll has no icon + (component as ClarinLicenseTableComponent).defineLicenseLabel(mockNonExtendedLicenseLabel); + expect((component as any).notificationService.error).toHaveBeenCalled(); + }); + + it('should create new clarin license label and load table data', fakeAsync(() => { + // extended ll has icon + (component as ClarinLicenseTableComponent).defineLicenseLabel(mockExtendedLicenseLabel); + fixture.detectChanges(); + fixture.whenStable().then(() => { + expect((component as any).clarinLicenseLabelService.create).toHaveBeenCalled(); + // notificate successful response + expect((component as any).notificationService.success).toHaveBeenCalled(); + // load table data + expect((component as any).clarinLicenseService.findAll).toHaveBeenCalled(); + expect((component as ClarinLicenseTableComponent).licensesRD$).not.toBeNull(); + }); + })); + + it('should successful edit clarin license', () => { + // some license must be selected + (component as ClarinLicenseTableComponent).selectedLicense = mockLicense; + // non extended ll has no icon + (component as ClarinLicenseTableComponent).editLicense(mockLicense); + expect((component as any).clarinLicenseService.put).toHaveBeenCalled(); + // notificate successful response + expect((component as any).notificationService.success).toHaveBeenCalled(); + // load table data + expect((component as any).clarinLicenseService.findAll).toHaveBeenCalled(); + expect((component as ClarinLicenseTableComponent).licensesRD$).not.toBeNull(); + }); +}); diff --git a/src/app/clarin-licenses/clarin-license-table/clarin-license-table.component.ts b/src/app/clarin-licenses/clarin-license-table/clarin-license-table.component.ts new file mode 100644 index 00000000000..715f965885d --- /dev/null +++ b/src/app/clarin-licenses/clarin-license-table/clarin-license-table.component.ts @@ -0,0 +1,327 @@ +import { Component, OnInit } from '@angular/core'; +import { PaginationComponentOptions } from '../../shared/pagination/pagination-component-options.model'; +import { BehaviorSubject, combineLatest as observableCombineLatest } from 'rxjs'; +import { RemoteData } from '../../core/data/remote-data'; +import { PaginatedList } from '../../core/data/paginated-list.model'; +import { ClarinLicense } from '../../core/shared/clarin/clarin-license.model'; +import { getFirstCompletedRemoteData, getFirstSucceededRemoteData } from '../../core/shared/operators'; +import { switchMap } from 'rxjs/operators'; +import { PaginationService } from '../../core/pagination/pagination.service'; +import { ClarinLicenseDataService } from '../../core/data/clarin/clarin-license-data.service'; +import { SortOptions } from '../../core/cache/models/sort-options.model'; +import { defaultPagination, defaultSortConfiguration } from '../clarin-license-table-pagination'; +import { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap'; +import { DefineLicenseFormComponent } from './modal/define-license-form/define-license-form.component'; +import { DefineLicenseLabelFormComponent } from './modal/define-license-label-form/define-license-label-form.component'; +import { ClarinLicenseConfirmationSerializer } from '../../core/shared/clarin/clarin-license-confirmation-serializer'; +import { NotificationsService } from '../../shared/notifications/notifications.service'; +import { TranslateService } from '@ngx-translate/core'; +import { isNull } from '../../shared/empty.util'; +import { ClarinLicenseLabel } from '../../core/shared/clarin/clarin-license-label.model'; +import { ClarinLicenseLabelDataService } from '../../core/data/clarin/clarin-license-label-data.service'; +import { ClarinLicenseLabelExtendedSerializer } from '../../core/shared/clarin/clarin-license-label-extended-serializer'; +import {ClarinLicenseRequiredInfoSerializer} from '../../core/shared/clarin/clarin-license-required-info-serializer'; +import {cloneDeep} from 'lodash'; + +/** + * Component for managing clarin licenses and defining clarin license labels + */ +@Component({ + selector: 'ds-clarin-license-table', + templateUrl: './clarin-license-table.component.html', + styleUrls: ['./clarin-license-table.component.scss'] +}) +export class ClarinLicenseTableComponent implements OnInit { + + constructor(private paginationService: PaginationService, + private clarinLicenseService: ClarinLicenseDataService, + private clarinLicenseLabelService: ClarinLicenseLabelDataService, + private modalService: NgbModal, + public activeModal: NgbActiveModal, + private notificationService: NotificationsService, + private translateService: TranslateService,) { } + + /** + * The list of License object as BehaviorSubject object + */ + licensesRD$: BehaviorSubject>> = new BehaviorSubject>>(null); + + /** + * The pagination options + * Start at page 1 and always use the set page size + */ + options: PaginationComponentOptions; + + /** + * The configuration which is send to the server with search request. + */ + sortConfiguration: SortOptions; + + /** + * The license which is currently selected, only one license could be selected + */ + selectedLicense: ClarinLicense; + + /** + * If the request isn't processed show the loading bar. + */ + isLoading = false; + + ngOnInit(): void { + this.initializePaginationOptions(); + this.initializeSortingOptions(); + this.loadAllLicenses(); + } + + // define license + openDefineLicenseForm() { + const defineLicenseModalRef = this.modalService.open(DefineLicenseFormComponent); + + defineLicenseModalRef.result.then((result: ClarinLicense) => { + console.log('this.defineNewLicense(result);', result); + this.defineNewLicense(result); + }).catch((error) => { + console.log(error); + }); + } + + defineNewLicense(clarinLicense: ClarinLicense) { + const successfulMessageContentDef = 'clarin-license.define-license.notification.successful-content'; + const errorMessageContentDef = 'clarin-license.define-license.notification.error-content'; + if (isNull(clarinLicense)) { + this.notifyOperationStatus(clarinLicense, successfulMessageContentDef, errorMessageContentDef); + } + + // convert string value from the form to the number + clarinLicense.confirmation = ClarinLicenseConfirmationSerializer.Serialize(clarinLicense.confirmation); + // convert ClarinLicenseUserInfo.short the string value + if (Array.isArray(clarinLicense.requiredInfo)) { + clarinLicense.requiredInfo = ClarinLicenseRequiredInfoSerializer.Serialize(clarinLicense.requiredInfo); + } + + this.clarinLicenseService.create(clarinLicense) + .pipe(getFirstCompletedRemoteData()) + .subscribe((defineLicenseResponse: RemoteData) => { + // check payload and show error or successful + this.notifyOperationStatus(defineLicenseResponse, successfulMessageContentDef, errorMessageContentDef); + this.loadAllLicenses(); + }); + } + + // edit license + openEditLicenseForm() { + if (isNull(this.selectedLicense)) { + return; + } + + // pass the actual clarin license values to the define-clarin-license modal + const editLicenseModalRef = this.modalService.open(DefineLicenseFormComponent); + editLicenseModalRef.componentInstance.name = this.selectedLicense.name; + editLicenseModalRef.componentInstance.definition = this.selectedLicense.definition; + editLicenseModalRef.componentInstance.confirmation = this.selectedLicense.confirmation; + editLicenseModalRef.componentInstance.requiredInfo = this.selectedLicense.requiredInfo; + editLicenseModalRef.componentInstance.extendedClarinLicenseLabels = + this.selectedLicense.extendedClarinLicenseLabels; + editLicenseModalRef.componentInstance.clarinLicenseLabel = + this.selectedLicense.clarinLicenseLabel; + + editLicenseModalRef.result.then((result: ClarinLicense) => { + this.editLicense(result); + }); + } + + editLicense(clarinLicense: ClarinLicense) { + const successfulMessageContentDef = 'clarin-license.edit-license.notification.successful-content'; + const errorMessageContentDef = 'clarin-license.edit-license.notification.error-content'; + if (isNull(clarinLicense)) { + this.notifyOperationStatus(clarinLicense, successfulMessageContentDef, errorMessageContentDef); + } + + const clarinLicenseObj = new ClarinLicense(); + clarinLicenseObj.name = clarinLicense.name; + // @ts-ignore + clarinLicenseObj.clarinLicenseLabel = this.ignoreIcon(clarinLicense.clarinLicenseLabel); + // @ts-ignore + clarinLicenseObj.extendedClarinLicenseLabels = this.ignoreIcon(clarinLicense.extendedClarinLicenseLabels); + clarinLicenseObj._links = this.selectedLicense._links; + clarinLicenseObj.id = clarinLicense.id; + clarinLicenseObj.confirmation = ClarinLicenseConfirmationSerializer.Serialize(clarinLicense.confirmation); + // convert ClarinLicenseUserInfo.short the string value + if (Array.isArray(clarinLicense.requiredInfo)) { + clarinLicenseObj.requiredInfo = ClarinLicenseRequiredInfoSerializer.Serialize(clarinLicense.requiredInfo); + } + clarinLicenseObj.definition = clarinLicense.definition; + clarinLicenseObj.bitstreams = clarinLicense.bitstreams; + clarinLicenseObj.type = clarinLicense.type; + + this.clarinLicenseService.put(clarinLicenseObj) + .pipe(getFirstCompletedRemoteData()) + .subscribe((editResponse: RemoteData) => { + // check payload and show error or successful + this.notifyOperationStatus(editResponse, successfulMessageContentDef, errorMessageContentDef); + this.loadAllLicenses(); + }); + } + + /** + * When the Clarin License is editing ignore the Clarin License Label Icons - it throws error on BE, because the icon + * is send as string not as byte array. + * @param clarinLicenses + */ + ignoreIcon(clarinLicenses: ClarinLicenseLabel | ClarinLicenseLabel[]) { + const clarinLicenseUpdatable = cloneDeep(clarinLicenses); + + if (Array.isArray(clarinLicenseUpdatable)) { + clarinLicenseUpdatable.forEach(clarinLicense => { + clarinLicense.icon = []; + }); + } else { + clarinLicenseUpdatable.icon = []; + } + return clarinLicenseUpdatable; + } + + // define license label + openDefineLicenseLabelForm() { + const defineLicenseLabelModalRef = this.modalService.open(DefineLicenseLabelFormComponent); + + defineLicenseLabelModalRef.result.then((result: ClarinLicenseLabel) => { + this.defineLicenseLabel(result); + }).catch((error) => { + console.log(error); + }); + } + + defineLicenseLabel(clarinLicenseLabel: ClarinLicenseLabel) { + const successfulMessageContentDef = 'clarin-license-label.define-license-label.notification.successful-content'; + const errorMessageContentDef = 'clarin-license-label.define-license-label.notification.error-content'; + if (isNull(clarinLicenseLabel)) { + this.notifyOperationStatus(clarinLicenseLabel, successfulMessageContentDef, errorMessageContentDef); + } + + // convert file to the byte array + const reader = new FileReader(); + const fileByteArray = []; + + try { + reader.readAsArrayBuffer(clarinLicenseLabel.icon?.[0]); + } catch (error) { + this.notifyOperationStatus(null, successfulMessageContentDef, errorMessageContentDef); + } + + reader.onerror = (evt) => { + this.notifyOperationStatus(null, successfulMessageContentDef, errorMessageContentDef); + }; + reader.onloadend = (evt) => { + if (evt.target.readyState === FileReader.DONE) { + const arrayBuffer = evt.target.result; + if (arrayBuffer instanceof ArrayBuffer) { + const array = new Uint8Array(arrayBuffer); + for (const item of array) { + fileByteArray.push(item); + } + } + clarinLicenseLabel.icon = fileByteArray; + // convert string value from the form to the boolean + clarinLicenseLabel.extended = ClarinLicenseLabelExtendedSerializer.Serialize(clarinLicenseLabel.extended); + + // create + this.clarinLicenseLabelService.create(clarinLicenseLabel) + .pipe(getFirstCompletedRemoteData()) + .subscribe((defineLicenseLabelResponse: RemoteData) => { + // check payload and show error or successful + this.notifyOperationStatus(defineLicenseLabelResponse, successfulMessageContentDef, errorMessageContentDef); + this.loadAllLicenses(); + }); + } + }; + } + + // delete license + deleteLicense() { + if (isNull(this.selectedLicense?.id)) { + return; + } + this.clarinLicenseService.delete(String(this.selectedLicense.id)) + .pipe(getFirstCompletedRemoteData()) + .subscribe(deleteLicenseResponse => { + const successfulMessageContentDef = 'clarin-license.delete-license.notification.successful-content'; + const errorMessageContentDef = 'clarin-license.delete-license.notification.error-content'; + this.notifyOperationStatus(deleteLicenseResponse, successfulMessageContentDef, errorMessageContentDef); + this.loadAllLicenses(); + }); + } + + notifyOperationStatus(operationResponse, sucContent, errContent) { + if (isNull(operationResponse)) { + this.notificationService.error('', this.translateService.get(errContent)); + return; + } + + if (operationResponse.hasSucceeded) { + this.notificationService.success('', + this.translateService.get(sucContent)); + } else if (operationResponse.isError) { + this.notificationService.error('', + this.translateService.get(errContent)); + } + } + + /** + * Update the page + */ + onPageChange() { + this.loadAllLicenses(); + } + + loadAllLicenses() { + this.selectedLicense = null; + + this.licensesRD$ = new BehaviorSubject>>(null); + this.isLoading = true; + + // load the current pagination and sorting options + const currentPagination$ = this.paginationService.getCurrentPagination(this.options.id, this.options); + const currentSort$ = this.paginationService.getCurrentSort(this.options.id, defaultSortConfiguration); + + observableCombineLatest([currentPagination$, currentSort$]).pipe( + switchMap(([currentPagination, currentSort]) => { + return this.clarinLicenseService.findAll({ + currentPage: currentPagination.currentPage, + elementsPerPage: currentPagination.pageSize, + sort: {field: currentSort.field, direction: currentSort.direction} + }, false + ); + }), + getFirstSucceededRemoteData() + ).subscribe((res: RemoteData>) => { + this.licensesRD$.next(res); + this.isLoading = false; + }); + } + + /** + * Mark the license as selected or unselect if it is already clicked. + * @param clarinLicense + */ + switchSelectedLicense(clarinLicense: ClarinLicense) { + console.log('sciwth', clarinLicense); + if (isNull(clarinLicense)) { + return; + } + + if (this.selectedLicense?.id === clarinLicense?.id) { + this.selectedLicense = null; + } else { + this.selectedLicense = clarinLicense; + } + } + + private initializePaginationOptions() { + this.options = defaultPagination; + } + + private initializeSortingOptions() { + this.sortConfiguration = defaultSortConfiguration; + } +} diff --git a/src/app/clarin-licenses/clarin-license-table/modal/define-license-form/define-license-form-validator.ts b/src/app/clarin-licenses/clarin-license-table/modal/define-license-form/define-license-form-validator.ts new file mode 100644 index 00000000000..1e023734141 --- /dev/null +++ b/src/app/clarin-licenses/clarin-license-table/modal/define-license-form/define-license-form-validator.ts @@ -0,0 +1,15 @@ +import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms'; + +/** + * One non extended License Label must be selected in defining the new License. + * If non license label is selected -> the `submit` button is disabled + */ +export function validateLicenseLabel(): ValidatorFn { + return (control: AbstractControl): ValidationErrors | null => { + if (!control.value) { + return { licenseLabel: true }; + } + + return null; + }; +} diff --git a/src/app/clarin-licenses/clarin-license-table/modal/define-license-form/define-license-form.component.html b/src/app/clarin-licenses/clarin-license-table/modal/define-license-form/define-license-form.component.html new file mode 100644 index 00000000000..f41bb9e4f13 --- /dev/null +++ b/src/app/clarin-licenses/clarin-license-table/modal/define-license-form/define-license-form.component.html @@ -0,0 +1,67 @@ + diff --git a/src/app/clarin-licenses/clarin-license-table/modal/define-license-form/define-license-form.component.scss b/src/app/clarin-licenses/clarin-license-table/modal/define-license-form/define-license-form.component.scss new file mode 100644 index 00000000000..1e3de2c47db --- /dev/null +++ b/src/app/clarin-licenses/clarin-license-table/modal/define-license-form/define-license-form.component.scss @@ -0,0 +1,3 @@ +.modal { + display: inline; +} diff --git a/src/app/clarin-licenses/clarin-license-table/modal/define-license-form/define-license-form.component.spec.ts b/src/app/clarin-licenses/clarin-license-table/modal/define-license-form/define-license-form.component.spec.ts new file mode 100644 index 00000000000..569b29a8282 --- /dev/null +++ b/src/app/clarin-licenses/clarin-license-table/modal/define-license-form/define-license-form.component.spec.ts @@ -0,0 +1,86 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { DefineLicenseFormComponent } from './define-license-form.component'; +import { SharedModule } from '../../../../shared/shared.module'; +import { CommonModule } from '@angular/common'; +import { ReactiveFormsModule } from '@angular/forms'; +import { TranslateModule } from '@ngx-translate/core'; +import { RouterTestingModule } from '@angular/router/testing'; +import { ClarinLicenseLabelDataService } from '../../../../core/data/clarin/clarin-license-label-data.service'; +import { PaginationService } from '../../../../core/pagination/pagination.service'; +import { PaginationServiceStub } from '../../../../shared/testing/pagination-service.stub'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { HostWindowService } from '../../../../shared/host-window.service'; +import { HostWindowServiceStub } from '../../../../shared/testing/host-window-service.stub'; +import { DomSanitizer } from '@angular/platform-browser'; +import { mockLicenseLabelListRD$ } from '../../../../shared/testing/clarin-license-mock'; + +describe('DefineLicenseFormComponent', () => { + let component: DefineLicenseFormComponent; + let fixture: ComponentFixture; + + let clarinLicenseLabelDataService: ClarinLicenseLabelDataService; + let modalStub: NgbActiveModal; + let sanitizerStub: DomSanitizer; + + beforeEach(async () => { + clarinLicenseLabelDataService = jasmine.createSpyObj('clarinLicenseLabelService', { + findAll: mockLicenseLabelListRD$ + }); + modalStub = jasmine.createSpyObj('modalService', ['close', 'open']); + sanitizerStub = jasmine.createSpyObj('sanitizer', { + bypassSecurityTrustUrl: null + }); + + await TestBed.configureTestingModule({ + imports: [ + SharedModule, + CommonModule, + ReactiveFormsModule, + TranslateModule.forRoot(), + RouterTestingModule.withRoutes([]) + ], + declarations: [ DefineLicenseFormComponent ], + providers: [ + { provide: ClarinLicenseLabelDataService, useValue: clarinLicenseLabelDataService }, + { provide: PaginationService, useValue: new PaginationServiceStub() }, + { provide: NgbActiveModal, useValue: modalStub }, + { provide: DomSanitizer, useValue: sanitizerStub }, + { provide: HostWindowService, useValue: new HostWindowServiceStub(0) }, + ], + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(DefineLicenseFormComponent); + component = fixture.componentInstance; + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + it('should create clarinLicenseForm on init', () => { + (component as DefineLicenseFormComponent).ngOnInit(); + expect((component as any).clarinLicenseForm).not.toBeNull(); + }); + + it('should load and assign extended and non extended clarin license labels options ' + + 'to the specific arrays on init',() => { + (component as DefineLicenseFormComponent).clarinLicenseLabelOptions = []; + (component as DefineLicenseFormComponent).extendedClarinLicenseLabelOptions = []; + (component as DefineLicenseFormComponent).ngOnInit(); + expect((component as any).clarinLicenseLabelOptions).not.toBeNull(); + expect((component as any).extendedClarinLicenseLabelOptions).not.toBeNull(); + expect((component as any).clarinLicenseLabelOptions?.length).toBe(1); + expect((component as any).extendedClarinLicenseLabelOptions?.length).toBe(1); + }); + + it('after clicking on submit button the active modal should call close function ' + + 'with clarinLicenseForm values', () => { + (component as DefineLicenseFormComponent).ngOnInit(); + (component as DefineLicenseFormComponent).submitForm(); + expect((component as any).activeModal.close).toHaveBeenCalledWith( + (component as DefineLicenseFormComponent).clarinLicenseForm.value); + }); +}); diff --git a/src/app/clarin-licenses/clarin-license-table/modal/define-license-form/define-license-form.component.ts b/src/app/clarin-licenses/clarin-license-table/modal/define-license-form/define-license-form.component.ts new file mode 100644 index 00000000000..a5d66857dc5 --- /dev/null +++ b/src/app/clarin-licenses/clarin-license-table/modal/define-license-form/define-license-form.component.ts @@ -0,0 +1,210 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { FormArray, FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { ClarinLicenseLabel } from '../../../../core/shared/clarin/clarin-license-label.model'; +import { + CLARIN_LICENSE_CONFIRMATION, CLARIN_LICENSE_FORM_REQUIRED_OPTIONS, CLARIN_LICENSE_REQUIRED_INFO, + ClarinLicenseRequiredInfo +} from '../../../../core/shared/clarin/clarin-license.resource-type'; +import { ClarinLicenseLabelDataService } from '../../../../core/data/clarin/clarin-license-label-data.service'; +import { getFirstSucceededRemoteListPayload } from '../../../../core/shared/operators'; +import { validateLicenseLabel } from './define-license-form-validator'; +import wait from 'fork-ts-checker-webpack-plugin/lib/utils/async/wait'; +import { DomSanitizer } from '@angular/platform-browser'; +import {isNull, isUndefined} from '../../../../shared/empty.util'; +import {source} from 'axe-core'; + +/** + * The component for defining and editing the Clarin License + */ +@Component({ + selector: 'ds-define-license-form', + templateUrl: './define-license-form.component.html', + styleUrls: ['./define-license-form.component.scss'] +}) +export class DefineLicenseFormComponent implements OnInit { + + constructor( + public activeModal: NgbActiveModal, + private formBuilder: FormBuilder, + private clarinLicenseLabelService: ClarinLicenseLabelDataService, + private sanitizer: DomSanitizer + ) { + } + + /** + * The `name` of the Clarin License + */ + @Input() + name = ''; + + /** + * The `definition` of the Clarin License + */ + @Input() + definition = ''; + + /** + * The `confirmation` of the Clarin License. This value is converted to the number in the appropriate Serializer + */ + @Input() + confirmation = ''; + + /** + * Selected extended license labels + */ + @Input() + extendedClarinLicenseLabels = []; + + /** + * Selected non extended clarin license label - could be selected only one clarin license label + */ + @Input() + clarinLicenseLabel: ClarinLicenseLabel = null; + + /** + * Selected required info + */ + @Input() + requiredInfo = []; + + /** + * The form with the Clarin License input fields + */ + clarinLicenseForm: FormGroup = null; + + /** + * The possible options for the `confirmation` input field + */ + confirmationOptions: any[] = CLARIN_LICENSE_CONFIRMATION; + + /** + * All non extended Clarin License Labels, admin could select only one Clarin License Label + */ + clarinLicenseLabelOptions: ClarinLicenseLabel[] = []; + + /** + * All extended Clarin License Labels, admin could select multiple Clarin License Labels + */ + extendedClarinLicenseLabelOptions: ClarinLicenseLabel[] = []; + + /** + * All user required info + */ + requiredInfoOptions = CLARIN_LICENSE_FORM_REQUIRED_OPTIONS; + + ngOnInit(): void { + this.createForm(); + // load clarin license labels + this.loadAndAssignClarinLicenseLabels(); + } + + /** + * After init load loadArrayValuesToForm + */ + ngAfterViewInit(): void { + // wait because the form is not loaded immediately after init - do not know why + wait(500).then(r => { + this.loadArrayValuesToForm(); + }); + } + + /** + * Create the clarin license input fields form with init values which are passed from the clarin-license-table + * @private + */ + private createForm() { + this.clarinLicenseForm = this.formBuilder.group({ + name: [this.name, Validators.required], + definition: [this.definition, Validators.required], + confirmation: this.confirmation, + clarinLicenseLabel: [this.clarinLicenseLabel, validateLicenseLabel()], + extendedClarinLicenseLabels: new FormArray([]), + requiredInfo: new FormArray([]), + }); + } + + /** + * Show the selected extended clarin license labels and the required info in the form. + * if the admin is editing the clarin license he must see which extended clarin license labels/required info + * are selected. + * @private + */ + private loadArrayValuesToForm() { + // add passed extendedClarinLicenseLabels to the form because add them to the form in the init is a problem + const extendedClarinLicenseLabels = (this.clarinLicenseForm.controls.extendedClarinLicenseLabels).value as any[]; + this.extendedClarinLicenseLabels.forEach(extendedClarinLicenseLabel => { + extendedClarinLicenseLabels.push(extendedClarinLicenseLabel); + }); + + // add passed requiredInfo to the form because add them to the form in the init is a problem + const requiredInfoOptions = (this.clarinLicenseForm.controls.requiredInfo).value as any[]; + this.requiredInfo.forEach(requiredInfo => { + requiredInfoOptions.push(requiredInfo); + }); + } + + /** + * Convert raw byte array to the image is not secure - this function make it secure + * @param imageByteArray as secure byte array + */ + secureImageData(imageByteArray) { + const objectURL = 'data:image/png;base64,' + imageByteArray; + return this.sanitizer.bypassSecurityTrustUrl(objectURL); + } + + /** + * Send form value to the clarin-license-table component where it will be processed + */ + submitForm() { + this.activeModal.close(this.clarinLicenseForm.value); + } + + /** + * Add or remove checkbox value from form array based on the checkbox selection + * @param event + * @param formName + * @param extendedClarinLicenseLabel + */ + changeCheckboxValue(event: any, formName: string, checkBoxValue) { + let form = null; + + Object.keys(this.clarinLicenseForm.controls).forEach( (key, index) => { + if (key === formName) { + form = (this.clarinLicenseForm.controls[key])?.value as any[]; + } + }); + + if (isUndefined(form) || isNull(form)) { + return; + } + + if (event.target.checked) { + form.push(checkBoxValue); + } else { + form.forEach((formValue, index) => { + if (formValue?.id === checkBoxValue.id) { + form.splice(index, 1); + } + }); + } + } + + /** + * Load all ClarinLicenseLabels and divide them based on the extended property. + * @private + */ + private loadAndAssignClarinLicenseLabels() { + this.clarinLicenseLabelService.findAll({}, false) + .pipe(getFirstSucceededRemoteListPayload()) + .subscribe(res => { + res.forEach(clarinLicenseLabel => { + if (clarinLicenseLabel.extended) { + this.extendedClarinLicenseLabelOptions.push(clarinLicenseLabel); + } else { + this.clarinLicenseLabelOptions.push(clarinLicenseLabel); + } + }); + }); + } +} diff --git a/src/app/clarin-licenses/clarin-license-table/modal/define-license-label-form/define-license-label-form.component.html b/src/app/clarin-licenses/clarin-license-table/modal/define-license-label-form/define-license-label-form.component.html new file mode 100644 index 00000000000..69bbe0f4248 --- /dev/null +++ b/src/app/clarin-licenses/clarin-license-table/modal/define-license-label-form/define-license-label-form.component.html @@ -0,0 +1,42 @@ + diff --git a/src/app/clarin-licenses/clarin-license-table/modal/define-license-label-form/define-license-label-form.component.scss b/src/app/clarin-licenses/clarin-license-table/modal/define-license-label-form/define-license-label-form.component.scss new file mode 100644 index 00000000000..6d6060415fe --- /dev/null +++ b/src/app/clarin-licenses/clarin-license-table/modal/define-license-label-form/define-license-label-form.component.scss @@ -0,0 +1,3 @@ +.modal { + display: inline !important; +} diff --git a/src/app/clarin-licenses/clarin-license-table/modal/define-license-label-form/define-license-label-form.component.spec.ts b/src/app/clarin-licenses/clarin-license-table/modal/define-license-label-form/define-license-label-form.component.spec.ts new file mode 100644 index 00000000000..51e3a10a372 --- /dev/null +++ b/src/app/clarin-licenses/clarin-license-table/modal/define-license-label-form/define-license-label-form.component.spec.ts @@ -0,0 +1,60 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { SharedModule } from '../../../../shared/shared.module'; +import { CommonModule } from '@angular/common'; +import { ReactiveFormsModule } from '@angular/forms'; +import { TranslateModule } from '@ngx-translate/core'; +import { RouterTestingModule } from '@angular/router/testing'; +import { HostWindowService } from '../../../../shared/host-window.service'; +import { HostWindowServiceStub } from '../../../../shared/testing/host-window-service.stub'; +import { DefineLicenseLabelFormComponent } from './define-license-label-form.component'; + +/** + * The test class for the DefineLicenseLabelFormComponent + */ +describe('DefineLicenseLabelFormComponent', () => { + let component: DefineLicenseLabelFormComponent; + let fixture: ComponentFixture; + + let modalStub: NgbActiveModal; + + beforeEach(async () => { + modalStub = jasmine.createSpyObj('modalService', ['close', 'open']); + + await TestBed.configureTestingModule({ + imports: [ + SharedModule, + CommonModule, + ReactiveFormsModule, + TranslateModule.forRoot(), + RouterTestingModule.withRoutes([]) + ], + declarations: [ DefineLicenseLabelFormComponent ], + providers: [ + { provide: NgbActiveModal, useValue: modalStub }, + { provide: HostWindowService, useValue: new HostWindowServiceStub(0) }, + ], + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(DefineLicenseLabelFormComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); + + it('should create clarinLicenseForm on init', () => { + expect((component as any).clarinLicenseLabelForm).not.toBeNull(); + }); + + it('should submit call close with clarinLicenseForm values', () => { + (component as DefineLicenseLabelFormComponent).submitForm(); + expect((component as any).activeModal.close).toHaveBeenCalledWith( + (component as DefineLicenseLabelFormComponent).clarinLicenseLabelForm.value); + }); +}); diff --git a/src/app/clarin-licenses/clarin-license-table/modal/define-license-label-form/define-license-label-form.component.ts b/src/app/clarin-licenses/clarin-license-table/modal/define-license-label-form/define-license-label-form.component.ts new file mode 100644 index 00000000000..8e143693573 --- /dev/null +++ b/src/app/clarin-licenses/clarin-license-table/modal/define-license-label-form/define-license-label-form.component.ts @@ -0,0 +1,73 @@ +import { Component, Input, OnInit } from '@angular/core'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { FormBuilder, FormGroup, Validators } from '@angular/forms'; +import { validateLicenseLabel } from '../define-license-form/define-license-form-validator'; +import { isNotEmpty } from '../../../../shared/empty.util'; + +/** + * The component for defining the Clarin License Label + */ +@Component({ + selector: 'ds-define-license-label-form', + templateUrl: './define-license-label-form.component.html', + styleUrls: ['./define-license-label-form.component.scss'] +}) +export class DefineLicenseLabelFormComponent implements OnInit { + + constructor(public activeModal: NgbActiveModal, + private formBuilder: FormBuilder) { } + + /** + * The `label` of the Clarin License Label. That's the shortcut which is max 5 characters long. + */ + @Input() + label = ''; + + /** + * The `title` of the Clarin License Label. + */ + @Input() + title = ''; + + /** + * The `extended` boolean of the Clarin License Label. + */ + @Input() + extended = ''; + + /** + * The `icon` of the Clarin License Label. This value is converted to the byte array. + */ + @Input() + icon = ''; + + /** + * The form with the Clarin License Label input fields + */ + clarinLicenseLabelForm: FormGroup; + + /** + * Is the Clarin License Label extended or no options. + */ + extendedOptions = ['Yes', 'No']; + + ngOnInit(): void { + this.createForm(); + } + + private createForm() { + this.clarinLicenseLabelForm = this.formBuilder.group({ + label: [this.label, [Validators.required, Validators.maxLength(5)]], + title: [this.title, Validators.required], + extended: isNotEmpty(this.extended) ? this.extended : this.extendedOptions[0], + icon: [this.icon, validateLicenseLabel()], + }); + } + + /** + * Send form value to the clarin-license-table component where it will be processed + */ + submitForm() { + this.activeModal.close(this.clarinLicenseLabelForm.value); + } +} diff --git a/src/app/clarin-licenses/clarin-license.module.ts b/src/app/clarin-licenses/clarin-license.module.ts new file mode 100644 index 00000000000..d25c5d113e0 --- /dev/null +++ b/src/app/clarin-licenses/clarin-license.module.ts @@ -0,0 +1,31 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { SharedModule} from '../shared/shared.module'; +import { TranslateModule } from '@ngx-translate/core'; +import { ReactiveFormsModule } from '@angular/forms'; +import { ClarinLicensePageComponent } from './clarin-license-page/clarin-license-page.component'; +import { ClarinLicenseRoutingModule } from './clarin-license-routing.module'; +import { ClarinLicenseTableComponent } from './clarin-license-table/clarin-license-table.component'; +import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { DefineLicenseFormComponent } from './clarin-license-table/modal/define-license-form/define-license-form.component'; +import { DefineLicenseLabelFormComponent } from './clarin-license-table/modal/define-license-label-form/define-license-label-form.component'; + +@NgModule({ + declarations: [ + ClarinLicensePageComponent, + ClarinLicenseTableComponent, + DefineLicenseFormComponent, + DefineLicenseLabelFormComponent, + ], + imports: [ + CommonModule, + ClarinLicenseRoutingModule, + TranslateModule, + SharedModule, + ReactiveFormsModule + ], + providers: [ + NgbActiveModal + ], +}) +export class ClarinLicenseModule { } diff --git a/src/app/core/core.module.ts b/src/app/core/core.module.ts index 842ff9c69f4..1f47ad71cd9 100644 --- a/src/app/core/core.module.ts +++ b/src/app/core/core.module.ts @@ -164,6 +164,8 @@ import { SearchConfig } from './shared/search/search-filters/search-config.model import { SequenceService } from './shared/sequence.service'; import { GroupDataService } from './eperson/group-data.service'; import { SubmissionAccessesModel } from './config/models/config-submission-accesses.model'; +import { ClarinLicenseDataService } from './data/clarin/clarin-license-data.service'; +import { ClarinLicenseLabelDataService } from './data/clarin/clarin-license-label-data.service'; import {ClarinLicenseDataService} from './data/clarin/clarin-license-data.service'; import { HandleDataService } from './data/handle-data.service'; import { Handle } from './handle/handle.model'; @@ -197,6 +199,8 @@ const PROVIDERS = [ CollectionDataService, SiteDataService, MetadataValueDataService, + ClarinLicenseDataService, + ClarinLicenseLabelDataService, DSOResponseParsingService, { provide: MOCK_RESPONSE_MAP, useValue: mockResponseMap }, { provide: DspaceRestService, useFactory: restServiceFactory, deps: [MOCK_RESPONSE_MAP, HttpClient] }, diff --git a/src/app/core/data/clarin/clarin-license-label-data.service.ts b/src/app/core/data/clarin/clarin-license-label-data.service.ts new file mode 100644 index 00000000000..6f922c3253c --- /dev/null +++ b/src/app/core/data/clarin/clarin-license-label-data.service.ts @@ -0,0 +1,41 @@ +import {ResourceType} from '../../shared/resource-type'; +import {Injectable} from '@angular/core'; +import {dataService} from '../../cache/builders/build-decorators'; +import {MetadataValue} from '../../metadata/metadata-value.model'; +import {DataService} from '../data.service'; +import {RequestService} from '../request.service'; +import {RemoteDataBuildService} from '../../cache/builders/remote-data-build.service'; +import {Store} from '@ngrx/store'; +import {CoreState} from '../../core.reducers'; +import {HALEndpointService} from '../../shared/hal-endpoint.service'; +import {ObjectCacheService} from '../../cache/object-cache.service'; +import {DefaultChangeAnalyzer} from '../default-change-analyzer.service'; +import {HttpClient} from '@angular/common/http'; +import {NotificationsService} from '../../../shared/notifications/notifications.service'; +import {ClarinLicense} from '../../shared/clarin/clarin-license.model'; +import {ClarinLicenseLabel} from '../../shared/clarin/clarin-license-label.model'; + +export const linkName = 'clarinlicenselabels'; +export const AUTOCOMPLETE = new ResourceType(linkName); + +/** + * A service responsible for fetching/sending data from/to the REST API - vocabularies endpoint + */ +@Injectable() +@dataService(ClarinLicenseLabel.type) +export class ClarinLicenseLabelDataService extends DataService { + protected linkPath = linkName; + + constructor( + protected requestService: RequestService, + protected rdbService: RemoteDataBuildService, + protected store: Store, + protected halService: HALEndpointService, + protected objectCache: ObjectCacheService, + protected comparator: DefaultChangeAnalyzer, + protected http: HttpClient, + protected notificationsService: NotificationsService, + ) { + super(); + } +} diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index 715ee66a99b..7545c2b6ff4 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -177,6 +177,11 @@ import { ScopeSelectorModalComponent } from './search-form/scope-selector-modal/ import { BitstreamRequestACopyPageComponent } from './bitstream-request-a-copy-page/bitstream-request-a-copy-page.component'; import { DsSelectComponent } from './ds-select/ds-select.component'; import { LogInOidcComponent } from './log-in/methods/oidc/log-in-oidc.component'; +import { ClarinExtendedLicensePipe } from './utils/clarin-extended-license.pipe'; +import { ClarinLicenseCheckedPipe } from './utils/clarin-license-checked.pipe'; +import { ClarinLicenseLabelRadioValuePipe } from './utils/clarin-license-label-radio-value.pipe'; +import { CharToEndPipe } from './utils/char-to-end.pipe'; +import {ClarinLicenseRequiredInfoPipe} from './utils/clarin-license-required-info.pipe'; const MODULES = [ // Do NOT include UniversalModule, HttpModule, or JsonpModule here @@ -220,7 +225,12 @@ const PIPES = [ ObjectKeysPipe, ObjectValuesPipe, ConsolePipe, - ObjNgFor + ObjNgFor, + ClarinExtendedLicensePipe, + ClarinLicenseCheckedPipe, + ClarinLicenseLabelRadioValuePipe, + ClarinLicenseRequiredInfoPipe, + CharToEndPipe ]; const COMPONENTS = [ diff --git a/src/app/shared/testing/clarin-license-mock.ts b/src/app/shared/testing/clarin-license-mock.ts new file mode 100644 index 00000000000..3f4e47ca76f --- /dev/null +++ b/src/app/shared/testing/clarin-license-mock.ts @@ -0,0 +1,63 @@ +import { ClarinLicenseLabel } from '../../core/shared/clarin/clarin-license-label.model'; +import { ClarinLicense } from '../../core/shared/clarin/clarin-license.model'; +import { createSuccessfulRemoteDataObject$ } from '../remote-data.utils'; +import { buildPaginatedList } from '../../core/data/paginated-list.model'; +import { PageInfo } from '../../core/shared/page-info.model'; + +/** + * The mocked Clarin License and Clarin License Label objects for testing. + */ + +export const mockExtendedLicenseLabel = Object.assign(new ClarinLicenseLabel(), { + id: 1, + label: 'exLL', + title: 'exTTL', + extended: true, + icon: [new Blob(['blob string'], { + type: 'text/plain' + })], + _links: { + self: { + href: 'url.ex.1' + } + } +}); + +export const mockNonExtendedLicenseLabel = Object.assign(new ClarinLicenseLabel(), { + id: 2, + label: 'LLL', + title: 'licenseLTTL', + extended: false, + icon: null, + _links: { + self: { + href: 'url.ex.1' + } + } +}); + +export const mockLicense = Object.assign(new ClarinLicense(), { + id: 1, + name: 'test license', + definition: 'test definition', + confirmation: 0, + requiredInfo: 'test info', + clarinLicenseLabel: mockNonExtendedLicenseLabel, + extendedClarinLicenseLabels: [mockExtendedLicenseLabel], + bitstreams: 0, + _links: { + self: { + href: 'url.license.1' + } + } +}); + +export const mockLicenseRD$ = createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), [mockLicense])); +export const mockLicenseLabelListRD$ = createSuccessfulRemoteDataObject$(buildPaginatedList(new PageInfo(), + [mockExtendedLicenseLabel, mockNonExtendedLicenseLabel])); +export const createdLicenseRD$ = createSuccessfulRemoteDataObject$(mockLicense); +export const createdLicenseLabelRD$ = createSuccessfulRemoteDataObject$(mockNonExtendedLicenseLabel); +export const successfulResponse = { + response: { + statusCode: 200 + }}; diff --git a/src/app/shared/utils/char-to-end.pipe.ts b/src/app/shared/utils/char-to-end.pipe.ts new file mode 100644 index 00000000000..53018e2544c --- /dev/null +++ b/src/app/shared/utils/char-to-end.pipe.ts @@ -0,0 +1,23 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'dsAddChar' +}) + +/** + * Pipe for adding specific char to end of the value rendered in the html. + */ +export class CharToEndPipe implements PipeTransform { + /** + * @param {string} value String to be updated + * @param charToEnd + * @returns {string} Updated value with specific char added to the end + */ + transform(value: string, charToEnd: string): string { + if (value) { + return value + ' ' + charToEnd; + } + return value; + } + +} diff --git a/src/app/shared/utils/clarin-extended-license.pipe.ts b/src/app/shared/utils/clarin-extended-license.pipe.ts new file mode 100644 index 00000000000..3fe91e77e56 --- /dev/null +++ b/src/app/shared/utils/clarin-extended-license.pipe.ts @@ -0,0 +1,24 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import { isNotEmpty } from '../empty.util'; +import { ClarinLicenseLabel } from '../../core/shared/clarin/clarin-license-label.model'; + +/** + * Pipe to join Extended Clarin License Label value with ',' + */ +@Pipe({ + name: 'dsExtendedCLicense' +}) +export class ClarinExtendedLicensePipe implements PipeTransform { + + transform(value: ClarinLicenseLabel[]): string { + if (isNotEmpty(value)) { + const titles = []; + value.forEach(clarinLicenseLabel => { + titles.push(clarinLicenseLabel.label); + }); + return titles.join(', '); + } else { + return ''; + } + } +} diff --git a/src/app/shared/utils/clarin-license-checked.pipe.ts b/src/app/shared/utils/clarin-license-checked.pipe.ts new file mode 100644 index 00000000000..f417b04bacb --- /dev/null +++ b/src/app/shared/utils/clarin-license-checked.pipe.ts @@ -0,0 +1,33 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import { ClarinLicenseLabel } from '../../core/shared/clarin/clarin-license-label.model'; +import {isEmpty, isUndefined} from '../empty.util'; +import {ClarinLicenseRequiredInfo} from '../../core/shared/clarin/clarin-license.resource-type'; + +/** + * Pipe to mark checkbox or input to true/false based on the input form data. + * This Pipe is used for editing Clarin Licenses. + */ +@Pipe({ + name: 'dsCheckedLicense' +}) +export class ClarinLicenseCheckedPipe implements PipeTransform { + + /** + * If the clarinLicenseLabels contains clarinLicenseLabel return true otherwise return false + * Compare Ids + * @param clarinLicenseProp to compare + * @param clarinLicenseProps all extended clarin license labels or non extended clarin license label in array + */ + transform(clarinLicenseProp: ClarinLicenseLabel | ClarinLicenseRequiredInfo, clarinLicenseProps: any[]): boolean { + let contains = false; + if (isEmpty(clarinLicenseProp) || isEmpty(clarinLicenseProps)) { + return contains; + } + clarinLicenseProps.forEach(cll => { + if (cll.id === clarinLicenseProp.id) { + contains = true; + } + }); + return contains; + } +} diff --git a/src/app/shared/utils/clarin-license-label-radio-value.pipe.ts b/src/app/shared/utils/clarin-license-label-radio-value.pipe.ts new file mode 100644 index 00000000000..f234bc5b635 --- /dev/null +++ b/src/app/shared/utils/clarin-license-label-radio-value.pipe.ts @@ -0,0 +1,35 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import { ClarinLicenseLabel } from '../../core/shared/clarin/clarin-license-label.model'; +import { isNull } from '../empty.util'; + +/** + * Pipe to mark the radio button to true/false if the Clarin License Label value is passed from @Input. + * This Pipe is used for editing Non Extended Clarin License Labels. + */ +@Pipe({ + name: 'dsRadioLicenseLabelValue' +}) +export class ClarinLicenseLabelRadioValuePipe implements PipeTransform { + + /** + * If the passedClarinLicenseLabel is not null and is checked - mark the radio button as checked. + * @param checkedClarinLicenseLabel Clicked non extended Clarin License Label + * @param passedClarinLicenseLabel The non extended Clarin License Label passed from selected Clarin License. + */ + transform(checkedClarinLicenseLabel: ClarinLicenseLabel, passedClarinLicenseLabel: ClarinLicenseLabel): ClarinLicenseLabel { + // if nothing is checked - return null + if (isNull(checkedClarinLicenseLabel)) { + return; + } + // if there is no passed clarin license label in the form - the license is not editing + if (isNull(passedClarinLicenseLabel)) { + return checkedClarinLicenseLabel; + } + + // if passed cll should be marked as `checked` + if (passedClarinLicenseLabel.id === checkedClarinLicenseLabel.id) { + return passedClarinLicenseLabel; + } + return checkedClarinLicenseLabel; + } +} diff --git a/src/app/shared/utils/clarin-license-required-info.pipe.ts b/src/app/shared/utils/clarin-license-required-info.pipe.ts new file mode 100644 index 00000000000..9036025a362 --- /dev/null +++ b/src/app/shared/utils/clarin-license-required-info.pipe.ts @@ -0,0 +1,26 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import {isEmpty} from '../empty.util'; +import {ClarinLicenseRequiredInfo} from '../../core/shared/clarin/clarin-license.resource-type'; + +/** + * Pipe to join Extended Clarin License Label value with ',' + */ +@Pipe({ + name: 'dsCLicenseRequiredInfo' +}) +export class ClarinLicenseRequiredInfoPipe implements PipeTransform { + + transform(value: ClarinLicenseRequiredInfo[]): string { + if (isEmpty(value)) { + return ''; + } + + const requiredInfo = []; + value.forEach((clarinLicenseRequiredInfo: ClarinLicenseRequiredInfo) => { + requiredInfo.push(clarinLicenseRequiredInfo.name); + }); + + return requiredInfo.join(', '); + } +} + diff --git a/src/assets/i18n/en.json5 b/src/assets/i18n/en.json5 index b247b229d4f..3d54e3f7207 100644 --- a/src/assets/i18n/en.json5 +++ b/src/assets/i18n/en.json5 @@ -1680,6 +1680,10 @@ + "licenses.breadcrumbs": "License administration", + + + "info.end-user-agreement.accept": "I have read and I agree to the End User Agreement", "info.end-user-agreement.accept.error": "An error occurred accepting the End User Agreement", @@ -2706,11 +2710,17 @@ "menu.section.toggle.statistics_task": "Toggle Statistics Task section", + "menu.section.workflow": "Administer Workflow", "menu.section.handle": "Manage Handles", + "menu.section.licenses": "License Administration", + + + + "autocomplete.suggestion.sponsor.funding-code": "Funding code", "autocomplete.suggestion.sponsor.project-name": "Project name", @@ -3318,6 +3328,76 @@ "resource-policies.table.headers.title.for.collection": "Policies for Collection", + "clarin-license-table.title": "License Administration", + + "clarin-license.table.name": "License Name", + + "clarin-license.table.definition": "Definition (URL)", + + "clarin-license.table.confirmation": "Confirmation", + + "clarin-license.table.required-user-info": "Required user info", + + "clarin-license.table.label": "License Label", + + "clarin-license.table.extended-labels": "Extended Labels", + + "clarin-license.table.bitstreams": "Used by Bitstreams", + + "clarin-license.button.define": "Define", + + "clarin-license.button.define-license": "Define License", + + "clarin-license.button.define-license-label": "Define License Label", + + "clarin-license.button.edit-license": "Edit License", + + "clarin-license.button.delete-license": "Delete License", + + + "clarin-license.define-license-form.form-name": "Define new license", + + "clarin-license.define-license-form.input-name": "License name", + + "clarin-license.define-license-form.input-definition-url": "License Definition URL", + + "clarin-license.define-license-form.input-confirmation": "License requires confirmation", + + "clarin-license.define-license-form.license-labels": "License Labels", + + "clarin-license.define-license-form.extended-license-labels": "Extended License Labels", + + "clarin-license.define-license-form.required-info": "Additional required user info", + + "clarin-license.define-license-form.submit-button": "Save", + + "clarin-license.define-license.notification.successful-content": "License was defined successfully", + + "clarin-license.define-license.notification.error-content": "Error: cannot define new License", + + "clarin-license.edit-license.notification.successful-content": "License was updated successfully", + + "clarin-license.edit-license.notification.error-content": "Error: cannot edit the License", + + "clarin-license.delete-license.notification.successful-content": "License was deleted successfully", + + "clarin-license.delete-license.notification.error-content": "Error: cannot delete License", + + + + "clarin-license-label.define-license-label.input-label": "Short Label (max 5. chars)", + + "clarin-license-label.define-license-label.input-title": "Label Title", + + "clarin-license-label.define-license-label.input-is-extended": "Is extended", + + "clarin-license-label.define-license-label.input-icon": "Icon", + + "clarin-license-label.define-license-label.notification.successful-content": "License Label was defined successfully", + + "clarin-license-label.define-license-label.notification.error-content": "Error: cannot define new License Label", + + "search.description": "", diff --git a/src/test-dtq.ts b/src/test-dtq.ts index 7f569321a53..a4e06b958b6 100644 --- a/src/test-dtq.ts +++ b/src/test-dtq.ts @@ -15,10 +15,10 @@ getTestBed().initTestEnvironment( platformBrowserDynamicTesting() ); // Then we find all the tests. -const context = require.context('./', true, /\.spec\.ts$/); +// const context = require.context('./', true, /\.spec\.ts$/); // Find just one test for testing. -// const context = require.context('./', true, /dtq-test-example.component.spec\.ts$/); +const context = require.context('./', true, /define-license-label-form.component.spec\.ts$/); // And load the modules. context.keys().map(context); From 5fae7e5da4c7268ad5437511b871c3d067a89efd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MilanMajchr=C3=A1k?= Date: Thu, 6 Oct 2022 16:03:24 +0200 Subject: [PATCH 05/54] fixed error with wrong row --- src/app/app-routing.module.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index f36fd61e4ee..58b1638e209 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -221,6 +221,7 @@ import {LicenseContractPageModule} from './license-contract-page/license-contrac loadChildren: () => import('./clarin-licenses/clarin-license.module').then((m) => m.ClarinLicenseModule), canActivate: [SiteAdministratorGuard], }, + { path: STATIC_PAGE_MODULE_PATH, loadChildren: () => import('./license-contract-page/license-contract-page.module') .then((m) => m.LicenseContractPageModule), @@ -231,7 +232,7 @@ import {LicenseContractPageModule} from './license-contract-page/license-contrac loadChildren: () => import('./handle-page/handle-page.module').then((m) => m.HandlePageModule), canActivate: [SiteAdministratorGuard], }, - { path: '**', pathMatch: 'full', component: ThemedPageNotFoundComponent }, + { path: '**', pathMatch: 'full', component: ThemedPageNotFoundComponent } ] } ], { From 62bf25950f27c9c5497d0b9dc8a3836dad2787c6 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Fri, 7 Oct 2022 07:58:36 +0200 Subject: [PATCH 06/54] Update docker.yml --- .github/workflows/docker.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 7054072d373..bd6d8738718 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -8,6 +8,7 @@ on: branches: - dtq-dev - dtq-dev-present + - dtq-dev-lf tags: - 'dspace-**' pull_request: From 1bd5bf051a9b09cc08f755e136f4a843f9a5795c Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Fri, 7 Oct 2022 08:33:54 +0200 Subject: [PATCH 07/54] Update docker.yml --- .github/workflows/docker.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index bd6d8738718..db8c6582031 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -25,9 +25,7 @@ jobs: # For a new commit on other branches, use the branch name as the tag for Docker image. # For a new tag, copy that tag name as the tag for Docker image. IMAGE_TAGS: | - type=raw,value=dspace-7_x,enable=${{ endsWith(github.ref, github.event.repository.default_branch) }} - type=ref,event=branch,enable=${{ !endsWith(github.ref, github.event.repository.default_branch) }} - type=ref,event=tag + type=raw,value=dspace-7_x # Define default tag "flavor" for docker/metadata-action per # https://github.com/docker/metadata-action#flavor-input # We turn off 'latest' tag by default. From 4391238eea2e67e251e02f7253410852a2ffd808 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Fri, 7 Oct 2022 10:37:53 +0200 Subject: [PATCH 08/54] Update deploy.yml --- .github/workflows/deploy.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index e450693cd09..d68b4d1c357 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -30,8 +30,3 @@ jobs: export ENVFILE=$(pwd)/.env.dev-5 ./start.sh - - name: import licenses - run: | - cd ~ - ./import_licenses.sh - From eeb82db88509f0ec7a6ab5bf81ff8c5a40af49d3 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Fri, 7 Oct 2022 14:18:03 +0200 Subject: [PATCH 09/54] Update deploy.yml added importing licenses to the deploy action --- .github/workflows/deploy.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index d68b4d1c357..36b5a63f5ce 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -30,3 +30,7 @@ jobs: export ENVFILE=$(pwd)/.env.dev-5 ./start.sh + - name: import licenses + run: | + cd ~ + ./import_licenses.sh From c2d8aa2b736e6a4eeda6b5f161e3d3ceddd51eb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MilanMajchr=C3=A1k?= Date: Sat, 8 Oct 2022 09:18:03 +0200 Subject: [PATCH 10/54] fixed license selector duplication --- src/app/core/core.module.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/app/core/core.module.ts b/src/app/core/core.module.ts index 1f47ad71cd9..33ece1b8b4f 100644 --- a/src/app/core/core.module.ts +++ b/src/app/core/core.module.ts @@ -166,7 +166,6 @@ import { GroupDataService } from './eperson/group-data.service'; import { SubmissionAccessesModel } from './config/models/config-submission-accesses.model'; import { ClarinLicenseDataService } from './data/clarin/clarin-license-data.service'; import { ClarinLicenseLabelDataService } from './data/clarin/clarin-license-label-data.service'; -import {ClarinLicenseDataService} from './data/clarin/clarin-license-data.service'; import { HandleDataService } from './data/handle-data.service'; import { Handle } from './handle/handle.model'; From 90e68dd450c35859dee2259c25ec0e63933da567 Mon Sep 17 00:00:00 2001 From: milanmajchrak <90026355+milanmajchrak@users.noreply.github.com> Date: Sat, 8 Oct 2022 09:22:18 +0200 Subject: [PATCH 11/54] Internal/presentation customize home page (#107) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: MajoBerger Co-authored-by: MilanMajchrák --- package.json | 2 + .../admin-sidebar.component.html | 3 + .../admin-sidebar.component.scss | 5 + src/app/app.module.ts | 20 +- src/app/dev-table/dev-progress.json | 210 +++++ src/app/dev-table/dev-table.component.html | 47 ++ src/app/dev-table/dev-table.component.scss | 147 ++++ src/app/dev-table/dev-table.component.spec.ts | 26 + src/app/dev-table/dev-table.component.ts | 38 + src/app/dev-table/file-database.ts | 84 ++ src/app/dev-table/file-node.ts | 14 + src/app/footer/footer.component.html | 249 ++++-- src/app/footer/footer.component.scss | 728 +++++++++++++++++ src/app/header/header.component.html | 4 +- src/app/header/header.component.scss | 5 + src/app/home-page/home-page.component.html | 55 +- src/app/home-page/home-page.component.scss | 44 +- src/app/home-page/home-page.component.ts | 2 +- src/app/home-page/home-page.module.ts | 14 +- src/app/login-page/login-page.component.html | 3 + src/app/login-page/login-page.component.scss | 4 + .../logout-page/logout-page.component.html | 3 + src/assets/images/clarin-logo.png | Bin 0 -> 10009 bytes src/assets/images/clarin-logo.svg | 1 + src/assets/images/lindat-logo-new-sm.png | Bin 0 -> 9769 bytes src/assets/images/lindat_color_line.png | Bin 0 -> 168 bytes src/styles/_clarin_variables.scss | 3 + src/styles/_global-styles.scss | 8 +- .../app/login-page/login-page.component.html | 3 + .../app/login-page/login-page.component.scss | 4 + .../logout-page/logout-page.component.html | 3 + .../logout-page/logout-page.component.scss | 5 + .../dspace/app/header/header.component.html | 124 ++- .../dspace/app/header/header.component.scss | 734 ++++++++++++++++++ .../home-news/home-news.component.html | 47 +- .../home-news/home-news.component.scss | 88 ++- .../dspace/app/navbar/navbar.component.html | 6 +- .../dspace/app/navbar/navbar.component.scss | 5 + .../dspace/assets/images/misty_mountains.jpg | Bin 0 -> 60686 bytes src/themes/dspace/assets/images/ofis_view.png | Bin 0 -> 423574 bytes yarn.lock | 52 ++ 41 files changed, 2589 insertions(+), 201 deletions(-) create mode 100644 src/app/dev-table/dev-progress.json create mode 100644 src/app/dev-table/dev-table.component.html create mode 100644 src/app/dev-table/dev-table.component.scss create mode 100644 src/app/dev-table/dev-table.component.spec.ts create mode 100644 src/app/dev-table/dev-table.component.ts create mode 100644 src/app/dev-table/file-database.ts create mode 100644 src/app/dev-table/file-node.ts create mode 100644 src/assets/images/clarin-logo.png create mode 100644 src/assets/images/clarin-logo.svg create mode 100644 src/assets/images/lindat-logo-new-sm.png create mode 100644 src/assets/images/lindat_color_line.png create mode 100644 src/styles/_clarin_variables.scss create mode 100644 src/themes/dspace/assets/images/misty_mountains.jpg create mode 100644 src/themes/dspace/assets/images/ofis_view.png diff --git a/package.json b/package.json index 5438a6fc3cf..d07129c71a3 100644 --- a/package.json +++ b/package.json @@ -98,6 +98,7 @@ "jsonschema": "1.4.0", "jwt-decode": "^3.1.2", "klaro": "^0.7.10", + "lindat-common": "^1.5.0", "lodash": "^4.17.21", "mirador": "^3.3.0", "mirador-dl-plugin": "^0.13.0", @@ -129,6 +130,7 @@ "@angular/cli": "~11.2.15", "@angular/compiler-cli": "~11.2.14", "@angular/language-service": "~11.2.14", + "@angular/material": "^11.2.13", "@cypress/schematic": "^1.5.0", "@fortawesome/fontawesome-free": "^5.5.0", "@ngrx/store-devtools": "^11.1.1", diff --git a/src/app/admin/admin-sidebar/admin-sidebar.component.html b/src/app/admin/admin-sidebar/admin-sidebar.component.html index 84402c64e98..925d699c9b6 100644 --- a/src/app/admin/admin-sidebar/admin-sidebar.component.html +++ b/src/app/admin/admin-sidebar/admin-sidebar.component.html @@ -16,6 +16,9 @@
diff --git a/src/themes/dspace/app/header/header.component.scss b/src/themes/dspace/app/header/header.component.scss index ab418865f12..d9fd514ccf9 100644 --- a/src/themes/dspace/app/header/header.component.scss +++ b/src/themes/dspace/app/header/header.component.scss @@ -7,6 +7,11 @@ } } +.clarin-logo { + height: var(--ds-login-logo-height); + width: var(--ds-login-logo-width); +} + .navbar-brand img { @media screen and (max-width: map-get($grid-breakpoints, md)) { height: var(--ds-header-logo-height-xs); @@ -17,3 +22,732 @@ line-height: 1.5; color: var(--bs-link-color); } + +@charset "UTF-8"; +.lindat-common2.lindat-common-header { + background-color: var(--navbar-background-color, red); +} +.lindat-common2.lindat-common-footer { + background-color: var(--footer-background-color); +} +.lindat-common2 { + font-size: medium; + display: flex; + justify-content: center; + /* this can't hang on :root */ + --navbar-color: #ffffff; + --navbar-background-color: #39688b; + --footer-color: #fffc; + --footer-background-color: #07426eff; + --partners-color: #9cb3c5; + /* styling for light theme; maybe this can get set from outside? + --navbar-color: #000000; + --navbar-background-color: #f0f0f0; + --footer-color: #408080; + --footer-background-color: #f0f0f0; + --partners-color: #408080; + */ + /* XXX svg? */ + /* XXX fade? */ + /* roboto-slab-regular - latin_latin-ext */ + /* source-code-pro-regular - latin_latin-ext */ + /* source-sans-pro-regular - latin_latin-ext */ + /* source-sans-pro-300 - latin_latin-ext */ +} +@media print { + .lindat-common2 *, + .lindat-common2 *::before, + .lindat-common2 *::after { + text-shadow: none !important; + box-shadow: none !important; + } + .lindat-common2 a:not(.lindat-btn) { + text-decoration: underline; + } + .lindat-common2 img { + page-break-inside: avoid; + } + @page { + size: a3; + } + .lindat-common2 .lindat-navbar { + display: none; + } + .lindat-common2 .lindat-badge { + border: 1px solid #000; + } +} +.lindat-common2 *, +.lindat-common2 *::before, +.lindat-common2 *::after { + box-sizing: border-box; +} +.lindat-common2 nav, +.lindat-common2 footer { + /* this is orginally from body */ + margin: 0; + font-family: "Source Sans Pro", -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-size: 1em; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: left; + background-color: #fff; +} +.lindat-common2 footer, +.lindat-common2 header, +.lindat-common2 nav { + display: block; +} +.lindat-common2 h4 { + margin-top: 0; + margin-bottom: 0.85em; +} +.lindat-common2 ul { + margin-top: 0; + margin-bottom: 1em; +} +.lindat-common2 ul ul { + margin-bottom: 0; +} +.lindat-common2 a { + color: #007bff; + text-decoration: none; + background-color: transparent; +} +.lindat-common2 a:hover { + color: #0056b3; + text-decoration: underline; +} +.lindat-common2 img { + vertical-align: middle; + border-style: none; +} +.lindat-common2 button { + border-radius: 0; +} +.lindat-common2 button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; +} +.lindat-common2 button { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} +.lindat-common2 button { + overflow: visible; +} +.lindat-common2 button { + text-transform: none; +} +.lindat-common2 button, +.lindat-common2 [type=button] { + -webkit-appearance: button; +} +.lindat-common2 button:not(:disabled), +.lindat-common2 [type=button]:not(:disabled) { + cursor: pointer; +} +.lindat-common2 button::-moz-focus-inner, +.lindat-common2 [type=button]::-moz-focus-inner, +.lindat-common2 [type=reset]::-moz-focus-inner, +.lindat-common2 [type=submit]::-moz-focus-inner { + padding: 0; + border-style: none; +} +.lindat-common2 [hidden] { + display: none !important; +} +.lindat-common2 h4 { + margin-bottom: 0.85em; + font-weight: 500; + line-height: 1.2; +} +.lindat-common2 h4, +.lindat-common2 .lindat-h4 { + font-size: 1.5em; +} +.lindat-common2 .lindat-collapse:not(.lindat-show) { + display: none; +} +.lindat-common2 .lindat-collapsing { + position: relative; + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} +@media (prefers-reduced-motion: reduce) { + .lindat-common2 .lindat-collapsing { + transition: none; + } +} +.lindat-common2 .lindat-dropdown { + position: relative; +} +.lindat-common2 .lindat-dropdown-toggle { + white-space: nowrap; +} +.lindat-common2 .lindat-dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} +.lindat-common2 .lindat-dropdown-toggle:empty::after { + margin-left: 0; +} +.lindat-common2 .lindat-dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 10em; + padding: 0.5rem 0; + margin: 0.125rem 0 0; + font-size: 1em; + color: #212529; + text-align: left; + list-style: none; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.15); +} +.lindat-common2 .lindat-dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1.5em; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0; +} +.lindat-common2 .lindat-dropdown-item:hover, +.lindat-common2 .lindat-dropdown-item:focus { + color: #16181b; + text-decoration: none; + background-color: #f8f9fa; +} +.lindat-common2 .lindat-dropdown-item.lindat-active, +.lindat-common2 .lindat-dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #007bff; +} +.lindat-common2 .lindat-dropdown-item.lindat-disabled, +.lindat-common2 .lindat-dropdown-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: transparent; +} +.lindat-common2 .lindat-dropdown-menu.lindat-show { + display: block; +} +.lindat-common2 .lindat-nav { + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.lindat-common2 .lindat-nav-link { + display: block; + padding: 0.5rem 1em; +} +.lindat-common2 .lindat-nav-link:hover, +.lindat-common2 .lindat-nav-link:focus { + text-decoration: none; +} +.lindat-common2 .lindat-nav-link.lindat-disabled { + color: #6c757d; + pointer-events: none; + cursor: default; +} +.lindat-common2 .lindat-navbar { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + padding: 0.85rem 1.7em; +} +.lindat-common2 .lindat-navbar-brand { + display: inline-block; + padding-top: 0.3125em; + padding-bottom: 0.3125em; + margin-right: 1.7em; + font-size: 1.25em; + line-height: inherit; + white-space: nowrap; +} +.lindat-common2 .lindat-navbar-brand:hover, +.lindat-common2 .lindat-navbar-brand:focus { + text-decoration: none; +} +.lindat-common2 .lindat-navbar-nav { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} +.lindat-common2 .lindat-navbar-nav .lindat-nav-link { + padding-right: 0; + padding-left: 0; +} +.lindat-common2 .lindat-navbar-nav .lindat-dropdown-menu { + position: static; + float: none; +} +.lindat-common2 .lindat-navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} +.lindat-common2 .lindat-navbar-toggler { + padding: 0.25rem 0.75em; + font-size: 1.25em; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; +} +.lindat-common2 .lindat-navbar-toggler:hover, +.lindat-common2 .lindat-navbar-toggler:focus { + text-decoration: none; +} +.lindat-common2 .lindat-navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + content: ""; + background: no-repeat center center; + background-size: 100% 100%; +} +@media (min-width: 992px) { + .lindat-common2 .lindat-navbar-expand-lg { + flex-flow: row nowrap; + justify-content: flex-start; + } + .lindat-common2 .lindat-navbar-expand-lg .lindat-navbar-nav { + flex-direction: row; + } + .lindat-common2 .lindat-navbar-expand-lg .lindat-navbar-nav .lindat-dropdown-menu { + position: absolute; + } + .lindat-common2 .lindat-navbar-expand-lg .lindat-navbar-nav .lindat-nav-link { + padding-right: 0.5em; + padding-left: 0.5em; + } + .lindat-common2 .lindat-navbar-expand-lg .lindat-navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .lindat-common2 .lindat-navbar-expand-lg .lindat-navbar-toggler { + display: none; + } +} +@media (min-width: 1250px) { + .lindat-common2 #margin-filler { + min-width: 5em; + } +} +.lindat-common2 .lindat-navbar-dark .lindat-navbar-brand { + color: #fff; +} +.lindat-common2 .lindat-navbar-dark .lindat-navbar-brand:hover, +.lindat-common2 .lindat-navbar-dark .lindat-navbar-brand:focus { + color: #fff; +} +.lindat-common2 .lindat-navbar-dark .lindat-navbar-nav .lindat-nav-link { + color: rgba(255, 255, 255, 0.5); +} +.lindat-common2 .lindat-navbar-dark .lindat-navbar-nav .lindat-nav-link:hover, +.lindat-common2 .lindat-navbar-dark .lindat-navbar-nav .lindat-nav-link:focus { + color: rgba(255, 255, 255, 0.75); +} +.lindat-common2 .lindat-navbar-dark .lindat-navbar-nav .lindat-nav-link.lindat-disabled { + color: rgba(255, 255, 255, 0.25); +} +.lindat-common2 .lindat-navbar-dark .lindat-navbar-nav .lindat-show > .lindat-nav-link, +.lindat-common2 .lindat-navbar-dark .lindat-navbar-nav .lindat-active > .lindat-nav-link, +.lindat-common2 .lindat-navbar-dark .lindat-navbar-nav .lindat-nav-link.lindat-show, +.lindat-common2 .lindat-navbar-dark .lindat-navbar-nav .lindat-nav-link.lindat-active { + color: #fff; +} +.lindat-common2 .lindat-navbar-dark .lindat-navbar-toggler { + color: rgba(255, 255, 255, 0.5); + border-color: rgba(255, 255, 255, 0.1); +} +.lindat-common2 .lindat-navbar-dark .lindat-navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); +} +.lindat-common2 .lindat-d-flex { + display: flex !important; +} +.lindat-common2 .lindat-justify-content-between { + justify-content: space-between !important; +} +.lindat-common2 .lindat-align-items-center { + align-items: center !important; +} +.lindat-common2 .lindat-mr-auto, +.lindat-common2 .lindat-mx-auto { + margin-right: auto !important; +} +@font-face { + font-family: "Roboto Slab"; + font-style: normal; + font-weight: 400; + src: url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/roboto-slab-v7-latin_latin-ext-regular.eot"); + /* IE9 Compat Modes */ + src: local("Roboto Slab Regular"), local("RobotoSlab-Regular"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/roboto-slab-v7-latin_latin-ext-regular.eot?#iefix") format("embedded-opentype"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/roboto-slab-v7-latin_latin-ext-regular.woff2") format("woff2"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/roboto-slab-v7-latin_latin-ext-regular.woff") format("woff"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/roboto-slab-v7-latin_latin-ext-regular.ttf") format("truetype"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/roboto-slab-v7-latin_latin-ext-regular.svg#RobotoSlab") format("svg"); + /* Legacy iOS */ +} +@font-face { + font-family: "Source Code Pro"; + font-style: normal; + font-weight: 400; + src: url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/source-code-pro-v8-latin_latin-ext-regular.eot"); + /* IE9 Compat Modes */ + src: local("Source Code Pro"), local("SourceCodePro-Regular"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/source-code-pro-v8-latin_latin-ext-regular.eot?#iefix") format("embedded-opentype"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/source-code-pro-v8-latin_latin-ext-regular.woff2") format("woff2"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/source-code-pro-v8-latin_latin-ext-regular.woff") format("woff"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/source-code-pro-v8-latin_latin-ext-regular.ttf") format("truetype"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/source-code-pro-v8-latin_latin-ext-regular.svg#SourceCodePro") format("svg"); + /* Legacy iOS */ +} +@font-face { + font-family: "Source Sans Pro"; + font-style: normal; + font-weight: 400; + src: url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/source-sans-pro-v11-latin_latin-ext-regular.eot"); + /* IE9 Compat Modes */ + src: local("Source Sans Pro Regular"), local("SourceSansPro-Regular"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/source-sans-pro-v11-latin_latin-ext-regular.eot?#iefix") format("embedded-opentype"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/source-sans-pro-v11-latin_latin-ext-regular.woff2") format("woff2"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/source-sans-pro-v11-latin_latin-ext-regular.woff") format("woff"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/source-sans-pro-v11-latin_latin-ext-regular.ttf") format("truetype"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/source-sans-pro-v11-latin_latin-ext-regular.svg#SourceSansPro") format("svg"); + /* Legacy iOS */ +} +@font-face { + font-family: "Source Sans Pro"; + font-style: normal; + font-weight: 300; + src: url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/source-sans-pro-v11-latin_latin-ext-300.eot"); + /* IE9 Compat Modes */ + src: local("Source Sans Pro Light"), local("SourceSansPro-Light"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/source-sans-pro-v11-latin_latin-ext-300.eot?#iefix") format("embedded-opentype"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/source-sans-pro-v11-latin_latin-ext-300.woff2") format("woff2"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/source-sans-pro-v11-latin_latin-ext-300.woff") format("woff"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/source-sans-pro-v11-latin_latin-ext-300.ttf") format("truetype"), url("https://lindat.cz/themes/custom/clariah_theme/assets/fonts/source-sans-pro-v11-latin_latin-ext-300.svg#SourceSansPro") format("svg"); + /* Legacy iOS */ +} +.lindat-common2 .lindat-navbar { + padding-left: calc(3.2vw - 1px); +} +.lindat-common2 .lindat-navbar-nav .lindat-nav-link { + font-size: 1.125em; + font-weight: 300; + letter-spacing: 0.4px; +} +.lindat-common2 .lindat-nav-link-dariah img { + height: 22px; + position: relative; + top: -3px; +} +.lindat-common2 .lindat-nav-link-clarin img { + height: 37px; + margin-top: -5px; + margin-bottom: -4px; +} +.lindat-common2 .lindat-navbar { + background-color: var(--navbar-background-color, red); +} +.lindat-common2 .lindat-navbar .lindat-navbar-brand { + padding-top: 0.28em; + padding-bottom: 0.28em; + color: var(--navbar-color) !important; +} +.lindat-common2 .lindat-navbar .lindat-navbar-brand:focus, +.lindat-common2 .lindat-navbar .lindat-navbar-brand:hover { + color: var(--navbar-color) !important; +} +.lindat-common2 .lindat-navbar .lindat-navbar-nav .lindat-nav-link { + color: var(--navbar-color) !important; + border-radius: 0.25em; + margin: 0 0.25em; +} +.lindat-common2 .lindat-navbar .lindat-navbar-nav .lindat-nav-link:not(.lindat-disabled):focus, +.lindat-common2 .lindat-navbar .lindat-navbar-nav .lindat-nav-link:not(.lindat-disabled):hover { + color: var(--navbar-color) !important; +} +.lindat-common2 .lindat-navbar .lindat-navbar-nav .lindat-nav-item.lindat-active .lindat-nav-link, +.lindat-common2 .lindat-navbar .lindat-navbar-nav .lindat-nav-item.lindat-active .lindat-nav-link:focus, +.lindat-common2 .lindat-navbar .lindat-navbar-nav .lindat-nav-item.lindat-active .lindat-nav-link:hover, +.lindat-common2 .lindat-navbar .lindat-navbar-nav .lindat-nav-item.lindat-show .lindat-nav-link, +.lindat-common2 .lindat-navbar .lindat-navbar-nav .lindat-nav-item.lindat-show .lindat-nav-link:focus, +.lindat-common2 .lindat-navbar .lindat-navbar-nav .lindat-nav-item.lindat-show .lindat-nav-link:hover { + color: var(--navbar-color) !important; + background-color: var(--navbar-background-color); +} +.lindat-common2 .lindat-navbar .lindat-navbar-toggle { + border-color: var(--navbar-background-color); +} +.lindat-common2 .lindat-navbar .lindat-navbar-toggle:focus, +.lindat-common2 .lindat-navbar .lindat-navbar-toggle:hover { + background-color: var(--navbar-background-color); +} +.lindat-common2 .lindat-navbar .lindat-navbar-toggle .lindat-navbar-toggler-icon { + color: var(--navbar-color) !important; +} +.lindat-common2 .lindat-navbar .lindat-navbar-collapse, +.lindat-common2 .lindat-navbar .lindat-navbar-form { + border-color: var(--navbar-color) !important; +} +.lindat-common2 .lindat-navbar .lindat-navbar-link { + color: var(--navbar-color) !important; +} +.lindat-common2 .lindat-navbar .lindat-navbar-link:hover { + color: var(--navbar-color) !important; +} +@media (max-width: 991px) { + .lindat-common2 .lindat-navbar-expend-lg .lindat-navbar-nav .lindat-show .lindat-dropdown-menu .lindat-dropdown-item { + color: var(--navbar-color) !important; + } + .lindat-common2 .lindat-navbar-expend-lg .lindat-navbar-nav .lindat-show .lindat-dropdown-menu .lindat-dropdown-item:focus, + .lindat-common2 .lindat-navbar-expend-lg .lindat-navbar-nav .lindat-show .lindat-dropdown-menu .lindat-dropdown-item:hover { + color: var(--navbar-color) !important; + } + .lindat-common2 .lindat-navbar-expend-lg .lindat-navbar-nav .lindat-show .lindat-dropdown-menu .lindat-dropdown-item.lindat-active { + color: var(--navbar-color) !important; + background-color: var(--navbar-background-color); + } + .lindat-common2 .lindat-nav-link-language { + display: none; + } +} +@media (max-width: 767px) { + .lindat-common2 .lindat-nav-link-language, + .lindat-common2 .lindat-nav-link-dariah, + .lindat-common2 .lindat-nav-link-clarin { + display: initial; + } +} +.lindat-common2 footer { + display: grid; + color: var(--footer-color); + grid-column-gap: 0.5em; + grid-row-gap: 0.1em; + grid-template-rows: 1fr auto auto auto auto auto; + grid-template-columns: 1fr 2fr 1fr; + paddingXX: 1.8em 3.2vw; + background-color: var(--footer-background-color); + padding: 0 1.9vw 0.6em 1.9vw; + justify-items: center; +} +.lindat-common2 footer i { + font-style: normal; +} +@media (min-width: 992px) { + .lindat-common2 #about-lindat { + grid-column: 1/2; + grid-row: 1/2; + } + .lindat-common2 #about-partners { + grid-row: 1/3; + } + .lindat-common2 #badges-b { + grid-column: 3/4; + } + .lindat-common2 #ack-msmt, + .lindat-common2 #ack-ufal, + .lindat-common2 #ack-freepik { + grid-column: 1/4; + } +} +.lindat-common2 #about-partners, +.lindat-common2 #about-lindat, +.lindat-common2 #about-website, +.lindat-common2 #badges-a, +.lindat-common2 #badges-b { + margin-bottom: 2em; +} +.lindat-common2 #ack-msmt { + border-top: 1.5px solid #9cb3c5b3; + padding: 3.5em 0; +} +.lindat-common2 #about-partners > ul { + -webkit-column-count: 2; + column-count: 2; + -webkit-column-gap: 40px; + /* Chrome, Safari, Opera */ + /* Firefox */ + column-gap: 40px; +} +.lindat-common2 #about-partners > ul li { + -webkit-column-break-inside: avoid; + page-break-inside: avoid; + break-inside: avoid; +} +.lindat-common2 footer i { + font-size: 9pt; +} +@media (max-width: 991px) { + .lindat-common2 footer { + grid-template-columns: 1fr 1fr; + } + .lindat-common2 #about-partners { + grid-row: 1/2; + justify-self: start; + grid-column: 1/3; + } + .lindat-common2 #about-partners > ul { + -webkit-column-count: 2; + column-count: 2; + -webkit-column-gap: 40px; + /* Chrome, Safari, Opera */ + /* Firefox */ + column-gap: 40px; + } + .lindat-common2 #about-partners > ul li { + -webkit-column-break-inside: avoid; + page-break-inside: avoid; + break-inside: avoid; + } + .lindat-common2 footer i { + font-size: 9pt; + } + .lindat-common2 #ack-msmt, + .lindat-common2 #ack-ufal, + .lindat-common2 #ack-freepik { + grid-column: 1/3; + } +} +@media (max-width: 576px) { + .lindat-common2 footer { + grid-template-columns: 1fr; + } + .lindat-common2 #about-partners { + grid-row: 1/2; + justify-self: start; + grid-column: 1/2; + } + .lindat-common2 #about-partners > ul { + -webkit-column-count: 1; + column-count: 1; + } + .lindat-common2 #about-lindat, + .lindat-common2 #about-website { + justify-self: start; + } + .lindat-common2 footer i { + font-size: inherit; + } + .lindat-common2 #ack-msmt, + .lindat-common2 #ack-ufal, + .lindat-common2 #ack-freepik { + grid-column: 1/2; + } +} +.lindat-common2 #badges-a { + zoom: 0.83; +} +.lindat-common2 #badges-a img[src*=centre] { + height: 1.9em; +} +.lindat-common2 #badges-a img[src*=dsa2017] { + height: 2.6em; +} +.lindat-common2 #badges-a img[src*=core] { + height: 2.9em; +} +.lindat-common2 #badges-b img[alt="Home Page"] { + height: 3em; +} +.lindat-common2 #badges-b img[alt="Link to Profile"] { + height: 2.8em; +} +.lindat-common2 #badges-a img, +.lindat-common2 #badges-b img { + margin: 0 0.4em; +} +.lindat-common2 #badges-b { + font-size: 10pt; +} +.lindat-common2 footer h4 { + font-size: 14pt; + line-height: 64pt; + margin: 0; +} +.lindat-common2 footer a, +.lindat-common2 footer a:hover, +.lindat-common2 footer a:active { + color: var(--footer-color); +} +.lindat-common2 footer h4 a, +.lindat-common2 footer h4 a:hover, +.lindat-common2 footer h4 a:active { + text-decoration: underline; +} +.lindat-common2 footer #about-partners h4 { + margin-left: 33%; +} +.lindat-common2 footer #about-partners > ul > li { + font-size: 10pt; + color: var(--partners-color); + margin-bottom: 0.9em; +} +.lindat-common2 footer #about-partners ul li.lindat-alone { + font-size: 12pt; + color: var(--footer-color); + margin-bottom: initial; +} +.lindat-common2 footer ul, +.lindat-common2 ul.lindat-dashed { + list-style-type: none; + font-size: 12pt; + padding: 0; + margin: 0; +} +.lindat-common2 footer #about-partners > ul { + margin-left: 1em; +} +.lindat-common2 #about-lindat li, +.lindat-common2 #about-website li, +.lindat-common2 footer > div > ul li.lindat-alone, +.lindat-common2 footer > div > ul ul, +.lindat-common2 ul.lindat-dashed li { + margin-left: -0.65em; +} +.lindat-common2 #about-lindat li:before, +.lindat-common2 #about-website li:before, +.lindat-common2 footer ul li.lindat-alone:before, +.lindat-common2 footer ul ul li:before, +.lindat-common2 ul.lindat-dashed li:before { + content: "\2013 "; +} +.lindat-common2 #ack-msmt, +.lindat-common2 #ack-ufal, +.lindat-common2 #ack-freepik { + text-align: center; +} +.lindat-common2 #ack-msmt { + font-family: "Source Code Pro"; + font-size: 8pt; + color: var(--partners-color); +} +.lindat-common2 #ack-ufal, +.lindat-common2 #ack-freepik { + font-size: 8pt; + color: #7b8d9c; +} +.lindat-common2 #ack-ufal a, +.lindat-common2 #ack-freepik a, +.lindat-common2 #ack-ufal a:hover, +.lindat-common2 #ack-freepik a:hover, +.lindat-common2 #ack-ufal a:visited, +.lindat-common2 #ack-freepik a:visited { + text-decoration: none; + color: #7b8d9c; + letter-spacing: 0.01em; +} + diff --git a/src/themes/dspace/app/home-page/home-news/home-news.component.html b/src/themes/dspace/app/home-page/home-news/home-news.component.html index 92ce1ba020b..3f395e14475 100644 --- a/src/themes/dspace/app/home-page/home-news/home-news.component.html +++ b/src/themes/dspace/app/home-page/home-news/home-news.component.html @@ -1,34 +1,13 @@ -
-
-
-
-
-

DSpace 7

-

DSpace is the world leading open source repository platform that enables - organisations to:

-
-
-
    -
  • easily ingest documents, audio, video, datasets and their corresponding Dublin Core - metadata -
  • -
  • open up this content to local and global audiences, thanks to the OAI-PMH interface and - Google Scholar optimizations -
  • -
  • issue permanent urls and trustworthy identifiers, including optional integrations with - handle.net and DataCite DOI -
  • -
-

Join an international community of leading institutions using DSpace.

-

The test user accounts below have their password set to the name of this - software in lowercase.

-
    -
  • Demo Site Administrator = dspacedemo+admin@gmail.com
  • -
  • Demo Community Administrator = dspacedemo+commadmin@gmail.com
  • -
  • Demo Collection Administrator = dspacedemo+colladmin@gmail.com
  • -
  • Demo Submitter = dspacedemo+submit@gmail.com
  • -
-
-
- Photo by @inspiredimages -
+ + + + + + + + + + + + + diff --git a/src/themes/dspace/app/home-page/home-news/home-news.component.scss b/src/themes/dspace/app/home-page/home-news/home-news.component.scss index 5e89f6b62fc..4875d4bb4ec 100644 --- a/src/themes/dspace/app/home-page/home-news/home-news.component.scss +++ b/src/themes/dspace/app/home-page/home-news/home-news.component.scss @@ -3,63 +3,69 @@ margin-top: calc(var(--ds-content-spacing) * -1); div.background-image { - color: white; - background-color: var(--bs-info); - position: relative; - background-image: url('/assets/dspace/images/banner.jpg'); - background-size: cover; + color: var($gray-800); + //background-color: var(--bs-info); + //position: relative; + //background-image: url('/assets/dspace/images/banner.jpg'); + //background-image: url('/assets/dspace/images/ofis_view.png'); + //background-image: url('/assets/dspace/images/misty_mountains.jpg'); + background-color: var(--ds-clarin-home-news-background-color); + //background-position: center; + //background-size: cover; .container { - position: relative; - text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6); + //position: relative; + //text-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6); - &:before, &:after { - content: ''; - display: block; - width: var(--ds-banner-background-gradient-width); - height: 100%; - top: 0; - position: absolute; - } + //&:before, &:after { + // content: ''; + // display: block; + //width: var(--ds-banner-background-gradient-width); + //height: 100%; + //top: 0; + //position: absolute; + //} - &:before { - background: linear-gradient(to left, var(--ds-banner-text-background), transparent); - left: calc(-1 * var(--ds-banner-background-gradient-width)); + //&:before { + //background: linear-gradient(to left, var(--ds-banner-text-background), transparent); + //left: calc(-1 * var(--ds-banner-background-gradient-width)); - } + //} - &:after { - background: linear-gradient(to right, var(--ds-banner-text-background), transparent); - right: calc(-1 * var(--ds-banner-background-gradient-width)); - } + //&:after { + //background: linear-gradient(to right, var(--ds-banner-text-background), transparent); + //right: calc(-1 * var(--ds-banner-background-gradient-width)); + //} - background-color: var(--ds-banner-text-background); + background-color: #f2f2f2; + border-bottom: solid 1px #e5e5e5; + border-radius: 0 !important; } - small.credits { - a { - color: inherit; - } - - opacity: 0.3; - position: absolute; - right: var(--bs-spacer); - bottom: 0; - } + //small.credits { + // a { + // color: inherit; + // } + // + // opacity: 0.3; + // position: absolute; + // right: var(--bs-spacer); + // bottom: 0; + //} } .jumbotron { background-color: transparent; } - a { - color: var(--ds-home-news-link-color); - - @include hover { - color: var(--ds-home-news-link-hover-color); - } - } + //a { + // color: var(--ds-home-news-link-color); + // + // @include hover { + // color: var(--ds-home-news-link-hover-color); + // } + //} } diff --git a/src/themes/dspace/app/navbar/navbar.component.html b/src/themes/dspace/app/navbar/navbar.component.html index f061c7cb3b4..0c81757e840 100644 --- a/src/themes/dspace/app/navbar/navbar.component.html +++ b/src/themes/dspace/app/navbar/navbar.component.html @@ -4,7 +4,9 @@ - + + +
- \ No newline at end of file + diff --git a/src/themes/dspace/app/navbar/navbar.component.scss b/src/themes/dspace/app/navbar/navbar.component.scss index 210847c1d93..59fbd37a9ff 100644 --- a/src/themes/dspace/app/navbar/navbar.component.scss +++ b/src/themes/dspace/app/navbar/navbar.component.scss @@ -5,6 +5,11 @@ nav.navbar { color: var(--ds-header-icon-color); } +.clarin-logo { + height: var(--ds-login-logo-height); + width: var(--ds-login-logo-width); +} + /** Mobile menu styling **/ @media screen and (max-width: map-get($grid-breakpoints, md)) { .navbar { diff --git a/src/themes/dspace/assets/images/misty_mountains.jpg b/src/themes/dspace/assets/images/misty_mountains.jpg new file mode 100644 index 0000000000000000000000000000000000000000..39d80525868d837ab86cae764f28eb7b4d09ddcc GIT binary patch literal 60686 zcmbTdcT`hN^fnqrK`A0Apj4HnROua5qzg!gAfWURLnn0dTIlTs1O$Z85klxa6seKk zgAfAJdxsDp2_Nt8e(Sqy-M{X=`<%1ZtTS_F_OoZsoSA3ubNT1;FW|1Wx|TZN+O=zd z_g4qtaslu}%@5=V0O;xh1ONcQt*bmn0L4}6+STzta)||~0!2tU2k3?`VZ9qmTT83Zrr52Qi+=8szB}C zEA=TTu3ss8^Tv&<(!p2xfEx@q86S(iq`YVFf$E9Jeeq8TIk&i9Rkkx3j_&hF*m{1x zP0h^m;2|q7AOF*50+LeFGO}{=s;|}5H8i!fjf_o9&CD%;cJ>aAPR<|~FK-{Hub+Rw zm#?8=;SrHhiAmp*Q&PXDrRV157Zeu#EH0_4uBol7Z)j}l=^F2T3%UQTi@6`I6OK&!JiV&&i})84M6dK!TLYQ{vWs)u5ewy>Vq3p|KYlJ-S_IE zV7PJfu^1)eO9QG89`~Mzf4X)5RYFc>`)zIs!+j=O&rxb-9?1pXga4rY53>Jvz&`)~ zLiT@v{olA|0JId>t~!r`0iXi7kUr#6@_iZ_Eat}X!nWzNQr~DfsVc?{v@jn&l~RWd z89IEVqWGoa_!6L8D}vbHg=oRN#7or0Dfl#zN(D6%vb9rt!l~5UFqnvZfZwo7eHwcp zio7ae<`#6#!*$I|aP3EE_gi?!m|CaErl`A^4^4Hzz+3g4c;aDGX>!9MB@$7nf`T6VKw-0CI6;iO66qU=^Hj7|f! zYgiP%@bZY4b3`d^m1Z$;N6vD^Y)w`StwYs?K+hsUuC1%GTVrL-{2;$J#dpUz^O>Sf z8dJ8sm7n-e+XJyOi%gTTO}$lI){kQ_yP*f|E5X$oRPVgpINs0sQG+E={c{aHE=>e4 zJEuOZ+TKq{&K9dpR|fdE#7ZYhc5zOAqV}Ky+a)GLLZPjVvVj@Td?_l{3Vck}p>nvU zoLy(=QjeG-togI3KH)U3cn;Z`bA)DUDw7**4hCn%X&G9(kWl@xSYP2sPg+NKe1zTD z6TWSvA@AzI?I=HzVlO(Hg0FJ{4)oWA{P7*oRLPXtzNc=I^3;qo0c};2?rkVD zH#7H5HG8EpmUN`?U;A%_S;^Sxas0tyza@GRj$+=XcsljRu(eMVW(5(^66AEp=v1?i>_;G z(d%KG#t#+Tk+);Y@XE{AX_A_45mYmJfp@eDtL5#tU6mCZUx^Ykm~95}_f?h!gzU?L3i=QwQlm+YP%T>m7usu3Tx~Y{!I8uzK&WjGC-6>EH|&rEo18ooI-m4%8oZ(7QSLbq zVk1f>jU;Ko&m1lRA)BwOuf|llAupVZ6mUaQ{}C5d`Vvs*!+xZxfs2LhWSU<{&uE0N zWYcc&|0{!wZQIGbt@!<-@~UYBqw0}SP}E4Is}$eIpt&of6lXVGjbp|C^uF6^_NdPE z0_VcpXx|jPNAkJ^wE4IysoDkq!IG!Pg}wK?Ajn(CbD(SN0f=X3cJX9V`3d57sdC6R z_!96DeO$~v8Z@2`zhHp?)TP4F#OkXGy!Un@rD6S7_;oY%4;zRsjde55*T!5J-%OL{ zNf$ro7S(Oeu0~?WhLr`&O39cT?!_HpZm$0Ux_;Ic-Tz-56GL)VlTWlNf@e+tk=kYD z={O5%+uWE3JI2$kTmt5sprqrErWX^}==b3%|6__98I`~OvxJT2ODTv zYA3mzOqyWy|9%Nbft~Kw^4HE@0zxG&RDzvLEX=KccftoQ0fkpN2)KmGVLzEP^-?OV z56KH>DzBCBJ`sZt3=^yVQ^=$r5gfj|yM$yab#Zpwa0waJ%^tYk>pbrydr{DU9?Rqp zb83p;v$Sj#AG=kd>tRctTObZA>(1}l7O_qxb8;VXpv2&x2xjdH^G4gZeMpq%dC%B~ zJ!OK>t}IeYsiEGO&&*BLX1I1i>|BYZOKK{*H_`sEcZdSQRME=ydG}^)$WRQ|sgprM@>soDl`RAO1 zyGTmKbue1uyOeJ4EBmRjE-#e{OzJpu4jft3)Ty22!P-4^<@GKB3l8T~x#<1s9+|a| zDW{r=$B)H5$V}x6@zX~(6SbmM^?2_Lv(w1TQkIE$V0gr5=!flLZZf*$G~Mg<3v6S+ zRFmHx-aV-^-5G3==$~h`$NJ+d`@uQuAvRNfNxxC7muA4+{?VJi-sEJLT$goexwgtz zqYHVf*-4$4qc7jdKy2#>&?qcS)7LAuq1#kmRrPa~Og~zwc<%gD63bU1gTqSV1i@SL zZ_H)4J*0@qU^deA?PLh|dINS<&VdWpZ=#?dg%{@gz19?~!4?x_>e#qH#P%UHY4v)A zs3OyH*$x(gnB8OWVREV);kUb`ww5Oe(QWshhD=1MBZdUI~*Bo_5mPj&!==5-j4E;d>eNI~P^L(n` zb@Y!nNUdkl?2Du!fl`y5Qn97rhP_m<9C_VFd#zYOkd@!ZYw)Uv*oFHrgXz_Rt<=Q(8GO^w>nf7maNtidM^X_hZfr~Z>;YV&JSlp%KXxDRYVdtAklVh`cqL`YkEUeId? z!EQ+1-d3CXV{bmcn|h2ekEPlk=1T0trFz!Q6YdCbRRkAkat9m_29(wBLl=kj6IV4S zG#>Pl@!*uI(Jtz4$S%8#-0gIw+Ro`8YUr=udYi=RQbg&8N&+v;a?}>84$A)68+IyK zx$8c_7>g#;ryVG}ZBJ~lu&Je04Mh8*iYIR16e zqL~mZDHsV^eygs2@Wnt#FXtpM%ipa?{ocXPTBYlPSg0wso_!S+sd(-2t3jHt!#7M_ zi~dfhOjlIN9+wnFO$?6Jg?}YX{hA4$Wh^P#;yXj9TRT@rntBHibNm<8#YEGK|y@QOgMa8rD@olNQ z&3g>JIA$8Eg(vX^A6ci?=^OitNROaV`&|(#6FbAQC#C)6^h~k!bcHB|Sg+?0@_P4& zO|w>KsS;naCzd~~@S$~YE=+^Yy_{Cck_;}8$EE%}*z}1Z%d}$K-^y;l1R=sDU~8hs z6=ZN)d;Q4;*V&+kRHn00qSE3&Vm#H0c{<91!P|=C@Q$xzzSMy3FkI^HGJ#$cnyzw zA?>HQ>r$Emld_&~O(!`&vHTW-CVOf8TYOqFj&2@@miQoVnEK@jn#?^o0ICRUNPcK~ zOKCmQ290XisxX0x20Pz?$+&pBb}RIKI0gMK%l(J#$jC-+H9vT|a2xtF;<;butHJfAW9I)r6LYNVL zVo-O@vti6Pf;QSPdMGx;ab0FfGVoE$i2?@=S_V^}lQZ!*N#z;k0zH@Npil7uxLaq1 z6t~GGLUH)%)<^P_=6e?VKW2i2MmsjM*TM$9&^D+sxWMV#D)>SWwQ|wm&tSV$)s0vk zeCWYq-&l?3I}Q{y7xFGxFm$q2nUFYadSMJ*r1?hzHF9qDz5O8dZ4FK4t0hmb+95pw zG*S5Xo~C~xqr{=_N#14!P(lW{yJk>A9?cTz?tDF}!HbpyG;2Aa9FQ6TWMGp6p#72dw>uAg3zNZM3bZ zg!(YsFuO{*w|dLj_3R02`Reo665uAEltzE=hEBSf^ z41sofBAg~{Ymn&OOTc8g^(5RU?;S{|wzbA$(-VDIwYyeex9;o$!J$(P^qr1~{WZ2< z5MnVh({;7LDhywybPbn?^Yz-gOfU~zN_al>qZ{|rOt7J>u*e;Zsrpv@0^*s2OCF=Z z4hJSK(3y(f|8Eivq+_+$ZTViwBeIn)S>InO|9fb66_Co7W5J$s;JN2ao*E& z_j&Hb88%!o`Q#EnUAaKdV(phMT1n4fGu?ZdOzi3BdN1$2p(j(ZqPM$-=+5{1vK{N; zb0?Jb`Mi)&#%u68x?u_F!MYYne4LBZ^6+677e9*D!e0*zwcgs>1w(s=<}LxM;9!@{ zQ`5L7clZ+DNCZqtEDnEda*H~7uw0uc$R)^@Y|m>E{5)_%JO5s_fMkiKYWaBc&4uy@ z>;G;7?KJ9~wLbB}8h7H$j}VCj&~dLc&Jx>Kd6=v4uGlu)GuW?Gl$M~}`4aVIdk3kz zlG&|TKpp%WTtMvemuYULFr|AFBn98o{ZUHpkmi zTN;UTa>C2oOrGXb1?)ZwS;23FFcD|zmjF!*@`uwVQzd-plOIzxgmS$1fmxWUmPgJe z4RsvPA=#9(wsTXNC5sQs<96>_UqyS_jL$^oX#X~FG|Nk=G{M85tF&nKq-<=jWBc!J zX)jTFlv6Np-sqX2!h?;|l0NTZp7G_-O5MX55!O$4^uFzEw?Wf0pG`8(QgJI#CrHGB z9$mm=Rr=>mo#i-;gC?J7e=qE$GrxOaAp9$Sh+=o5Liv~o+V3>Yi-ZyXJI!rq%(G+Mz2MYoX_flYKuu3ha}wOjdV8- z=@H5gICy$G$z?g+X;Am#P9LD;N)d_aqf5Y4At?g_&`{&qs=RuSozklQ;nVw8e(FN6 zoR@ylw{(zA)rQOcsUO@LHA3H#%nZHrBYw+J7Vfrd?~SL6+VAIzIuFb280vD8m8!P8 zcrpL-bV;2vtoh-GwP1S78P(#=ImhhiBh7)$I(eK8*=?NgKK-3IpyxZdU@|xbqP3dp`k*2ts@o<@$e9u^Q_Gp|&-EYSb>oUa*`3gZ`nljq1>D~*%2}+-K zMuVruzR0<%f|qpqK`&YE#KwI_!lQxTsN80jOTh@Hmxmao6OmmK(lyb&v-IYmU~u`%=||)^Wlhnf6s65Kd6HmEC1J3r z?|EG>r=CBuMPZ2#F0cb)^6$}b=`nT+rZdr{)2h`O=bW;5_#NgYl~hd7F`Rnr5Sk|A zRg;;fqCMsoVQO}}QH1g3ItZfZK-a%;BQTiaeY%{B@b%M)1=nW!(v7iQzs$N*y7ZCJ zT3uD01mBmuP&;6p%J)up#3jH=+34*op-s;#(&YY9^EdDW^<6^K>d3=_IJF0*!TO7t zL`I2M50wU8Gi`g;m%Lr*DNZv>TGqY@)jn=`_oB3O_Y5wUH@gX3TmP^DXD)vtR5j-h ze%xNR)IQHr>b;SdsHN;o7%p#dPoL_z1U##z@rYR(*s@?G7zT@|fw<3LTLp5jek6Yu zFQ)R^h!&m6&`G~WQC;5n zs0gjiQ)v0ptViH5oZo99_Y&kMvl@6La5aLNIo*ie=>}!*`KS>4Oq0Na?>0soh_(n% z=Y8>Rx=F0&^Kr`l)lYPVrdGR+k+kMdP+7!Bbc#Pf${n6o^F`S8>s>bd54 zu0AOOb+t<^0c*PE$NdQZN3Ov22h&MY%j{(3lLc#LQV!AVeaz!Y=GWF%H$cCM;QVNO z-b8`Pg#!{LsxS77R-=e1rg%cHOWk<33~I(ge%{a$rUNl#(lln|G*$NHU+wfh{jtC!!ln@xk;Ts}4-zWmRXGQd%2v*LV*j(^?KHt%LhuURD@uT#K@IY z^79F)at2+z-wDJ@&cqW{Pg0rQIUDu)TYh~jgvFVtW-E!a3^{hT9f;keKMf>K?#)OOO3K}9wfbK0f`D&M zumrSWy3;R}`^wbocdf0oa%Uw+DhED<3vTNl1P7B4zkS*$T54iiZCps#4^p=um#gs{ z0b5$S-n&xDY;A>>XOW)9m};d=sNLduF~19xI4y>^7ng*8je%D7^CQ4hmRZ zrYPNb2F9Gs19T~#hpIj$pYJ?rY%%IMWggx2oBA|^S^};w<4s47P{`Z4Zv=Kr4neVu z#7+n_v8$~MrCDNTYB11N@G*08V7YYLQ;YuoPHCo~rH?1-X4B=3+lHe=e z#(O6}9dSe{iM-0fGyNA)PS6mSIM-zV#h?j^*UN7y-{Ay)j6slEJNW?!zO12nDd&ik z)ptoEd-$J-aS)c$Ia{M5I83cT$N&D6hD`XbSW0B-rkKekpqek{h>K}0E45mJK^vZ4 zHj|7VKs6#5%0|g$ITJoQ!V=s4{)*B_fB9)__{I1eVs3d`?~83r=s$Mo^QJ_W=_7%i z;@1AgbMZPY2e;_JPu5s=!dgF@j=ouJU7pR+`b=Pp$U@Awatg zL%CwSdqBm+%oWZ_*ptw-=JqHsQKP<5r8RVFW3FOeL+-5PVU4sK%A(15mvapK+I4Ud zC+%}lCH#0o@}k+!-OcFT_=ho+SSh>&xLH{eQFW(z)8RGp7v@}JuY9@}k z|MtCk2>>&#-P+Af-Ytv>Le^C!E1=Q^s_Vk5{{(>(4Rdt|Dvx5PnfU4tn9(L!Zp$6$ zI|q5QFb=3+{sp#WbAVGMnSQYPpx`8M)47t)H6XwBNqw?s;_uc;YL_Ez3EIOeZud{Q z(w81a*tmQnRg9yaNpi@yKsINUkG@>4lQv}FtW4n@7flhLXJI{wu8pe=l}m%F1p7Sl zJ*!vNZ;~^Leg+ziAETmwca)^Kd0E!YAZHnZaPm{pol80^DqD4vTQ*!S4DQuyGx3Od zLsIefT|%_@Zqn{jI^;A$*fq&T16Ao3aB$Wf_*3V!$=IFHv!G{T6&Gl5@*ZD=U<(9e z)NH4Rtvd?I{jv64GTLk^oz@?y;@76@!J0M5( zwk9qnzB~|e!;TO0=IO~0IC6hJZmBB4s*DR75I2dl2zn)-oTpy@DJ_-I^y%GUY-U_U z-{vYEI%bdM)T?LoXymlO>VvD905%w`uRZe7XDi0aMhF6LnW-(>Hz{Z&4PdH->>jtc z1P|r+{lGRo_bz9s8V+sn#`aJJtd}-xdBAa-;u^!ce@cbz+V82_pGJ&SIhE82rrc9B zgwKh;KXx2sF9AOGnurTW0{z;IY95v4xp#R!koK@*30HBBXK*&OU0j^Qv;U=Os25R^ zux3u57bQ&Mx>f7_aO-U*c0EWaBvv*VF(*?A{EAMN25TlKxN=DeuI zV*hk!3zi=S#!1iZ|IUV70*t%j7adRV`11ISE|z%yfzo+kOOapJ;ng5BJ6w$~Hj?nm z)GwAQ$AY^!AL|sPV0MP7w)~DjgPBn0Bslqi<@3(&7lE2h*ul(} zsA5392+GKrqi@-GN?D?I0?8d0tc(@#Xf(SKH9w=DBl1JEcqzTDb8-5u?_I&f=24z8 z2gnwRX*Yce4;g_(*eVI8Pt^zpqSQ@N2Y&xG(`Ah>9yUy0_ZLdUhMx7XmgotutjHfD z_wEuN?&ydk%01#v`dpyC%;G_PgXn;r)z%_zQz%cMiOYSR)Jw+M#v5ot$qB-hE7qyqj%WDXw4fj+s+MuKN+aIC z@QmsG%O^&Oj2eTQ)baHFCi&s3NVg|>jkUAit|cBkRgqH1Ke0=`ve7iLR;o5-wObSf zp}z7qcj@xG7X))aiIbD#k=Sta|UssMcxjQ%hwc0#g5hNl!0>A;Hh1S7pMw0ERPY{{Og%Gt+^MAaxP1~ z;7wC@z^bW$Y^@YFgC+d`p3EQV)|0QL_e~JxKp$w6X6H2A++1@CvR;P%V_%_S_%^YaoJSdCvqkj|m3qa?P+8S#+YZoK8!#T(T6e9MVmgdG>pID02*->!5 zq&2UV7%$|N?#}hDN=c)>?u=#X0A}(F*5kJ6y~Wp8o-Mzoo|c^YXygK_t|DdjLxiuF zWPtM39sCm}Pv6IWJ@X^syc3;M?{cL<;in!JD%Vw&Ob~d zWkvQN9A_Xqc7pPWoQU9Sw9iY zNSjLaNj=!jfq7_;yi&e=^t7&X9KdBv+>Xtq^r$(07}p)ZV+}}OXj|qiotw1YS_sP? z3)$0k&HRb~);T>Pd!za&!$o9)NRj*{RSf})2oYxG8Fhosm%1Fo!REKD{RcV5e-*&EE2oKEza=?x5r zEg;W-lbcPpMDGe|&<@N46C^LB*w4Q2sh0itvT`KzRs{s1VE|Y3-G*d(4C>w~rnm(7 zmb;+g+ii0Wcq!IkIG50$)zs?Nf(xU{Bdq((8eWCff?{$uku^n2hasTf7JfaFb6)ylgOG_%dfDjnq@ z@>63sTut;aaA{$}Bz{18a?3IsaacF!!Xd0WllAGtqW|~ua~%n%7<^e<=NwO(f8yF7 zdf>tDlY5NBD!$;&?)oU#Y&KK1tt>&Aa8zS%mxcMsMT^l}5ZR1`Wu5-gIXVln4tNvm zk!7nyx&#at_(l7b;q7M*r2}niy!F{^EPn_k*~zNlO6S;&)FMWX1J54U85TYmXdxl) ztZu5OavGM8N|;E_Ghzp2!JpY0hqdQm92+@+Fij)pcA6~qU)RO`o?(BxR#SLg}b1Zu9xHQ3aWC$8b zN%vl3F>nK08ogusVRBC<_DGxrc5}4bp$k@jSeCQ`x))=ATuK+%DU<3Ra_EpE1fz2W zg4^w84tHH^_1{jIn(}B3GK~Ha4c1qf3Sz`SI(C+%zRd)x9o7c$PIUN9Th&Y1&8`c| z&6buZ(Rl~zIDZiE^_4>ii#f=-0mte`mK>R&qI7jv(GqGzf#VSNB<|C1fd+w3YFoc> z3ZU`N^ig9-ja=R9L}XKJ(u+%gjCRJnk@NUS7zf?#hQKZt#{QT&ukjzxmw;%9F2rq>wmE*P)69rvF z1K+k`YCRM(qEUz>=qaEE`RiDA%D3vfZ;7qVtwW5u5)X{4SCu4|_|a{QmVSYq z%J&Z3zIt0)>MG9#MtGxm$U{;7(arRd|5`?@gl%~-2UYs=FrQIRWdec0gFepp`dd)_=CXC=y5f}&Wz>u0_)rS;kwBF$l`k@L_Zq6xbsa63@y|r^ z)l(ioauf2h9?sMAr{1p;O38leZT!(eOPN>MyTvMLC`{dq+m8nkH_*17@L9<#>m-wv zntFZA(9>7uI51X5e-dK}mp`AI(`X1}N!qSNKTUY4Y+Ljf`pHA9qx?j2^KxP5p z-X>?r)W_!wu+bE2jc=OH<81=XCqn@r+6(m&TNOJEwP9LpG(10Y?f6%(-CmPrKN*B_ zvJ;HxBZ62SRv(B&OE*VKTmtN7Ba!yW&(ETyeXd(@-GtiZJ=?R?@obt=D$vYo{q`Xh|u|D|5bE*%Rn4S~5MILC zuT~z6&`|0^a=giY*ZNR2xL_7lZP~sW2Kuah1J?8g@QUJ_tnwpRyL!z$6$mIAsi@$; zq*e35*Q14dyuk0|dortdT_ww`-eFl+_M@loiZYW1`>jAjkez36pv(L%$$2(Wd~kR7 z_J@4k)aP=H?II!Sx^2>bJ?An^j=Do!UEo*lkS-dC44S!>t-h&sOiKUWu!FCUL+LFa z5Chvl6piz=ZjHNk#=YTaFF-!i5^%)Dn`PI3_9<^Jy-bLIo{aSr0Y|seiemm7iLH&M{wdw}7oh!3CfxLH0@D^cX~NotG4aI#T@mrISwB+rpJRn-E)C%#65QBQF70|_ ziq*JyvV*-U_ln4O2&bbU{elzv5)jeZlPZ&9mL*wj;{mP}Xhc zbL$_29z`xjdM)=sSToM-bDzAeWZoPb(?Wl3qEeJ_+lT5fN4pr!jE0ib0H%DQ{W%f1 ztMT8j@d?(Ed4#H=!@mXHm`aztPwXBL^aRExe!HNxjt=ZtUFPTIjvb!3bE0DYGe1Eh zH?c~VV*f~YvK}&l%#A1gB!9#(=k1U2i?Z`AE`fd>+HG0wg&ki+x?KX6tt?l$ME7Dg z^A5{OrrOgdJZmS*zurDXKTVBicz8TNq@ul^BJS=h5qF2qD(hCrO`MCi*@cX8MABjJ zqnWl$%kitZaNWoFgNNjyf}J5Uu5}xa+95<7603DM`~`(-I}#{nhnxyu&(1TE)spW^49FNv#bG~8Rd$%9;?Pt(t+sU*X~aWo|O?Z6db=VvIa(}53=Dh*da zB9~27)MovN;JPdy10~HYOFeXZstP@KJP9~37TP}9Vp_|1?Sy-RBC>|=6iw8#rW)om$-1RRy8CCxH7nsz|~vQ8aFEH zpo&_wiPEh6HU;{4xwcSyApTbCLtX!2ymi4kkSzobtZBQxQ+rDfX8~CqK97X#&qrPY zlmx8B)1kKKnHnXEX1^0fTTlmiJ3CZ!R+HNrc)!WA`!xog?v?QGrI~8X^VKquKE{qU z`{W#GCd@m_Hom85t497?g$X@Zd{@uo(D?KOMP2vKy^r`ZL^q7yX}@6UWpKf~#X#P- z1nD1MGgUj@mXxqeSI^nCu_kVLLo;>pP|a2&F~yfxF@Ny{ldn_x!-L!*Qn^_ym7rFO zLN1_p>w`L*<}sBPWxr$o(@?P6z0MnXUJAa8b;8a5pa*QMYEtq1VLJzh)uI?g??S`D zVeeZ~#$c9%A6eCFqVkMnJ1d=+kvc2k)d%n#BnyxjobO6J^QJiwSv`bJjqkO1B3Zj<*iq zEyW2?EXw-aR(42`ftGo)q{B{P>u1V<)19c*w5biF?cY99lI6!+pjPKqXTo|QMrpTz zH+v?@jiLoIZF%OZSjQ+DjC1Mk33I%_9~=#uAainKCx+wl3Q1c}y8F7GNVK9F-mbcCR=~u-wqMvK5{e z*!h{f>!?MUj%_u;0Zs9|8UrY>%Ed=fTppQ`S-%NY5}bJ=6|2Mj{>4vamlQx0+{;%g zBAwLrW%;$irgMf_LzGIo8u2OK4j;DENVQ^OuxHRRs(K_IU*ILY2pyVCP&#^x^9%h( z96-XgmCJ)wx0pvZIZ4LE!Spy?6NXk3Q{|JMSweZ=n-D2R0(_V$w{u;!YZH2~MIZO7 z~rKI(~7l+naT*Yw_Hwr7e8NRT7hq znGt@)n+n5!O%PcLf>8~ut?a~{mO&Kde)@-awzru7o6yt8>y~CJ^psuNg5GGVyZ{OA z0M=!cNENKaZ1@&cM(Lk933*;u4MWS}(vPy1Q;su3{Pwt;s}Db(+``>(qn63wuKD6Y z^}%ZP@AC2WY|IJWX+Th{TM}JGm{Y=Jy;kG*g)^Fw1j=>7Mz z&u^YbeqpcR#+CpLPdjaJByZThBTstYx|e3W{HdB1s5d{@<^{L9k&vDl&i z-#afUjM}*#G>iV-qg3+%=j!rDct?Bo3iJyxDlT*iRW(WXgwj8LmD+3fgTVv_nvbpL zdf06B)9#F7*uukG`Y^`81Uo>g4f`JuOCV#m?+mhdh@h88cs-8qvx};O+2sf*c?^Q)Bb7SoA_Hw|0D|FEbPx z>o3V>z+;hSYv75UHc!KubDj9dD6iHZcxlCV!>e}FN`M>bA;pV(%;v(Ap{1s~_0kp7 zlBN|9X9m?-iJ&U9$jTk_Fd=jLA3?BvM7IsaiSQjRCHo0Q-CU9KkCH`6LktqXt1O#g zTg>Lf>W4A=6clrrnuopIBA|YQ^r9~FV^oVW7!k|g6>H~ro?H>3#kjG{=XAky5kFw@ ztsyqju}7wCM1SPGoOr*yvyB1fIDEs8-ntqiiStC8v9K1_J^H-dZ7a;espCppzIH3a zQTatqCEx56nsq4m<4L6OiH;5`5Ovd1UtsYud&-LJtxY-Fyg2_26CW+u*vulv*>3g| zpYW;O>3J4B)VN~bbz8a8z&Tj1U_(B2$Ks&6izVdY0ZS}Pdn=byYqaHri0u(k$u;tU z;fVgzIGpeIii;`m&6i+l9(t zO=8^Z`6f1Ti`%^z!ovRgCj5pXWKs04AGA}uGQ+T{e&1xIE#c0ml_AQUB3@M0Z`%RcRVEl)qa}Ae$bP_ifqoM z6mvNga^86|koQFOOR}xy`&VdT^z6TcsfF!I%_QE)&{mVf6!mZKceXbEg|SZ^NnG5E z^;!tuG5U)$#lA_j;BJZfD;tX)u5%yKv$M7IyqW6icX)PIZ??+;k2GCn5Jz@5{d~tA z|FrWkhNCDU;mfe%6g~dtv#s0Hc_T%cT7r5k%Ap7F&&^zmu{(u?1aE8#;5Dzhv*q-} z(LB;lsSNd(Bqv;Ba}S7nGcQOZ_|1fBkignMLJvYL0l*AZbY>Lh>ww zlfBlqXjg=kw@&4e zb->w(H2LPiscKW+D8JR7PA~QZ!OXm@7fVG~;e=UC&z6Q~C{zz_q%xqHvOe);2+ZKB zGp3nWjeL1@PED0YvV{T>0VYTleCmEmC0{jVM%kcr0c7!Bt_5(IF}}`999>~4Px|{X zgXieSxrr);uEMiFQOSIx=U~th?}1YOzw?`Oj1A+vl%06+s+qfj*IXkG_7@%+q#=}O z4yLUxV|(9rG)i^RC|ll7kJVpduHJ_)vV1;9unkvXLG`^Qn=`S+;P{Fc*c}E({ievs z`f#O1H|+y`tOl9da?y<{NVjrKnG1{`Gk1mx`@#b4g6~K2XE8pvcOA>Uok4R%U!%73 zy6Q}3clZ@|#Il*wc6>w#V9WPN3$McZPL&#-_&_AH4p!Sq8(_zQVBTA>i7Z`-!x4iQ zpFMo})P}J~pGX%;@~~kJx=w0o<~^WTK!^LRPDxrRZ@qgPHeo}RG)P|O@JQ;}_1K9z zA=xY?Plb7-VqaYXx-kL9(hZ5GO)5<<0=$m9olaP{Ui*x8k0v(PE2Ur;_M(Nelll*= z3Uj>uj2p-Qp2Y>&Uu_&*P<|9>AhEjJD+K0sSljR?0p2dVcT&dEehH}I%UPta%CNcX z2YXwOGU8!WmAEH=Ez#@r1xNdir7x^TBsmwmahkrI#RU#5bi<4t7=(ULEv1{2TKK~whz#&^%u1{S6t-u6AlaN!t6Ta6CxZmhNaku z6U^OL*%4jXi~LvfqfcZl-*{bc;T)DxT{^LHA>7({%70;RhDvSx6+)zd(LS@y5!bMm z051cllu0n=f2-sFGZteRw<;2QA)!&YfpFrF7IsM8Jrfs7>C>+YzY!1HFH`AOsVtBD zy2G2eA>SPMd)h7VNmIP)S|wM)p7lx*5xftJnl@ar-Bt{)!x{6h>B74?DK5OEqCsBP zaj=o7-5UqJ*4N55{UUxgO2nsoj_ljqArGnCQ>3Ze(;Ykh@e`dOlrXzXRY^Zira*65 zsxHw-DRMi`SXcfPy)!G`V5-(!7jyN8fv-Dy#kz$*Op#&nwX>^;FcJ5wukZ-$RKc%O zU~?5f1N$qi3{9wMqbuzVb;^1$oxwfXL~_Y{I-&JTF8$PEWu`8xRdFmggM63kR<#&T zxP>$!(!jmv;DD~jDG9<4SUO<;$R`*5ks6fgn7NbxMO-;q0ih0?e=WGx-b)h1O2MYL z+M8-)vaC~!{%Aa!9S2%=vT@}l^K(vj8;`>rcbI#|r0QExhg08wN8uufL9JkIk8-LU zareY($1YPwbgjRiV64^J^I$**m1{WM2K2O-{#0vk2!Fk+_pObGLFKpU(skjfzry3seTPy{*)_Rv0gLrpUZ_)Ip1`*Og$*C z2r^m_z3(S2j93Wv(oLZMZV~VT4`Bqd?18Llfs4#lxR(- zVfsN>)ipn&OtI@#uton#F>HaeS)KG3YhCM~t>byMnf=zMAXkgNzvXtToiPj?$wEqU z`*b$-t}^cYhv4;;h{HdUq0!-1!~ct-vkYtc@4`5Wib(xY=~7Zj=>`#LadeGPX~vjz zgQ9c^NXL|}(J&gMyK`fVMqXX+ zl(P|f6X^B9FSRt$tef!i_O}Y=WktRWblQq0v$Y=0JE}vv4egh@_d1&Te0n)O0`x5$ z*X_95EDz|JaGXqzqlxTjrQGdnn%``*%792tfXDb$q(@C3uRfHmK62DSw4)OGd2|Zj zC;PlUD%>(*2pj`tHqIBs0nQ-xK2qieLhFjpgG|B#fiOjTojyayrG@4x+Ox5R->92a z13?c4X7Ez0>sJG+_{H%uB_NcPbD^UaMV2&C;GbI*&kGz z*#}ne8p!wPEXSj%5Aa90((t;bSfh+)X=xXpcniv3e6+D!Qx; z{kad(+&6A0k~WfmgHgNcyLNip-spOwVRzYj6)#1WnFD8_irsLMU*!FlGxKkCy zk`pt+{^)g=@-}$0!`oQLt|I>OR~ANxx?G~n<}!XZUKXOvW%nw8H*S?vNq9RuJe=x6 zflo#2H7;f1z^)_t$1N6zHzYlv`FUUmfw>hK*yE3f`u8$GR(xz}wSf*eCCvLsmjuz{ zgRN{_&*C)L-7%S}U7wA1Y3&$LwvaBJ@*dpaPDRy?8yNCD6_|nBt?f{e=F4vTkpL~j_r`5sz%L5{gxVG0DVtekT%c5Gc{7KYsg--X| zz!!JRo54$7P{)jAI}_x`##j@<;1+0ee-=ie{j7sf+zH_!u6Z!O$Hkm1Olgfe53LN@ z;-kHP3rP+-K(z%0yIKIcFxHxr^@I#LsfYJ@hTKCJj59~0VaP4kFp*_+Eh5dDRrm*+YL1W>#LY)^f3mfD+Bs)hB^_5i zXT^(+@hY^F2vGEk4~cIRIg!Ur2@ORoK+577a`EtM{N5^=qY*S$4Z?G_(^_M{789th-}!(-_7XaRAJOfWx)mX;e zOM|8~Rv_d&;iqI4jJ~bnYr27}=>L=*UFLPwTxeeuy|A`j{I2$>yv0maYTMm4h`q0^ z1W@ku#3>_mE1$`9Hm=XKbt~->!(pE`R2Lf2wPwqrR9vJt*6H0r(&0!d7R(6TV?(Cq zuuPSE`Ukq~sb%<=5E=j%#x1cp%HX*-)yk9@g00HYz{h5JG0Tjuql=PLF5bC{4;S>b zo#D)U*AlvUoU;lAXHZ?*l2ShXN91V;@H-EV&3S}{cOO3W@m`B7D7+BuX{U&DKmsOL zGhT8=Ez8TNENe}~)>nLp9;W6fv5V8rU;V;L?70@G-(y854tT7NFw93dd(*+d&Sjr! zkhRqwp}K~gyrv{Slw^syKYyda$gju^_e8p{cQ7w$aPomAs=W-~ox7Ry3m)8kka}zO z0{I1vBJwK7HwwzhR+^ipule!|n!cSBb~tAFilF+WL{kz7xk)Y2;HVinCmNPsD0zrJ zdBRxvcJLYT01@R3cUFTJ?nJu~1$@1e#uMDA#OcC{UVWR58X^>%tCQP@-Pm*O3m{$@ z(O=Z!t)0vp1Sd5#tZwtCFq$Fl32gV(?#x?Y(7N@b)Gz6+7x>{alHk888+ zJ{5Z+HeBHNgGgBSXRo#PxQkGN4McqrkDXpoh1ttG$P~JJI=qa@U>8be1IlO-b|uZTJWu2o>>12L7j-|o2Bmap0)8h1`we&bPUG?hn{y=D^0>n+?^ zRwxX_%4WxgU<`tm1luo}7fB)ToSpiEmq8y~bNF(zL9gRZ!agW}@xMqni8Xf5<1rfI&LBZ_1;-Knq(*@tU_o%|&6qCjum~ zNt&(ma*8Pl5+roED(SJdhklERTp+pgV2(mYAmCm`dh(X!=15WdlDHRhSn=w_SNMn`g=M&Q8x9a8Ec4T9qi~chm4iTr$qU|Wt))-gXYKG^PqLfIQA%` zpMvo_^ST${l^cZv6#%Uhy3y_vdU5x$#639CsYU4pYg&0APj@@RY;KFc;(tyAQDo{S zP0s6;;JJ=u78Dn4yh#z$Z5AT+A3uzv`$rYR2`TT<@j1xaKT&FlX zEl6T*<$g_i(VxF?+b40A5;L8AbPyxR0XmD)8vMO<%n7INzl9a4Z>53){)qTdn`bqK z7D>;mRxn_Q(TA-9zZNu}3hy$W!o81uC4N9_51M{ZNxF~}B||eexA)8k`+LwKtk0S! zPhoyzAYrivWB9{p^6~$kPbNRK$o#r&IPp^7)39bH)EEp{)@?Y!}8x7k7^4*XVjXsu$E?j=0GM z3P%W6eaMCyGhaL3M|`7AV?y4^;$q)NijECLz!RL+%(Vt#^zl*mYaXP(fAgF=%Z2`7qas7Q#4a1HqOB?aI+i=B$l)qH5^}AS|5pNA zAG&!~-T36)K307*U(s=qndnOczLBBV7t$pZyZquJdp%IO_lb|YR@;OJFs*Q=j)hzF zsh=|wu6Ik}%watySFCA!lf=!QC&dF)V6CxMERjx7!vB0|HLAI`Yna$T6${{}DahX~+mqcK0lEB0pAh zCkNWABzMeIrWI-kcd`P``Sfvv7pt%Um7C&<%pQT&8%=bVS^gdvVwZ$kFsI8huMxGW zy&g-jF6{I>?(4_s<8^jfr3q40I%V|gjd(e@;uJV4^oEc8{D)W#nMaeuH#uWn&ZHhm zK|RTz+gt0op^OQxNzzX9MLeAGk{1LEj&^VLLB|>?=cLg|kA$R*d=?U-H{>csdbGo zZ`TlTYh7qHrQR1W?{nCB`zny6dr~4U({lP9TqYSg2JT5fiI=!NHZlAjfd#8)x*aUh zQ@shAPFs(!Rqt)RDUgGd|0%I>@XKBf2f>6vcq%Hfl!ghQD$OUO7ejHdcv073FY8os zQ~+xmwkTH46bII}o2#hvh~GcjaV@)Unx_Ry@9_2|O^=yW=66n{*IwY?e4F3&Mn8LYY$1SuM&Z8z&7}Q2 z^Qi#PN@k|JtG})LwnBE$R9L-3#*;0Di?Ije&6B*6{0={}K6)7hi3bvz_{DysiwHF3 zslOHdUj+azum*wHH8#?)Lqx=Hn%?6d8DhAbB|IQaPfxQe1Bt2l#3leMcY+G4w7RY% zy-zE1uJ7Z0u63~RFpnF>-W+zUT{Otrog({mo-sf|7XT3rjoMu^wTt`}_ty4~wRAUT zm%>jnT0y}_u}6V&PAs0xr>cMbp{HF4y)!K7yjm&LhkyEUs`a_t4kgEZw48BN^?SX# z-yZ&aDa#w>fy68EF^Dke(^pEMqPiGlg9ex}jG6r4@T~IFw17+dvwr7!1+t^Q-%gFD zOYeTKkL&ja@EpZ=&ovum%E4KArac3JdM%^^BZ%+%7AW=4%K*xus4pQjUSFtC_Ywp3 zrvD%+ptLu;-ii5K6NA?zn-|6^G9J_0Tkr%LUhN8_KrcnR!#hJQxswlZjIJ`@@$WzjoSgDMq(lI%?sSaR*Um1i{-yqH#UixeJ z7fnf6GR?yTXES?ZT_10s18o1hQ4_DW7g+mJ%L&;X=vCVQZ2~)@&Cc2y)jfwdPbej# z*C>M-`%>4~B0pyLWb~D^lpeIXUze#w7@d=PSez*gG`GXQy7E`6=DW9rQEgj-v5?LV z%4^$A3OlgOnCB)Jyvf9>qfqHuC19{DKzW7}h0EL#33ozAA6Z(!$$_z>(f0;o^^uqY?eY`*_LK^)9glaBv^rFosB_F@ zFIRT%HLo`7BtUK(U5Fa?i(PW7REd5BYeW|E(5TFrDV)gLRk4PK=$Yj>+0 zKE^22Eh-FAjZ{~cz1BSe2e&Wis zU&0cJjGt9={8{kD0b*W7mCe(5M~{=bv0HFet)8MzIJhoiw=oy4SmTU56ns&Hc|Ieb zwOo8{ELi(G$v2bUJ*vrBkjpla_Jpf%lcUss)-!GlRHw^iO#(AaS%q1%*+aPHR-k?- zp0X5s{=Pz(qC^M#mPAy*py8TVjD75WH=LezWscnaCS^8^*rlwAah> z?nP~-4^{USEG~(FP?(cBwX&Q2NYF_$%6SfYWzJ)me*|ijAt<9AJy+W3)WfFGhBFo7 z>2q2j9~-dVi`@F9sGMPP+9l7?Qi?Yj#jv@UU`@Hxl*%Ip zNp{8M`|x$*>E${OEKARonAcss0GmAGkufXb3c7BmVOPbd!9K?w}mC6^SN9TVA zVGe%i9=;CJoeb7uI}6pJE%`Td{x5zd=$NZ9JG^W65mZpU6aB;MYf^835mr2VJX+`s zLaKZp8tP)P&%YHnjF%i&Uw^%Uygb41ze4XZJ^v~tO`HKtB5(kG2Ki6h-Yk!iMI2

ES+{_gW-;^yYe_eZE+*!Ps?jE0=*J+th(>S$97j-+#M zDn<=H_J2g>U78%5u>sy|TGGzq`uYEe90E)GR=pQc>@_eH{JJ)QrrpL^w`JJHn)CN2 zX!6<lqS)B0`~JF}^DUt?eiNbEIq5*(Sj z%r+zE47X&MEp))Fpi7L8d2)SZdw75Wb+&y zl*f7L6?hJ8h61lAc|^B1+oseNH8Od%tBi+3@_~^lyQuZ!wc~7P(%_P8@Yiym)@rY` zWDDK&pLcuWEBv>`{cj)3_EZB+xvjYF7%X|M*kGgj+cl`+mv)M3Mnm-maN=LSMtj;u zhDi3?(knSalkFv^f8@;~Tk9rZ z$gEWjFe8y$4e2;}iK_^IJ^On7-$y1^1q7uu~)j@O1dJ)|F z*aYdwc!i)4HI&%gvfz79oi??j*_X&b^suDr=~DlQd^j|~0lR^q{OzCnS4eD`EYY2v zvzlM@d$T&cpl|usVT1=C)3{EvEkpUE86H}1p{i}R$Vj#)>wx(#o8JVCmtr79DemUI z{RPGC?wdUgqQb@?-pw1q5e@Oa9-PPd84g=<4!6ldOMPQ~PkC`G7#)635%@ z^vyxinOF91#=qanyIZ{vc+!l0pAalj2cPso^npd>jrI)Z`15DP0wvb`9XA{bjX&Eo z#Z<*fzwS&lV(S8tz9-!^RCILTK4elUamwK}t$?|RrOf3g?vyX8w6#)>E%31!T5>+3 zzgtS9YG@dzG9LOH`mQzoS;p12b_#ud+*6~aIIAtI8&rtyCeDZlMM50{Dp z)27yzomHgyVOxd1m$iMqs0Nt1*`caq#q$PuqG4pV@yMeQrhAefe2Dz+yfbpRD#Ll) zR8_XKUuzwC#jizE&^a3$VPiEx;dNhp`JP9Nlrl&JjIhjlgFiKOlY0g!%$y35UNn!J zPIy=Vdn`#BXDeXn-v7qtB$EbZ%9QTckPOwNdGU{g7U1RVU4)@Ybrx(rbO>11+^fD+ zcV6vg^>v>hhiu#vp5ewkQ6e;IJ!@_&7TZO^(TQHbNn8n(&k3=h5k`p3%KFFbcTKVs zhZOzpA;(9)D!nfZS#3JC@AYYw#S-^rY}FGqIZ$eUU zOC}FxEnGa4BN&QNeq6KR;n(7&!4AD&!DZz*+_dOx^%Tcvwn|&VFE`k~rfz2@Q6iHBjlQL!WEu7MxJ1G1v|pUh>MyqUAJMax zdeoSaYX6@3L0gGqJJ45R{!t*~dq>rJX$4(8W5nqE{%Ph;&|BR;5k6kP!=6byh983d zS2Iu0Daj3gxX~3(JdFwC8tXW+j2(Tgw{J@f8u!M@>NN94`I`ojQ%z8szaVD~UA~+R zPuOtT-1pVObe}PD&+s*}*@PfFd#PPxntI+sk^HMP0+eZ@@?#SIjexJo`WE~cuo_AC zkI0S{cDqRp-{X#%zD)oE`NIqFhb zXK}YMaMIRFf5-Lyv3dDPtXB7<#0I2qIzX;B#>hN}Z2^tlMMoelW4)Q3DgP0Pif8f@ zBEPl?nKw)GFs-LoEjb=XyjRRDb0JNaFqF?OZ_L%Be?(+eIKGU7Gwq7iyfD?yev6I* z!yL!Yl0fyP;Bn2rS3OtEQ-9uEWpOrZy3C-Vuoi))w783PoE*wj-gvC#WjJ6@ z{;(eU^3HJ~^%*|YPpn->r?u}9V&7l3a&!Dg2{=SL7ukLbaPJ83Kcd}PpTCq&t<&8? z*R?RCX9{ItN>$%&^lgm-^kghA<;o|C)rNqKCCHsD9lN*Y(>8Ilp99)wbIUyJju2UL z83kjQ(ns6+VEQ+RvU z^^YbNDcH_z@`XjK!4n9K%jjT>b*#_4+4frN!$UNgWLrwfLBK|PAJd3}*7`5B8Sen$A4)UJ_8mm*sEzAaeqcJ$x zZ*iJ#ZlW;#siz&1lO%DN+z?fRO_iGti26h{g7!Jc&5EwlRmxSQb^e}`IsylAW%oGT zF||%)?}_bv?1L}xIX{QR-~Y=9>7k+rIyQ$@+pnVQ!c=Cs;qm)(c*E@0sn#6Br){(0$Y8*oAFjV)VkNGjURd0x|q4XV#aX;$xA(lz_nBi+S@ z%H*hX%YWzlGOLs8_Oq*H9T0EDvj*ImRbWI6`%=thSNgcIyxswnJEl$!7Y+tgt8pf% z@t`st5=7aLG&qXI5l+yCu(mZ>!f;SgsNu<%(%d+cr#@{V^h&`Qji6vl+n=c2H(oUf z-v^Bc2?e~H4lu4%MNkrU!yj%%L+%+(>`b716TUHqikvi%H;hm37fUS9@g=IvEQZ}b#={f+d3n70;ipQ&#(AYYJ9-bjgxeJ zG_opc1o<)WFR{zwq0R`)MxrT0js}yv@U4*FzMaBI#^_HP$J9?@FVm1Oys|rlHZQm8 zoMB*FUk%3!>WHNl5u&s5GJ3NeD-mDeO5-zyWVdO{u)&$dp2?AKjzQyxfJL41?Pqu^yzHAe9pWc9z$o=Au-rrmLmia@4Vdf~beS^?{w=eSa#?ZNKM)g=N^IG4d zilu=4Y;8y7QdMU-5Q_4+e|vOA7@Tk1O$SXEhJabEeq5*AiYaSa4(633#kq!D{tOO}jE)o?3Z__$gQH7G+K%KNA)FRL5%{0=DUTLYurn>H& zmT>;5YcUQM*)dTgMdBN7R>t84=3o(qu^UC*IHQ;VtmNP;7C%4#8^?^C^~wtd&oRGN^JgwJa$VM#p;El zQ7FI-gN&@V)EjW=%d#eW_nm*3x|^jD zL4~Dq>H|hEqV@A9Jq47zuj+FOnAGfW?rLuA$$Bc6q*4!;o{V|~(<+EKu|4)wX>PBd zbhbG*yB{d~E^1DLj;mW^^T<3^nkVbdU%ui0#Lh{Xb8Nf5;ae+IL3(@^Bg3xGjW{VH zyl#`DLs9*9bwWrd?Ly1CQ88#Eujz`Q-D{mI`z^)p@FryOb8M)W$hn*}tCt!V#QB8$O(-Dr7t;)3+7S$1Vg>)W;^lAvkxk;e4~KF9y( zV>G|cj6V9Vin~gwnV+lqJ7-qkNh?g7raq<8)G1Qpai7K_=OqvQim?K(Ty@iI=tYy2 ze)`0%#NTGY$lpM-3u{1}HmkL#ZK+w`goV|z>Lgcv4?(&r>#VNq}&Fj@-?}3<&jMlnGPM~9VeezZDNOGTe@8|HGv3(ryG0Y?Wa0&WCPV(UJ3V;JzvUe58RbL!}3Er8U>y+f8POC(6~++ialA2 zGM*wiIP8I5@GAbXBJ#;N(V7kLwZ4yuiAfZQOBbJ5A~m}6Q|d$cqix0R>DhloRKbMh zw(tLln10Q$b+^k;A8=NEUs@{Yh2z}IL4)9$P@#AnF`EnD(R&LgF=fWO=*I0mZTLLT zw98{4D3T`Gd|#+1otT47b2pq~O6T0ZB*q82JeL!Gs&dq^uGS5SWo57ccFSC1#VZxS z%h{!0x|xH^R$^F3p5m?Vjh9&do#;ab!w(pIfhY}{A#<58sSj@+Og$8?q}cK|?za@fnqZ|#e3Uam_h-u;IY z*N<73)4h(IZCh5(A|bE(r}HWOr{ZM}Ml$YHqL^E)*nvsp=w_At{AXs*zrwnU7c#@9 zfTjAili5{{%M+_;#e0Osf;=c~`#qmE3#a~`dDdqk7tdO%<_A0K+U~sG&>E5;VtD^K zx9v%<)sYz_#(Vj>KSt7M+CvJJVo>$%eJCvVVdwt6>+O=gaq)2=-^exW9^nY{AmK0bt&8q>sO-5$br&5BA%y%3 zl#0wr>L6{6d2E?X4YBRZXX9FA+5H+Wp2M$J7u#s!>jbaw&257OmqpJ-4LOhARP|wC z2Q4Z-Bm}o{rHbv59HdZno-q~2a#W9hhr5azbf~7$-Qpcsq8+SMCD6juK!gR{%jb~Pk@*@mBb=9+C1!S~1qw6eVQJ1b=f*%E_=3kj;ay=C#~0I||H5hH^Srjt6= z{}K5BI^Lto=DRnWLT@e?S!p@M2VwX$?GAx>y~ZQN&e0{Dj@IjFo2e+7M)XwNZ0|k% zEhYR4#7FtCIfnSOGF;&$;X~=j@zF(Z*Moxp^T|a_O7sWJ`z#9aY??|@|4eG_x+bhEQzunbCcR?i!XlBD@|~RQ$8}ZyorYA zZ13hP(B4kOdx)Bi?>^5q?GQG!>IOSiii+nTy-ZnRB4{Kwjsbqx5G)+SvaT4B`JiA8 zY_~pWCu;R!bi#w&xD+<~fcH_Lh!y6Oa z#(pe4upwHZj?0Uyzfj~vgTH?3NM}8HaS!t@rz6fy@zKl?peLR>Kz!bMu8swyKY2!` zBcTnEr5Ii`4ce=;q$;WK)vpZX_L?jS**q`VyX6ZaIpDc|#uy^p+xSPCgnoQ3OYTl_ z#JR6#>w0Q$km)r6B_2|Gt$7qyz=lJeND4CR!~ZYf`pJT3AV3$eUb^(2Be* z8vV{sIter0(mNR4U0R*ik>mICPbB#<9O@e9JQ-(IzS=Zj=x?kBI?+t$N8eh?+O<{g zXUJQOKQc|WJ4jeCzt)_BrFvf(16oxTAN^^+z}UoDhs+r%qJvvZME{ccbMG((NsTJ= zgu>?DRiOJCijr5Y%S21!Dkdj+`bdkOTZi;UGIZ5`i|>l+1k-W>l9N^ab%8ek(rY-k z)Gki(g=ATxcO;$SOBP|w#a3S8>l)V`Ga2J=_23{gK5^%E0#MDCFG73SqUz&ZBXKJ^t@p$A5{CL6d841YG>!uE$P}zn`1k+ zWs;#1pL%*XRtv~T#~6{zAfQ0e4SWF1Ix4$`C z!))JCL7^yX&bS~KDrZ9z450_u-PmwVU>i|8zHZFZjUP&gEk_|0lI7r~N4%9oWs`x9 zaKFz{Tx8p=;aN3nd5IFy4v67C-#i`8BwbMKZ)<$s(?2c#E*2dEqB*C3Z3tnqKNpk5 zv>2DUhh8-VOU;~k2M|Tllp@aU_$cIVeDi(dmJIoCZWRY3vIgv{sRx5Cgmx%<0i#;z z);72%Nvl&Ag*`B@m|iey4|lFztjs8_dA(rncXnGh>D*ipBl@OVOY9q$dbct#tlJAp zHMr4$slbc2`pwaJ(f-ESg6MqBXeeU7o!1%=MrxJpUV`0`u%W|2Qc7i(1i-RqmVh&6 zZQ^KGajVt(Z}|y`f4B0ozGJcv_66=?g_bZ;`R@}dz8r7W@tVm43dxC8{h~D^Wy}cy zxhnJ(WyaOvx+>i&o7-M!(Gs~}&3F&)~%G>{>L9?&V zyvB7d8m%)EFuAn!$~5tH=Uu8)MEN4XCI`9&BfP4m_u}7uDnVvVCV0zE-P?@&4-@kTK83j&xJ~w}TI?NhmUKY3^YuZH9HIn1c+mHX1cdtlQ-0$d; zF@RfpGEZSFIJ!tY3rC@S$QWQaAH;bPg$K@`fo?!1vxRsS)ab^jt3Y>E_o2Y~mrf~W z16NB2FEj2`c7!EUw1>fL!WJ60G_biWbh$>(rN6M*5mtpD=GRjr&-7+?L1yQiIX=sj z=rWmF{dE6sazFI&!Y)gKLffH!htOQ{?4N@uvRnTVImV&-hrT~Kkv`b|w*N}j5IF2m z2^M6Perokf|Y*@6^ZnK;B%V@s|vzPH}rrP_ir9ezgH&^6q0U^#PfOLVI&yZ-}qL(TIMa=%X zbOpSdjqNNxwBzv^M(fX2P-cNrnPaWVpfydBIS|>)snz(J9xAB!mzABAX~x}L9F;$x zO5y3sHR%|KS=o5dNw08mx5NZJ3U-wV=Up7szqUNf6$7$Jz}A4niv^9%vk-Bvj4h2q zk-?_T|y4UeG(@axL7%m9jU(TAtE?J*=lo&nJ@S#m>YwSyBU#S)@6PpfjR+` zFkelGmP}K`W=|po*1}dQkG@)PN3PLUhuM;GM&$eIUHJz?%~turoc`9^DRI)w510I| zjJ5LqxPx3dIYxfOB)d;il895eOIvR17VSL-87Bs9!e92pSh19@53>B~iGqz83*?Yo ziue7!$M3YiE~{eL z6y*prHM~xjmAL-kXQ+}>_D#Cq@v8a$?G{QW&oLRa zmlpR1wA4@56*i|1_r3D+82#kabp^oieK)l84lIj5{9t4|i`s-mgxEPC%SsMjbm$l8 zw-+L=l@fPfwx*qMqft$N@0%SF)(f|0>$aBrG&mGxRnv6>soFkEQj5Kq;vtKZ-|b5h z7y@#rxmDFl&`1W11^rZUYyae=KXFPHX|6tECSiWK@u_4vbmrHktqDRoPIk`j8_WVN zceE@c_G5j+12H7uR;Ifdj*$))PW~dz){O!B>&NNViZW?6>Q~P@yq7%a+l^Z@&piNE0#r^SNYi!W{e z5fM(Z{3aYR@rpmb(gVVg+>0mMm4u^krY1on)3xoNkm(ILVnhW}lp9lH|9MREQ;Eq^ zSGW_OY{?&zxkAxF@vbu7uEkXrx9@&8PF#E~gcT4=U}3z=W=}SJMF!Ko#R7?0XUsJxHSkT6YH`U0GO@B+p8}zJFVQxcHmD|_%i=I|$>I9=-zCpl z<4lcR9n#~_IPF&!O0L11qmL_7G{fE(EjPCnhUl7^BXEcpe#z?J>}O_vHy#TK^w-z6h>{+0mBO>(?{k>;nygn*{x zREYW2B!(zMHrb&a0)@5!QVyhanGW5jr^;51V_Vu@>N%`}m(7C2{9ntAhyA~Xeh*@| z(CUVtGa9Z)e~uYt8Tv=$x~|9}w0C7Zc}rj+hU6^Y;SAzFg0&6}9uMX<#b$@w#{m-5 zKGQXcA8QSN!&jB|=kQ84_7Ar}O3o`vrAoT3a~f!ABozVeGy#5uPua&tUIEMBW!p6f ztXTGawB)$&FLTQ8v*8+JtTV68MB~EXZ(Znn+jI>&4wKhAd1p#Hcf7*YRXW0vG;Bwd)Za^m3awj0N^WO@?oD}k{vS)0322Pd^2(rx5o__6-Aq8eBnPDRrz`!A zA*{D3V?>Vi(K3`Wo9u<6BcWKUL!}O)kK=^rp;K)dpI)j;s%4YQo3@DVKJo3m(zRkV z4O+;NXh;U&a-gm^8~*f1=%{0bpGI12+L?iGaupn)W(l86)^pbAlcV_^kcLcB{DEV< zNdwaZV~fdYn^_IsjHc;itA3SFs|JS9lB-rvm=^G^P)S>)@o8A*aDsKhJbqU;>bKbF z7(z=!@^Ovm{*Txpc@nWRVpTqW&%mks>%WrPoGJ?JszO7pLw~r8u=&i1)vC$&L{&Eo z0*0aQK9!Z--tcK0G@w?~8>8^rl;HJHERWyR5fSrWZbt z-fVkWyE_@(xp>QLkRUL0o>V5d2}U;U#P}NsEBqr`LmIoVxWo^i$Ky>(jcH*{c+;Sx zF>kxNLUxU_od z^K7_F!Oavp^U+Zv`GZ%&5+z8}idNfIOdIb0YJqg;i?%uVy(oL{ra(r8$-~=qs)O6) zxat~hrk>J5BRR_1eu2(9m)~#?u2+Qlf(~S7Sy7!Tyx8 zrgeI8C{f(j>Y68#H%pKB6WStNx5lc@>oWZK_9qfl(C+v=mcW5&l(_ack`B|7mbgwI z+#vWta(3`K@TcXmW%@;0$w-L@w+y5_(D~C}53MH;VKxuxM!c9(&$Cr@u&k->kSAJV zLad#nf5!d(8XLz=nkjONr@u!h{XPI}IFX9`o3LF7{!05Ox^pu=&V&6$DPwxQpSGB8 zvavmvRe}4?f>e%$ox+5uhwaHaKhy&OS>NKe@g3W9)o!EQuJr(jCIxi?`PZ&)=9nPo zuLzh0(pSYMU9N+Fl_6+{XRb!4;$o-*6Yg4(q#jwBC&Z*eKGymCWeNs5l?zPMJbwnS z@zE&@r~uL%48a-3=jz^`SS;|ny)I!X+sxO8e|{FwNQjd=)yF($)09%-1!Xa z+&(D@Zs4eG^!KoO1w7%6UmeE=Lp9&-D$B1_Wxw;nY^qHh3{}>f&vJ$VUsNz;2Xtrg z5CY?S@*XMh<|nV^hP^mz{S7`z9gquO;B# z2+u9ab0z{jJK}WkSq4Jcb+gsk+a);t>n(F|P95sKM2KNzz6o7v`6S_>8|d{6x2eDy zFLmBy!H0Hz0P!S$N1R?B62Dl&GxJWbSqz!C&f~S3g~OG3_wvMh?Ev9yUf&F>qg%X> z&i9PLeu0>!AVUg7s8R#8h_)LHZq*g|^49~Mrdmo@+1c|gl|J|P&5c?SY3nAsvwvr;8H7uew5V=P zIH1?P*{8a#|J0QtYA&k1CH5VBAG&4r;pLS=)tvhvj)41S0zX7^ST6*dMY;%R%VxIt zgCe#FELv4c@(xc8%vm|=!>$=Dxp{GreMyZszZ%jtP|;m9%~0&w@np0FJ-`{8Y_M_} z&dE65hNaldy#wN*zx-p~w?4h6E-v#@F51|4d6y5SB$##Ch&tYO5#2YK_PkLTB|kT= z>i2&B{Y3!gxCU@^D-TMKx>{T1Ok7egH+~=?>w3zXT>Tqq#noJwmSDrCu-atIysl99 zph)(qj-#xRM!=RW^3lVpQt9U%R#P=DVvC$Ps#fX0FNfJzUdq{DUl}ZO&D>6w3{CM5 zwN%AE>t`jvf!Ed?Ibtw|1{?MrZD5vIqdsWpwV?u(7dSA?`y^g?x^mq(Kx3UOGg?Cc zya8Wg+FHPeA-d`keGh-WMvK};eILpIFNTTas$)4mdsWa$7YOw3AC^oxNWOa(w|sP< z!NDnUt@>?#5707u+D7+2HitpTHDWToHYw2uw^d~`QUzxgN#TSf=hD0T3r zenlJ3gc=9aTIyC7wGjO&AhrfJY88O-?l)ht-S|NhrlSf!{WSHbE-%xxej zt?ESVVk1d#^6jey^UqE%#UG>&#d?D&j<=`2;M80xLM!>zMa@s}4Fg2MW}~gM-xFHB zuuB^3SzwycU`IL0cZH@L7K@iM8S@SEW^3HXw<9ga#B9FtCFj576D-7mu@Z)l#U^Vd zd@(@k%XmT_SmU$O@?Hm<0O3?6wHR6B0aUT|%FrLI>MwoW>!m)Qtk|V;XFo1uTsLe@ z`!^?3jmC-0BbCPb|6bbJoAhlm)wpJq*cbotq<8#%v(f*hB$;DoHr8oZ+G8_(3@&_t zgwwOfJA#Q9pO}KYu4=_Tld{uqD4JhQSvuBsKMc&VQ77C=%;oR0n^_MhbJAr*qeSzSd)G`*A7l{v9*i!S#^*5M>JQiR-A~OcY?pJc%@zf_5@iN zp`G|ImBZ}JuV-QeAS~}<331oL)i9FljNLq)?Zn!ub&-L+#&X_%&bY0VHN|C&?NYYV zS&4l#K@e_D2zrYjx$!NnX-#o1V~&O^ax1pnx?8YL3;|<(4Y_aDz~&zqL(ARBBVFP0 z#t5iKXmSlEMOv!3awU;Zg_mKziLW`{!IZSVIm9Y8ZD8OMYq*`>I-VI67`NM;nh=p^ zY$fpX03F*As(@QY>shqh^+Pg)i;KL@h^5S{w98ts`3=n(h+X;e;YJ+Hp>DvG!^F_m zCr(}dX2+!eX`u#UaodaFD#l@{$;+Eu5+CMftn12>RJy*4JPa zhiY0QDjVye9P^m=usn9vBx=6e^?Da&2#Dc?8{t0TGEg}9V4MF(U-cD_=Bhj&P?@`5 zJ7aajNL4S-OPhLeaO(!M$Z%y?lKwO4KLlzgVX3V5ByfM0pbWf)KT9^_L7>g-5kUj4 zH>*ZGw%$yEyqWzS-lOo0OtkL9*svwEN7igp#Yc~Li1{^IbL==6fqJi=u4?o}(A+{K zaIPzuYAU|rK)YgW6r=k(VCFJ4hH$%=yH15cL+ViJS20J-$rgAFxMTKeFUXvHvJ6bb zF1*hhT5YlJ?oyKB(DN?GOfs;)9#Gft#f_mO@ zMd+ZEi7ajESODp@ks}X!DckaO#?g4f($~@^n(1wU;rw9=!M7T2ss-uU1@qT^&#DZr zY}2iqT@ML_oqIp#U7g`*YeB+Y|MX8KJYEVrSY1%tyxG-QN@IvRkZmf6_#a1S;m~yZ zc5xKNpdL{=rlgY6%~XUD0!oZ7X~sahnTmk4fV6;gjvk{?8b(ROVDyj}-7(+q@BI%J zcU2JM02nDoV)gY->|4Tf;m=0+oCTV=$*k4Il4wGPz48niE+XOp9EXJhh{s zICHcaWgGuT7WktO;8eBv?HLrhJYTo-!hDP9YKV60^M<2x>f==!1j7^ACj5pDxRLwS#zKMdY-g$N~c2ff>zfT%Y?8~nW}=9bKD6VkowKh!gLorWy0c?{8A-vU)Peb{@TeE9Ug{#;ju zeq3wobWtXGpqiz4r|M(u1A^cUhdVhwXvc652eKVl9pB06?xJr zg1`Pbwc0NZ05iXm@cqQ4dp#>@CM`x*5R_dqTr`);lOlH3z7w0#Mr@w6!ITE$X-%|zB)!yu2fNHPVPHLHBwH`fmooy zo3ikUTqwNbyFk|S$>(vOgliqk3K?nn`NUk&NoIPRx?VqXd^x>k)qEX$yoPuD^|0ip zAz?{|K942$@HNNsYSJsHS!3S2-`FNtLvt#ttKDR&9mDGBUtQ;jD}kC5t{ou1eA3+1)Mh%eyzeK{|*Z_1|2er~n$bw^ZEX+Y}| zs0K>epELa4P$#XMus?C;;1QSq9yiQ)-Z1q1)e*vxB<)f3gkJ94wuoWS-~4f>6%^_` zVuy#rC11w>Zcy)_i*xUs9k_#_(K6PxuWNh0a-JBt|KibNGeQUhklRfWOqrvbF11ej zGt3`m0w@3;8d3nN9Q|S88S%ui`BX=(KZ?`jgXq|!8^{v#DmD`Z6X8xNYv$k}@np)D ziD_S}YrKLjLpKCz2w0{0Y_FFq6jA=;1(&_`HgIg#rwEd)4nKeeZRL_C8+=fadmr1F z=vi7n0$Ecl?eNQlWsL1a)rj;CqBNg7UTl_ixLo9dIOd>Vhje##OvX6VOx4sqKik?! zeGhA|Xo1b-`8h?W2V$x<=%UVD+Fzo3xw=-BtV_56Oej1NDM&1*T^hWEMl>dnpG;hR> z18n!WXgbE_`yBI4YtZ?q`yod)H@98Vq=tm?dRwY156&a;YAqC2d0;Ka3K`_~S?H=V z4mnZMl3&XKzq_3FPH3kmnN7mV%Pr7RY&=bRRwAy|Oo4b?9YHZ-P(4)IbjILa^00l_ z0*QBaS!O%(*RjWS=jRW&NzBj>ybm%Bd(4#nuI^G!om0dYdG#)C4id+h5~uR6?84& z*etFK zR_JtNlS)5hK$p@;A*v1JvVa<&ed{3^&)%ck$ZS)*t_HG4dQh6(LFFJ{-^qi>TM}ga zi9C?dMZZaDQ1w~5!U$(;gPkI8ihDu#B+3BOkZa>6gL-|I={AIob+Obj#ir&jJQTgN zYU6c@Pzz^|pE%V(!zi04Mdt3d4m9wiw0#-X;icZ9+Z5S}x_(gWI92|^)eJ1X`#+LO zdB+#=WVVR(Nfh0z`uDeG5%ufhSvm8a@%Ib@FsGcvees6%9%p^OTDQW-Csr>Wu|aD; zl>Diaml@kBH`>&DFY&Sdka?Hd(#V^RuefLZRTXEyq)Kq<_0j&I zr7jYq$_aA~n}bj( zTU?Bg)tFLhbE&K!Oo8}h)+0(w9ZsQdLoI3)=R$hKQwvR)1+#*AZy z2D19hn+`4B-g0w};eua&|3`v~Zk@2&URFs=t|y*2{Ml67uTei_*_#=<{nE3vdvb^) z!QGFl_J%-dVED|pMwMLIu!xFf39@){u z+9?cXE(Si0x@dgJ(4+x&P2fuGMr~tPCmq3+(fj_dMFnBa zx~Vh`!vf#bcugu}S*?7lzM`LX1`|;6$f$~arlcv2ruvM4roe)i&1j$<|ILwY(OW|G zgwbkfCZ|ER&U?_-CuUaNAumIcQwRNYB9*GfHNP^dreytY$JA&UjH&0OrPj4t#ro?( zpu>Ns>{$kIDQwD=<7)7sRa$=0)&ajdI?*L1dIq2OxqYKEqH<^iGrrv)tmp%G=Fl?^ zXZ;4)O7$-*0~MNyIb}-zfu`sOH5h%9Ao2Hn>XBGmoBCKsOLrdLJ7!tY(5!a9{2Jx9 z8FX6FuSQ3ZNnB-9k1tn30>@Jf*Xe|~WLOpnJYP3PUy|ohl(=cc6 z_z=SVz@VpZp$D931g=5EOcEIoOU&bPeFeq_DzOa=90#;{rP^ztsv_4Iy>f;U!u;@L zO1v`iFmPvLp>VrzrT7<52mNHL@pD1U$NqcfcuIT8ZU2=(HKk||-=7W~H2fh%Z4sZI z3Zr4H4z<uDXulf)!IIBqf{qTvwJ`P#T)%e%VcOYbV*X_f-t=%rR z*@SWVXvOfl#!FS+TlRzl;$iNko?RMDb=6RA2~ENmIKlW=zI5`4dOEC|$T?=+K=*zk zdx*nrwYOsf8n*p#pXPXZ#>&Y^1(O(;@{~i)9arO1a&Kk;6tTtU0%s3YkDz@ zGA3kMNke9-T@=lxEH7^asJ7G@GHcdo_uy5n&l%mLV)NhCUw>BMR9w~_n`|HQjMpx9 z4JYC^oo2ixZWOFv^Bnf=KAMSa)>Fm6blf$c>qSMAaX@RWN1gV zrd2Q5URz#12o>&mN$Yc}H0LY^O*K3@|29zQQoKHkd|zw~`EY?$9NI2x9qJQrX?M24 zWbZsfyZ@F;Pt?T zRkAxwG~icOV_*;Z>>UgIHlGL^UH)*UT$`xN-~r)0IY@*Tnkh=ZGqa+%_|$0~*CK0h z9og)VheJ=pp*zn++9c;0)hW6#b#G$?Z9YH-lNQ-zCT47F$OBF zwj0n_vf4dGysNh?+SsxCv&8GO%j}OFSLu&VQ%+tWe$(U?E2* z2`{2k-6-#la|D$St%wgy8!M9keWA(Zv(;Z-V4|wvH%r1RoJVHWN!gmA`HQu>5aX5` z&aBo^z7U4)fpuIBN`PD4B~5-eCXYfd9bNCs>|y-IE=rJ61~;VxIlPxj+r2IMicd-Z z#j`H|2Yd~NDHOEep@=jX#&`93pB)Vt$8$NotHd%zii}-)TBGrb5or~FsP(braRB2k zgG!YU{$1N5ZI;CVg zOjJ2BOw@gv`ox>|6RpewNx4>T-}?By2CL^GZ#x6duT(2YFW=h%@dLKM&i%WxD8+@S z>`x@o{{j8eXwqLj-rs&%TVZc8O^zy1&zoI|!C$H1m_zIJRPXpir~r`07Zv$J9(=}; zmw^iE2F~2iIB!a|{#C3ESRmL8ZzzW?rZ^q#3R>%`T%AAGJCYUz-w1}Bbaq{T&n!CE z2w?Rsbez&~WNgLME#2E;4F_eHmoD%ADqXnmW5&GY)00qu{VLRt9xCK5aovbBe=&PT z#VUyRwN*+wS>9BI!c!eo?MMK*^f7gN9g*wI*K?jt78+xibBLU^=KE-UxA1rgv8ao1 z7~F(w34GQN#b?o9ain2?;n)lS$!9dD>U+{_Y%4U?;NfnSmcqp372laWSt zAvi(f6x`hr@DZ`_1U40*zt_HEvbQO!3Yx88w*Va7m=}yM=81jX2&S3Jy~M7hWKTPn zRji4DGLy1-Bdz9#*14>q9N+KTGKO%`b*=kXcgBt|ND;WUY-uFMP+@}8VZe_3pqTCF zDp7pkFX9eL-GxE}%NR~yKD&F``Z%Wh zcA8QgVf1NBnj&6kG257U+nB!X=97sdM$VeFB@|3H@@Lgov~MX(I_Ww#XyJ@DP{3xd zeUn;9H)cLBUX-&yCG?SND5wCzG*orw^JD}mC~!~RxHvyGAJI(nwwRsh+H*dEfF)d~ zzd3hky}!v68WL0iW5-d_;g;vBog@yc84VGOPeZ|%Fhf6~c4@&Y9q+u}OJm)!>`a_R z18@10;A9nZLg?cjb^)iAafBk4QT(Fk%$*32GN){UBE~ z6AESr%a~)KBY=UjVgDp`FJ|v7tJ4jhG|9>)n|rgegD;5$G=jb&tGjx)2YVaAY+H+p z*KLlU!XzmT#}|kUfyuP_HZhyfXnBG z+AnEzgO+VLGqPg55x<@iXKl*rGGf1bRD7C^0_Z)qjR!zN0;$oQDdT^O_~$jZunPf> zkR_A+w)R~b`yld`@v=!nkVcxM<(g;IFZ6?~GjdDtqTZ=sP5~406^BsN+i5O3E2fesfk1yTcUkf) zPbjxKxktoK@ALNdt|b9xL=%3|A76b1zEt4OUp7@xd;}D|u)EHJw4psz%lZ`Ne=B-^ z(w^Wl_TndJrJV)fR-rTSj10tj5soC5NRka%f{Is!HY%h7A?M+1JpmB|Tc_5yqb!2l zn6d~BN1zk9c=mqF@OF=Dj?ywEH*QY-R=kL!C}k(F2J_=##CPhU%474HWSz0v$Y+8) z(W!78eo3xvMPC&{l;zN$^Sjd#=^b&v!tYcSTT@c*W#Xapk0cd2TJk}iFDsl_=vQ;0^-A5 z_?y+UXCPMW>5=u@<*R7vsAs}X-vafA%+DwTn>_cHam#pSG5CpZjKiI)1HOZ*t5-!= zysK=~)lH2tn?%|-;0#VB_o`OUm%zs<$?C2(oKU}Wq9IuVmKDzmo;?n&C@@ehFcIkL zjJBa87Kd9i{v&C9H6hhXx0&D@WEwrjhv8~VY4eQuA-Oi$rm}nnE9l5GH8FSCoSK4Q z!mnD{+1@>AGeVbNG5$FU6t~up0m(?S&f3K8Hb5zW@|Sck_tN25)R)(J6AG5|0L`Ec z_9bIMT2Zxr)=xN-u8E7WYke2rSb}Ja{V#d8jDqJ?DYK>tmJ&%-HLa2^FH?J}e`IyH zDT9`JLJ4-EI97?N(>SrN-VQ08^wsa8#l4+)@lr3C>uRqJ$?akH*vVMJ2J%7Hi5%U| zIv(ggSA!!3YW>fd2BYdupSj#}jb5;)T2r@MaNh0CZ3NhCuRY1os6VKCmS|Hn%{eui zBYKAIDv0*tT@HjQgHxY5rTIo@E(7`Djo7{}&*h3KGJ0j}Wi!XpM$FD09qe3-3c;5zKKx^jreA97prng~fPWJZ^ z&4F_rU|oH7bewH1n_^0wC==jNrg;DIRIc{7)Q)d?PshTZdJC)e0s#%}#))#qf>Md7 zyDt#@wk>PBZ7ZAm`G-t|I4kC==9|jAD#!7A#(D0RiL=uB(g(2QOXL5JC5VF^NNTP< z^wq_LO+9`=HFH1C;*w z!W}vVZA#nEj(80VRM3m+H)dRDqAeCxbS*VjJ;|?6J9s7don}>j*=*PgCAO4dH2|ym&*dATfDUI(GJvMe$&pNh9 z8H_1hGDH46OOj_+h4nyfL-o9S-sb^MgD!Igu^M`4nJo;O1PO7!vhfe94GhYi%KUvS zC*5zKRXrT+bh{K{MTMo4bq6tjy>k&!-&S)cWc&3lZFF0z>Br*lMms_c{&?3%tlk?Z(!8@ zeDd69_|m-V0*@+dr8{$hBpTgazQ54=HL+K7=Bi7-azD=~@hDnkAURU7*UG#pV=Lie zTzFc^v&4w8oWWPPv7~eb#0$b}SnulznhS_$yFmYlrHa9Rd(U z!y6a6GJ`wvGK_VnUfx_wa4zqsmzm~3{xYgi9qxnk@N%OFz)}SG>4DCa#StP(vARCC z-!RP1ZxVvDw)DYOoY>ie8K|YIZeWI5z@cs<)n}-CUW-|E6cGR%YWBz_f zEDy(q;YCvAWMg7R<7|3JgCUnMt2=A`3#y<(snQdkZLj{%v+AZRFnXtW-ss_wq%EkZ zD!@YGS5|;GHSmCuiq4B-X5F9<=xDtcHv(E8fzo4#!O=X&-FtfWzMds32sOSjDPq*YH4K!s zJ@*Om&7&asT7J{5QQzNQ)k(J-OkCem)6Xixm}>i2rn~Rk$)#mHj@Y2Jja#*idG-8k z_PJD-%kT(Cy z8Vc67$=Y|tK*l}2M~d^$J5JvQ*VvvnmGB)+aMy=gJ|aI%x^MN%GDaP=^9c$lo}_h= z0u{+Vqbg>vYz$>?cCNFweorM?r4-8(7wwdn;rvu55(e}Oun)T!^BAn4xy4=OL4}XB}P(8l^A6vneSD2)R;U8~6ns?@u(*CGNsmbRI0td&lK?Yo_&@$)Sa)}R{Za3g ze0?!hljPt*t}npd2@Kqlh8BM~`QTThu(jy@dB@2~>x%t?C(+ZjA))ttY>k72Nb5Fs z0^hTK8<;6CIQ!IAsngN@Q>_P5Ll%l|i~%3J(MdmxvY03xe2)_)mi7Jurodhj^jS1s zx60D|9c%ctiKtxoa8z0P-0qu71LQAQ;c12Dn4EGt_0F^_E~27b-{@K7=FzF# zdl03uqvWIzTm*gMNB_0wN^tlPfVJ5%T)FF&*S6RFBeAJZ7(C>xH|Y1mJPh8AcSw5M zQFzW$Qu~6_2^{PADR#63CiC5>AFEvG(QXxd-OUPF3qG3^DHhv~Y&n*p)!sBdp`CW*76U*NGSJ!S~ywbvkEyE zUA3}Lg`N-x#>#gD^sG@BW%@JHBT&Vbq1P~7mi%~-wlMUm$k}=9;I)!Yf-yVeqwWLM z4~pG)_VNNg0UvyvE>e7;@q6t3MBNwJQ?d*hSisv+3pi=?jP+$w`R%tvG;RjYw%?u zBS+lTa;wUFJjX&MDCMV6peE4ssDUg+28#c&?)hG{(5V8|xe&1HfjRiHC|KBpX|St2 zXsX)PJyNcRD-NV4(IteE5)FkMW8Y3fmv>YUlilUI2y~2hP+R^Df9LnXDtFdlYF)xrsqg&+Wy|w8S@ND*Rgfa__=*TxaM^c?#js# zBve1PB`$FuzVLsAk1G?%Uu$nK%d|C9y*Kna1H3=NXQeg%B*A8_H0Z?IUePavmygXp zJBBBeZsF-%Iqs+XwSyCKpq2IVbyT{HAR-v|@g(#*E8O-#f^ZNJzN!swR^1{7@*eoa z3n(yL^~|qzU*2helv8WBrJWr1Jq*Gtk@w7hkAYbVK~=V|mez8<6})x|Oc69b#zqW| z*HlqIu(Q(KHP>%I$7s#hCf`;$e!GbNt0b$vPa*lxR5VwWeNgmf-$Bs!s{7VwKBg}C zQjK96ojt!Iud=2a>3>?wUQoo>ytI>UJXomD5Z-M(3i-eg1XJ1(Lb8ex*}s^)sFa%| z+F~Mqv@S~Z_EZgl@3**@2Bt$(A<1xs^zfT)xTwk@unAEd^LN%{ObI4OKs&$fBW^v= zM?$4{odt6}u^b++~BB$*bPJI)`|Z)ohrGB?=1%G4g>@RnI)zd+gbc?S@)q9 z(55D`Wu=Ytc&W?0b0=`VVOS4k(A#IW2iDTjhz6ihyI{x7~YB>a?Ly@WIPw+GV+@x00wU)#LI>d z-*KTkdHSEa3tqM?BL3VN@s*4-cEY~pnA%>3c~@jj&n7Mj`WAcb;E|fF?!y6OkyooN zR;=hn3bf?(_RrW18D9=;FZ6}*C#%EQ&t(-xhU1=WtB}NEKpFNW#;;g4H2kYr6H7E` z&PT;AC7inzv=K<#*|u4slaw@?|J<8CT;@h3nDD1LPveEl9us&|?<9hU#j}>qo!R64 zi$7G>mS@Qj_}!-f3z`Oy7}GGG)Glrt9ZCw7ZpD?5@ioJGrW^ zc#4RLu#SuTg5o^mZi@pVhCFfRPb|{X++h!^^yt1s&swRZ^g@qXL#}ZTcftoum63ac z=oPPU&tdUNHi10(qGWccRTm!lnWEw3Ch~W&l7G>wk&0vx|M2k&DBs9`%oAoy$(;?W6>siC)IABQS9fFNJP|~BL(Nwct9hQ z3L(fBm4>m+=m&AkeimsBbhSuuivC~}31i!Oy7l2zQM87-o(2Xxyp3d=l*hTdJjGnE z0p{fAFp;TF{FouMG1jR`f|iKC_c#dUtvyLNW>%%|KMbf!OcgPc|!2Oi@@vEq}NO!~m54 zL>IB7cI8-%OA61fOfl)5^GT)hufwjM;N*wO&pG;f2Yw*bgq(MA8f^|}EPek5vlWT! z_0yJPF+En44CK!aoquP%i$E^#PdjPmm&963q)=4=!L{B`A8d&|CQ}YTr+hE0v;C3{*w~OSgnS8FpyLmTFgi*|; ziZ2B=53~jL8a$$%G16f9BfKp|I@V${2!qSfh?Vu1KDqEh-c7=@u2L?|GcE5NY=Wz1 ze~r!c>a0c6Q(VRtOo+#3+dshhCU%e3#P=cTNFQ-zGHJ+>ukd1&RH6m z#$35Xaz{wec$YE?(cQ=j>4n4v4dZDf+(-GxiFYeeW5@S$V{o(wkEJad=KS#A7-beh zG;nJ%(q3I``1Ab^8U#{S12FZ^h$*A3fAGgODtp`b0D`X(p;@0P(tRz2?ZcZ&X4f9I zQt>$%xd)Xl{E#0Nr{S!K;d~NzKdmoN@-6LBJl|6hbRk2R2GU1n@bNxZ8$wwqR!{NS$=yjOHM~2}Ag>2=|Lfr0jNbkHxO!f^t98=mF4>%g^(f`d$%$0D z+gQ<@w!Wla_}ZQ3*HcDL3bq4r30X)PFs-7?eS)5?mR8U+vx`py$f&1#C{ztRZ5=~_ zi3tNwmQz#v5=|nqgsrj$rZm&?)6%8p2=l_{fj+ck73I9?A$qgl(1SZq*^N`5|Bd@3 zQeCJCM2=NoL6-69T}-AS$ul#~`3wH*ob~E(WPjqhw+m^7{L`N`>)1dI)U#ECd|!nD z2Ex6Ju8+VuAQ=HqSB;^CI0#B~agHQ*_i6h4zgA^_XCuBRUk&|VjcO6+S1)b@^gxC76`vuZ_8LY@9I!6`B%;}iO6&JlCx({$HhHNdib zYV=*5riP>UwO!TQJI90Y_JhDi`$Vh658pt-BD#|A0MsJs`DA>4vt(K@?x{iIt6%?F zdJBO@BNw!pTMNX)f~QPkRtDmw5S~qIn<|z@)IWz^<#=GeE*w0A3%3sSwmr!jBbL{i zTgDV7dQA2;8d@7e@RS_vD-15X|41&X-U)Pi==iwdMt2<&JR)vb{cYGF20F^?Xd6?$ zT0D3CeUh*4;h?ZZqDm~NAqZMWYJRQBebcjMH9hJxI%CEx&6!erX(TZ-;<9p~3t1M> zt@|QE34j1QdelTr=NhU9G%Ka@$AkY3Z;0i*7r*Wkv%M#YWy*l z@y`ufNqB{0N7Ldn0J;x>@-efvIXVk3BiRs)CLWa;LI(_(oL; zhXJ0ScUO?(tCGMXmbPimy}Y;i&Cw^pg3If<><6xdLw$3bTQbgZViCyI<1Z(XkAd-> z&UowhF0pym+dihJztRZoPe zGo6TrXR5;cCdjGgo&TA1lSWh?8_cj09dd^BFOeJP?~6^e{v2;@)ajZ$#<;)5i@*T+Qbp?QaG=4$8g&B^c z3mONjrkEdPh?H1?_&_+kfdvFYtN$WZ&zItN~C*Av?p%jnJ*D(${tZ zg965#5~Vr(UU>mUEWsmou^ale1S3|Vm#BtlMH7y5^QMi@dBlLJhwjXd`sn9$vn;Qz zbpLMN(*|?-Z8!7%RCUPlb?4*kCkGtR=j-QhVVe21Ab!eXV~5I;8dW^s-Qn^PcRhY! zx*7Qj$c9a{=I0s4k-8#PFveK1X&aX(6B!CbEth;dz_r_1-)*R8bT{}3t8UgZFx|5B zP5_h8)F2+3lvFi0SU<>GmcYw%dLwcd7<_06q@Kx(wpH>W5Uq#ZDS$X~&1374gvz{r-{s(0%|t#9VqdUDaF{52xgweUK_86!!{p7&a25 z*Z^^Kv&&Y|n>7WfmGkOj?-paP4vpTv5h|onp*6OrxiS4#ac;1+H5H!wAXn9u^9!6U z7%8y;4V^RPhqL#1kWI*wfiKPrVc%YlG%6EK+-($t^w^4FCvex5Sbu)k5Gj+@bGs}1 z2k&?FA7XoGx=Zmg2Y@|BE4uJfcHpv8I5p1ODt-W*4}}Yw^MdBjVLS|Mw(T zw-Rk?-^OxNQV(8%e5`=f@oRf_;|!Y3eN=iGvH_j7JS4@UX9_(wo4k89ERgq|-sK!0 z+_utt#mCo<{!_OV0sve6W%}C=r}+}GXI4N+($5IbbnmchV^N0d?x*~t<3iE+3LrA+ zGh-wtV*d6EV(OJc4F_{i-2a@H_k*Y65lE})d6iM+bZ?dFB#;`eNmZaCZDZveD(=$5 zoxO7#d)_JBcZgShVd57N&7_XxxZwr)_~=sa_Jpx+OWIP-W#mWP=UV<(>5&FA)4Zj2 zV`(pJHlhDWEMMEeyUdgqHV!I4>yt&B^g0ljD+lDV>1(^lMXdSZh7pcEP1axCBf~kz2U>hT;d~knBVKa(41@JwEkh~jvoaAE}^RQE5#Rc<&B5k^^ zF0Df~&dZAM(%L~{g_#PVQnae;l(j3t?7z8j++b~Mp1uPvDz6foOn>vqFfr)uT!DYu zy(l4$tg+nYDtfc`H4KMOdiImvWlf0@1byLfOY_u3{Q=qZn{x3Iz>nlu5x(QR)EW;G zHj?DuNs{pTx)8+Y`N1f6W?Sn+PD8!B2qQpQxMTwmqEd*;#7km3aji7EOCP{8={S(~d(%42D`8hiwFG_m;BDTNA`j8Hm z%)!?({V3q}d2&R&S7RC(bgnmEtSi#)zAA86an(l}B?g;1Ja4KI=)*q`^e28_Z>+18 zSXNa~|C;%PcyNHou$?!{pU?VUEjaPS_h{?dF%jS3;E&92>|^38VzitZATpVa&fcgh zIr}^bi}dk!f#uE7U;h*aQVYN|%thUk4vaPjDO8Yo9Y7!c{xSRUs&8Wm$S}nYLl<$pJntWEE#7n$ge$$|nn-H`x&v zc)$Etxk_*~cFkFM_`J*Fto%F=6+6KEe9isrJ|@954i#R`k*0KL{R*)N<{@I znJ{IVmi(%&;=*q1WBoN_`o3!u`0V&)apT;Kzz+*i71Ew333zWJ={f!zU~rY`u6C%c zd*;>O_UuVpi2G#ew90I9xZtA>iCzw7F5O=DE!}NF=F8^-9RUU6mj`a0597}9C;?9W z?+sRz&Ap&-1wDD;3*DX%z~f4Q(K+{!ZdsA5Vn|Vt{9!lm(EV_ApI;kI5y@flMDH+}w=jm!bel2f zwf#(YK19v4h>W*!Kok1Fw7Oh^lNzU4jyOrtvdiMO^ z_~6H!XyO3hGqXiVj(yyDror`WYSLq38Ds1*vPI>k^_!2}eens94p#T@o*y^Bmy8o*imYd;MDT7w!AiQvf^k3Q1;mS!w;(t*vq z?ehu=>3Q(Ej$P}s0u=(YZ}l^f@Gx^IpI#-6F%AV(!1F0dFMzRW&E4y?>e`|KH%EG! z(&wSvJY!^q=w{;$!EAEWdw!E3?!2mI<0kH!WXvV=d&r@}4sIdlCGtPIWT;G*4p|95uXwNL_}m|T zW+e61NVcB>eL4j&KDzS1@&ql$aI^*!M({Fg`LH)ZiT*0%X(#_k-ac&HYv;4?3A({^ ze9gxtlr*N}AovKv)M}-_d3K`)*d)a7gX*Tb&2)QJU)KfcvwIk?d4J9CbLCYOngnKo zg*n1?T*^;LLHQECR(4T+prkRCe#CSS27Po5lYO)QsDIR1!~}9`r31*%YL9heqy_6L z(x1-JpM|lEkj;O8np9NT9m$?F*VDLMgG%K{R})n(Q2s)g%eW&CHfm$3GI31)(9_7L z6#kO9>o?SvDmI!sWcbi`CiV@Wr2>1EZpi>UU@_llN8!GG8)ocC>1P>_NbZAUh%>(! z%4Ct+D#84G=pmbT$9<(n;#X4=qBGka20t^hE<3B35n7YLq*IG`lTj;b4y)T=ok-lc zwSS?*<(uCeuSBu!tTz%{3>q!SG^DW@B=4yw?QvX}dsz-~Amebz^ba4fvRhChp$Ymi z`B|p)T2tL2H(q08ZceSYTu1Konzv~)vJk7vq)NBy`CXPm__r*0e|e&B&Zlm2_iea< zZ}h8nlL8eg75=~j>NO~rgR^*QGC{#w!T1(K&&AJsE?54b5VEf$cN>ka+B}ty%}obX z!KZ(~i6Dky_fRXn6VR%m1qYWsuexsb62G$=zB$PoemQ6c1rx>)8E7oi;H02H{@ zmU#Ju$7K^N1Bg6>iA^ud#5*L$BLjNnndHDnNH`RVic5nGk@R9S+l!{VPHH@#Yw`2) zh8*GAfwRfJMNj3m+IA{B!)>h5ds?!AvXwOjVP1L#qy*~vlgFaJmkA3O!95o1wAv6hTu z(wu#=L{~9$tNAtKvc)&@>Nkd0Z<~fs8kFaSt%v;5zj-#sd3H@TCTFTt`&3PO(GK^&{2OlNVml*&p5rPRd59IH;y@Fj2!8?g%sBoL{}p z8n`J}ZY)KMPY#ka{xH^A68V_oq4PbbxU3P~1Ro5cf2$(<2!Spw;IS~$@$H%K+?+g$Z`)GAHHgzRs0?j)l z8Z&b}KlFR6aJa@cmIX^+!@eZpEeBnAEc*xecgW{e`TV#)NsgmWb{3F{{!o zeoMGA9*H7m<+~^Umkvpi4V$x!>|H7DCI8=sg&8ZVjy2Xhq*0)b&B13ni8>#>LBmJo?(fEpb=y*N4@JHfv%ER8oh5l3NHV-) zLKqIut7(j9#jDVW``}cit>T&YW*LGWJ)pI*nqaR_bJ*d!Z4>kIAmr$>?NVG;W1qLr zN_-ONQmE+t0k>q#(Duxnb^rD8Q~yM6qVdEaPbEgxWf>gmt}AprF(IeOqK#phl;C=- z-PUao^>8;6e4kRYdusWSsADpS7h6*1$i7=!L~JN7*l+fdNt|eo{80Vs_hJxM^9B)x zr_~##6b~ zqnu63(H7`0BH1Q8LqOb-LSh0{!$}5>YMQMzOl1B2;*Er^53Ns|;Z`c+*@xWmj5l9Z zW=0wO__R&$dgTbBG#kG2Nl(z3Nx#1C!JAP;sc>06q9;mM{e$e?o$}kOlJ9QrEp%5E zyPSlA^X;~v4n<}vH#0y+jz&6MHZC|} zcX;Ea68SJ2B+tmqJWDz^4vse$-Ydn^tRc9sVSGkse_ZmIBa7**QN|x1N2iNe1vevV z;vwTqZRJ-Ys41=_+Qv*~gT+HG&7OXxw_vryT~Gk&q+o3%EYjhpX!>97@VvEG*Yi>G z!h#5<5|73C8S2anw%_>ys$oDf=rT^i+MXiziAgF8;RfW=Bq*mQzzR-rBJt2D*LYfa z;BQQQfQ!@mg4ZTyFQYu?&;SSF^k(LseP=cEfRVR9cf?Biv~)H*Lr6~N0=4`oy*%K4`Z2EXU|%fq zzOxQ%6U&Y3V_Y*rhLUPaw+-w6B*Vnn@L^0ZR`ef9EIg;dg?3XEHhX<(SOZ!0t?HJr zes-G*Y{aMV)3@_LYzlMGh#jaVyCM2fCI}_^`z}ftaNpIxJ+LM$Qb}F$nL|do>*8^% z70DEj<6FNRl|<*X3>AyTb7Mp9cAG2n&jlG=ZHfNSP-r*w=t@%tLd)%Vz>j{9{v%j@v4P2NF#N*`sdA3=)|sx?glHt**8N_ZYR2LkXxF{HjU^9FP+~UB7O}qB0=O@>@EN(-vdNj*uIAt;Rtxdq ze9MI`+#9-0jHtrjWYB^G*&Jd8g|w7!PH6vAmNZ54epXlhE`J9o|Mdx}omvYFLC&6p z8}PQmUPTP-ll^4YOna)|N6A|o=IlONW;|ys(%uRvj_ti|9Sl}&fP3yyV4ZAnqM;6^ zKH+;?rb6X>dtI&4W^2e~g|;W&0(l>mHpbLxrd9n2D0*#i#JHUK^8=d5(vq$*C8Rb0 zfA3NEg}UjvMe}56w7uXhce2@0j?Rti_M%+c(q+U0NRGqQga4}e{jEK;ni^h6D*#`l zF8=O&LprJE(O4PoZ7UzzpmUlz4NcpIG5C^U?mUy6Bj;rU31~~>5VtcslVO+(RTQb1 zACh7(>2jjGhN{wMkUq_RTkr2B*(6;=qV_8Y`z$YUn)r1-Ebs{l+&Dgvpeir5uw$VsV@m{~-YS zKWDFhP+^FjMh`Z^xph{5Zav{815>p{JCHXB2yk4gG^FkdOhUe6Y9$!Mw9eRovIDa6 z7rrAtFE~;D94*rP7hL}~KJ0MbfXLp6Mt`;^fJg6l|Ft>h!Gnv%6AEFY&mL+HuC@2G zd!{SA5FDUhw&B=A7O&Vlai)pcG$&rgzsca#0W_PK5OB0(@n6L`6j|gu07LU2qJ&dD zR)6I}|3QUM&PMcdSSpjR-q&vy1tcp#nV|oAzfQoDG3mlmOgPDgI>c)>M;PdtkmYV3 z`sGUN)>KWK&KIV$*E;3AmrNi4BDh+X%9LiJx0vfroHe(&_2vG@8^dF1i^yhw%59yB zACdBn_jvk-lR8NpDTO+tY)r9A%^?y}MA3vn5HwKrB&^UBw&8M%<~)*n&E)Bps7>Q# z3?Hii!SkA1DPDQ*R}y^sAuDiROq}V9x-66X9!;jHP7pDC*BM`f1Ls!emW6C6K_@qBN%mmzZJ?14VVWZtM)sjT!>H!chi!Tbj~muozZA9>3V zc-2)sc10W-{^JnTd=+;}e>lAUZuoX)OOeuvX%%wRbv5urpd)J#7E(F3+UOat9Cxem zKVa_k4l_dWe9F)g&()lC;*1gbMYIQZ^}9oA#814(Jqf?Q8DX)#3pQy`6EsfGJQB4KPXd;DXwPchq!#F=MADbG7rh~P#DCsL_F0U&rajcf=ZTB9sBM+UA=syape;hIC zvoo}tuAz68W9hO!61AI4meNR7quU&jEU*60x8wzL`m^2YA8nF5m{-mLAq~`lS4<46 zxHTDc#5HcS`ak-zG#L%5nKF2jN<` zHg{LaW9CB&-A8tT2>v6%C-O?{Z}hSKh_Y#+MaHdovM?X*b*_$k0nF%n8rkVOWH$y` z3~|O|kr!yei96JiY5pJZ--sic=1C-y-2=2`yv|8HvFyIzTHNt|iFINjvV~Mh8p!fL zaNooK0FQ02Fx31Dtm_)UnnjV!uCmW^{{VN&A1bHd8$a+WId7>F-1O_z(sfC9teW=eYveI7I<&UtamXpdHVyG!#2b83HEVAv}B*s=&%DMm>2mbjr+1}qtWoV`` z1;*y`{&)EyP>ecy=Rch*TSKakQ_(H;DD9p$jz(5=8C+p{S2wKc5W%c@E#)e+iDdr( zZ#e*dm0dpDjX_wfJEdK&tF@VOdV6*KYZiYJM#Jo`BmK*%nU}imY-is&pa~YrWGXJ1 zm1A?UA^XM4AD8mQRq;NHZT|oXBxv^WiIsLq=Jfgh0EGMTpT@I1ORr6D48=oP`EBOz zkNsq)ILFh0RoCKd*AXh-S)g{wjph5;APNBL?KOv8GZvAt-ag8x7b=Q=Q;+-Rs@-Uo z_G=46BC=hbh^jW=uLORTS3vQly8WKUV;RaHGizaS)~xG(DTRM`rkK~vwhpo*WI%T? z-T31lg#c0UHK@MVtfseyNu;zu9w`3y;7>ox@~($S_-Q7wquog(c@24TvW4!SDeLdW zd7h1Nb*p%sD3Sctk0cJv3I71=AI7~4P4Q*ru9!l{B+>{(l6<-DNA#cx?miOgej~D; z$)xgLX9|<=#>Dc`L;gF6{3#pZwAPwUuGtyCbs(Q}WfueGKT=%Nto|Ts4{v#Sa-!ZC z?HyGd?JdglkH_?`gTnqcT~|qoWDDn9NtFS!mHzo5g;R^o%?A0--@2OI!q2!(*wY%1@^jRVMLwWKPf=6sF zSzBulZV3D;8#P(T$~zxkznn)S-~{9$*B4>^goGweP9Rwuen=;yXC*+8^FQadQK@ zulI5R#X}aQZwT^#eQz9!lg{76D-*O2{C2VKH2LM#?Ix4WyMkF&Vlee$0;mV^6-?-Q zhlVux+VV)+`r^suk(=(q0xy<_{h&i1#83xos(9Z^((Nvm;l5zPNf&-Q0Kdwzw7-h> zvR=*$By$8kPId<9e;t_oE6jD#X{fD?u=$ctsW_4mw{g&TrQDueQT~*$)(C~ zB)Dn*)D&V!;^-IYxHsl&qLmxPu=bYF`Z~j3wVz3j;ni&kEb+!WJA&E#aw{I<_w2V< z^E8b2YLP1s;R9-)>s&6Ktm@iz?wR(8WNTJ<)SoX zB~RC%(zEt<3*S@FH184KM{yV0uA(~uxQzNLsKEYpm!#cFbvuiTi&D{jmE1_3H#s{$ zT-Pb$?S9oR+IZ)criipyMe{tv<)eMyOep58_#?)*8kO^WvCOwot2(P^VQzMj*z=rw z)H-^aBckxGp{FjTG%YuiZwZbfPu^lxiC@g0&bhe!Qo1&?v~H3cX96^K#uYwq{g~HD zcVTB`ucUED_H%`nb@drIKbWYrPlNXQqb=0T%(v1@JCEV?U*$_}2z!;k;bAq+^wu_U zskoAFIV6TpnQ{Rm^8R#Iw}$>1-)SBc`($#*aed}FRUJYc41SbWh(|L%yBxQ0MdpdN zWbbbO08eV3+Tceo?skiYD#%B^@PCza@iJS%4$;5N;aA$Uw9Pwp*=BqQhfhq`9j&36 zZfmI0`WWGtdc;*2dleb}ba<;lj^j|V1NU;;xoAhXQ&sNb+a~LF+|bC2`jh=?O;=C4 zS?y#JB7LgiL#h5S3F3eu)Wy0&tiycL%1j5?0iWwtuWlosMz^?WS{rMNq_so|pED<# zZ-^~?%ZUs-QMVAFE_RYg#VYCYX?p&Wi!;e@YMy1%d4IdyS#iJg$GvC=Gp*gWrQ?~V zw`N;trBsPZ<7%lR`R2OaE>9;?(Qc+YywNMa`>&YC>P=yIPfiC_EqNjG+9{=VbG4O3 zWG>|Zqt6zT;pcxXTWU1& zvFzK65B&&LS-eRduZnb=bG4?1)68HyJF|aGR&AcSCW{NnCG!vL!TZ!k+Gc;fvmLM$ z9DCJ$6J69UwQb&Vi(4qz7rKvll=J{M^rcRn(>6M7F7jH2QI$#;CTvBpODQX7NcK&CK#jb{wE%8w39Uj)73# z>yhaCUAU4@^nc$hce(Y`$oRCW&OaWUELf0@|BSRuu%)WH5w*maVfq&V{ zoYCxrb8oDf=9Pre!*4K4OK~yJmAstFKinVAwY2S87<8+6Y~f*VX6Y29^qqvG<{r)0 z@vPko!kcX_7Vh8eA{o#tNZ;u3jNmL|`@CoBO;@wn zSy+i~XWDC0TBM6Je)95cu>Sy_c*o2Ae;V{lO-W?Zr*)+=2@P?=_b zF5k@aN=MQ710SVoU2D<(ic58hV;o2%gg^SV8OA=mS3BYnC6$bqu!L-=muYP5+({?( zsC1td{{U@iQ*MEL$%wZsKZrIttjdPv*&&-*o@|zmIU*}OW4L}YJ-%PkuH1NbO;+m4 zJvAhP(JmooE}17`LH#NA`o*q~;rq!x&ca|867BZ@0fGE>@2-0H#`ju(hy2BBm6c;m z$T|{0%8$n<@u0bGZfo8Yv(*|qsV4Fo=PXg4nJD1PNl5RZ*{0FZ=?ARCL@CZ3@|hKes!Up zHD_b0gTh*0iY+ef;ByS+B4|Pk0U*l9{{W5#u6N>hg|#gw;rErIul9n(;UHN)=vQJt zJ}bKTIq>jB@cUHrubLZuO7G;jGH=)cVmbHeis*b};rQ)cWR~I>ZEe;T0lMdCAFcuX zYdF-jtanEbb#uuy9}M`5U+}5AnkKWlhFIjD-)8SQBLk7_Ijfg%b^ibfwvFa}vg+ML zQII3-W-Y(}03OHu2D_azQ2S+?tbRyad9%A_K~hiu0A8i=w}$7A{9K2zkyGxFFhJbL z`qfl-)UT?P;?VBpk}Hci?yfDZXWkj3z+43l&(Xzccz;fbHOuMYk)&Br+QfnP1!lls z);6wz?i))tav2q8mDghb00{)BH71*<=~{i%iyU#QNhF8NM!@^TT5J;2J23EWAiQLhVT<6+-~QsbW&g2$7u|kJi?&3=Q}~; zKcz?Ey-GV+ystk1Nmj~^76gU9c!W1d|0z1nGV=t`P^*(09TLz8T>z5=-hs*d1ZL8ZQ__N9ee`!&VPLpxZyfC>DZQ?EQrXJe~e+eN!4bURhf$ti zi+36|tlDL=MY=0>M||_<$VpH~W7mqy)_x=3U+K*&LSdWCNMn&YKR6@)`Ub98Y2QN% zhil<`3p>qz=H5rNwUa(am?qlLp!?W9`vApi>RNS;^J>;|O?KDcXWJBFJ&K}j%D?Y$ z+0VbVd0&IH3ypJCxYsTe~39M@Em+W4cwqFAH` z;^WGdgd=p3p(UIX?g;$r9&74#QPV>xd`7xK9M|4lk~GZ{Lyg86rt%Ag&B7Kv1Xt0;+%DRmJN13u<@J z+bps}9EeutLii4io#XNY^PsARUH<@$zRNe-Bf7e1SOK`MKGDhN@fbB%Ue>KOjX`|b zE~64gFuOV)d)5z!yg#d4YqIWNwA#&gQ#F+VtH}`YL)EW+7X>AJn?7B~f{60}+k~uGeq>{7lErXrEu74W8qWIdz*4t24 zmRw6~u_aZ?;fk)${C7W%bBkpS&&!p#k!JfsqsyN!7|36Ib@n2*yhY$GGTZG|_EJ1o z5!gv}h>l{~#R%K&zaNfhE83g(w-ViJ@?66tawWU@kCBb2Kumw*r}M3E73*_&dL@uF zYaf=T5XqFmB%j8zygPSk4~6BD+BigOZ?LiZ$L3AH(xdU^mg@~n+(_9{665>5GC!R} zw>4EXEkDFN8^mD3M@d;@&fG2tVaMZ|>OLM^t*o9?JaI*4@!G+L!C#ayKlt@<8a{zF zuD7W9ts6`=66nLKBVYsi8jDrGmq3m@~+1^QU3a#z%^6k-AI3*pA{)Je&)Xk*$c0aNz+?9yjd4+t<>}A`X zzwi(c*D&8^kNA7}`6lRE_>wKI;WgrGM|GHG$zj7~9!vS2}csWHHVP$bNj~7xL#k ze~mQia$81|L=D4YMJT6g?aA%=&<8WAcvT)Iyp}1WNI-Z4H<#oT89N))hQ=$MvGA3T zg>Rc$g>NKs!Q+X}9x~kEkK#P%KK0vAc|M`x_$B)~{_K@SS^94{>G)MkYdJ3bg@ zXffYw@Tx0OAx5XY4k4y0# z)#MZTo1l4QfnN%xV`t~`uRHNC!(06)#S&bt%Y?Nn5RDru+t}?>@BXs1PWq88&tIDM zNh4^lB9a*ajgdg}Fk{L4zWcM9v16;trr0&Zw2TeXs6uiwPVSw$^sXoEm%b$UgQuJA z*6`cI90~{V6)m-Y?~Rpn$9K1ySBB$Tb-7s-<(AGJd?jIhFk8<(#0@0^dqieAq8naZV|jSVkXgJd&q zZLU66?T(cAu4nsP*YM1;TA(qNPOSM{57bvMmm<=_`o`V7<+2|;hRYBJK5zDT{&jD` zTKC!Q?c(0a1;eEAuke`=Ki&4mKU&76JFA(Vi58nClVuE-5=bPHNgm~7`>X!Tdt(^) zCYh$+#`Z}&MKp5EuF#~3mhuPQcK7N&fKlOVnQld#b9~Y@vwrVxa?*4^_sDwC@h+up zabzL4PxOY2E-|+euM7GLh^s3a9KO9W&#zB3*Ac2po7sZk$aa7S{qh#8-D+zs_0xRu z#~fGy{q8`kSC%o44Yl>h`q!7qv{e59SgtXX^uZsMUb^s2nYU(W%!X@V(kbA|!GXa) z?R5VDfYSpvNwWJT#nwE=GRCOv{X%SG{Y`6I2<*IT95(FUU!Q>6K2#i@wa&_mExqxW zJ8;F02}}>{06kGuOW{9Ii`_JaJr;nhT|lgS7FcQKMDZY*Ss&K-RNx$ z)~j)Ebn;v?iF3KjDiir)u(ho+)L7fHhe`DXKW4$s(Y>7i0O&O>=ZtOUp5V+D-rm*3 zV1>q8sr^Z*Zv0gdxcf_d!W0b$ySEAYgIX?rhKQ>+oHPv~ENq>mlXuzFp3J!2S$6t# z`p&Ow9_dvr<_x5L(e3!2D_;KQJwDpjW>tnXb~7I3h#CEBBS-NRR~mGd_R~oM`Nunc z`!5{*I@XHz)C|pA!#9_g68Xy3@U-Qg-Ba!^eSP}=HK}2zPA)Cuw_mfgS8B-3^D&PD zA2)7u#b@eXBZ~6vt!!gvcqaMXdyEdg^>Wi*lS6BOu}IB$p%MKY{Hi}THJ}>8X@<1- zQ#6uoc@X9I0-$IA075HS@_2~BrP;0S*lyZICvW`pEWy7~P1C$bCG65gCA^+tJC#cC zSn^vxQhzG9dUr`~l1R5xO35A`O`DD3dV_*ADKU$V_j)&ZK7MdTD11}R}pMa;_~uNe>62_IBoTqt;(#4Ztf(* z{{YJ}U61vk##gxgKU0$NCWQkQ*uGicw2zcA`Tm4)OFxGuO&&YTRePI+lg+nTMin<< zNn_k`)|qkQZ8Jii-ZQ!hq>G7GO+W3gE`^9~$I{Qkrn#wIp$(m*)krZu_)bifdcf(&56UDkF zmmAIJNqo<=hRcT|2tJ$|#MSH$n{g$c-ODtfp5lChV9v7$@BH{3+HFUp|o>b1-PsMq^0W954K|&N$97K(@H?9NKlSnRWJY zaIX6s0V9p_zs`%_Q+TT@8(-Toi$u4I3y9lKE@cOyB@k!v7^=GU)ORKbU79#y3dAq` zv=}50&o!Rf%w8VVE-WMSU}+?sq?Sg>n=We?;su4=nw^crDRnF{#_HZ*-Bl{QeQ7Pt zi8Qvoypq;-w-MUjEV0gw)i6#Q{Q6g->DLLRMQ!IYTt@8@yEoii2iktM=2spS)-_Fd z*u^x{N4_c1Pw>Vg=lL2neREX%Q!R|rGu{{RxprX_{F!*10Pk~LI0 z61LEPt#n=*@rz$s!(pjMx;WvQS>kWKyR!bDts_NH+`sXKt>wEl#El=4sv}hU?~XC_ z$Tcf?=Ea`e!?7CY5jOt-x}kNqk1WEr!QT@|w@>PS0^5Y)Rz+0FUXxKZ&Xu zZiV(+*iO`r$~pYIXo1YCgYQ4lxF7HuIW8Bzr+=vG(aC9aEtpAgz(*T5V*C(2umwY= z+S^^~5Zz59e5e(cCc&F-M&Hl**DGh>`|VQUA!(Y`N*S&`T!`Wh*i-L;pT@dx4c*#m zchg))aT?l-eX#(zGB78aHZ&Wj>h0ny{Zs7`{hl1JlL|IfS2+2-_&=pr@%*}V-1pjj zkCzSN**sokeV^q&)K^2`xg?g#`blm4pDPA7Z@s(w!}R>BD=&xAYJN3&n{092ZD}QT z!#nzqY+{Jivno{Xu6cH$;fXCYn@O#0WQOYB$%61n7Vov6Ji5N`Y#u$UiujYDUc;?g z>GoFg+(l<@*7nm|zZ=RiY>#(UABBBJo&bq;eL~LiPc|d5P-AvCWiy}n7wK4 z0BlBOf2c}-#B2F3wcB~5jM>^)hSVk&(cs87vZx39qW}+KUccf^F4s}hV3C1r#z`z$fK%wMQ;2D zZ+N!%9%)-k&8pj{ZJXHw{xY2VR`-VW#GNjtR)#?jlIsHf*subUKj1+AIj(}s!p#01 z(rsdCE!H^FHGvM*5e(zy_1lW!d=cST?0j_6*)v0>!#s-Wkzz?3qHXuw?VoH^H+@Z~ zPgP^Q)nUAv!F3yQ*6$`tgj|V9;<>$AD}5is?sW<6)ppU|>8hbO&yeX*K zTWO0XkqyxrfgfVFo4;~Rc|<_%NvADs7cN<7P0?bCI_{W1sgpv}_M=kGivZ{Ynx z;@&%T6RaoqNccupV9d+ywUmApHSE@{s9RgMB-AFcx>r^kl~gb)GwYp{?+)F6!c}=b zsUpnMTidihKl-pd$j}J(wz0H9=FO>I#~i2of$`7jNgtVUc7DerMlEdw zaK)U77>xe_TGG~ZHPhD4OU=Sdd1I1858g*0VSkbQX&JhDoNtS@B++$URc+N)NMvo& zAL1Ab{{XU@&+!hA{kL&2nF((uH;G5xJbcIg`Q2Ne5Im`Dr2WH5HmPueGLs)G?VYej`R^VWn(W!gHVUXUUYGZp@PK4DzoARjBY8v-(g%= zWua=;_YJ7aYnyo?xMhw8y{67gpC1L#Fx599F8a9KV*JdT01~C!YN~RYh6YPjcUfe0yfMI(*H#O{hmqGMqTZ zJ5`+rSJfqGvGCW0E+n?Jh{-G%j(d(9wnC5LUvE-R zdeVyFe5Q)of~~=cN<^7v0CoCjHFDguplg`h!v1^6?KS9$AXRLr#^ONy>U*OM8c}Ox z2_$kXtGlZ@LN@+HlU&xPE%$^pPwg+WZbt0#*Z+Rg-2j^cZC zjba)=iF|Cx|>o(lnN~@f%c*7*9lP zp#0ySN4Ycs(Z{W=rnJc-wddNE({l`R65J(awDDsj3X_!d88!>2is~kE6(jcC2IOkr!;qv-AqYYkVM%_VBl>M zf532m8a1;XQ0e|SA~sui<3Su!Z^KP83@-0{gZN^T`)XUWBS^7K*O15= zi)G?H4nG{%34I*XG;im}y5pVfxrccj2kBEjm*NM|TgZdVI(sF=jE8DUGDbfPXYr$L z3igKPucX=k0AKaQ}YI@Z2WtwTDl{QE7s-m7h?~*G@+Ar-5Qq`e^m|;Y8Q2u5U|!-7#2nlT14hexxr-{zwzwR zMQ1I|3fktWBY0LNwU$k&+ulvM!*?Ic^P&~F@eZ4&#}%mtXA{CKrvYnQW6E5g$tjiiPn7L!GmR zO-BApIh%K#edZ8}ki9tlE4I^;2=us$FDgmNkLCdh&+1Z&D^h8h9}(rZySTNsTf3<4 zETY=r3@-9Zzv|V^T-m~!Y%*yQT-~kKVhE{~-Z?q^#S~W2*r{$<@ZN{0y{>LzYjr#@ z+k=r^W{0lB7`Kh=)m7yZJhuqPi1`@DxinEp?ogI@Fx=|w(<@D#%x5I1gObbwp2bS@ zS}@<)+-YBEjrPpj+DN>tY}!><^l)gRvzFjfg7-_%G+V2S^=padc_)-4e>pNXLj5`Y zX?2Za&hg|H&`2iQfwo8fsqh;I+<+*el(r&Ui?3PUMWw!<40j84ZyHV^QHO=xmkad$ z=|7EE*X=Fju#HkZsU|FzCI0|g9RS|P@g#l}QCXS2&MQ>#G*{jwf=hEDg;ip8>y=W( z5+>F?1N)$F``_VOI#!bolcw3N!$^_sbwzboCBE)=edE)p^rDJQ-QATWu5@c`PzLwa1vz$-U%{{aNP+`B6n@QclLv*rBR? zKGiirWhKFRE(C0ovPbf?TZ=w@_9?AT7^JXYq?2hZt9fnY?^!l&c>p`M_v0MVMG=#+ zQrM^A%^qnrNv>oPNwFifXt9mTx%t0beidWFwyC0PO%p{U!)%h?#t%rDgD?KeMHCYq zisr#QNvLU;(^;(7T7Q>%g&!FpVGrlJtY{h>UL2oSy12=>yaAz(M#+sgGsu3KZ_q`3Pc!*6H)sRHL{!0Yed@uG?Z zw<|??9Ed#Bb^AsXC_8>Z$>Z^>GT27C?VOgj@_%JXFjodlf|wZN>zXK{TN<5LiEpkv zJ!L-Yb&eNpv7*I|{0h&|yiFs?wY=!OnEcWeaH-ej{XbeLtj!AdKM|HluO2YoYbx#9 zxyi|_{bydf)wLUTXqrZ}XyxWUgtiap1r$={_mPc5$$lvQ)R$fdxt`2kMA88a8hxu< z{{RV$`K6EXFCcC9KDFO?XU1C1_knGbRJexUTD-SWcwrl1j!mjx3;ZPK81|xy^zl?- z8Y)Y6ayrtzj<{Wm$4?{9vs-eRd6Oap+A>G8bNbbR;jir@eMx#__@X4B7!?>#+E59(9dwuCS3mj zb$*8wQB+aMXkHQ2wR1M5C)**ux^gYzE03}-PJR3SHLl(sytRr;SmO~z99~Svv8+RZ)Fr~yy#2~OfaBSjQT zV>xbgIz5tUa~t6dYp25AV?^+8W|aUK-T84^5bo5jQNGUpcbdXv*_A>-Y<^5AqNY0* z4d97xFCp6=?=7X5%t-OI3W2vjP=7k%K0JIMpTrGkCZ8qJ+*`*Gjxetxy6$fd5VPYYYvt-{>HWBbTMN3!Bn zEJL58C{_pks;PbBMQuO*2F;q`u4088z6>btfDh9@jTBadOLKF>9zSW1_I{xYw5A^_ zBniLFAYiudrx^CE&l&h`)5X@hWsSTq8r$5b$fqxsS(iUe#b~0l+1#^s{{Z2o#+ekY zVK>@l-{eIEe|$!OCqIJLandh5DLit^8v)M1iINoh`{y)KRT(~GLq5XcuB4JrE@ry3 zbLEK_1wmHH`c^wxGBVstXK>alZj#DTu(AcoAE`7^TLH1BT-(TvZwv-YdsF7LByQNv zgN*$Mt*h^dHg+aSR~|71M^+DQgZ>D1=tYR@P%qrI76?X;D!qlC5JM zA)!Uco(_dLk$pM;`*}YzalZfW|N39Q>-wE@ji#B;yr1`dp8L6<`+44X`uFy~k9eKk zo!y*yN=iJQ68`7?+n{XWHfGFkUOt}AZsSGl4P`?f{!{ME|K%sfeP2hT^LRD=|Cjgw|6bAxniUaB6vPL7oHQI|6l#@hdmc&@_4rIcs!NlAFoMv@OY(bc|61VAFr8b@OYip@OVeB zFPa%XlTAhy|0>U(&Evhvp`oRvsjb8BsMDc?j*)(sPJC12 zo;^&BO-#(p2lO-RZQaMj#A2AG^+2JGjZM#f!$;Zboy?_Pql$BKo*zNx*sj4ZfsB38AUH{HJ zWhE6AWmQ!bb-b#?>#n4%!c)~#)9)p8RPWN;n?Exweo)FDgFa40XR9=P9{{N-+n`@o&EfSBG)uv-0rv`Zu;|WF|ewdx(41Hq=zXf zD=Vqu)@n36KulRrrI)_YQ5ClwG&79f$4Sj69=9D_RAnPM`)@r@M@0#1Qqkj$=9Tso z%_#TP+*XE!2{NWp+`#a=!nhY!OeA;QLgngn#*w8C`8(I14N7eKUkI z!%BPaq+m6vP+Gw+a5@#W^6FLa|@CL8Q zd3dfgrXf!3i=kxJ{^BAB!yIW$X56G)Prf8>Qf3d*>2&eK>s*8W|^uB&&jd8x@ z==N*2!$0{Oej&rbCitjw0=K{{gH)JUIn6Lv8b|kObqJ&-PsSfwYwiLN9(ST;ykiKJ?Hib2RmPuVyIhPm}W?&)dbD-&#j@2b3T)5+Z3GUJ@L zS`9dor^2}*4?c6S4s*GZZh2#~iI)Z~18>1kT`ewJzRxnLRSL9et>la2C95Y(Qh`B> zT)HRVL2LJ52q9RxN-IiwTWGG%39?X5;}wZ!i5$9G(BJ~0OKha_lV=XOQo>P{lqa{9 zuw{G$%n<2~OFX1XKC)TBQx;!lU=DO<#!bV*ygC%Z)C7qtm`WPiq!Wgxw0zhn%`lVM zUBt_;67h;05CqDyKD5ke*ek<8K-0oJloIWIUyFEox$=k1j(p&0M2M9c<|c(SWE)md z7>S!QGt{j8f3p(OZUY0c!*Yqx-Ma?jmrt2-@c|VZCj{GK_ z;DS7vQlecX@W4Gf@U`&-5Ofg06@dWZxO$3xEZ*MRBTfuNWf)-k^w4?xw%~)x`G`s0 zj<=IW7diPcNeG~r#k9C*Xb^e}&l193AJPma^{_Q0~;fhxRP zp`3s#0rggqV{bNO9_C#aClq0^VIJ`!-bwE|a-W?L!^`XJMQL@^!#u~m*4UP_s1ru5mI8(!K8 za3^6>oDBHJvp9sk=yLDzJ?rActs)~JB6p`)2`l3O;4NK(wMJTHXMS?4E*k2t87HxF_xomoSuSTW}ME{k+sIvPw*h z30*WXxQRfVna0b@l=5CU;2)VB7Y4L40*icgVq@|(ezCwsgnfgau?n=|RYI4Nh}lIB zV64Flp(38mC8L({+7=nwlK_Y!x{Qlaic>sd*nPc`syt{WX*_>-aBgtMP}9U)tKSri z4+9a1&9hh2iV6L^&k;+xSemO=$<7wZ%8 z!S>uO(tsL@D>79Mf(S+egzUW^r19d&);5?hGditAYLV+jbMyfeJu)^M$6!)y-io;c z%P$Byg8Q5ACe>^KK+&l1E&7Qgw%Y7=kIQXAN@Rb+?R ziR?NHrqzkPQaGCI(Wd9Idv51Ihg=7~l6xAGZ^^GEv&NP2elKt>sFaA5_}a^x{ryz` z;5Pxr-ptQ4W+xp{mhrsDGk+UmL0A?8KAe@~V8}ehZ)(EakW*@t13i-3ywn7zTT2I=q&9h!(Y zY^mcT8+Fh3HK2~D91R_EaU&({x4$Ow2k4Fc7eoaPaP!;ael%Xwj z0CMqxyj*u6n4D=3yk&waGGQ;UE^LP2AwTD3CewEDh#P8TM~PJ6;1yC0J7>U3T+ks*;7UUxT2II@hpv|KF76g8QdriU zMXSx?TnFVOit8pkT1BS8WD@e6rnZF*3?L+$PcxkWHb$0^T7KZj-dj4R(2ka@oYW@S z?as?ghP{QNQEf^XTYb$sHN#A4XF;T~SVd-Pk(mJxWM&&yjh9Y>6`M`G^wjK}(j0qv zn#y{OC+?8(@?Lo67{bnQIUY(6QiH-^;4FpHy@Hju@oKV4c)tUPdz3S!F?)Jv@qMAR zl%;B#rULjXVK!*30g^LL9EFS2M5Af}P|*2BX(Wis6GJ7{O5m0ZWE^;a5)36t38Q(k z7Z8BN$dX?wwBZO9FZM3{%zr*sW-;$bQO z$;^v5;)jXsSW3B11Ug1ay7vzSLA@KMwtyhCQzlh z8dwt$7&zflb}2C`1>WMUGKv;oIW6Zx>hpkf2kprG8%CDpW_43nujsY&)_4=IKL-g{ zfAqXvr>a-$Kl%0Kbx%xPit^O=S%ruftPlBSrJPW9>_dK$vkf;Zk2Pw7<+z7kWF9yT zCPQSfDG5dPuw4x5g9T-f0HrbeTRrDDKS9ud0r7@NL18WqjYyxGgUi!h~#R2w^T(Ldvy{a1c1} zR+c6UT*~a6<2F=p&jjM60An&lfXIy~TFLP}mEw#u4yx-KEKc-3d%ED)^0lstNEQEP1hz z1q>{!fFFKSKH|$Rj`WbsjYVa%hUdfre$xj}v z45IP9w9_pSd6`m;DZE^f0T0Wk@(K9*0b~a3p74{C6A-Sw+!8!9aGqItQGrFJ(&6g! z>7A|=3DfUMor-lFD;@h9=1eVB|2k&ph4T9zAwk{;(k;xAGNsAT4bWN=s!BlEh(*M< zFR@!R$EoycW}5OEX_|>5evv}jm&cSY06_MQq_C0+;t=Ivw#@A021>~B2uC(m1yp&G zjcImbB@lzFw`V^5i{&OGRy)%mzm}NNP@Sek<}sF^)KDzzEpXJ)sT0RFq=^rCBLX^n z@|CIN7?`VDDtVx8;TL(D=7HU0_AFDzWR>yqveeTsNyCh8?#n^C7MZJtXJ`jN%d0gP0#BFTP?JWs;y#R_ktsddWDv+wMrkkt6XXht z!|%xO29)%nIKk?u*f~B1xa*N1%82z?K(e%qFg3TJ^h%Qg%lpcBC#&GY4$7z~z`VH8 zgW}3Sk<#JC65DLAp6BKnL7XV~I?bWWf2kog+9jUhA6CHM+lrdz!Bap1xb3!!`f zT}+aTF*!`5R#+;QzhVVMnB`dB$AxWJj6)P7^ znB^+fAH#2Tg|1u6$J(iUp!vHpUB#*!dFv#zSSCOYVr4BdYTlO`V5$iy(4JPqVF6*b z78SCkZ#iFyD@*dLz-JUsG-oNWO!%QO;=L;kGqdFh$~~?lQE(PWB*mLbao9+XQYzsz ziLodp8St-9A?f~Jp;WLK6txDb$dJfrm^_ym^&kbzg(A>5<3?l&SP+(meHpjuVG>}6 zJO>IVqR|0uY2BMiThDZZua5JuMsE-q$&6KVhU;6&}sK`+N zW?7)r!dla+)~Dcn=YdQ3ojZA0=vY>*B4lt0lIUAIor-Rc-LYaN>VzQpP$_e=fmeme zi%8_)hNuxa{m=mCkX;zr`Amou9E*O&fy|dvX$CS9?~c?F#rU;2>_wEKkR|T@tW1D82luIE)t!#w4y`xoID_R>NFS zWMv(_^p7PZmsCiq=3+1ka)MI~+{xDVV|H{sy0GmNCI?YZh`H0w7`^E(M?2|Rf1`-77N5W#AoEm8)^h8 z`o= za{!9IKn*(+77m!BzyWPWyv0~u=x9RzqR$YPVaVqW1S92Cdt)^J$cZGWc!z=sV=~5S z)PhEy>p;y^K$j{E)|Mpv(n6bckD%uDNYzAAN$^UMz^R;MmB9vxa1sS9VSB96#$HcS zo4L5v*&-j5E;G!dPr`@zhs7j)I36ufc@Dz}dwNr_v-~3C^cff1#OCZa7>zs(pxr!P_url=*!9!U_ zT%pX%zX3q6Le{hnWB8;Sq3okJoC8_??cQJtbr&RNUnq(T)dfYaZTYGKNph}ql?yVA zlE^dC5r9Y__gEfcRcj;sXyhze0w8PPkh-?zJBo&%9!+@OBQ;e3X|z0#%U(2VkAzwjRJ&^S^hOftj3l9jj+_@NQE@Wp zKEtrelOLUrWngGK0TC7gjdm#*OB33g_Vhx_3^$~kR{b}15`sy%F?|BWiixRUrxb4_ zGPxc>-ehi)FMkK7=`Th+Msg3}MUDU22NQ-+04XS^j%uSGK@%cap5ZtzkV`0oSLe}8 z9rCNF0fV;U#Sj3|;LyO4qV6h@qXWGDaaSIX!Dh0h1s{9 zVvUO$+@-S#LP>&+f}UJ?sCxua1}y=Xcz`*&#R8QQf*c5=jHb$1ZLbB|{PP52Ri(*3 z{3ci6AP&K3K;g@@IJ$LA(lii{pYY8fE|HFc+Ct{;^*LzK<>gvSu2EVLs9F= zfnz-cypu=@pisY)90_WJuOU#SJSyz}0P3i^NAm#rdQUH8I0dG_hL|rkbP#gX?tt*@ zEWo@;x8Y3|fS@!0lyq?wP{T_V~m!wTe;IKg!w5I1<@6TUPbihjJYwC~l)uFowBV5DWT1V7KZ_C{*$mua#+*F;EZllM$ps!*8Y9tRw>Es9DH9pIk9j8l(Mh@p@T^k zWeLAjQeUm;mb27C*^I;@B0@q64~Amx&nBIvRZ{f$x(;VNMUs2>Trh8b74<=CcPUWsf!u20s)P0PF4%yLF%`) zI*AyQfcIkMYQ&sHwV9OUZM{69|o0WE3|ah)zAFGj0i zCMXZwCI)&FEfFM2Y8yjmno;)J(~ATEh?K+){ez_wmWf+Y>k})gQC7sJJcI*~N^%i< zP&2Be0(g(Jv>me6u7kRdm5Kk%BFFQ~^4xG-;;#D|=omW8A#Q44GE}rh?l?5+ z2zl_D&kG6$PEI&B!#K1l>fl`msuCj8F}-5VmEq76{4d_fX$U#ZYM{_7+b19*!W;84A!x-o^I(-;PyGik2%Oxyltf_^lNyB<9UYs1xV8 z=E>~Tc=^Vcsx!>63js9}Y18V6d_-|Ho_L+;2iVc9QbZPHXbP+pC$QYfnOd zV`n)SWe{!P#>5d+VC4hC#46-u=32-dw$%+OhTIM3v8l_a%^`$pA0R{A#QH!Sh-f&3 z2uX{d9<)O4!L|R}yDh#g)GmX~Wsr^9;8}79mrU4nSeaVI*w!0N%%Th}6x!;-oyZLs z3NgU}i2zGO|GYqwIG|Y;SoEGDIg38eVO6YzejCvuyFfe56nKs%Km3Gn4&|^OO-^BL zYN=KM&LEyh!V`-D{ux{gN0YWD_8#cPj@_T;J^sST6k1O##$lp_cOlFtbO zjzA8{p<9c|v%E)Ykg5S9Tqp;k3P~J0{X>Qj5Li0*ag|2)*rFB#N$wx8&kcG7g%VbY zG$Ej3oa_LXk%-F6b#Vtcs+`7JP?n<>rD;BM&}+O&_(v?MQZmII)f77?wBH=5oVf$a zm({@}Hn12vJYtxc)YgO`7r1t{&BRtPHbKSI^1_)U*dFyvG;E ze*yQ+H@MWnZ7TX^=rJ$B1XOG`5%`=C`tsB!&o44WGw}dLETx`Sk%6j|Je^L&O#w`$ z0hR`G1Rt=d2lrtS92HRtmq?e9(1Kfu1~Rcc`WLi z!@93X0rB7nhE%R=EaN{%D;w1lroaK3hW16=PG(bK=O+lDFTgMmk${NYZHy(zBHj-6 zfLR_3CA8ML6h=0^vMrX>;y#Cb<0~nARpUtPTV?IZ6*(&BRZwbG!_joT%l8Zd#(Y?+gupvwCzVfD7Q|1~q!wk$`#$WtDw}0io z%NZ*GHbn4of`J;3LRLEJ8)o8$0 za+Nnl9jJ-No@df_9qAnamo_yBA+(bVKr&WgA7ke%@L9+z>vw zM;UqPc$lM4+35Dr z)X{u!jn1JJuU2F%`bjS^b<@J>En-{}P%PXasN{2_c@d8&ns2O%WiIFZOTJ}9Nn?qz zJgWEds~|#1^>EwEGzn+y?Xd_pFhk0B5av2t)>4!x8560Co0xxuEagyf&!UT?cVfsy zmLsUUCygT7q4EYgO!!6~6)ZBC1;M#-3a5EvWw@3g$Q~T)aNcLjClt_~FhSyDP#wXJ zOMD!C%G+Who;DM`Km!IRE@LL37{-HR7J?PqyySAdxRsrgg7Kj!U=5b}TbVc$5}x3v zI!cb%>_9?fl9LD4get;&j3B{_GT_5~&03rmr0PJzZQoHlj(Uv_w2?%8S;8`o7N9+8 zpt=?i;}!*G&6yls$al{~U(V}v^D8_Rfl?v&SQ(_;iM=)*e7SfH5& zI%v$ZBK{{X^hlQDeG6r5V?5w83A_ae#c;7pQA9b&7$2jvJ_K~q3QV?ur9@N*XTkZj zalpurR4ax+u)^PRYrDi^IF1@PiZG+ZPQs3Da&t-uUgMCQszvcnWexK$Yub^cslmfJ zoe-yZF8^sfgRuo-pTg)T?I9-!u1o&2I+d5i6sgSX++2x=h`6vK*7#vPI1ad+mx->0 z9D6X{#lo;|d`9-4Nr6BZ{7^c@plL|i6*bj3z6u2viFk%KIb4(RBH0v8W{?AS=T?qH zXnGJ5(`tDcz%n-s8<;Y_x04DI+j2SvPgvvzX;(&pJ2k1phy4aM*P85L%~ev~Ucm*R z@;NUN3eJ`KB?Ls4=W*sm%%yB{B|9=Cmk4ZbkS72)+7glNH3XI{FB%c%y0zM{8$~FU zwD3EZ)F_hV7?A&Tz=F6PiOe)>aU5Wv5TOiebhA{5Id;}$B!YnglRd~}`Bm&e)J?CE z35jIMMoi%Wb`1H51HlgxzzG{zE|*%p3>pv(n2alK!KD|(oxUI@GY#KJFi8CmOqnF8 zXJD87P&cG-D9!!EDas5r9M|AZ?K6`1kK!;}oFYW}l294M34S&wb|r%!qej+pr!^3P z)GCA#*^ui{;|bjgRS40UoZ`^oAgzU?h%QhZhzDPS9&Cf>bY~JHum-y;UOf~{J^1W- zf(vaKy`-14Eu}^1ZO{>7@PGrS!AG^BBq8oZ%YduD_6x+ydlkMwc+!o))IXw-!ZaZa zv5(i$hTcktScpg>y*glD2M(&niO|HKNP!LoDkX9l1b-6SQc>Fu7#1Xf9LCwHHiQvq zLx5Bde8}wJg!Zc`!4p4`*Gby1m0Lg}mnX?Nlc~8&0Yr4xB-8AQ6Ql41Wh-n~Di{a? z8rCFGO6g+A2)Rz=08K2}o+doYuskl$;83Ku2W{wae4mNakXU@4avF#k{GOr4*CUbv zL68%K?&%%LeIx@YgkUj7%JjVlVlLLLL$;8+njDH*bErdilw8eP0>r}zIy6`5P#Ppa8MAGu{jZ( zq<$bVsgi%coLR0n^wjLVEN@;}%T9L!l$?|lV$CWg6l8)c(zw8S_+FEy&Zv;K*CCW@ zSDVmwJ4>EY4o~<_1RcPTuU^hdbY2XoVRaPNqCf>UMG2&@xo#B|tdZ}9fV^aH>6d3WaMpumM~is zB$BxBRlTuavVV(Q*|XL&5e;iqF;bN`d`K~{I;j;rE#^W4nBe+gDn=CiBw{^FpjcVH zVtmDVl^mWa5z^KZvv7N4GwLS3WF#u}OX24!GG{z%0&yiWCjps=VLVH#widHEr96uU z0Jg9gpODYNDHJ0VVDdC5gfdcCJP$PsSLpnd8vaA!SOL7o9LkgtM^gwSiemO4!G)oT zFCw{Hu>mMDsA}e3bD;O-%+IC;BXL@d9X{af)RAw@m_?g1L%ViHllKnQ8g(7I@7?*>y2h~0NsOq znSpZTew4_2%pI%Kl+&hVP##j_PU_(rv{cw3H#9J4X1Syu*v=;ABR7cUhs>GMFf-#be#2S^^l)$)T8b{mI$RnH{!V21v zBB!PnM%AeQ(L*B6Q#_;;EHt8o=~p@hNR*t01E2YbG@1oR-rR^BsBsn+SFlhbFp`r| zRmy2vE@sTo$whmIyARa#4>hHX6;OI-iy*(KlWJpbBiF&A42Yb;*za&)9!H);^|bEJ zpa<%KF;L4<0^de*?GfM^%>dF%Of#_wk}g)sY0pQ12MG)YJ$aw9>3<1Dg4h>!Vgmr6 zP;;djusU5xV8an!(#MP{D6?T1%z8M1-6nUCM^Y+JjOg0mWwMWrs+Vo9L*@Z5OV;lL zIlw(kH^HC=JjRI}6EISt-^XH}437}=ZcAjrdZ%06hjDrXk=KVZw<)7O^#&& ziLJXIp+nE5k#r;0K_Qf}laNdTV|E(uIFx3o&0&)B2X{CGv7e_rWP?F!A17Cw!cGhJ zLI7l_TO!S3FQ|G?uX?J|n4ZL@c|!({ztqUI=qn4XvQ`|cCQ&Y*JR@2eD?CUtDAWD} zdL3lupDIte>49l77S#1lfddg(ewB+O$Gnu@*$Gelq#S@NiD{@C0SLB7Y#tLQOtX=} zIe4&0Wl)jHr-hK=Dk-#lxnctA6F23 z!;M1TAkCr3i*zK2MFpumgikY$`x7P7CJ@$&WX5qp7V;AOL?=<@6PT%i57;8hgkrVW7xh3+9F6QP{0)QBd}^bqhi7Vj;EbdF4{2` z*TkT^<3^Z1XDYCkGD|)G?XfDB$y&`UMN;lWywXE)yi?wC#nD{elds|D zbtru6GIx~|6;kdvw!n#C)`a4)>Or^@<8_(_D3zl*;@~~KaV}jt)=N)hH*>u>CG{*_A0GlTuYNZ+R8~YPT71n`oQJ&urI+vpn<857bczF~f7(n;4EG zQo;$NMRrJ=Yhy!8(~5}eNWM^1{xE+k)y0YhbMPa;OCdGzF~v5S97`y36d}aRr-8&+ zJfcUJ4f=D>on9xyaMzGgD113zv5+8yvzZdfC?;iDovR=PoQz?y_w#$K>f~qz0e~b- zqLUaP4#-g?28=};O{6U%l{2cSXP?WJt3Rz;VFWqSsYAem1%lHQBqE4J&CZdM138xo zNXo-xDFN%FkhEttH?c80d@Ny+$1x8Rh|Xz95swp%vMu&+8Kmkh69{-s;N)iyl1Aox zJGsO=s|lvns`SrHJaRmDCwEAcrLyD(K+{h;^u*9-CuC}uZO(BHW?Q)JStBwJo40Tl=csn( zP_QV60er__5NU2%of#MDLlp|nK{8-biy9y1H{$`-W%nO&jeu;eb$^0OH8?Vg+ENA#+ zt}zPLDC<5dD$yvzXpD1Bi?e5$(a1#W;DI4CYVL)+vN?qBPETHtwMb@-lfwnYmW@6# zL+{C9&T8!Uqtc;YnvkPuk#mzXckrR2* ztu3hGMk{*97w{G0rVMRCuFp;NZPDujo(^~Q3On;JZ_17(F-PBr4xD-A@2RC8f?ak0 z@vXebC{|?22prM!nZleZ9T&zM3bgt`GCOIB0aMSFvcncT_X$({H|{$~gTTmR)vN`L6}F-9`cZ+PIzl4*T3 zM6;UC_ug-mAE4h*mCE<_H?zpfyF_@(|LT~3bVsPkhL6P__nw$V@4Gfva7UPULL@V| z*!S?zy?ujS*G8|KR;v0e<=ue;SB52B;U}+pynND!edh(cML8NhE(2Yp?wL}AvcOTH zTzoTBeS(nv$HiTu72Q zVe8;7K@cnCCIvJ{nFtOwg1B5N@S7vNkO<^*k~X?H1&fS8hvF15MIYzdi1IT!EbI;C zjd!lsNv6Qx9M1@X&<61EF z%3H%H*4ioM=GD@==Qn#;&W_){t9Q`9ywMeJ500pP+IYaCS*E?zDreJ(7e~k0OpS8r zK5x~&C5^YntjyouvE=BVy@iRIi@rYTIl9O|)OT{$CUrgGl~W7vn!0@XRHv0cSxK;D zzDZwR)a9_r=SN6G2ULtRjy+rz`C@(g#cta}Q<8-~5kCIn==uV!_Xh`--s*8><^5?_ z_15nl-`ZdMMGeglSvXJ{qAaxS zenLDv>UPV4EU90|?i)Y<9OGq=KvFPm-Du|E|) z$nJaDzRmA^_KULC1`IB&8&WZ~V)mMIHGRj-(s*nzt#VQS#H?xSqm9)2(<^y;hSW25(f{`;%2@UEN2xp9JW z!EX0qrMJo=FWW5qXzu^n9?RV^^*0y94dRnn=;b1m(RM1$=q#|^_ZOgn}Y-~791 zmFqgAU9U7po&@VPR6g%>xo@+nVXNKgegQex7yptn@8bm@s~KG`K7Rcs|DB6L%hvoE zq4kf%!RFnjxV+9r6PPRkfIgnT|c+9PT zcb%9SVM(VSSnyQC%eTh^C9f!gc>_17r}7Qg>v!r;rx)$f?kQ1?nW7<(u7AM1tI z!P);fm7kdwW&7#vw2E4bp}H;{cP0Ny-@b-^89GXmMGnor+b(o1z8E;zxt~h% znqdaAJJYAyr-y#FxSch3*DAXitCP08S{SJLx^wsJ9-Fp5ihfeR`=*ER;rxwr`+rY* zf8JaASo^WKPw1tuqutZZoz1N*`y_Q-a&NJhW7fePLoa7b0!&Q8zJ*2W#IQ7#2{wE@Ry=*RM&77SCLN zEx%->Q*wK)$;`LF_lGK@p zEEjl~7MmPgWcw}5w=L~ApV}b{*DWnE>~*F`@|DqVr=3Z9Jm7(F*bbAx=+3<5`zp>a zoHwdeHQa57U%XeiFzM#}{%_pd`qk83_rl+9vASuyic`asy=83Emz7{h%I%sYze=G? zxON3c*$M(wlW+Yx=_D#ZXwwJz@2AokJjiqsR4#qL5CTI{ zc5#Y^wc#Xm+5rF1?(81=qelu>#b)k*(|{sr(EcSoamx#w41@6o1G)mOK=~ig7)fXCga49`zsa<#3ua zC-`%aN)%Nd*Yf(&fI#8F8YEoS;&Kkxais%zt~EIhORnwS7jnxxd-jYsGa4(J!>)y; zf7?H++WGY9(ox4g4ZkRk+PA&U$b6k;uG@wQXQ!JD8WH)TzVQ8IVPE^Kb-LqBa|YjP zbQ$t2XyXt!Q{l4dS2~VAJjivAu|vj|jXn0h*!=eC{#muEAH2sOS`|^Mx+^)R`E`Kk z`^Gt83zCYD?GoDBo_+St@b$E-6TR--Hz-@b^uo!&S-<%_Npg5xRy=aQuBBl4w$j(Ho~!$)5{ozinbTieahQ8mkI4rkBNEk5dN7HRlAHsZB=&(S_nCzcrWUmfo7 z%tUuo)Rs4vllQGR?)N-zugR{gu6;&qc+u7(^Rf>=-(kqfPkDD5yQE&9e){#!!^bz> zk<6RtT0iqx>ix?tTdyxD@v&Z5aU^WLle$~^Eu)ts>LxuYAHQQn-{32m=YA7D>1dpg z^`=w5-3O->&T9%P3o&=zAa2{ZvqHbaoTN#H_pI~-ba@(oKP;SZ`q1HVws*3u!v0oi z*3eyky}opU^ThYFTlRhKUtptDIHh9otk~HxpOpR1_sCwg{QA573zY@sBP(<6`TX+I zdaCsuwb+#_=B_?JYEXdw?Me6UTC88$#iFUx>9VLPk#*Y^w>~!(C+}Cav>yL)#_{*x zOCIc68nCPF^9XG#gQyv$y7N6q_~Ev+58EvTw@ zQfA3<)mff-IyJf{RW|WP4)zW5uAFzG<00?x_&>Jt_6)!DY59xYH~Y7|e3WEZTlVCD z$?@iZn_uf122C>Gbg_e=OJ#)r(T))vZ~omjKgep0PQ>b4E#FJdr)wQe`D@twMWtT# z=UiSN=zZL4S?vP#mu)>?m&~t@Qr`4y3(x%bd~rnD`O@h(XD*pzY^7!XYnbp|(Ca>@ z-x{2#4#_>@7=5((t8H8IcJm&$4@7P1KRH*cuVg`K_A0G$eb4Sn*D{OjlV1L|@crQc z&)HWtbUY=Beyy_Ue8#uAWkK_nY~0fNb?_X4gQ4N0*?Y@pnGe0QbnPaiiM7IuFQZ3( zo@oEZHrKf*v1Mm=+rxu9hV9~q{xWIN^5;iN-ld&Q-Q+y|m|qW4Dsx5=aYvPWyTq^?Ze^y|W1W7pjecNjiM*Kx>%@LS!& zjT%MkjRO9t=~I6&w`|qBUT%TH6^+SK-o5*dqpke{?jPQpQQDoC_>YrHO8GLsjOyNQ zW!>ugU);U4gUbq;{n|?|!xuPP`MtX!RO>t|Mcmmb^vpG->opro9M)Bbyk1)q>T9fS z9$t98!|O{1L7!(F-*tT1m?H=G99{iTb-AGUQmTIDrH=WB?`cUAvb9!4fB8`9=eGa; z^znPr!k#YRwSBqSxYJ>3r*(1sEstJZzPtHtj;?e@RNTO=b9fyqRtY!DrgT}e`{jBg zbJru%%TXhiHU|#VJ2L%ww-v?_I^mlsfoq`+mEm9 zz3zc$|KEpS8o45{`R#$zj-~6}rQ?E*t=-cjqgzRIp!9NI{e+ZNW8VrvrlzJ@3gK+ zPff5IA+SoXTQ+{HW#~VD_FLlmOGK6Dmv4fA+~35Am`qabcifn5D9Zzpm2Qr_Z3mZ2FOo z-ay3y{WSx01gJAWwY{R7jRqp}t9TP$)Wr5V`@^L)WDzc7$0M=fO9ucH#gn4YqK2)! zY0EVkCZYP?id;<98p|q_EWGKLANh!NBjmqQ9};I!(F0`Pi=!;)t>_l%E4oHmHeMDE z$b_uVv?R+WFQZ3rj&rbMs$eqpow97qm!MKovB8RFCsYxU81NLAp$SpR_c_DmQDa^u z4mqln*@@|%=wINz303ZElB5>YlR{Gir=@Ty(yaU;Pt)jynewSQk(Yr#wFC<%4tBlK zV_x5U^RCy{wFYccnZHDJMy*Oi_j!Nz3e9teA5TQ{kX#A(e|ZUtU!3=1KUP zmfE-P8Zs+?+0`^wt@AqT(W4tzy0>O+iaK2EJu&l~Tf@#FcVbfxjqhg`e{JCCDSyn( z59XbmaVGKJ(D0bi3%&`ChJKhBT=h9+S0lgCWc6j!6(wPL1;GK0@zHwm$DS=vSM%Ff zW%a_;>3$NtIRdq#X3zi8a7 z82e7kKA-$jJ3;$W;o380aZa0t?VD(3qI)3d@sloE$`U4EyFr5K7P^Ja*y4G z;<>R$N_-J{*0oRNs1;%fb%q@<1cGn zyXe?#yYmCGZ@f%@>b6_Rf3)w5@yTRaM2EWpmX9}>JXySAwA~w9d(o1;MaO<$zx}}d zN0Faz-rTt1omQU-mk!$RSoX?RCH-MtLGfkhoy9S-zbfwT**oRAW>Lx2gSXdT@=aKo z(`WhO*|JwxD?<($R(XtzK07*1bhKu{JF8XF%(_?o3vz8gj2=_z@u&N#lP9LG9NysI z@y^Js)3TL+m27T&998_nvsm>+4R2a#^r^-@@M;$4z>=uIJ##mw6^>8P9eei0QFhf23Rg>^Id8g?*Ph#_C&XIbN=| z@fkO3%?atC^<6g{zrFAK>qE90J;(bk|5lghVd`TRS7h|~ShIB1f<7g+J9gZ!@=#i# z_5ONkUF!Y&-@a;Amd@*(>7g-FB}SYsfm9scJ`f{@JjXFvu0`a z`xp7shR9A`*cxzkJ#XXoPvYZWhsU-ans&-zo%xDh>9#$mTQ=JToQhqYwWL6LAUApB zxDQQ^g(FYYzuceNoYGL*bz84Hr7qoa0{+~bu*hne|E-CKuG=3TxO!2a;ESGNU-t*U zDcl({p#Sbm=11m^G}n0>|8QrON%GVyQ~HINEi%-7zO>HwwCOgt$)g_ntbbg6NynY1 zQ=DHBf2n8Ag2Sgj?r+u)x}CkE^D%7=kI@g+_w6Y=`ltWL9qW3DW~MI=O7Pcvcs6)I z+Oj+Tez%i4`S<+z-EZ}UhpR=s@4Q=^^v~V606k%R{Hnnz?l-sh6S0 z?%9*g|JKiJXt?OVRZSXUCA>0N$MQvz-A&Pv!&C2#TX5U(-cYMYt3SLDwX}7fe(lB- z%~eCy&mU8{WEy*Od0InxSXe~gpolZ!&gk$jzLI7%C35<>{gqu-M{6IwDzFMNS)3PJ zaCq)wue)PkUJ=jGT~#_DBS>~Z??70|u0yuh=Nl(~&>ym0;5Td9=4(oZFX#2}nP7LP zq;K8^;my$LMu``~=L=L8g}v1L;$O8qEbqC+uf3!Js{=zvD3#X~itkMe-H^Ru_1N3G zb}eVGje43JviP6az|?Ve$>$d=dT~qR-GQ8;n`YblM#lDA6S_&W{QUh_8*W9Md$?ih zi+dA&r>#hBNE~`!UuE`<5hjAnXGst3p0^y(f2z7;kil^y!vj|%e5MGuOnG@1%Hl>I zB}PSsE3YgS^1>Ib`er21Cj8`{v%Ig63fzHeDkG`8F5lOqV)v(Q0j4OJG7#g)6_O-L z2T~adwZOhcDxl1duKRzsT+zsNq!$TLWo`}Da1O>-F{*Z2WSAP^rP=8r z-d-9aI`(UXdsm|T-f5AA?{#w)#Z0VkU^|49Gi>cN%n#8MN#^+36lWWs#AC^vzEGiK z{GGZCT5)Z=bN|x$0eM>Y!rqLYa&w+q;myC#dv00mtfuEGh<){0dhzn35cAdE$9j*Q zpV_$l)Aip{BfCbwulsvIxJK2jt-x^C^krM9wg^{ixdvt)5D&-fph_mv=h0 zYW9tgm&K0y^OG9`e_3+o;;5Lsoe7&y<@e9m{3N_=tnV^?(1=?j7H9btZZpp8>hF8J zVxv?1Zm)lND|7q`dYam34$R2ay=}kxdb59?eMOA<#*T-LbdOy>*5}nq!A65qdi~FC zH58b79FP z@0J$-ZuQwkGdmyKqF=lud*~pIF%O6DTX%ZZh#md@x>|f9+`H&jkB8Q)r#xA6wBE|{ zSJl%ShFSe{G<-{9S!hB+*!7-fR<7&nI@ESLF)rF^-!?l-jW4F=*);PT_uWaYv2tmwR4zXdI#Z7MAO&+i7G(Bz9xs2yd6NZl1uy@J(m(%(#A94I&p8Ni} z1M*JKJM8yhcW&vQ&wBrn-%a)6$Km#koyx)%4r%PXJ*_cD$;`lf#qQUIQSXgE&-E(q zK55oT)mN$Ox(7cSy+E-3!eO`VDdT6Y9{A=)#G6W={`t4==)3K=DwMdjZ0gnF&uv=_ z!j~@XSvEJlB53|5vvF&et=@fZ{!rhR?fU5h_3A*}SNUEP!|RhO5&z1!F8 zQSsX;7d=z?A>LLV|D?XppZUw*g%@=4Zfj1}eK_~woW0ZQ16=g){r>mNBMIUAT=E{h z-&bZedADiu`$H2Pl~=kF)_OM1U= ze+o~UOW*qC#v*Vg(@{jWTpwI+3j z##R4r#rHzG7Ef4|7@;%Qy;A@4t-Ik#r@cSU6b_ZEameH0xj&%*7nR@nKmh>@LE~s+-`gC-M4wuvhm{%&5?)i?yf!_ zI?Q?b_13Y@DMhNo&rXXn`8LmJS+sj;R`x#+*Uc~4ztZmM%WJZjX-{sxbeU2vuHHT2 zaLk^gV@fuJX2ri;vHiPq=EvAqx7=<$i|Dmh z+v;1=b4-GVZVukPN?2$A_T7hlIZ4CKX6jd*Qg+Fz^{g)}FW_b={z-d6j(x#g$tD^te|o1k{8=&tMd z1@|saOi5_{yfbCr6!%}={vEU-$4pJNt$fPOIWxm7gPaNnD7{qrE#kxXsDhZAsSic# zwk;SiK<)mKi(PnX$w^C0o;(lvZSJ-=&-Kf@Tt2o)Y^ge9=e2rq>51g&PA^Zn*r)vE zVDu>dlX%>6r_cfK4ixm&-*0-LG9l&G>9^Si*De$~|L#+A#@{+f=X+NAvj<1q7HL=; zI5s{xZ7{2F-fG`*hMRurF?Q~{F=zVmR!sAopFFL>a%a!`No#bTeUm;&*l@%2@zfC= z8uMPwbtpX%oU?dP-y5!G3sje%@SeAP_SL+^FAYw6QU{kTee&$vi{R4T<8MA$_oTbm zl0UYdOJ4FXPqHubVbFaewRwM9)Z6Nf8yc>0T~(~oVT{FK^#rRKhM!lb?{@#w;MvzN z7pqV98D76Hx=7>h?Ycj9{IYmxBk!M+L04kt2i1kRjjmd5GvR3Bs|7n9BTh`%le~J} z=lJ&ro&QNcX#Y?D4Qnn*`VC&tlK$!Sv{Bn;4;eYC!=@nr5t(oG?c?r;wVjnM{@$hJ zqvqa{w~Ld<%;?Lze*LujUH&Yi)Xg6K#)(3Pc`Z5j>yTyVFW!4Q`LbZ_o?ZXAn&{l} z%MuLrp5!vfbx?uk=elK*4Y@Z$GVph*u<6X2>!Zu4P5-`1I!V51i^Hw#RIJR<<`Cca zEd3!oc^Up66|hHX=U|aQ>FIxu0U$@SGb!!c1zgs}5d{OYNIDjhhockK)Ha|8cc?xe zzvH~q523;(YsIllI_ZKQ`Tu(sm?-uR2$lwAdzB2r7DweXR+9t{JAN;=~A>C>^ZBXOro>&+P(? z(`0mV1RbDcU9AjL!P=;Occ&iIH4ne5od0ZObE12f@Z?8{FOtjS$MGj*?g{vcg)Dxrgx<4iUjlrd< zb9HWM876)`e0hAj%gXAa`+c(ps&)&_;w5Q4NqO6Fcxp&i%9E7jQRl=em!53Qi40sN z-TQt{-^PlTQ7wCmc3Px8?j_Bz)!6G|+Hv8Dp@W)Vr5twn&2aO_h<|yz=RRxul7Hmw zhQhBcx9eS--)iK>HZ^R$KmU)BStW;`=(*ncl-ezr<*i;(d6T<3hHn4+m*4t~%Fqb=T)Xu|*Q484UGu6~=jS=mH)ZvkX219O`Omxd zG-~~&@vX{|{>=lFJ~WHRMPH5*JJrsZ7u?n2?$rT%cCCFk)Y)U@lZ$p>ZI~dbrqiqZ>CSq2wJ-O^zgQ0!>{+8a%XXv>ASBrWAhgr zH`gENd+g$<-GyUfuAYCKv#8>Eig`;McF2$9T-tZ%^!Sro$6d-?dur8G-qsOLUv}@c zy4lvE*?jay_Yj}pi%-MF`ffdcH-0m9{9Nad2k+}|HjFo45WUXuvCEg&(^o$}-J`xd zv-d;0uVY<8yuVLZ534I(v$#0PWuc98i`Zq+7ncS<9K)HDv*^3ckzFC%Mt2EIE>`JU zv+CoM6mk9OKi-8cedgeKPQQY`cIdY9-`e&qzPa#VW0#7*9^VyQdbaL$O^L7d@m~4{ zf0~Yp==-0MAe|cl;to29d zMkg%jb?be|(_tr~^oBsfz!J?`!*?N)&^Oeg69blg5=(R(*IoRZq3FpzCN~=Zdu}-*o5=i>O62W_%b=ffIxW9$A>P77* zMIS!j%=uPdKXt3XbfePp7jb`1uWor7RlGg)a@eUk`4=^g3aVb2@6cabvT)tqvH<5X zy8rU7zALC(a*KbuF&=HoUP~?=rt38I$~Zxir%K0f zqs}G$Z9G3Qyn00U-FITAr_H`Rx7cV;@CUW;y%L7K-Pe7i!NZbM(cbnUM#^0ujGTVQ zzU}ObcX`{=Esvi_JLVb}urFFAK1tC3=pNI1FLW;Lbv84K4j(NzvH4%#ssp<>&;B#l zZRxUq%9on>#K)HvooYMt$^YALPN%E-9^Kk{CS>@uQSRxFzI>avx9FeB%;zDC=XJlj zXN=|t-k5i`*QcLX-@k0>i0LCwT#g)iar>LwGqRR_d~v2BC-26cYo2-2kHjfo)#aN! zkzTPqpnt{f!Sel`FYA==`r@xQwK6OyVDjZZtd8_u?$GJd%DHLtLZj@Z zYx>uNcdN5Q3}(%{7cgy{u4K^f|1=4cW3E4|9J}<+lg;5L)te?7JsYX{KJ)4Om{VCD zjtNdW>a5tcG`b+P#qn7Gm}>{Z7b{&}IQLXwVd}!BJ9(G8zdANH#(&zX?PtFD56m7^ zZ{)q`Mch7*#r})%_a_cdujpgYy|;t2QPTd4x6S%tGsp%y_z1-b{b^2%I;J!HOtAz_55eC z>OmOC4XK1TYW=JLs|m$geF_+6gP$Ud$x?vCEWEWZ5;Ikk~IiD(F=~Ow{Alpf@Lf2ah0gKfVtMvQ5)K&S*z6~N5VtQT@ z6GV?{_bs{EYJ8=UH$6@%P~+C!#G8FpJ3TR5dpRYI7`>^T4MFU(ofb8!P|slW3K$6t5-I9n`}UV{?ejQ5VU8n&BR84Hp(-r0+(V5q~?Pz0LX^kAa0Tla4KGvF2HK5<4U?*_7w>m zRCZBwUzN=iOMuQP9g!ks1ma2o!C$h#I1t>=0c52D{VGyIfS-A$bM}=bEa9^lCq($@ z&7%P}=C45Yeqi6t%{e+S!C@r5DWDGSHIv1w`v9baMFP@uK!PWW_iXS`>HVA7QE%A?%m-*( z3{^;f`G0u(KN|Gs&peyyS%LHQtf&Q)G0(~xpxFnUzjz*! zI64$@#^^0do>2z*-ery19dp|n!hUaU4u{e??(6H)5z6S&(TTZzy`!hvC*M`o6cq^; zPY`N(TZfft{8Hdi>$Lu*yk9D}KTZ5X!VEk!3sIQ7`qSjMwk%V2u5AI6K(K(AcQp2~ zbd|AuP#RgXt{-l`B8?aWmsTCs!y!?jJ9%{7eu7IR1aiEf+Ul2&P zoG)KexQ1QcDygekR9WG$Zrx6inPB0O_)KfgH<&Pf38g?-o^7zn+)*s63e_T4#f?P9 zM5q~zXd1T?8rGl-BFmQawq#wbhs!)=v7|Wn4pKt=wXiXWM9%mGncS33@glPg0Yjx{e`l;eP-UQ zb~6$*Pf0XTHp}c%Sj^{?kjpeoQ^pQ{Uec4%SD2Mws^vp}3@9ySTgYo)t*^AL+eUbg zl8x-2ywy!vET7ra;?a(@9uc;Ox}jC=9_w8`>oE!4+?xuhLKFNttLMYx7OWh7H0k8`s zWRI_uhl+m*a96lE2&jHV9yYBZ%fy|c2)5DV*+#r28r5s(C46HuVA7O=RbMxl{goWN z;#2HD7F6UD>W<@ORaZ~q(sAeSHszV!wBo&~OpXMkd8T5j#>+emi?f-O>_C zSDj$SZtshH8Q&o+l~RHvIrF1mv~$9psvS)_}u zW48NySGG*~Yfqb4bO@w#wsAW4L6jQC#vuaL*K*d}0b5Hr7zsHp5Z@(EO$YnWDBY>b zmr0U-yNdaPBgI3u3z=cvva8qeqb!(lcz<&2IyBcvYy-eY9093CiC ze8-+^#K7{ZD|T+XS6wv!z(lida`tk_`iHSmH1Z1t!9PU!ujMg3eMRxRCc=Bpk=PLa zgh}{6Ot&!$gezN3Oe|~3%uXzc;yLUzpg0G7$rdSprSZbHGVk2(JmXqmw5P5cxaEYK zT-!%39apKG$eDpM4-QIxn5oH7esC?Oz%|QCOPNgx1Zo8>xcN7J?S{+12{@mW8nR zgZDH}-|NlgKCDxdldIb~>3jfI=;_NvGHnl1eKz|-G+>anRWm&M=HsF%pA6@0I<$%m zN0ZWKD|jtSeCEn(d#a@$r;%=iBvkd~6vRKQtdD-LsXoc7R)4^857tZc)6}q~mhgV& zTWY~q*N%*Eif}328#!GJ)}w1daZOM6b(A=$F+^Z{2vDy`fEoKX&s`8z3MZDzOyeXp zd10|tAE~C(je6A!Cf46_WQgI9U*v%sUfc2r-rlEkzCvZPknu@1IwLDnbsE|#MOh~C zZ~DO)Hp*`kbtG6AMm<{*WaFV&N+>b%6t1WU(q1mjh{p;E=4(1PjEdT7Q%)EdIuSSk^(JYlnc~No*JTXFS zm)de=qFw?augL)|AQDuoFa8;;zoaps;8sKx|+n~ z0;V4>Q;ngg292x>V^m!bNi&Ai-2R<P() z+W1MGx)^NEC~Jh(5pVTHM#}OM(5Nnh`y)OHt$cY`ArL?ySD(F~>>YDi*G(51X*=wb zd_E7|MTrAJ?FhkQH;^wdgNtE$Kr~a2wi>&zDZm+o1QmkyWB+9zD9c zgL_f&ghYb8Fy8~GUXG6$d#$I}g|lxGIa=73l8An>5I^ZX9t^3TQTJ6;4&c}1P`4u+ zhwo;(-OzW=f&!KEo8OM-`tKE+<^?Jg% zEllZrNC>4!`mN?aAVL3RpE)+=y@(f=|AhAK5s*(I_ws>|y#jpzH2@ z#R^>(BNHi?W+w0Pz(gt*<{~ zbqeDR3lHP()@2*ld?Ju{fkTX+^L zJu{?#6;1!Dnj-0+pa0kE{S1cV{~}-stN*;=FGcx`ezBfm;WI@DOx5~47BHREg@o0A ztZ%@0lJP-Y~y4)ePFz~^NF2eO(u0Mvmk07(8B&x^w) z<3A6*M9Vx2E*T8Wwd$%eLX-y_EBkXZ^gm|e=Y9XjBn;4(e`(o&j|UhR5it0M=br4p zwiw_P0XN-jm(nESEWFJ`t#;H}yI zgdJ1INtF*Tm-WNv4-}Mb@jwTTbhcX~UwtzPU76w>Qmh)jDH9MQRwWdAJm4I;8d*YM z*hPyrE{H2AOVntHQM%1N*^fQc(mT{}L}v_^9A#;Oq90Mj(Qi0{cuHXd(gbT~M67lT z5z>@`bz;`xez-!9)g(uPiX@oHO4woh>Ad}8i}~{tX3Y6V0dDV7P!DTe7V{MaF8WD) z9RHlp|;3%KLJ&deD`I5!{ZnQAnL676J0EG|}q?8y`^f zlW9=FECgnEsCDC`F*kVEXI0RPubi6wQj*cuS-t(H?F`dysY*TG}S*N+hT*eTEsU92p_&Dd^EH4mGSOe`6KSWfsuV1dGaSIa!o|{3gb5;!PT8yj!g4b| zwXID)uy!@ZIt~waFL)aFT(3i{8|2UQKFso4DM{L4Gwd*nUj73r(pTIZc_YZ$+0lqG z6i+lN37vB_FTs5YUij72wcYfPZeOVQ>nPR%*|hJjQd6x}K5xexeWuT+F3xjT`Sc z_<~=M^yN+YKcFy(Pi^$Wda2tMWsNX%)5Nl;KLai=OXnGTNP@E(Mr*Z)8ssg9vxr51 zshOt35YfqO4Me)@Wp6dK<*pF3q?a&8`&K!5p#PiSp+sz<^_wIQ7$<5mFeT8+~Wd^WnOhkrn~Xy#2>kjXO`J&6e<+2X6jB;}VByQv3` zU+bYO!?89q`Rb@WSG>IYaRK1e3ai)Np&buzmG&O;DNu53UCT~a7pZ8vi)cLOUec1~ zCC)89GGtA^KeprKEeysNxm9Cit2fzw8Zj*5g-%HmJN&LbIo{IeH)~{x8-6k}2zdG9 z&Ly@=OV_I9bu$+A0VPyVb_Znuw(GPN%=&PUKi8AW^3t@eF7(_{iidJ3{o9nA4Sxno z>PsAHGIAFJL%8+b?}H_j1G?B-=4Fj^uX+OIDoB2VFxZBo{mJcF&kvQ4U3qaOMrWzJwLqQEYY0KPkJS@D3=?@=+t)9ktf&(_RsS3D`oU}T^eqpAL6-`AUt(D z-77O?JT(E;t(PrTG(wIWqAIGh9~t#Q$g#IhRBddorJ>#2qMRgt>&%O?=h^Fx66q^u zVpbu}sNswTg$kMf+W#%#^H>o)+Z5hp;bkz0mj>gA%4{3;@bl5kdr_J>vS3$eGvZL3 zK@+FPEGo79s$jK#`pRzhI|^cJu=#~)I0nL-UE6Q3SL|Q!@S=xGrtJL!J@hJ0ZKNqM z<1E-?it~l0t*v-ErZM8@x%T~B-$IPjT*CLK&&}coZ%!V` zIaw3D372)0Qt$rdPI7&?wp#rq`X7*;uD-S;$!w})_55{K_gSFly(X^NuAXQ{)~ObH zK|OlR4?|Nof$1z9D@OAG3bFf{x6I^}Xlq0_rSiRMAxjg{r%RQ+Zv0+$Fn(R{1T|ob z%Ce#}CQ}b$KHi$tag`Q?2NLZ4P}H^3uf~m^W9mCnE_9s)F^N7EN!6w*G@mMzm9BM@ zw4|yM=2E@-1#%Xwle530DI`AXKqudZtj!#ek?J>}1Z!$Q1X~{&4OLi3<<)Ou& z^EByZTizRSE6e}TAYlqoc`8C7g#H8av(9QXZ-N{gcwmP&*P!q~d4%KEefK#PjcCPP zx!4Ti@jo-lS+xaG83t5a-^dc+YBOd2KGXiiH^3S7x zxe+f$mod5mvOYq3ub2pwr{#aqw96^{w`(C$ou)z%?9^qN-Epn=K1# z{blqxqLggwDGt(9SOHlko0wRNex`QzI4|7cs1!z}{S{CY<4#tqNXp$izhLm6x(boD zPE*#!?4UW>^IV|W{ltJn=u&74<2}|mAZjlBf~3F-`5c?&wSNXFqmJpSvos2^ibW$D za_^QS{82@RiMyHrQhSdzxpQ|50`SiZaWunDRqGb3X%_I3w(PAlaM}=xetL) zYdw0YB7eu(-SlSlz*j4a{6+0Sv(J3T-RDE5^kg%pAOsNHWhtM1ae5^510J1Z;V$Lj zMcK@Jc@<$TfS~~xTN+WiG~@>RxG911swI>BNMbx+{~6%R*9WIQE| zXrMj+%+fw%?Z1E+Ob0Zs0sIP}WmF)U8`va}FhQ?c`rKGY7|bO`RB4&ZmR~ml;8Q^D2T;pIMd|F%%yA?ZumEUc39DzkS^~^@^K7+y z2I&CSMpi2`j~>V5IDF#;1YJBM(Y=2^_Ke+u2QXpszeKYvhZ05>z-{l(0xb35^S;3h zB!Ay7Vfid0L@3}WGY4?91^}Xw)&5-q;P@Hu0&f6zmk!LZ@t+0UB)}(shD1+3{~jNh zKY*=B7TBuS^Km~{8tgzy#q)mC0fg;UKm)9OL1wk{cW5I-l`e`L&*vna{exWD^B$fD zEdW#?&zo>9GtagJOb@aEx2*!KMYen%jlhH~#~x6<=)lr>!c61Ud`H2Ei`$iwXzhw= zg!m-!9NH6V@-+hkTAHNwGdTJNXMKnr0oRcbOXX?hbeQQh^NM@MmwxDGQ$|Gs2zMap zACOZijP7?7+;q@Q>7@1R_)L!docIxEMUDiL0ZLZVfe{<3pz*0hJU2F*6y;zKev<`j z+&?i%TuV-wcg{Y(2hs4qcy_`p44Csbe38z+bNxm&yoFhqBXmq2z1Imn}VT8ld_4Tz`&R|<5>z9$8S1b==P&B z5(~j3Y+nl<$0_Kym1Vlg51z|YpGXy{(tA9!c0*OxyDt^U1;aYLZ^TvlEkPJAW1M5D zlwl)zc$fCtB8iCQTe06q!<0&EMt|)yLMMn7W&KD$DRZtbSZDG5j`zn`oyiL6&Ue`znJXRm}(=%}cAJ!%6V(~|wN z@{Jnf1v6Km`d32JM`6A-^obSS%2r#GV&1B^2l%!TCN1WH8DG;*v9=%{8nUQcMASiJ zLNjTEKd3@~J3TT4d$Es_vdm3t ziMAvlZ^VpknJIrX)sA#_Wk9GsdbV7Vn_2=Goc4Lj7SPxG>_A~im&bDq7ld@~L3L1WV!B|nyN`lutWJaQJr!q>- z<*01gKqty8!#L0>C_2F#d;TAg_nd!ftxkcWH9Q|YvAZCZzj{!*D)E?8Nt+q(sCy~x zYL%TE@mJTBs8KR0gd2InOGto1^767u1FCK7xEnO*Lojb={djSoR$G6aF#D)Aa)FZ% z-Y0w;{GUha&Ljvy(P!u7`l`}g+}Pm`n{iOl`7fXvgC=d7wldwp*&VODXsR#5se|Qb zyfOnf43f$lg5Hyh*9ZJifu64(2o1c#irLn4N~hJKKBlydty)@bj6FF+_&c+U6HT4m zY!W&uQq+owIP4Dk?iuq52R^2SQKW5+1|}5j8~t$ zm1Z>8{A}34Z^#UoTq-AhIm?%|I}?|C-&Mqum~NA}^OCZwk-bjc$Zc;!!;3#!to$73 z6z9jeystCU^`I(VSI`yYp7syu1*ucNQ~#k(34xO-wJw93zQ&8jk}%y;JGU1mKO~ig zX!y~ivG3-R#_XK0kK9jf!z3tp2tPG_TGNwuK6Ie`Sy>3(P9nKDnOjy9{G=h4p)2bt zhqfZk(BGuPlxiPax8r!QG)g9kZ~wl; zw8l?eu2su=tMrj+fQ=;i6x~KD4ekCkT7K+16bdoR!mP2>x;s0sdZPc9sMLkixW9uP z%(X>GdSH;1%baICSGVy|h56oZm*>Y7!rDI|&Pb2?nRV4YjbDl>mYkG39FkKMU@e#l z=zaz>%(bBG!10%7JqPgJ#BG9@>9K!Nw#q!SF>Nrvgi9Vz2>Hk;N#Wz~=22`FLmu?> zUN(kiTHj-Yf%gK>^ohKLTxW)(8GOe`HOG0?*{aL0b-WoE7>~cyh%_p4@|3Ab=~7|+ zW@Xr&{}*R(-;I8&-a1@PTz7?^uzLG=W%}mHP|{#V5VLIA{@7G}Y}SWKPEW>cKZV&9 zdvg!gTLsVE#6UjRvc?5ssbmimyH}|{(3-uNU=~i>4H7>{OtFLv9uF#%>Zgtvk9HvL zaUEwJLh;#wWHYTR`nQ?{Dc6(TU*0x1E4g0A-)gkl*}LswW*=cDbfl;_f64xGRkAyo(Ch5ILQQ*Kh)su@Nzufxk@;0^PcV|TD~AS<1f zr%M;yWveOVCKXceP-)<@B1swE!){K~O+e9mDlXq`r|o8Q?F?HRY7McGrkF?OrJYtB zi>xKk(P}jE!K-jKVI@k6DagdV9%azas(NVmS+Nemv0ov$4G#Lv_XtkkmCIh3fnkz- zOj(4nB3|O7y|a(vX^co|iKmptAMmL#Jgn`zm${=^C&_@U5A+H7;>hR)5M&a3tL2eM(wSgoVQnz8cYl zQa4wealw@|I;{R&3I~#GpjQaOS^A5*0<%jyZTvE?Rt>x5+;3t2`AtkWKXo{!*gh6~ z5gjMFlO#R05j&8_;~JwZDCo)SRvnL>Dg$&?=kgg6#vUy<+T&Bs(@gZ4j zL%~8q~~YbJJ}yttdg_1XODrXBxYJMW8qKZ|s9oOgP1{{9>FzFgOZN`YZ4 zjdd<=da7MY7z)0>hEiSo8BNJ1e^ANZX{RNdX&lLG1E-M1_88ocu`*GPCOfUjinfyz zzQR@o4qU@y-}6i|F|C^z2`b>OI89S+Z3iQJwOE!5v5)Cz!hyO3n0?vuxeig5eP-nU z)gM0>EauOtRUD-N>VK{;fFj}FY6VDl1Zp0YWe_Y90T~qhLhuz6Dk+`@b(qKv5B_Vq z!N@tP0fJ4z2KB=-I_h+Zw~7_>PU&Ab8ns31C!?o{+>ju!{$zf|QiM?kkG`cNjSG~D zB1sM&HVGSoxVK7*jE-Qs*2g~%>~xyMlHW-tyRhqDMqwGL3`!~_?N*Su%St08@Iz+e zDcs(b{$|bsX&O!;AwnJ!A4BaszGJ6|h{n6&MWO&y1>l%(;qs^;8W z;Df8PD!?;D$}-6>*hcW5Gx754@{7BH$^#(%pO*?ib&`x%D=;~Nr#6p1kxB;Qb|8))i`{%)A#)%Jd4H7ma6aUpJnMMG!|E*X4EnuGOp8wQc=6~xRpr!G* zm6Bq$^KAE4Lbe3lTszT|CF!8&(g!R8G&EF4p3ULu>`Dk6=FbfXpszvU1zeZXzZIj@ zbK`>@=x%5O#&Q&({qeW50um)h7$;PoU;lgQw4b+|0$gSw7Z8}OV+trT|Hm}9S15%* z6%Abc5rN5~=QasYk^zU1ALvz*-WM4Ntaz?HfuXHCJ6)A(@o5Sd&M|E*1UeCAU?vz>Mac!G z&(5G~vlK?5Z0hzdiT@-4?KsfbyhT5AwCYQGjBbI zqKr3^a5K;0y31~KIM`X*f*uM{5G_JS6;Ot1c2!#cxLBcAr9FbB#tNUlj`G}2>9QiH zztv_jqiQJ;FtoUWZ%p}^Py;9Vy9DwR_E|hhYA6fZMf}ZrkSM09Q@QgMF`EOZmfuUT z{VCbV;!W-aH+;90Tr{~+tiM$G{)tp_Az0PRo=Dmx*xUW4vTKMY!oa1T9aGLXvC%tl z|LB}k7k_!E440TA-U11@5dK%qlL0F`AM(;*$F?LS+5dpp6;=?rCON|Q$;5EH{lF7h zGEhs+4=QKJh{hir`7wCOo$hAJld&kMH7WlP5Z%pqb(kh-2jJPnH=fH{)Iind^@g1G z#jr%QBVgFGO`+Ff#6whdIf|$vBSwVAqi8sa0+;0AQHC!b<}vW%qni=|@3U;7II!yF z0L<^R?Uad|=Ia@(6s6sV=ar~+s$Id4Hje$bLOV$lrwAnQytkTaX69^aqRo*EZv{?e zSvBJ2hDYMFy~w{ll*g)`iFZ{_ile0UyR&S8h09KEXICUOS`xGwnWE&Wdh*jeDNASt zeWvAg`W0j4-ks0)vmN!+m5rgG-1!H9&(;&I#s(T!%c(U|iw8E*q5@l}4b_+NHNWfm zc3fQGe_v;=Ec(On*`mcZd{s%oY09C6lkz9`_4tA6Vt*HoI+?D^frE)YS58sC1Lv<5 z{RWBw^|)XH0UQaT{N`)}Hml@lTKfI*0B(|1Ms*|`UVbuU3k=~99sZXfa zhp*VYDx9t7IMxtH0RQ?9or&7tXsqy)K?%401XlahqlG()`CTWbRHRu`*+8Ufn}jIu zurDBfv)EdKpo1XYxUW_*mWGWz6XJO@Mp(}6N3dBs<>bcnGkhz);Nk6-hzM_)JD)E% zTdx^*iZ)?_Cqtu4{Mcx6N>=GloQEayFl|xS{?g2g{vpmOakdAw)cAQRC<&DcILQrY zoaWxoQ2p8S7l*_;xRBT<_7h9h$Ejh--UGce%umT$OUt?jUeRyE^-AGCDac%pO;#X1 zIKa!f_j4%7l|sdiVC!VbF|pyATX~JLk{?r@0}l^Ss-;QA9Y>@~B=++sZ`8v2rX|rT z>Tz>iPV{=dF_^YxRc*y=CX%d2ubT+W?yX`%WNo6HIDd7xthir5?*hP8XI$BK3G^nY z&K=a)BzA%URk}Da)1Aqgg+L?fO9W+WXjJ)2%F7@kUXuiGKcCq@P0iAjIO`4 zb-;yKoQ+}c*`x!ICy@!VcbC#jT53Bw*>17fsRCk>EG$PE%IoSs2HQB|cy9alH=XN| z1!foE@2z4@9=RS-e=?GYM@fftCSE++SPD+)@N%6tC$)2?HMYcWI~qu;Gxn5$J%6)F z%C!6g3aPZ?m`PbCYyv$Qw;$X65fr&|yRLA+*RP6+`TpZp+9d_s0))Z$4~V&`LU#JN z+D_xGDJs100_l0+#rW0X(fn*O%qCyp1@lpIjRJIMvBbC2^%pwX0{)QI_qr*~?=4>P zl|C#eO4lJz;cP@bR+H?|pQ=2Qh;ThzFL4-c z)pozwulXkvQPTJ24|SJbTb{YCM0>E$Fa091Bje`q)9wPk_5Ey2Q(oVxH&TpHxo{Z4 zP`?rhT%40nwq?Cp{$!&8)h1x`is?KR+3BdVkoPLESun#A;Qg@FLPP))x{{t1VyPc+ zmQPOA>B#|Iw=irkwP$kh&`7L@T$aDsR-p7r;C`=8Yw!2%3XGN(Q?N8}*e8P}#j{J| z<8r4l{x-6E11Eoo3jyVm^c}#ZP8CpTTNz+lW%EaHBB8}?m=G~dtyVReHhjyh;Fo0E zy~*?rC;$Dh_n4dFzNOd_r~pi@z?Nxfcy8UG)b7z7lZN>NFRm4a88F#;?3~r`DN={V z=FQCa^td()^)IOE4PSnAZ|&e?AxAm*h95Ro!<>Z+zF@jwmB-ezl9aR%L7gU zc>|!fu=iBKFCG_cfs7CWq}MsY`^^ztWHj|(q;P#DABH`bKL?s3fMTD3>|ED1yk&vZ zxJCOI8ppvJTCiZy!*_5=<76*1`K{#^xLd460`Y7_cmI$pgUZqsY9IlV%S~8aCm*_~ zSd6s7s#dhHDY3p;Bcn)I|7=PNWjIvLJoW#qGFx5a=A*r#7KV>w&I)A8lCeT=M^wei zJ}pCAaC#^*NrRc;lw1Y`og$~o2lG7*uDv!Dz6^{myV^^R`@7|IFvpkRYdFtFmGt{g zSnCGUv$jc`4D}qe6btS>BUlT)475@Q6G!aLI#>&X1!4R8?ZqVVfbF$o@$ZNyy zCYYIb+S)R?cG%$y1ZxE=GAAmZ2&I{-O55t=xxKV#lz;36%yv}qD~FxAOQMgr64Adi zocr*}Oqmy-QY1W2%@MG1;{PoSiGXHT-gA>kEoed}dK%|%XX&||`21JOwG*kPwt(=r zeFapWMUkWevm9#LG}`$EV~%xPFZV*9gAjOy+VRsi>e)xVHCzS@7Cg6X_hKfS*5Zg! z5FedB&cXALiFlX&n0U{W~d0}icSK8~_%vLv>ElS9=A)NZ_@X;M@=WoddJ^)j? zS({?vZk?M@&^C1iOC7o3;iZ<~I~DHwnDL1%{Ijm7@J_$r_blf-{kz6QUSCB0BBvbL zfOU1>IbB?5>6l$Orz?Cf1%(7~0e(YshF0Y9c!BWAYZ2iaM>tNz$^&K$g+3)kL7xD| z89a6nqH0T30ZNHNr+@OIzBoD>V&p%dcF(%(g2xNB;+1+;0}S&WtIi4LlU0+N@82&T z!2)-UV)@ zC$Bt1mIi2i+b9=_cgH?GX;xYJnU30HN2sx;M7!=OOxzmIv9qmo7uNA7i7d%nc2kf% zwcbw)bDjN8V=r66b}Xr0hFr~N6kyWIT9uXC5U{y4_3`iuC9pnx*IBf1Jfcc8D^~mv ze=K~a*POCljSv5tvD?Gqr}RZ2$TE^HyXzoK%5TJo&(T{x=Eb?-U5Y%pqW) zMQimeb_B|3)L5?o2P1;7PVaIB;RISH3pM#S`v8LspM((#5|mf&rhHVb>UCr@uYg&} z#~_$=vP-bc<=u3+fO?@qQOcen`YsCoZr{v%Q(0ZBnT=H97VZsU*2p!oug;wK*dumS z)P8god*qBk*}-iodSS~H`Yn;iO|Og$>jS_78)EM<&uLNcm+7hT;zJb zYU{a;hVsg?ca;fY4|5#(GhW%bbs)Z>EYhNCtdlfdiHFt-K)yJCX^&{BC5+i7KRM> z=o7?sH(Eh?8z!t~xUYe|yigTB)|#I`et+mO`Hr906crJKouucs$ops=49Z6~W&V-* zx{S3>O9X*d(678b}1=xN}Z0sIznL2k}>L*&H5L@C1Ra?ld~_b&N&-&PVT3vgu?qBm6CK?j~c z9xYj96ij{VHX?Ws$Lo{oUlPMn|FVM~2D0}rKP4AI!x>*JGr#n8qx}bj&o=nc$rHDo zMnoXTNvooK+au&U58I5fe>(Sx@b{-q{ zbPhPfsk|&}ru+H9cqI|So<90Qe`~FU>i$gIt0Yie`XpW#N3NzULitER2M?aKB!T@% z*XhlB{WZR6sRyv5f6~vbOxU!$bnO4n%hbtP1FC1I6xm3KB=>@Nl+V?pgtxsRn%#yE|uwvk)B zN`Bh3>5JFOpX1lR7GlOkt|+$lPnHd)e6?nSXjfWvBOPTX(kS?+72#K6)g>{&!;&1_ zPJ&JrYg>>IoA+4X__KLYc9}T&ym`kM-x-;kx6gsu)0v*J=D`SOFx`QZ8yR`c}rKPY{OX*FScFK3dw zyF6ppgTS!>ZDiRW0)@*;52-xzOnxj6;@Roh z>V$H~zhO;yZS^bkBML7ia2s-@)yt2-V%;o*DJWCqdb>waNVZCJ#*_%mMR3qU@Nz-w zQoBb}nNM!@6QugSd&>A&tZKGdt82-UZB|vj3)Cs*+~^{fX)%Q%kcXLs@KfvHCGMCr z!y33?Rvy~ir;>{bLi9-y$~1d6bUf9mX8$a(U=nsW7HdB^MWk55fY5F0emWvs)+Hrj znT+Lj*HTdU(`>$?>HB(_w-IA`!~w(#UV;Z=P^QLfD_kl==@tmjI%bu|(u$OYh2i=7 zXY@3I9HZ+;8>18r1P1eV?EY z*`F%o#S>&Jh2LB<5DXOCS@xIj6j@Dh-d)5k!`#Y%Kng27t;(Ql5XLTWQ=t-1^6~?z z4>M$gXUuOgFg7LlutT&5DCtm<6MiA=31LlVWZhcq-2p46pT29*qRX%Wax z9u7{lVo;J1%@Ld$sM8GDAm3GIBXo#|q^s5Gd$`E7a=-A}X4 z#Y{>-SETK8l+MZA>ni(L)yzznXnXbxB0f=$EV-cvlIP?_R$ZOR$4?ac{VrrHy+M=+ z^Y_=B+Eub1E<422!tKa(ln0*2{>e!?JqlxKl30VfYpN;8ML-rPj{ogT-%#q(aw_GZEjTIy*=f^Edo`@vb!fP_AB~~M)1;tlV)5p^F?sbQe zaqZ~wqs5!Mw({It%1H?1!oE-HQPB4K(P_O!nJ>~)bPx#dc9%k_I+(=yo7u9FR~f0&6l}h z6Q=1jK7MOg@UT3=t}km%j+%GD2kgDh6HD+RD1-8$Z6{;2(KEGMHl#C2LTl= z^po2sq|PzVV!9!AE^mM8r>uj1)v4&jK?1KFq8EaCJ{rd|GhZh@IbOH;6b5rk8jW*- zjLz?7u0t%#?G^|He|=eHZ8dRd@rG3^=ZX(Y2oA;haF14B@_#)d*sPkEF(I@tiX&*N zm_XY6S*Q2YFzp?8Deq;dlDF^On?2WmK!hx~(rk8c*LkX~QfmsozT@xAP0G7DPDwJ< z(_bb|34>#pwuh|;%}otmniLCnifr;4TF=~TkX9aZicGWLD|;?Y`t@(0mmewiwKv8U z=UBg<91o222}M{|=Y%Ad4%Iv1vV9Cwfg9-8d)UiZuQu|aXJlvnfd(D>_Da4UW87eA z(TbI6hLFRI9N%&+!p^6pmpo^OQj%x$tQ`#1orX3oLH+<|J@rcTWNtE3w9@)un(u8O zMzX5^xYTTeFGKFd3tt#q;v9LFzIA$NV@h{{*+QM90^BjEyh`SbnHrbX*A^u45Hc4J z$-FK%aTwsJ9H9Ap(12!ynMz{B=ID|*jw5)`p^EIw_YTP<7)4o!sp%!hhGP)d5HriK z+A0YtffX5Flw|_qS>%SR>Sd37e~X zxAOOOxXxX?k4O$voWwSClvAcj-xJ!b*c;KW0Ic(&ZN+|_>C(h7VL*hAeJ&_Y(R)X) zBxOx}Nf{DuDFnoYk|Kl*hCqbWKRb&^sdnY?_Q}gP`uH@5@oYkHMjBg&c7&^Ju;9E8 zKtF}hFyP2$rUJ}4wD;R1A|Fe*swdhJ!3x|gl$Vw7-`ALCF)p&d>ii4`fsvS8ReeJ9 zVC-fpYO#cSA#uvO7HrL2#MGl{VA0#~u6f3c2bA5EgSc&0RiOTWY36!RS{d46iVinc zw=e%LdsCW6;)|v3Qh)obao-au%X2Ko{CF?5l6l43Z);pPwWH;G68^=N zt(b*ptmRN)oHd0i0SWTLR9aG!_U#z(2l8-0;^00pM3@80#JA}4|IpG5rPaiIS8yKw ztK@#O(0>@CGTbEngUg@hWI{m3qFPRA9>h8NBikmB&|b+I<-S+9xWUT{0V$d>kEIe* zVg5d{@c#h@LHWLGc_9fTXKZeA7`Ac;>)xZucRXpaTWS{0M^jEJLf?YXwH-<;ov(8K zaRFIRLZDzT zUud3ECcy-0z`5TIL<< zGNcaK&p%%O0BZIf5yq+E%Y{b`7>KBjMHwtcImgcxqUy?}Y?!#l{hiY78#>8SZ=1>o%s1;pT^Ih;ry!H8644Pnpvv<0FIQ7 z6-Umo__^?TAC*T2Pc&I(o@%e+=fN9+`Qo*-k~zye6ZNOI$mWgL>Lj=;$;?G?K4+ig zE0nplV(l0OO7hwJ*F;PCh<6?;n&g#|d0B`oMXs1m&W{F6UD;90N zaHL}&PW5K6Mp+|~RTfECf;l+(_8%(B^fR(SoXf%rjCVCF3!$I0ZQ!a!o{+PnO$Mif9y-1cp6`BPTyF4NF-H z#^{T_b#TlNZ&y#sv6MGulkh{ev}WNo75uFp)(hp3dgqRR zyi6MCKcDid*ln34WRr95P&W>F9sdB8NtryjS-}JWk%A6*;C^*n zlhdIU_F_SmxbB3LjC9ZXR0t(VWJZygCo8lLSpNWSwUxcb?M0&VG6*|HI)ZXPt!=+p z>}=z_@`EdE5h>>nleizI!}*G&FOg@oX9Sso>rb49-?W!}<%q_9fDi}Ts-f8|Qy>9V zVqge8amXK?M22aN(!7p#f>g@q3(j&0`@Fk`H$AFo)0?A#jrCZ%D4mBh#$!Qbq`9oZ9XYfY?4TDzcNTCgZ81dXHbfrYamyBsZ`!ouOOv&1R=luLauC-e!!{SZ|@0J>FuD0qgJ0Ce$GS;4^&% zcO>6OD`^t*Mrt6`AU$^vsHAlWhedPtsp9^KJjt;t-+P% zThUbBbfD+WeEn)fSMH+{0N*jeqk{@)vdt<{2bwQ6B7L|doxE0=XPHO_COep_mf&!4 zkIu7FP0^)NvPBgI?9@-$7MEC)>Ya+x~2EO9!ACtEjKCu1uLOs>6um$FXniT4cSrkPuie{@yAuMh7HQ zAez4z_$b>MxtJXJ(tq;Ck!fY-M`QIg!ef#t;-_8+*w$&2@XF)wTRuAH81ql$D^@EW zt-z?HO|nwzS1Z?ReML%-RE@ZiN}rb^s?V^X1Ky#Dk!2dg!jyGN3&RQ!!qIO(ZQCpW$e({1nwMPb7O&axGQY%cw za3_fz;7J$_xDJv;$u{KHI{#7$nj!im5MQI6G!6kdP5A~&H ztESyCp7EiTMp0NDtjD)pdr>B{Z|S+ad8Kjy4inNjIX~0AQc=|wi&kyZ{7rWpvD!+p z&gA+*8%sAq$m8^`iYvWZzd>zvA2?8JQK!1Q2BB)Iq6-7hPpkp z!EEjxYlj}U-pmR9RcKq&WJtNPYr>2#5f#DVknqB#Qlh$6j9$k@Dk^M&(MpO~9TbTJ ztvXnsqP0nJ6kmzC_7#LT5?r}hVJ(iNuo$Cst%R-8BvY*ya!Y5kdLwS`t&#NUQ9o)B zPGTSYwIbA&p)}y?MU@$~b?$HmNj3 z;zGx#BZ`SeiBhuujE{Qcyg_u_b<4v zHa5(ymLw?mtlnG^$>--$$&DR&WhVfFeW)y;^1`^Wbn&>_>WtOSy=kjTt=<0q3- zY>P*1BtqpwuHn>YrDNyAyKkDCy|Y|m%OfzrJC9SE%rlk)w{uZ!ldt%g0RYUIKlfJ9 zLkxllJ;iapmGqW5?T)p*F76{$5y(|npr;^S>WMUwMv$wLU!ARt51mq9c_&wjS5;tu z0)?_c13%1StF=8w`JiJJ%${QNg+GhsRj|sk#Ij2>M=A9-d)FpR%a)Dd9T)m+vmHtG z8=I1dcQ29@lh^d=SLao;DgOXejF0k~;2_j45_F1Z-ME2~_;6~%dzRWtu?2mq@X7IX zR#D#0iqlbJn!GD@>Hqw2kR)#k!X7T71te63@_4K9u2z$|hHBflm$C)-Nm-ucJ?DS|rAhqoz3TO{7JUn6Kj;{i{yk zk_;;m(|>Bz?yoQd7#YJEKa$j>cX zk~JVo#12mFz5T01=&e~@V+4-w(`67g06pc$JC6YS3UQ&? zwtHyTY>~0a>ONJN+YD^#Irqm}gC)a8j~V22BfU$sv!3$S8B6jHOk*@^m9Uk%LY^|g z32_^Lma>fs1yy0at0`F#xKLzJa8JKVE$xiZnIvMYeX5h1jBS>T9Gw|MWd3S1E4gEU zfE~E^&*w^5W0L1;VQ{ac8`K5~ z=N;;@$exj98ru|+q;fQ&LC59o)~3XZZF0lQ4H}Ol>Ja0N=pkJRo6 zRXebI)qJotS1IW&5oI2)&#g>kGE9u4hxC;dqlNaulN-tAMlx7sc;b>khA<471QLE` zh;EE>h~$ZO4y2Bp*2j(Ix^oWy04cdm%fKD~09w^a^olg9*&G*$G6p-(zhPPVp-?jh za6gEe$IF@JWRV$3>4B1c>tNHaB~@6Vlga7G#dM~;oXu}Wl$~U93XQnzde+sAnOnGDz#1sWfG?Xx+Q7Iiw|U2@Q}spK4CaBA+PW0npYlxQRk;%8s=njMhOY zC6g!H6q+XT@fKIy8p2zt7~u}lo`6({rY&yA87urvQFId7iHV5?i!dEF*3hIk8UEF| z9AK#(K>k&tLNLs%MmyA5cMwKalL3xL6%y-Gk||wOoG2IqKhK_>D{NvZA8>XJ+z#}v z?fmuJz=c7yC?AW8<@HZSn99_?F3~Vn0lybLK0td_&X;tCe=0|lZz0ApgYrF%QZ(S| z8)8M>2pC3QGIRWfDs`I69I{U98X+A?KZ_jvtCBL{Y>OM!TWgufjf`P;F2G1&YLX9?K`m zXvk_`6S^>}C0E|tnvT$(HU2;v|W{B0xR5 zinjfoJ%Y8;paH;ND7FqyIX^&uolg~3yoKEn8gD9gSfldp#EMWKzzzpI`*Tu=l4Oc` z-{KGt{XROJ=N-7uHP31n^4w}m91&tdp+gRGPgC>iYoN5Uyo9D^<=1Sic?1rp^36oC z@ko^RXtcX)d3>9TeWpe-W%~-7X*jupQ6yVdP;ec)9)x>x4l8m^3D$06kTdUKBRg_J zALZE8Y1m2eaoa=X2aqhDtnMT>Ks{0}9C|z|Klwbjiv0%|qX1nZ7HgYvm5iv4fT>*v}ks+<&D=Vpin~ zjmqE>ahws;^QdTva~v#G$ovIx*b009059cJ{OID3W?iv{+(#L$F(|)_DJxqtNb-cr z0Xg8~sQ0bDo&ZuYSf$KTZ3Xx4AOz|1pt0OX8$rOquKaOPRAD!JIm=B0PrJ2-c~(_% z3bcuCLWaj&=k4>ZQ&`cUl4-7OuVz)=cC5papplSAQN?yzEbViq2E5XD$r%MzR3L9* z&u{Ns_PeKQ4Pqx6aI{Y_tb3*`RZk&t(*XYfI_ARN)tXIe(kP?XlEfIUbolPb9*G%< zWyl|&Pt?{redU$J^2>4MMwtX5T(XSzKd0qVw_R!%aG9(il6cgHiBlWY1IYvLR8MM> zU4HByTZK{E+PZkBqbqf@sJho|ZIz+6w^kcY#!y49bCPq{t#eT?$IRQAR~>hrPJ0h} zzr2RhSej&rjq0vn1a0UD$KI>bYdbcGBFbMR%EtsBZM9fbR=X zb@ZP7YCPLw5|U8xaHsgH_IvZH+Qn@h()o{!0CBJmFh{*vL!)T&Tl^)|u?dTU8Z&~Y zrUCXKbMrMvm95Be*>T}1FC_5vFgy{&s+rnI#LIv_$E9Ve8_OLsNd7tu2)3*e4^K=V zuO0rCJ%YRmX=1)a5vcv{NFjT2I`pn@Q+s=zMQuE%ibxy>l1YnhAe>-lk$@|XGE$wJ zK8U^*N#l-rjy66~(nGW!GBMlUy6am#D^9Z^@f1!2I|tx`KU(7@ir(Jc#kxyz3O4uJ z=V>7G$KH!?5H7iQ@N!77*(@h3$E2VnWAYWIOmfKiE{etR(bwJFOEgkiSlE0;yA9s1 z5&l5;;=JEZ(v9Y%5!O{~?kGD7va#`2r?s^EV;e;nP>-~RUYw80ur}AOJ~G}=^5xDI zaLjR&f#0dEu|inl(<>=*VXR$T!roAnZhuU1uTnY^eX6R~C>e}*D$EHR*bY>CinX_f z`{Jg!n#>7YfM(f{2eACbSjd+as2VFkZW);iump7HBl^|3aa>s(Z)YJSJJHVY3iJno zR~B9)x*AXH<+X{~P@!fZWqW>AO?wR1SB(Y1+Q6PiApI*+T`~ady?9o|Y~ZH0Q92|= zHPYS2>d)rm3yy^I$Lm)Kt+L%gB=8d|uGw<9Ja!-JRPf%ihQJNnqjVy+$vBoM%7u-b z^2M{oTaL)&T}o~4^zm~vdt(5fT5wOc2T%2=QW<2hM6|ba21#v;>F#q;CDdj|HqPPT z><3ESrrqDidFI($yNJek2WSJnDy}cUOoBv?Sx_7=QP7IH(rqJ#2abP+4#2Q^2=szK zokwA)SY1nT0?1>y1hyB3T#!e9V_03Kw5=?`CWp*p<-+UgPoKj6TV2`g5IjaS=6DksJahc(lbgt91v8DgI2fgGsWeEj!kd&gA@hS$ zuBnjek|)&Xx0zu{9pdcFPD#g6P-Hg}zV9>31JW{nRXr{Q%4D0$R2*OoXSWp=N49x9 zrIn$#$SgCH_B9Lifp|1)b<^Ruo>@b&-b8r8>w(YLt!~gh0@qOepK+&&<(2ZYImX^O z7^-)^fZVmja?2x@8&Y0C9r>y8HlKBFrCCzpU6?629E@Q7IIR9jJMw6nv{iVOQrB9& zirEw)!8jj>p5ENndM2Q)G&Zub2${V_MhO_{`S-0Ws61L$s{_Dfdw_~0$Kk=`)>?bh1`j|oxfjtNN=K)yfd^$RP_kYB}mB?AITHMCEnZBu-P1AwQP#M ziI7O}#mtMp7&`|+TW)WyrPI>gVsUV?i5f;Y?b8(=1kCFq1tj1cHUkdzJUk-uS>cEV z{85<~pd8~q{8Trxu^=qVJGSw;@zqB(PR>0DQyH1EGQi}k-xeB08T|`Z-1uQ>6Z{sXw7vde7E3$J;?1< z*Vk!sV=$uxh+q;q?OAzoPh!%ja`BP4k-!JOdsL-MWxVK9+?nII8+L^lQ`e4_eA-Jj zlya@aDH|0r%H*$8kK`(n>NU18Neirs1|%5ac{m?_wC`H&ENvcTA{oJG$UQ(LVvS!! zGIpINkMMW@0JL4j)KTWwW^unc$Itz0HHF+WUZY;Y8^+^lBxCaV{OWb)i39j*%T|u{ z9p5Q5Wb%#CMh85F9c!es@J*(>;QL7|E}=JZ##&S@f*W!EpUR=Mi>NkmF(V733l&vT zz-Rl8wK6|48;^+dHaH-0-yL)LRszO2=D335?IV%~+J^*(=LZ#xz{e{9!Po#jCm{Ul z_iUw6XAQzha;-E@B#qiqPz;htJuB2aBjKpEdnt8Gi-lSDA=?v_UY#*sS7CQ4mL!w@ zq-QZ@GlTOT#d z&W9=CZlTZKsB}FeQG&uHE3tQSqFjtr(WdGPw2lrvL`nxaKR=~p-8$rsgspxg{ z{{TIRfAH2V;mMp}-^c#|%AfC1TE|h#k1*{ZftkKvS`MFmw6~ZtPDt~9L+4Iyf07&% z{{R+mJ{Mq&McNVpI0^o>%Zv3>osH9uYp&95E}*$~o${tK0P{CFI%BO(kw)xypn}Jon%4yDC_M9? zDnxO-vn)uAS-Nr7s^pht)LZDlgN$UFSgG>qmoY}t5Tq!}VDzYk4hPJ2s;rTHGF~|@ z(XSM`^r?eSoX7tFMpD`9w<8q}X_nq!CPZ-jbORkT{Y6K;7tub{yoNpKHM%)1kd%zkb_dlOqKCbJP7Qll3Vtk7eQMTbIewAlm8j+^J>S zsyNB+eXB&#h$NONm?V+lka}SE&2Q9iBfgaKINmOdRR;21#Hl>MCh)rFvlGG`&Qk&X zbHzy!C80Lzu5t+;paJWG57RZbzpt|i`d1lLv`F%0+Jr$V3~&xOHBWPF{#!Ff*blpr z+OHDI`K(NVm~SCfS+Tf#_3cn~3tNj=5U~tgVS(oy*B)s(`8SR@!D$tjBu6Z9vM_XT zaC!lX*LF8UDzY#1U+=kujB=!5$$l$e_3x?cAdIH!a^Mmsl#bl>y$>H=@ z2&M97lVY+yH)p6jdj6l%tJc_C861*bq`*Gp_p2+SiwtNRB=Sa1MMIhvxVDW@{HtHakdegB&9wSS=vNr2R~BaO=4qLL zWGZ%#@{&eAXFSz*p%_hqFw3%0A3nqrn%y+%6n2d5Zp2prIuPUpJpB6A?31M0b)OrS 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ℜ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 z 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 literal 0 HcmV?d00001 diff --git a/yarn.lock b/yarn.lock index 29adf37df1b..e99b4f56dd4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -397,6 +397,13 @@ glob "7.1.2" yargs "^16.2.0" +"@angular/material@^11.2.13": + version "11.2.13" + resolved "https://registry.yarnpkg.com/@angular/material/-/material-11.2.13.tgz#99960316d3ce58aac7497d7bb8b0c05468f502b9" + integrity sha512-FqFdGSkOtqsmeLyTSousodDGUy2NqbtxCIKv2rwbsIRwHNKB0KpR/UQhA2gMRuGa5hxhMJ0DW0Tf9neMRuLCTg== + dependencies: + tslib "^2.0.0" + "@angular/platform-browser-dynamic@~11.2.14": version "11.2.14" resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-11.2.14.tgz#3c7fff1a1daacba5390acf033d28c377ec281166" @@ -2624,6 +2631,11 @@ angular2-text-mask@9.0.0: dependencies: text-mask-core "^5.0.0" +angular@^1.4: + version "1.8.3" + resolved "https://registry.yarnpkg.com/angular/-/angular-1.8.3.tgz#851ad75d5163c105a7e329555ef70c90aa706894" + integrity sha512-5qjkWIQQVsHj4Sb5TcEs4WZWpFeVFHXwxEBHUhrny41D8UrBAd6T/6nPPAsLngJCReIOqi95W3mxdveveutpZw== + angulartics2@^10.0.0: version "10.1.0" resolved "https://registry.yarnpkg.com/angulartics2/-/angulartics2-10.1.0.tgz#2988f95f25cf6a8dd630d63ea604eb6643e076c3" @@ -3888,6 +3900,15 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +clipboard@~1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-1.6.1.tgz#65c5b654812466b0faab82dc6ba0f1d2f8e4be53" + integrity sha512-tkAYccb77Tx21QNIuVSmZEEuFt8VJ1tOvdDMBw8+F38MaIc0eZ1u41gPPTylz9dU4eYd4iqYlO0OAuyGnAs0dg== + dependencies: + good-listener "^1.2.0" + select "^1.1.2" + tiny-emitter "^1.0.0" + cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -5233,6 +5254,11 @@ delayed-stream@~1.0.0: resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== + delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" @@ -6656,6 +6682,13 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" +good-listener@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw== + dependencies: + delegate "^3.1.2" + got@^9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -8558,6 +8591,15 @@ limiter@^1.0.5: resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.5.tgz#8f92a25b3b16c6131293a0cc834b4a838a2aa7c2" integrity sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA== +lindat-common@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/lindat-common/-/lindat-common-1.5.0.tgz#03e826b48e539be77a0db12d2f42a122ec43c847" + integrity sha512-fUIpI2nfGt4qzFk8ljwYWliro6tlg0FgMVm9pyInbZeAD2E9GOVEHrPcfg+nt/d1F5W7xEGDTjAlnwEGJVSgbg== + dependencies: + angular "^1.4" + clipboard "~1.6.1" + jquery "^2.1.4" + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -12573,6 +12615,11 @@ select-hose@^2.0.0: resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= +select@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA== + selenium-webdriver@3.6.0, selenium-webdriver@^3.0.1: version "3.6.0" resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz#2ba87a1662c020b8988c981ae62cb2a01298eafc" @@ -13781,6 +13828,11 @@ timsort@^0.3.0: resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= +tiny-emitter@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-1.2.0.tgz#6dc845052cb08ebefc1874723b58f24a648c3b6f" + integrity sha512-rWjF00inHeWtT5UbQYAXoMI4hL6TRMqohuKCsODyPYYmfAxqfMnXLsIeNrbdPEkNxlk++rojVilTnI9IVmEBtA== + tiny-invariant@^1.0.6: version "1.2.0" resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.2.0.tgz#a1141f86b672a9148c72e978a19a73b9b94a15a9" From 1290aa0b0fe363e6f681a8344b27271db6073d93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?MilanMajchr=C3=A1k?= Date: Sat, 8 Oct 2022 11:07:16 +0200 Subject: [PATCH 12/54] fixed breadcrumbs top margin --- src/app/submission/form/submission-form.component.html | 2 +- src/styles/_custom_variables.scss | 3 +++ src/styles/_global-styles.scss | 8 ++++---- src/themes/dspace/app/header/header.component.scss | 7 +++++++ yarn.lock | 5 +++++ 5 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/app/submission/form/submission-form.component.html b/src/app/submission/form/submission-form.component.html index c86d4e01959..b93bd2fc9c7 100644 --- a/src/app/submission/form/submission-form.component.html +++ b/src/app/submission/form/submission-form.component.html @@ -1,5 +1,5 @@
-
+
Date: Sat, 8 Oct 2022 12:13:53 +0200 Subject: [PATCH 13/54] some desing chhanges - button colors --- ...clarin-license-distribution.component.scss | 4 ++ .../section-license.component.scss | 6 +-- src/styles/_custom_variables.scss | 1 + .../dspace/app/header/header.component.html | 24 ++++++------ src/themes/dspace/styles/_global-styles.scss | 39 +++++++++++++++++++ 5 files changed, 59 insertions(+), 15 deletions(-) diff --git a/src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.scss b/src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.scss index f43c76b77ce..2d952bb5ba7 100644 --- a/src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.scss +++ b/src/app/submission/sections/clarin-license-distribution/clarin-license-distribution.component.scss @@ -17,6 +17,10 @@ color: #525558; } +.ng-toggle-on { + background-color: green !important; +} + //.alert { // color: #c09853; // background-color: #fcf8e3; diff --git a/src/app/submission/sections/clarin-license-resource/section-license.component.scss b/src/app/submission/sections/clarin-license-resource/section-license.component.scss index a16ef1bc75c..a49102edbf2 100644 --- a/src/app/submission/sections/clarin-license-resource/section-license.component.scss +++ b/src/app/submission/sections/clarin-license-resource/section-license.component.scss @@ -14,9 +14,9 @@ } .alert-warning { - color: #7b4d1b !important; - background-color: #fbead6 !important; - border-color: #fae1c6 !important; + background-color: #fcf8e3 !important; + border: 1px solid #fbeed5 !important; + color: #c09853 !important; background-image: none; } diff --git a/src/styles/_custom_variables.scss b/src/styles/_custom_variables.scss index 26aa54a1b95..722b5865fac 100644 --- a/src/styles/_custom_variables.scss +++ b/src/styles/_custom_variables.scss @@ -1,6 +1,7 @@ :root { --lt-common-navbar-height: 80px; + --lt-clarin-purple: #7479b8; --ds-content-spacing: #{$spacer * 1.5}; diff --git a/src/themes/dspace/app/header/header.component.html b/src/themes/dspace/app/header/header.component.html index 7a18cf6780d..469f42301db 100644 --- a/src/themes/dspace/app/header/header.component.html +++ b/src/themes/dspace/app/header/header.component.html @@ -4,7 +4,7 @@