<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2008 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
 -->

<resources xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="exchange_name_alternate" msgid="5772529644749041052">"Microsoft Exchange ActiveSync"</string>
    <string name="meeting_accepted" msgid="8796609373330400268">"Priimta: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_declined" msgid="6707617183246608552">"Atmesta: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_tentative" msgid="8250995722130443785">"Neapsispręsta: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_canceled" msgid="3949893881872084244">"Atšaukta: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_updated" msgid="8529675857361702860">"Atnaujinta: <xliff:g id="SUBJECT">%s</xliff:g>"</string>
    <string name="meeting_when" msgid="2765696159697448656">"Kada: <xliff:g id="WHEN">%s</xliff:g>"</string>
    <string name="meeting_where" msgid="5992367535856553079">"Kur: <xliff:g id="WHERE">%s</xliff:g>"</string>
    <string name="meeting_recurring" msgid="3134262212606714023">"Kada: <xliff:g id="EVENTDATE">%s</xliff:g> (pasikartojantis)"</string>
    <string name="meeting_allday" msgid="6696389765484663513">"Kada: <xliff:g id="EVENTDATE">%s</xliff:g> (visą dieną)"</string>
    <string name="meeting_allday_recurring" msgid="2320264182781062684">"Kada: <xliff:g id="EVENTDATE">%s</xliff:g> (visą dieną, pasikartojantis)"</string>
    <string name="notification_exchange_calendar_added" msgid="6823659622379350159">"Pridėtas „Exchange“ kalendorius"</string>
    <string name="app_name" msgid="5316597712787122829">"„Exchange“ paslaugos"</string>
    <string name="exception_cancel" msgid="6160117429428313805">"Šis įvykis atšauktas: <xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="exception_updated" msgid="3397583105901142050">"Išsami šio įvykio informacija buvo pakeista: <xliff:g id="DATE">%s</xliff:g>"</string>
    <string name="policy_dont_allow_storage_cards" msgid="2765447013574188473">"Neleisti atminties kortelių"</string>
    <string name="policy_dont_allow_unsigned_apps" msgid="4896164334956001479">"Neleisti anoniminių programų"</string>
    <string name="policy_dont_allow_unsigned_installers" msgid="1326544905185523540">"Neleisti anon. programų diegimo progr."</string>
    <string name="policy_dont_allow_wifi" msgid="3109487776704143995">"Neleisti „Wi-Fi“"</string>
    <string name="policy_dont_allow_text_messaging" msgid="7846141657345860427">"Neleisti teksto pranešimų"</string>
    <string name="policy_dont_allow_pop_imap" msgid="4702932192358698651">"Neleisti POP3 ar IMAP prieigos paskyrų"</string>
    <string name="policy_dont_allow_irda" msgid="1848561629495912430">"Neleisti infraraudonųjų spindulių ryšių"</string>
    <string name="policy_dont_allow_html" msgid="5888652525907651489">"Neleisti HTML el. laiškų"</string>
    <string name="policy_dont_allow_browser" msgid="1018764395507493616">"Neleisti naršyklių"</string>
    <string name="policy_dont_allow_consumer_email" msgid="6958427300686692292">"Neleisti vartotojų el. laiškų"</string>
    <string name="policy_dont_allow_internet_sharing" msgid="2370083814654927695">"Neleisti bendrinimo internetu"</string>
    <string name="policy_require_smime" msgid="673557150920820590">"Reikalauti SMIME pranešimų"</string>
    <string name="policy_bluetooth_restricted" msgid="5248824127186039567">"Apriboti „Bluetooth“ naudojimą"</string>
    <string name="policy_app_blacklist" msgid="8169194058285873461">"Neleisti nurodytų programų"</string>
    <string name="policy_app_whitelist" msgid="3670572644342165306">"Leisti tik nurodytas programas"</string>
    <string name="policy_text_truncation" msgid="1783448050735715818">"Riboti teksto el. laiškų dydį"</string>
    <string name="policy_html_truncation" msgid="102158408055486343">"Riboti HTML el. laiškų dydį"</string>
    <string name="policy_require_sd_encryption" msgid="366468398301273342">"Reikalauti SD kortelės šifravimo"</string>
    <string name="policy_dont_allow_attachments" msgid="6250520458670348907">"Neleisti priedų"</string>
    <string name="policy_max_attachment_size" msgid="4020279603050888661">"Riboti priedo dydį"</string>
    <string name="policy_require_manual_sync_roaming" msgid="6637416341015662148">"Veikiant tarptink. r. sinch. tik pačiam"</string>
    <string name="policy_require_encryption" msgid="7984702283392885348">"Reikalauti įrenginių šifravimo"</string>
    <string name="account_setup_options_mail_window_auto" msgid="4188895354366183790">"Automatinis"</string>
    <string name="account_setup_options_mail_window_1day" msgid="3965715241135811407">"Vieną dieną"</string>
    <string name="account_setup_options_mail_window_3days" msgid="736181102295878114">"Tris dienas"</string>
    <string name="account_setup_options_mail_window_1week" msgid="5639718031108023741">"Viena savaitė"</string>
    <string name="account_setup_options_mail_window_2weeks" msgid="4567049268124213035">"Dvi savaitės"</string>
    <string name="account_setup_options_mail_window_1month" msgid="5846359669750047081">"Vienas mėnuo"</string>
    <string name="account_setup_options_mail_window_all" msgid="5372861827683632364">"Visas"</string>
    <!-- no translation found for auth_error_notification_title (8108639432449021675) -->
    <skip />
    <!-- no translation found for auth_error_notification_text (2631477461883075792) -->
    <skip />
</resources>
