text:
<?xml version="1.0" encoding="utf-8"?>
<!--Generated by crowdin.com-->
<!--
 Copyright (c) 2012 - 2014 Ngewi Fet <ngewif@gmail.com>

 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
  <string name="title_create_account">Nieuwe rekening</string>
  <string name="title_edit_account">Rekening bewerken</string>
  <string name="info_details">Info</string>
  <string name="menu_export">OFX exporteren</string>
  <string name="description_add_transaction_icon">Nieuwe boeking op een rekening</string>
  <string name="label_no_accounts">Geen rekeningen beschikbaar</string>
  <string name="label_account_name">Rekeningnaam</string>
  <string name="btn_cancel">Annuleren</string>
  <string name="btn_save">Bewaren</string>
  <string name="label_passcode">Vul wachtwoord in</string>
  <string name="toast_wrong_passcode">Onjuist wachtwoord, probeer het opnieuw</string>
  <string name="toast_passcode_set">Toegangscode ingesteld</string>
  <string name="label_confirm_passcode">Bevestig uw wachtwoord</string>
  <string name="toast_invalid_passcode_confirmation">Ongeldige wachtwoord bevestiging. Probeer het a. u. b. opnieuw</string>
  <string name="label_transaction_name">Beschrijving</string>
  <string name="label_transaction_amount">Bedrag</string>
  <string name="title_add_transaction">Nieuwe boeking</string>
  <string name="label_no_transactions">Geen boekingen beschikbaar</string>
  <string name="label_timeanddate">Datum & tijd</string>
  <string name="label_account">Rekening</string>
  <string name="label_debit">Debet</string>
  <string name="label_credit">Credit</string>
  <string name="title_accounts">Rekeningen</string>
  <string name="title_transactions">Boekingen</string>
  <string name="menu_delete">Verwijderen</string>
  <string name="alert_dialog_ok_delete">Verwijderen</string>
  <string name="alert_dialog_cancel">Annuleren</string>
  <string name="toast_account_deleted">De rekening werd verwijderd</string>
  <string name="title_confirm_delete">Verwijderen bevestigen</string>
  <string name="delete_account_confirmation_message">Alle boekingen in deze rekening zullen ook verwijderd worden</string>
  <string name="title_edit_transaction">Boeking bewerken</string>
  <string name="label_transaction_description">Omschrijving</string>
  <string name="menu_move">Verplaatsen</string>
  <string name="title_selected">%1$d geselecteerd</string>
  <string name="label_account_balance">Saldo:</string>
  <string name="label_export_destination">Exporteer naar:</string>
  <string name="title_export_dialog">OFX exporteren</string>
  <string name="option_export_all_transactions">Alle boekingen exporteren</string>
  <string name="hint_export_choice">Aanvinken om alle boekingen te exporteren. Anders worden uitsluitend de nieuwe boekingen sinds de laatste export geëxporteerd.</string>
  <string name="toast_export_error">Fout tijdens het exporteren van de %1$s data</string>
  <string name="btn_export">Exporteren</string>
  <string name="option_delete_after_export">Verwijderen na exporteren</string>
  <string name="hint_delete_after_export">Alle geëxporteerde boekingen zullen verwijderd worden na de export</string>
  <string name="title_settings">Instellingen</string>
  <string-array name="export_destinations">
    <item>SD-kaart</item>
    <item>Dropbox</item>
    <item>Google Drive</item>
    <item>Verzenden…</item>
  </string-array>
  <string name="btn_move">Verplaatsen</string>
  <string name="title_move_transactions">%1$d boeking(en) verplaatsen</string>
  <string name="label_move_destination">Bestemmingsrekening</string>
  <string name="permission_access_sdcard">SD-kaart benaderen</string>
  <string name="toast_incompatible_currency">De boekingen kunnen niet verplaatst worden.\nDe munteenheden van de rekeningen zijn niet compatibel</string>
  <string name="header_general_settings">Algemeen</string>
  <string name="header_about_gnucash">Over</string>
  <string name="title_choose_currency">Standaard munteenheid kiezen</string>
  <string name="title_default_currency">Standaard munteenheid</string>
  <string name="summary_default_currency">Standaard munteenheid voor samenvatting</string>
  <string name="label_permission_record_transactions">Staat het bewaren van boekingen in GnuCash for Android toe</string>
  <string name="label_permission_create_accounts">Staat het aanmaken van rekeningen in GnuCash for Android toe</string>
  <string name="label_permission_group">Uw GnuCash data</string>
  <string name="description_permission_group">GnuCash data lezen en bewerken</string>
  <string name="label_permission_record_transaction">Boekingen opslaan in GnuCash</string>
  <string name="label_permission_create_account">Rekeningen aanmaken in GnuCash</string>
  <string name="label_display_account">Rekening tonen</string>
  <string name="btn_create_accounts">Rekeningen aanmaken</string>
  <string name="title_default_accounts">Standaard rekeningen selecteren</string>
  <string-array name="currency_names">
    <item>Afghani</item>
    <item>Algerijnse dinar</item>
    <item>Argentijnse peso</item>
    <item>Armeense dram</item>
    <item>Arubaanse florin</item>
    <item>Australische dollar</item>
    <item>Azerbeidzjaanse manat</item>
    <item>Bahamaanse dollar</item>
    <item>Bahreinse dinar</item>
    <item>Baht</item>
    <item>Balboa</item>
    <item>Barbadaanse dollar</item>
    <item>Wit-Russische Roebel</item>
    <item>Belizaanse Dollar</item>
    <item>Bermuda Dollar</item>
    <item>Bolivar Fuerte</item>
    <item>Boliviano</item>
    <item>Braziliaanse Real</item>
    <item>Bruneise Dollar</item>
    <item>Bulgaarse Lev</item>
    <item>Burundese Frank</item>
    <item>Canadese dollar</item>
    <item>Kaapverdische Escudo</item>
    <item>Caymaneilandse Dollar</item>
    <item>CFA-Frank BCEAO</item>
    <item>CFA-Frank BEAC</item>
    <item>CFP-Frank</item>
    <item>Chileense Peso</item>
    <item>Testen van valuta</item>
    <item>Colombiaanse Peso</item>
    <item>Comorese Frank</item>
    <item>Congolese frank</item>
    <item>Converteerbare Mark</item>
    <item>Cordoba Oro</item>
    <item>Costaricaanse colón</item>
    <item>Kroatische kuna</item>
    <item>Cubaanse Convertibele Peso</item>
    <item>Cubaanse peso</item>
    <item>Tsjechische kroon</item>
    <item>Dalasi</item>
    <item>Deense kroon</item>
    <item>Denar</item>
    <item>Djiboutiaanse Frank</item>
    <item>Dobra</item>
    <item>Dominicaanse Peso</item>
    <item>Dong</item>
    <item>Oost-Caribische Dollar</item>
    <item>Egyptische pond</item>
    <item>Salvadoraanse colón</item>
    <item>Ethiopische Birr</item>
    <item>Euro</item>
    <item>Falklandeilands pond</item>
    <item>Fiji Dollar</item>
    <item>Forint</item>
    <item>Ghanese Cedi</item>
    <item>Gibraltarees pond</item>
    <item>Goud</item>
    <item>Gourde</item>
    <item>Guaraní</item>
    <item>Guinese Frank</item>
    <item>Guyaanse Dollar</item>
    <item>Hongkongse dollar</item>
    <item>Hryvnia</item>
    <item>Ijslandse kroon</item>
    <item>Indiase roepie</item>
    <item>Iraanse rial</item>
    <item>Iraakse dinar</item>
    <item>Jamaicaanse dollar</item>
    <item>Jordaanse dinar</item>
    <item>Keniaanse shilling</item>
    <item>Kina</item>
    <item>Kip</item>
    <item>Koeweitse Dinar</item>
    <item>Kwacha</item>
    <item>Kwanza</item>
    <item>Kyat</item>
    <item>Lari</item>
    <item>Letse Lats</item>
    <item>Libanees pond</item>
    <item>Lek</item>
    <item>Lempira</item>
    <item>Leone</item>
    <item>Liberiaanse dollar</item>
    <item>Libische Dinar</item>
    <item>Lilangeni</item>
    <item>Litouwse Litas</item>
    <item>Loti</item>
    <item>Malagasi Ariary</item>
    <item>Maleisische Ringgit</item>
    <item>Mauritiaanse Rupee</item>
    <item>Mexicaanse peso</item>
    <item>Mexicaanse Unidad de Inversion (UDI)</item>
    <item>Moldavische Leu</item>
    <item>Marokkaanse Dirham</item>
    <item>Mozambique Metical</item>
    <item>Mvdol</item>
    <item>Naira</item>
    <item>Nakfa</item>
    <item>Namibische Dollar</item>
    <item>Nepalese Rupee</item>
    <item>Antilliaanse gulden</item>
    <item>Israëlische nieuwe shekel</item>
    <item>Nieuwe Roemeense Leu</item>
    <item>Taiwanese nieuwe Dollar</item>
    <item>Nieuw-Zeelandse dollar</item>
    <item>Ngultrum</item>
    <item>Noord-Koreaanse Won</item>
    <item>Noorse kroon</item>
    <item>Nuevo Sol</item>
    <item>Ouguiya</item>
    <item>Pa\'anga</item>
    <item>Pakistaanse Rupee</item>
    <item>Palladium</item>
    <item>Pataca</item>
    <item>Filippijnse peso</item>
    <item>Platina</item>
    <item>Pond sterling</item>
    <item>Pula</item>
    <item>Qatarese Rial</item>
    <item>Quetzal</item>
    <item>Rand</item>
    <item>Rial Omani</item>
    <item>Riel</item>
    <item>Rufiyaa</item>
    <item>Roepie</item>
    <item>Russische roebel</item>
    <item>Rwanda Frank</item>
    <item>Sint-Heleense pond</item>
    <item>Saoedi-Arabische Riyal</item>
    <item>SDR (bijzonder trekkingsrecht)</item>
    <item>Servische Dinar</item>
    <item>Seychelse Roepie</item>
    <item>Zilver</item>
    <item>Singaporese Dollar</item>
    <item>Salomonseilandse Dollar</item>
    <item>Som</item>
    <item>Somalische Shilling</item>
    <item>Somoni</item>
    <item>Zuid Soedanese pond</item>
    <item>Srilankaanse Rupee</item>
    <item>Sucre</item>
    <item>Soedanese pond</item>
    <item>Surinaamse Dollar</item>
    <item>Zweedse kroon</item>
    <item>Zwitserse Frank</item>
    <item>Syrisch pond</item>
    <item>Taka</item>
    <item>Tala</item>
    <item>Tanzaniaanse Shilling</item>
    <item>Tenge</item>
    <item>Geen valuta</item>
    <item>Trinidad en Tobago-Dollar</item>
    <item>Tugrik</item>
    <item>Tunesische dinar</item>
    <item>Turkse lire</item>
    <item>Turkmenistan nieuwe Manat</item>
    <item>UAE Dirham</item>
    <item>Oeganda Shilling</item>
    <item>UIC-Frank</item>
    <item>Unidad de Valor Real</item>
    <item>Unidades de fomento</item>
    <item>Uruguay Peso nl Unidades Indexadas (URUIURUI)</item>
    <item>Uruguayan Peso</item>
    <item>Amerikaanse Dollar</item>
    <item>Oezbekistaanse Sum</item>
    <item>Vatu</item>
    <item>WIR Euro</item>
    <item>WIR Frank</item>
    <item>Won</item>
    <item>Jemenitische Rial</item>
    <item>Yen</item>
    <item>Yuan Renminbi</item>
    <item>Zambiaanse Kwacha</item>
    <item>Zimbabwaanse Dollar</item>
    <item>Zloty</item>
  </string-array>
  <string name="error_no_accounts">Geen rekeningen beschikbaar.\nU moet een rekening aanmaken alvorens een widget toe te voegen</string>
  <string name="title_build_version">Versie</string>
  <string name="title_license">Licentie</string>
  <string name="summary_licence_details">Apache License v2.0. Klik voor details</string>
  <string name="title_general_prefs">Algemeen</string>
  <string name="label_widget_configuration">Account kiezen</string>
  <string name="toast_no_transactions_to_export">Geen transacties beschikbaar om te exporteren</string>
  <string name="header_passcode_settings">Wachtwoord</string>
  <string name="title_passcode_preferences">Wachtwoord voorkeuren</string>
  <string name="title_passcode_enabled">Wachtwoord ingeschakeld</string>
  <string name="title_passcode_disabled">Wachtwoord uitgeschakeld</string>
  <string name="title_change_passcode">Wachtwoord wijzigen</string>
  <string name="title_about_gnucash">Over GnuCash</string>
  <string name="summary_about_gnucash">Mobiel financieel beheer en uitgave opvolging ontworpen voor Android</string>
  <string name="title_about">Over</string>
  <string name="toast_format_exported_to">%1$s data geëexporteerd naar:\n</string>
  <string name="title_export_email">Export %1$s vanuit GnuCash Android</string>
  <string name="description_export_email">GnuCash Android Export van </string>
  <string name="header_transaction_settings">Transacties</string>
  <string name="title_transaction_preferences">Transactie voorkeuren</string>
  <string name="title_account_preferences">Account voorkeuren</string>
  <string name="title_default_transaction_type">Standaard Transactietype</string>
  <string name="summary_default_transaction_type">Het standaard transactietype, CREDIT or DEBET</string>
  <string-array name="transaction_types">
    <item>CREDIT</item>
    <item>DEBET</item>
  </string-array>
  <string name="msg_delete_all_transactions_confirmation">Weet u zeker dat u alle transacties wil verwijderen?</string>
  <string name="msg_delete_transaction_confirmation">Weet u zeker dat u deze transactie wil verwijderen?</string>
  <string name="title_export_preference_category">Exporteer</string>
  <string name="title_export_all_transactions">Exporteer alle transacties</string>
  <string name="title_always_delete_exported_transactions">Verwijder geëxporteerde transacties</string>
  <string name="title_default_export_email">Standaard export emailadres</string>
  <string name="summary_default_export_email">Het standaard emailaddress om geëxporteerde data heen te sturen. U kan dit emailadres nog wijzigen als u exporteerd.</string>
  <string name="label_double_entry_account">Draag Account over</string>
  <string name="summary_use_double_entry">Alle transacties zullen worden overgedragen van het ene account naar de andere</string>
  <string name="title_use_double_entry">Schakel dubbel boekhouden in</string>
  <string name="account_balance">Saldo</string>
  <string name="toast_no_account_name_entered">Vul een rekeningnaam in</string>
  <string name="label_account_currency">Munteenheid</string>
  <string name="label_parent_account">Hoofdrekening</string>
  <string name="title_xml_ofx_header">Gebruik XML OFX hoofding</string>
  <string name="summary_xml_ofx_header">Schakel deze optie in als u naar een applicatie anders dan GnuCash wil exporteren</string>
  <string name="title_whats_new">Nieuw sinds de vorige versie</string>
  <string name="whats_new">
        - Nieuw Material app layout \n
        - Boekingen in meerdere valuta\n
        - Rekenmachine voor boekingsbedragen\n
        - Betere rapporteringsmogelijkheden\n
        - Nieuwe sectie voor hulp & feedback\n
        - Meerdere foutcorrecties en verbeteringen\n
	</string>
  <string name="label_dismiss">Wijs af</string>
  <string name="toast_transanction_amount_required">Vul een bedrag in om de transactie op te slaan.</string>
  <string name="toast_error_edit_multi_currency_transaction">Multi-valuta boeking kan niet gewijzigd worden</string>
  <string name="menu_import_accounts">GnuCash rekeningen importeren</string>
  <string name="btn_import_accounts">Rekeningen importeren</string>
  <string name="toast_error_importing_accounts">Fout bij het importeren van de GnuCash rekeningen</string>
  <string name="toast_success_importing_accounts">GnuCash rekeningen met succes geïmporteerd</string>
  <string name="summary_import_accounts">Rekeningstructuur uit desktop-GnuCash importeren</string>
  <string name="title_import_accounts">GnuCash rekeningen importeren</string>
  <string name="summary_delete_all_accounts">Alle rekeningen uit de database verwijderen. Alle transacties zullen ook
        verwijderd worden.
    </string>
  <string name="title_delete_all_accounts">Alle rekeningen verwijderen</string>
  <string name="header_account_settings">Rekeningen</string>
  <string name="toast_all_accounts_deleted">Alle rekeningen werden met succes verwijderd</string>
  <string name="confirm_delete_all_accounts">Weet je zeker dat je alle rekeningen en transacties wil verwijderen? \nDeze
        verrichting kan niet ongedaan gemaakt worden!
    </string>
  <string name="label_account_type">Rekening Type</string>
  <string name="summary_delete_all_transactions">Alle transacties in alle rekeningen zullen verwijderd worden!</string>
  <string name="title_delete_all_transactions">Alle transacties verwijderen</string>
  <string name="toast_all_transactions_deleted">Alle transacties werden met succes verwijderd!</string>
  <string name="title_progress_importing_accounts">Rekeningen importeren</string>
  <string name="toast_tap_again_to_confirm_delete">Tap opnieuw op te bevestigen. ALLE regels zullen verwijderd worden!!</string>
  <string name="section_header_transactions">Transacties</string>
  <string name="section_header_subaccounts">Subrekeningen</string>
  <string name="menu_search_accounts">Zoeken</string>
  <string name="title_default_export_format">Standaard Export Formaat</string>
  <string name="summary_default_export_format">Bestandsformaat om standaard te gebruiken bij het experteren van transacties</string>
  <string name="menu_export_transactions">Transacties exporteren…</string>
  <string name="label_recurring_transaction">Herhaling</string>
  <string name="imbalance_account_name">Onbalans</string>
  <string name="title_progress_exporting_transactions">Transactions exporteren</string>
  <string name="label_no_recurring_transactions">Geen repetitieve transacties gevonden.</string>
  <string name="toast_recurring_transaction_deleted">Repetitieve transactie met succes verwijderd</string>
  <string name="label_placeholder_account">Aggregatie rekening</string>
  <string name="label_default_transfer_account">Standard tegenrekening</string>
  <plurals name="label_sub_accounts">
    <item quantity="one">%d subrekening</item>
    <item quantity="other">%d subrekeningen</item>
  </plurals>
  <string-array name="account_type_entry_values">
    <item>CASH</item>
    <item>BANK</item>
    <item>CREDIT CARD</item>
    <item>ASSET</item>
    <item>LIABILITY</item>
    <item>INCOME</item>
    <item>EXPENSE</item>
    <item>PAYABLE</item>
    <item>RECEIVABLE</item>
    <item>EQUITY</item>
    <item>CURRENCY</item>
    <item>STOCK</item>
    <item>MUTUAL FUND</item>
    <item>TRADING</item>
  </string-array>
  <string-array name="export_formats">
    <item>QIF</item>
    <item>OFX</item>
    <item>XML</item>
  </string-array>
  <string name="color_picker_default_title">Kies een kleur</string>
  <string name="label_account_color_and_type">Rekening kleur & type</string>
  <string name="label_delete_sub_accounts">Subrekeningen verwijderen</string>
  <string name="title_recent_accounts">Recente</string>
  <string name="title_favorite_accounts">Favorieten</string>
  <string name="title_all_accounts">Alle</string>
  <string name="summary_create_default_accounts">Creëert standaard GnuCash veelgebruikte rekeningstructuur</string>
  <string name="title_create_default_accounts">Standaard rekeningen creëren</string>
  <string name="msg_confirm_create_default_accounts_setting">Alle bestaande rekeningen en boekingen op het apparaat zullen verwijderd worden.\n\nWeet u zeker dat u wilt doorgaan?</string>
  <string name="menu_scheduled_transactions">Vaste journaalposten</string>
  <string name="msg_confirm_create_default_accounts_first_run">Welkom in GnuCash Android! \nJe kan een nieuwe structuur van
        veel gebruikte rekeningen creëren, of je eigen GnuCash rekeningstructuur importeren. \n\nBeide opties zijn ook
        beschikbaar in app Instellingen zodat je later kan beslissen.
    </string>
  <string name="title_scheduled_transactions">Vaste journaalposten</string>
  <string name="title_select_export_destination">Selecteer bestemming voor export</string>
  <string name="hint_split_memo">Memo</string>
  <string name="label_spend">Uitgeven</string>
  <string name="label_receive">Ontvangen</string>
  <string name="label_withdrawal">Opname</string>
  <string name="label_deposit">Storting</string>
  <string name="label_payment">Betaling</string>
  <string name="label_charge">Kost</string>
  <string name="label_decrease">Daling</string>
  <string name="label_increase">Verhoging</string>
  <string name="label_income">Inkomsten</string>
  <string name="label_rebate">Korting</string>
  <string name="label_expense">Uitgaven</string>
  <string name="label_bill">Aankoopfactuur</string>
  <string name="label_invoice">Verkoopfactuur</string>
  <string name="label_buy">Kopen</string>
  <string name="label_sell">Verkopen</string>
  <string name="label_repeats">Herhalingen</string>
  <string name="toast_no_recent_backup">Geen recente back-up gevonden</string>
  <string name="account_name_opening_balances">Openingsbalans</string>
  <string name="account_name_equity">Eigen Vermogen</string>
  <string name="summary_save_opening_balances">Inschakelen om het huidige rekeningsaldo (alvorens boekingen te verwijderen) als nieuw beginsaldo te gebruiken nadat de boekingen verwijderd zijn    </string>
  <string name="title_save_opening_balances">Beginsaldi rekeningen opslaan</string>
  <string name="export_warning_ofx">OFX biedt geen ondersteuning voor dubbel-boekhouden boekingen</string>
  <string name="export_warning_qif">Genereert afzonderlijke QIF bestanden per valuta</string>
  <string name="title_transaction_splits">Boekregels</string>
  <string name="label_imbalance">Onbalans:</string>
  <string name="btn_add_split">Boekregel toevoegen</string>
  <string name="menu_title_favorite">Favoriet</string>
  <string name="drawer_open">Navigatie lade geopend</string>
  <string name="drawer_close">Navigatie lade gesloten</string>
  <string name="title_reports">Rapporten</string>
  <string name="title_pie_chart">Cirkeldiagram</string>
  <string name="title_line_chart">Lijndiagram</string>
  <string name="title_bar_chart">Staafdiagram</string>
  <string name="title_report_prefs">Rapport voorkeuren</string>
  <string name="label_report_currency">Munteenheid selecteren</string>
  <string name="title_use_account_color">Rekening kleur in rapporten</string>
  <string name="summary_use_account_color">Gebruik rekening kleur in de staaf/cirkeldiagram</string>
  <string name="header_report_settings">Rapporten</string>
  <string name="menu_order_by_size">Op grootte sorteren</string>
  <string name="menu_toggle_legend">Toon Legenda</string>
  <string name="menu_toggle_labels">Toon labels</string>
  <string name="menu_toggle_percentage_mode">Percentage weergeven</string>
  <string name="menu_toggle_average_lines">Gemiddelde lijnen weergeven</string>
  <string name="menu_group_smaller_slices">Groepeer kleinere segmenten</string>
  <string name="label_chart_no_data">Geen grafiekgegevens beschikbaar</string>
  <string name="label_chart_overall">Algemeen</string>
  <string name="label_chart_total">Totaal</string>
  <string name="label_other_slice">Overige</string>
  <string name="toast_chart_percentage_mode_total">Het percentage van de geselecteerde waarde berekend op basis van het totale bedrag</string>
  <string name="toast_chart_percentage_mode_current_bar">Het percentage van de geselecteerde waarde berekend op basis van het bedrag van de huidige gestapelde-staaf</string>
  <string name="label_save_template">Opslaan als sjabloon</string>
  <string name="label_delete_account_transactions_description">Deze rekening bevat boekingen. \nWhat wilt u doen met deze boekingen</string>
  <string name="label_delete_account_subaccounts_description">Deze rekening bevat subrekeningen. \nWhat wilt u doen met deze subrekeningen</string>
  <string name="label_delete_transactions">Verrichtingen verwijderen</string>
  <string name="toast_disable_double_entry_to_save_transaction">Maak en geef een overdracht rekening op OF schakel dubbel-boekhouden uit in instellingen om deze boeking te bewaren</string>
  <string name="label_tap_to_create_schedule">Tik op om schema te maken</string>
  <string name="title_restore_backup">Back-up terugzetten…</string>
  <string name="header_backup_and_export_settings">Back-up & export</string>
  <string name="title_dropbox_sync_preference">DropBox Sync</string>
  <string name="title_backup_preference_category">Back-up</string>
  <string name="summary_dropbox_sync">Activeer om te synchroniseren met DropBox</string>
  <string name="title_select_gnucash_xml_file">Selecteer GnuCash XML bestand</string>
  <string name="title_backup_prefs">Back-up voorkeuren</string>
  <string name="title_create_backup_pref">Back-up maken</string>
  <string name="summary_create_backup_pref">Back-ups worden standaard opgeslagen op de SDCARD</string>
  <string name="summary_restore_backup_pref">Selecteer een specifieke back-up om te herstellen</string>
  <string name="toast_backup_successful">Maken back-up succesvol</string>
  <string name="toast_backup_failed">Back-up mislukt</string>
  <string name="export_warning_xml">Exporteert alle rekeningen en boekingen</string>
  <string name="title_google_drive_sync_pref">Google Drive Sync</string>
  <string name="summary_google_drive_sync">Activeren om te synchroniseren met Google Drive</string>
  <string name="toast_install_file_manager">Installeer een bestandsbeheerder om bestanden te selecteren</string>
  <string name="title_select_backup_to_restore">Selecteer back-up om te herstellen</string>
  <string name="nav_menu_favorites">Favorieten</string>
  <string name="nav_menu_open">Open...</string>
  <string name="nav_menu_reports">Rapporten</string>
  <string name="nav_menu_scheduled_transactions">Vaste journaalposten</string>
  <string name="nav_menu_export">Export...</string>
  <string name="nav_menu_settings">Instellingen</string>
  <plurals name="label_every_x_days">
    <item quantity="one">Dagelijks</item>
    <item quantity="other">Elke %d dagen</item>
  </plurals>
  <plurals name="label_every_x_weeks">
    <item quantity="one">Wekelijks</item>
    <item quantity="other">Elke %d weken</item>
  </plurals>
  <plurals name="label_every_x_months">
    <item quantity="one">Maandelijks</item>
    <item quantity="other">Elke %d maanden</item>
  </plurals>
  <plurals name="label_every_x_years">
    <item quantity="one">Jaarlijks</item>
    <item quantity="other">Elke %d jaren</item>
  </plurals>
  <string name="title_enable_crashlytics">Crash logboekregistratie inschakelen</string>
  <string name="msg_enable_crashlytics">Enable to send information about malfunctions to the developers for improvement (recommended).
No user-identifiable information will be collected as part of this process!
    </string>
  <string name="label_export_format">Format</string>
  <string name="toast_backup_folder_not_found">Back-up map kan niet worden gevonden. Zorg ervoor dat de SD-kaart is aangekoppeld!</string>
  <string name="label_old_passcode">Voer uw oude wachtwoord in</string>
  <string name="label_new_passcode">Voer uw nieuwe wachtwoord in</string>
  <string name="nav_menu_scheduled_backups">Geplande exports</string>
  <string name="title_scheduled_exports">Scheduled Exports</string>
  <string name="label_no_scheduled_exports_to_display">Geen geplande exports om weer te geven</string>
  <string name="title_create_export_schedule">Export schema maken</string>
  <string name="toast_exported_to">Geëxporteerd naar: %1$s</string>
  <string name="toast_legend_too_long">Legenda is te lang</string>
  <string name="hint_account_description">Rekening beschrijving</string>
  <string name="label_no_recent_accounts">Geen recente rekeningen</string>
  <string name="label_no_favorite_accounts">Geen favoriete rekeningen</string>
  <string name="nav_menu_scheduled_actions">Geplande acties</string>
  <string name="label_scheduled_action_ended">"Ended, last executed on "</string>
  <string name="label_select_bar_to_view_details">Selecteer een staaf om details te bekijken</string>
  <string name="btn_wizard_next">Volgende</string>
  <string name="btn_wizard_finish">Klaar</string>
  <string name="wizard_title_default_currency">Standaard munteenheid</string>
  <string name="wizard_title_account_setup">Rekening setup</string>
  <string name="wizard_title_select_currency">Munteenheid selecteren</string>
  <string name="wizard_title_feedback_options">Feedbackopties</string>
  <string name="wizard_option_create_default_accounts">Standaard rekeningen creëren</string>
  <string name="wizard_option_import_my_accounts">Mijn rekeningen importeren</string>
  <string name="wizard_option_let_me_handle_it">Laat mij het zelf doen</string>
  <string name="wizard_option_currency_other">Other...</string>
  <string name="wizard_option_auto_send_crash_reports">Automatisch verzenden crashrapporten</string>
  <string name="wizard_option_disable_crash_reports">Crashrapporten uitschakelen</string>
  <string name="wizard_btn_back">Terug</string>
  <string name="title_setup_gnucash">Setup GnuCash</string>
  <string name="wizard_title_welcome_to_gnucash">Welkom bij GnuCash</string>
  <string name="msg_wizard_welcome_page">Voordat u er in duikt, \nlaten we eerst een paar dingen instellen\n\nOm door te gaan, druk op Volgende</string>
  <string name="title_split_editor">Splitsing Bewerker</string>
  <string name="toast_error_check_split_amounts">Controleer alle splitsingen op geldige bedragen alvorens op te slaan!</string>
  <string name="label_error_invalid_expression">Ongeldige expressie!</string>
  <string name="toast_scheduled_recurring_transaction">Geplande periodieke boeking</string>
  <string name="error_exchange_rate_required">Een wisselkoers is vereist</string>
  <string name="error_converted_amount_required">Het omgezette bedrag is vereist</string>
  <string name="title_transfer_funds">Overdracht van middelen</string>
  <string name="nav_menu_help"><![CDATA[Hulp & Feedback]]></string>
  <string name="label_select_pie_slice_to_see_details">Selecteer een segment om details te bekijken</string>
  <string name="label_report_period">Periode:</string>
  <string name="label_convert_from">Van:</string>
  <string name="label_convert_to">Tot:</string>
  <string name="msg_provide_exchange_rate">Geeft ofwel het omgerekende bedrag ofwel een wisselkoers op om middelen over te dragen</string>
  <string name="hint_exchange_rate">Wisselkoers</string>
  <string name="btn_fetch_quote">Koers opvragen</string>
  <string name="hint_converted_amount">Omgerekend bedrag</string>
  <string name="title_report_sheet">Blad</string>
  <string name="label_last_3_months_expenses">Kosten voor de afgelopen 3 maanden</string>
  <string name="label_total_assets">Totaal activa</string>
  <string name="label_total_liabilities">Totaal vreemd vermogen</string>
  <string name="label_net_worth">Totaal eigen vermogen</string>
  <string name="label_assets">Activa</string>
  <string name="label_liabilities">Vreemd vermogen</string>
  <string name="label_equity">Eigen vermogen</string>
  <string name="label_total_liabilities_and_equity"><![CDATA[Totaal passiva]]></string>
  <string name="label_move_to">Verplaatsen naar:</string>
  <string name="menu_group_by">Groeperen op</string>
  <string name="menu_group_by_month">Maand</string>
  <string name="menu_group_by_quarter">Kwartaal</string>
  <string name="menu_group_by_year">Jaar</string>
  <string name="title_balance_sheet_report">Balans</string>
  <string name="label_balance_sheet_total">Totaal:</string>
  <string name="title_google_plus_community">Google+-community</string>
  <string name="title_translate_gnucash">GnuCash Vertalen</string>
  <string name="summary_google_plus">Ideeën uitwisselen, bespreken van wijzigingen of problemen melden</string>
  <string name="summary_translate_gnucash">Vertalen of nalezen op CrowdIn</string>
  <string name="toast_no_compatible_apps_to_receive_export">No compatible apps to receive the exported transactions!</string>
  <string name="menu_move_transaction">Move...</string>
  <string name="menu_duplicate_transaction">Duplicate</string>
  <string-array name="report_time_range">
    <item>Huidige maand</item>
    <item>Afgelopen 3 maanden</item>
    <item>Afgelopen 6 maanden</item>
    <item>Afgelopen 12 maanden</item>
    <item>Alle boekingen</item>
    <item>Aangepast bereik…</item>
  </string-array>
</resources>


text:
<?php

namespace Cartalyst\Sentinel\Activations;

interface ActivationInterface
{
    /**
     * Returns the random string used for the activation code.
     *
     * @return string
     */
    public function getCode(): string;
}

redpajama_set_name: RedPajamaGithub


text:
<!DOCTYPE html>

    <title>Slide Nav React Telepresence</title>

    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Swiper/3.1.2/css/swiper.css">

    <link rel="stylesheet" href="slide-nav.css">


text:
<?php

error_reporting(E_ALL | E_STRICT);
$src = dirname(__DIR__) . DIRECTORY_SEPARATOR . 'src';
set_include_path(get_include_path()
    . PATH_SEPARATOR . $src
);
require_once 'Benchmark/Timer.php';

$hosts = array('localhost:8888');
$range = range(0, 1000);

echo 'OkuyamaClient' . PHP_EOL;
$t = new Benchmark_Timer();
$t->start();
$t->setMarker('Connect to Okuyama.');
require_once 'OkuyamaClient.class.php';
$client = new OkuyamaClient();
$client->setConnectionInfos($hosts);
$client->autoConnect();

$t->setMarker('Set 1000 items.');
foreach ($range as $v) {
    $client->setValue('key_' . $v, 'val_' . $v);
}
reset($range);
$t->setMarker('Get 1000 items.');
foreach ($range as $v) {
    $client->getValue('key_' . $v);
}
reset($range);
$t->setMarker('Remove 1000 items.');
foreach ($range as $v) {
    $client->removeValue('key_' . $v);
}
reset($range);
$t->setMarker('Close connection.');
$client->close();
$t->stop();
$t->display();

echo '\Net\Okuyama\Adapter\Socket' . PHP_EOL;
$t = new Benchmark_Timer();
$t->start();
$t->setMarker('Connect to Okuyama.');
require_once 'Net/Okuyama/Adapter.php';
require_once 'Net/Okuyama/Exception.php';
require_once 'Net/Okuyama/Adapter/Socket.php';
$client = new \Net\Okuyama\Adapter\Socket();
$client->autoConnect($hosts);
$t->setMarker('Set 1000 items.');
foreach ($range as $v) {
    $client->set('key_' . $v, 'val_' . $v);
}
reset($range);
$t->setMarker('Get 1000 items.');
foreach ($range as $v) {
    $client->get('key_' . $v);
}
reset($range);
$t->setMarker('Remove 1000 items.');
foreach ($range as $v) {
    $client->remove('key_' . $v);
}
reset($range);
$t->setMarker('Close connection.');
$client->close();
$t->stop();
$t->display();

echo '\Net\Okuyama' . PHP_EOL;
$t->start();
$t->setMarker('Connect to Okuyama.');
require_once 'Net/Okuyama.php';
$client = new \Net\Okuyama();
$client->connect($hosts);
$t->setMarker('Set 1000 items.');
foreach ($range as $v) {
    $client->set('key_' . $v, 'val_' . $v);
}
reset($range);
$t->setMarker('Get 1000 items.');
foreach ($range as $v) {
    $client->get('key_' . $v);
}
reset($range);
$t->setMarker('Remove 1000 items.');
foreach ($range as $v) {
    $client->remove('key_' . $v);
}
reset($range);
$t->setMarker('Close connection.');
$client->close();
$t->stop();
$t->display();


text:
"""Config flow for Lutron Caseta."""
import asyncio
import logging
import os
import ssl

import async_timeout
from pylutron_caseta.pairing import PAIR_CA, PAIR_CERT, PAIR_KEY, async_pair
from pylutron_caseta.smartbridge import Smartbridge
import voluptuous as vol

from homeassistant import config_entries
from homeassistant.components import zeroconf
from homeassistant.const import CONF_HOST, CONF_NAME
from homeassistant.core import callback
from homeassistant.data_entry_flow import FlowResult

from .const import (
    ABORT_REASON_CANNOT_CONNECT,
    BRIDGE_TIMEOUT,
    CONF_CA_CERTS,
    CONF_CERTFILE,
    CONF_KEYFILE,
    DOMAIN,
    ERROR_CANNOT_CONNECT,
    STEP_IMPORT_FAILED,
)

HOSTNAME = "hostname"

FILE_MAPPING = {
    PAIR_KEY: CONF_KEYFILE,
    PAIR_CERT: CONF_CERTFILE,
    PAIR_CA: CONF_CA_CERTS,
}

_LOGGER = logging.getLogger(__name__)

ENTRY_DEFAULT_TITLE = "Caséta bridge"

DATA_SCHEMA_USER = vol.Schema({vol.Required(CONF_HOST): str})
TLS_ASSET_TEMPLATE = "lutron_caseta-{}-{}.pem"

class LutronCasetaFlowHandler(config_entries.ConfigFlow, domain=DOMAIN):
    """Handle Lutron Caseta config flow."""

    VERSION = 1

    def __init__(self):
        """Initialize a Lutron Caseta flow."""
        self.data = {}
        self.lutron_id = None
        self.tls_assets_validated = False
        self.attempted_tls_validation = False

    async def async_step_user(self, user_input=None):
        """Handle a flow initialized by the user."""
        if user_input is not None:
            self.data[CONF_HOST] = user_input[CONF_HOST]
            return await self.async_step_link()

        return self.async_show_form(step_id="user", data_schema=DATA_SCHEMA_USER)

    async def async_step_zeroconf(
        self, discovery_info: zeroconf.ZeroconfServiceInfo
    ) -> FlowResult:
        """Handle a flow initialized by zeroconf discovery."""
        hostname = discovery_info.hostname
        if hostname is None or not hostname.lower().startswith("lutron-"):
            return self.async_abort(reason="not_lutron_device")

        self.lutron_id = hostname.split("-")[1].replace(".local.", "")

        await self.async_set_unique_id(self.lutron_id)
        host = discovery_info.host
        self._abort_if_unique_id_configured({CONF_HOST: host})

        self.data[CONF_HOST] = host
        self.context["title_placeholders"] = {
            CONF_NAME: self.bridge_id,
            CONF_HOST: host,
        }
        return await self.async_step_link()

    async def async_step_homekit(
        self, discovery_info: zeroconf.ZeroconfServiceInfo
    ) -> FlowResult:
        """Handle a flow initialized by homekit discovery."""
        return await self.async_step_zeroconf(discovery_info)

    async def async_step_link(self, user_input=None):
        """Handle pairing with the hub."""
        errors = {}
        # Abort if existing entry with matching host exists.
        self._async_abort_entries_match({CONF_HOST: self.data[CONF_HOST]})

        self._configure_tls_assets()

        if (
            not self.attempted_tls_validation
            and await self.hass.async_add_executor_job(self._tls_assets_exist)
            and await self.async_validate_connectable_bridge_config()
        ):
            self.tls_assets_validated = True
        self.attempted_tls_validation = True

        if user_input is not None:
            if self.tls_assets_validated:
                # If we previous paired and the tls assets already exist,
                # we do not need to go though pairing again.
                return self.async_create_entry(title=self.bridge_id, data=self.data)

            assets = None
            try:
                assets = await async_pair(self.data[CONF_HOST])
            except (asyncio.TimeoutError, OSError):
                errors["base"] = "cannot_connect"

            if not errors:
                await self.hass.async_add_executor_job(self._write_tls_assets, assets)
                return self.async_create_entry(title=self.bridge_id, data=self.data)

        return self.async_show_form(
            step_id="link",
            errors=errors,
            description_placeholders={
                CONF_NAME: self.bridge_id,
                CONF_HOST: self.data[CONF_HOST],
            },
        )

    @property
    def bridge_id(self):
        """Return the best identifier for the bridge.

        If the bridge was not discovered via zeroconf,
        we fallback to using the host.
        """
        return self.lutron_id or self.data[CONF_HOST]

    def _write_tls_assets(self, assets):
        """Write the tls assets to disk."""
        for asset_key, conf_key in FILE_MAPPING.items():
            with open(
                self.hass.config.path(self.data[conf_key]), "w", encoding="utf8"
            ) as file_handle:
                file_handle.write(assets[asset_key])

    def _tls_assets_exist(self):
        """Check to see if tls assets are already on disk."""
        for conf_key in FILE_MAPPING.values():
            if not os.path.exists(self.hass.config.path(self.data[conf_key])):
                return False
        return True

    @callback
    def _configure_tls_assets(self):
        """Fill the tls asset locations in self.data."""
        for asset_key, conf_key in FILE_MAPPING.items():
            self.data[conf_key] = TLS_ASSET_TEMPLATE.format(self.bridge_id, asset_key)

    async def async_step_import(self, import_info):
        """Import a new Caseta bridge as a config entry.

        This flow is triggered by `async_setup`.
        """
        host = import_info[CONF_HOST]
        # Store the imported config for other steps in this flow to access.
        self.data[CONF_HOST] = host

        # Abort if existing entry with matching host exists.
        self._async_abort_entries_match({CONF_HOST: self.data[CONF_HOST]})

        self.data[CONF_KEYFILE] = import_info[CONF_KEYFILE]
        self.data[CONF_CERTFILE] = import_info[CONF_CERTFILE]
        self.data[CONF_CA_CERTS] = import_info[CONF_CA_CERTS]

        if not await self.async_validate_connectable_bridge_config():
            # Ultimately we won't have a dedicated step for import failure, but
            # in order to keep configuration.yaml-based configs transparently
            # working without requiring further actions from the user, we don't
            # display a form at all before creating a config entry in the
            # default case, so we're only going to show a form in case the
            # import fails.
            # This will change in an upcoming release where UI-based config flow
            # will become the default for the Lutron Caseta integration (which
            # will require users to go through a confirmation flow for imports).
            return await self.async_step_import_failed()

        return self.async_create_entry(title=ENTRY_DEFAULT_TITLE, data=self.data)

    async def async_step_import_failed(self, user_input=None):
        """Make failed import surfaced to user."""
        self.context["title_placeholders"] = {CONF_NAME: self.data[CONF_HOST]}

        if user_input is None:
            return self.async_show_form(
                step_id=STEP_IMPORT_FAILED,
                description_placeholders={"host": self.data[CONF_HOST]},
                errors={"base": ERROR_CANNOT_CONNECT},
            )

        return self.async_abort(reason=ABORT_REASON_CANNOT_CONNECT)

    async def async_validate_connectable_bridge_config(self):
        """Check if we can connect to the bridge with the current config."""
        bridge = None

        try:
            bridge = Smartbridge.create_tls(
                hostname=self.data[CONF_HOST],
                keyfile=self.hass.config.path(self.data[CONF_KEYFILE]),
                certfile=self.hass.config.path(self.data[CONF_CERTFILE]),
                ca_certs=self.hass.config.path(self.data[CONF_CA_CERTS]),
            )
        except ssl.SSLError:
            _LOGGER.error(
                "Invalid certificate used to connect to bridge at %s",
                self.data[CONF_HOST],
            )
            return False

        connected_ok = False
        try:
            async with async_timeout.timeout(BRIDGE_TIMEOUT):
                await bridge.connect()
            connected_ok = bridge.is_connected()
        except asyncio.TimeoutError:
            _LOGGER.error(
                "Timeout while trying to connect to bridge at %s",
                self.data[CONF_HOST],
            )

        await bridge.close()
        return connected_ok


text:
package org.drools.impact.analysis.model.right;

public class ConsequenceAction {

    public enum Type {
        INSERT,
        DELETE,
        MODIFY;
    }

    private final Type type;
    protected final Class<?> actionClass;

    public ConsequenceAction( Type type, Class<?> actionClass ) {
        this.type = type;
        this.actionClass = actionClass;
    }

    public Type getType() {
        return type;
    }

    public Class<?> getActionClass() {
        return actionClass;
    }

    @Override
    public String toString() {
        return "ConsequenceAction{" +
                "type=" + type +
                ", actionClass=" + actionClass.getCanonicalName() +
                '}';
    }
}


text:
<?php

namespace Symfony\Bundle\FrameworkBundle\EventListener;

use Symfony\Component\Console\ConsoleEvents;
use Symfony\Component\Console\Event\ConsoleErrorEvent;
use Symfony\Component\Console\Exception\CommandNotFoundException;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;

/**
 * Suggests a package, that should be installed (via composer),
 * if the package is missing, and the input command namespace can be mapped to a Symfony bundle.
 *
 * @author Przemysław Bogusz <przemyslaw.bogusz@tubotax.pl>
 *
 * @internal
 */
final class SuggestMissingPackageSubscriber implements EventSubscriberInterface
{
    private const PACKAGES = [
        'doctrine' => [
            'fixtures' => ['DoctrineFixturesBundle', 'doctrine/doctrine-fixtures-bundle --dev'],
            'mongodb' => ['DoctrineMongoDBBundle', 'doctrine/mongodb-odm-bundle'],
            '_default' => ['Doctrine ORM', 'symfony/orm-pack'],
        ],
        'generate' => [
            '_default' => ['SensioGeneratorBundle', 'sensio/generator-bundle'],
        ],
        'make' => [
            '_default' => ['MakerBundle', 'symfony/maker-bundle --dev'],
        ],
        'server' => [
            'dump' => ['Debug Bundle', 'symfony/debug-bundle --dev'],
            '_default' => ['WebServerBundle', 'symfony/web-server-bundle --dev'],
        ],
    ];

    public function onConsoleError(ConsoleErrorEvent $event): void
    {
        if (!$event->getError() instanceof CommandNotFoundException) {
            return;
        }

        [$namespace, $command] = explode(':', $event->getInput()->getFirstArgument()) + [1 => ''];

        if (!isset(self::PACKAGES[$namespace])) {
            return;
        }

        if (isset(self::PACKAGES[$namespace][$command])) {
            $suggestion = self::PACKAGES[$namespace][$command];
            $exact = true;
        } else {
            $suggestion = self::PACKAGES[$namespace]['_default'];
            $exact = false;
        }

        $error = $event->getError();

        if ($error->getAlternatives() && !$exact) {
            return;
        }

        $message = sprintf("%s\n\nYou may be looking for a command provided by the \"%s\" which is currently not installed. Try running \"composer require %s\".", $error->getMessage(), $suggestion[0], $suggestion[1]);
        $event->setError(new CommandNotFoundException($message));
    }

    public static function getSubscribedEvents(): array
    {
        return [
            ConsoleEvents::ERROR => ['onConsoleError', 0],
        ];
    }
}


text:
using System;
using Lucene.Net.Analysis.Tokenattributes;
using Lucene.Net.Test.Analysis;
using NUnit.Framework;
using English = Lucene.Net.Util.English;

namespace Lucene.Net.Analysis
{

    [TestFixture]
	public class TestStopFilter:BaseTokenStreamTestCase
	{

		private const bool VERBOSE = false;

		// other StopFilter functionality is already tested by TestStopAnalyzer

        [Test]
		public virtual void  TestExactCase()
		{
			System.IO.StringReader reader = new System.IO.StringReader("Now is The Time");
            var stopWords = Support.Compatibility.SetFactory.CreateHashSet<string>();
            stopWords.UnionWith(new[] {"is", "the", "Time"});

			TokenStream stream = new StopFilter(false, new WhitespaceTokenizer(reader), stopWords, false);
            ITermAttribute termAtt = (ITermAttribute)stream.GetAttribute<ITermAttribute>();
			Assert.IsTrue(stream.IncrementToken());
			Assert.AreEqual("Now", termAtt.Term);
			Assert.IsTrue(stream.IncrementToken());
			Assert.AreEqual("The", termAtt.Term);
			Assert.IsFalse(stream.IncrementToken());
		}

        [Test]
		public virtual void  TestIgnoreCase()
		{
			System.IO.StringReader reader = new System.IO.StringReader("Now is The Time");
            var stopWords = Support.Compatibility.SetFactory.CreateHashSet<string>();
            stopWords.UnionWith(new[] {"is", "the", "Time"});

			TokenStream stream = new StopFilter(false, new WhitespaceTokenizer(reader), stopWords, true);
            ITermAttribute termAtt = stream.GetAttribute<ITermAttribute>();
			Assert.IsTrue(stream.IncrementToken());
			Assert.AreEqual("Now", termAtt.Term);
			Assert.IsFalse(stream.IncrementToken());
		}

        [Test]
		public virtual void  TestStopFilt()
		{
			System.IO.StringReader reader = new System.IO.StringReader("Now is The Time");
			System.String[] stopWords = new System.String[]{"is", "the", "Time"};
			var stopSet = StopFilter.MakeStopSet(stopWords);
			TokenStream stream = new StopFilter(false, new WhitespaceTokenizer(reader), stopSet);
            ITermAttribute termAtt = stream.GetAttribute<ITermAttribute>();
			Assert.IsTrue(stream.IncrementToken());
			Assert.AreEqual("Now", termAtt.Term);
			Assert.IsTrue(stream.IncrementToken());
			Assert.AreEqual("The", termAtt.Term);
			Assert.IsFalse(stream.IncrementToken());
		}

		/// <summary> Test Position increments applied by StopFilter with and without enabling this option.</summary>
        [Test]
		public virtual void  TestStopPositons()
		{
			System.Text.StringBuilder sb = new System.Text.StringBuilder();
			System.Collections.Generic.List<string> a = new System.Collections.Generic.List<string>();
			for (int i = 0; i < 20; i++)
			{
				System.String w = English.IntToEnglish(i).Trim();
				sb.Append(w).Append(" ");
				if (i % 3 != 0)
					a.Add(w);
			}
			Log(sb.ToString());
			System.String[] stopWords = (System.String[]) a.ToArray();
			for (int i = 0; i < a.Count; i++)
				Log("Stop: " + stopWords[i]);
			var stopSet = StopFilter.MakeStopSet(stopWords);
			// with increments
			System.IO.StringReader reader = new System.IO.StringReader(sb.ToString());
			StopFilter stpf = new StopFilter(false, new WhitespaceTokenizer(reader), stopSet);
			DoTestStopPositons(stpf, true);
			// without increments
			reader = new System.IO.StringReader(sb.ToString());
			stpf = new StopFilter(false, new WhitespaceTokenizer(reader), stopSet);
			DoTestStopPositons(stpf, false);
			// with increments, concatenating two stop filters
			System.Collections.Generic.List<System.String> a0 = new System.Collections.Generic.List<System.String>();
			System.Collections.Generic.List<System.String> a1 = new System.Collections.Generic.List<System.String>();
			for (int i = 0; i < a.Count; i++)
			{
				if (i % 2 == 0)
				{
					a0.Add(a[i]);
				}
				else
				{
					a1.Add(a[i]);
				}
			}
			System.String[] stopWords0 = (System.String[]) a0.ToArray();
			for (int i = 0; i < a0.Count; i++)
				Log("Stop0: " + stopWords0[i]);
			System.String[] stopWords1 = (System.String[]) a1.ToArray();
			for (int i = 0; i < a1.Count; i++)
				Log("Stop1: " + stopWords1[i]);
			var stopSet0 = StopFilter.MakeStopSet(stopWords0);
			var stopSet1 = StopFilter.MakeStopSet(stopWords1);
			reader = new System.IO.StringReader(sb.ToString());
			StopFilter stpf0 = new StopFilter(false, new WhitespaceTokenizer(reader), stopSet0); // first part of the set
			stpf0.EnablePositionIncrements = true;
			StopFilter stpf01 = new StopFilter(false, stpf0, stopSet1); // two stop filters concatenated!
			DoTestStopPositons(stpf01, true);
		}

		private void  DoTestStopPositons(StopFilter stpf, bool enableIcrements)
		{
			Log("---> test with enable-increments-" + (enableIcrements?"enabled":"disabled"));
			stpf.EnablePositionIncrements = enableIcrements;
            ITermAttribute termAtt = stpf.GetAttribute<ITermAttribute>();
            IPositionIncrementAttribute posIncrAtt = stpf.GetAttribute<IPositionIncrementAttribute>();
			for (int i = 0; i < 20; i += 3)
			{
				Assert.IsTrue(stpf.IncrementToken());
				Log("Token " + i + ": " + stpf);
				System.String w = English.IntToEnglish(i).Trim();
				Assert.AreEqual(w, termAtt.Term, "expecting token " + i + " to be " + w);
				Assert.AreEqual(enableIcrements?(i == 0?1:3):1, posIncrAtt.PositionIncrement, "all but first token must have position increment of 3");
			}
			Assert.IsFalse(stpf.IncrementToken());
		}

		// print debug info depending on VERBOSE
		private static void  Log(System.String s)
		{
			if (VERBOSE)
			{
				System.Console.Out.WriteLine(s);
			}
		}
	}
}


text:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="CMakeRunConfigurationManager" shouldGenerate="true">
    <generated>
      <config projectName="bloom_filter" targetName="bloom_filter" />
    </generated>
  </component>
  <component name="ChangeListManager">
    <list default="true" id="3f2905f7-78f6-41b8-a055-796163e9e80e" name="Default" comment="" />
    <ignored path="bloom_filter.iws" />
    <ignored path=".idea/workspace.xml" />
    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
    <option name="TRACKING_ENABLED" value="true" />
    <option name="SHOW_DIALOG" value="false" />
    <option name="HIGHLIGHT_CONFLICTS" value="true" />
    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
    <option name="LAST_RESOLUTION" value="IGNORE" />
  </component>
  <component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
  <component name="CreatePatchCommitExecutor">
    <option name="PATCH_PATH" value="" />
  </component>
  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
  <component name="FavoritesManager">
    <favorites_list name="bloom_filter" />
  </component>
  <component name="FileEditorManager">
    <leaf>
      <file leaf-file-name="Driver.c" pinned="false" current-in-tab="true">
        <entry file="file://$PROJECT_DIR$/Driver.c">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.6101231" vertical-offset="19" max-vertical-offset="750">
              <caret line="31" column="21" selection-start-line="31" selection-start-column="21" selection-end-line="31" selection-end-column="21" />
              <folding>
                <element signature="e#441#459#0" expanded="true" />
              </folding>
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="Bloom.c" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/Bloom.c">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0" vertical-offset="195" max-vertical-offset="1215">
              <caret line="13" column="37" selection-start-line="13" selection-start-column="4" selection-end-line="13" selection-end-column="37" />
              <folding>
                <element signature="e#0#19#0" expanded="true" />
              </folding>
            </state>
          </provider>
        </entry>
      </file>
      <file leaf-file-name="Bloom.h" pinned="false" current-in-tab="false">
        <entry file="file://$PROJECT_DIR$/Bloom.h">
          <provider selected="true" editor-type-id="text-editor">
            <state vertical-scroll-proportion="0.0" vertical-offset="1155" max-vertical-offset="1260">
              <caret line="77" column="0" selection-start-line="77" selection-start-column="0" selection-end-line="77" selection-end-column="0" />
              <folding />
            </state>
          </provider>
        </entry>
      </file>
    </leaf>
  </component>
  <component name="IdeDocumentHistory">
    <option name="CHANGED_PATHS">
      <list>
        <option value="$PROJECT_DIR$/Bloom1.c" />
        <option value="$PROJECT_DIR$/Bloom.h" />
        <option value="$PROJECT_DIR$/CMakeLists.txt" />
        <option value="$PROJECT_DIR$/Makefile" />
        <option value="$PROJECT_DIR$/Bloom.c" />
        <option value="$PROJECT_DIR$/Driver.c" />
      </list>
    </option>
  </component>
  <component name="JsGulpfileManager">
    <detection-done>true</detection-done>
  </component>
  <component name="OCFindUsagesOptions" text="true" ivars="false" properties="true" derivedClasses="false" />
  <component name="ProjectFrameBounds">
    <option name="y" value="23" />
    <option name="width" value="1440" />
    <option name="height" value="828" />
  </component>
  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
    <OptionsSetting value="true" id="Add" />
    <OptionsSetting value="true" id="Remove" />
    <OptionsSetting value="true" id="Checkout" />
    <OptionsSetting value="true" id="Update" />
    <OptionsSetting value="true" id="Status" />
    <OptionsSetting value="true" id="Edit" />
    <ConfirmationsSetting value="0" id="Add" />
    <ConfirmationsSetting value="0" id="Remove" />
  </component>
  <component name="ProjectView">
    <navigator currentView="ProjectPane" proportions="" version="1">
      <flattenPackages />
      <showMembers />
      <showModules />
      <showLibraryContents />
      <hideEmptyPackages />
      <abbreviatePackageNames />
      <autoscrollToSource />
      <autoscrollFromSource />
      <sortByType />
    </navigator>
    <panes>
      <pane id="ProjectPane">
        <subPane>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="bloom_filter" />
              <option name="myItemType" value="com.jetbrains.cidr.projectView.CidrFilesViewHelper$1$1" />
            </PATH_ELEMENT>
          </PATH>
          <PATH>
            <PATH_ELEMENT>
              <option name="myItemId" value="bloom_filter" />
              <option name="myItemType" value="com.jetbrains.cidr.projectView.CidrFilesViewHelper$1$1" />
            </PATH_ELEMENT>
            <PATH_ELEMENT>
              <option name="myItemId" value="bloom_filter" />
              <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
            </PATH_ELEMENT>
          </PATH>
        </subPane>
      </pane>
    </panes>
  </component>
  <component name="PropertiesComponent">
    <property name="recentsLimit" value="5" />
    <property name="settings.editor.selected.configurable" value="editor.preferences.folding" />
    <property name="settings.editor.splitter.proportion" value="0.2" />
    <property name="FullScreen" value="false" />
    <property name="CMAKE.AUTO_RELOAD_ENABLED" value="true" />
    <property name="js.buildTools.gulp.node_interpreter" value="/usr/local/bin/node" />
    <property name="js.buildTools.gulp.gulp_package_dir" value="" />
  </component>
  <component name="RunManager" selected="Application.bloom_filter">
    <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
      <node-options />
      <gulpfile />
      <tasks />
      <pass-parent-envs>true</pass-parent-envs>
      <envs />
      <method />
    </configuration>
    <configuration default="true" type="CMakeRunConfiguration" factoryName="Application" PASS_PARENT_ENVS="FALSE" PROJECT_NAME="bloom_filter" TARGET_NAME="bloom_filter" CONFIG_NAME="Debug">
      <envs />
      <method />
    </configuration>
    <configuration default="false" name="bloom_filter" type="CMakeRunConfiguration" factoryName="Application" PASS_PARENT_ENVS="FALSE" PROJECT_NAME="bloom_filter" TARGET_NAME="bloom_filter" CONFIG_NAME="Debug">
      <envs />
      <method />
    </configuration>
    <list size="1">
      <item index="0" class="java.lang.String" itemvalue="Application.bloom_filter" />
    </list>
  </component>
  <component name="ShelveChangesManager" show_recycled="false" />
  <component name="SvnConfiguration">
    <configuration />
  </component>
  <component name="TaskManager">
    <task active="true" id="Default" summary="Default task">
      <changelist id="3f2905f7-78f6-41b8-a055-796163e9e80e" name="Default" comment="" />
      <created>1420003670877</created>
      <option name="number" value="Default" />
      <updated>1420003670877</updated>
    </task>
    <servers />
  </component>
  <component name="ToolWindowManager">
    <frame x="0" y="23" width="1440" height="828" extended-state="6" />
    <editor active="false" />
    <layout>
      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
      <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="CMake" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.21527778" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
      <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
      <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.28853756" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
      <window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.3254282" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
      <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
      <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.31225297" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
    </layout>
  </component>
  <component name="Vcs.Log.UiProperties">
    <option name="RECENTLY_FILTERED_USER_GROUPS">
      <collection />
    </option>
    <option name="RECENTLY_FILTERED_BRANCH_GROUPS">
      <collection />
    </option>
  </component>
  <component name="VcsContentAnnotationSettings">
    <option name="myLimit" value="2678400000" />
  </component>
  <component name="VcsManagerConfiguration">
    <option name="myTodoPanelSettings">
      <TodoPanelSettings />
    </option>
    <ignored-roots>
      <path value="$PROJECT_DIR$/.." />
    </ignored-roots>
  </component>
  <component name="XDebuggerManager">
    <breakpoint-manager>
      <breakpoints>
        <line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
          <url>file://$PROJECT_DIR$/Driver.c</url>
          <line>37</line>
          <option name="timeStamp" value="15" />
        </line-breakpoint>
      </breakpoints>
      <breakpoints-dialog>
        <breakpoints-dialog />
      </breakpoints-dialog>
      <option name="time" value="16" />
    </breakpoint-manager>
    <watches-manager />
  </component>
  <component name="editorHistoryManager">
    <entry file="file://$PROJECT_DIR$/Driver.c">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="100">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding>
            <element signature="e#441#459#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Bloom.c">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0" vertical-offset="195" max-vertical-offset="1215">
          <caret line="13" column="37" selection-start-line="13" selection-start-column="4" selection-end-line="13" selection-end-column="37" />
          <folding>
            <element signature="e#0#19#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Bloom.h">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0" vertical-offset="1155" max-vertical-offset="1260">
          <caret line="77" column="0" selection-start-line="77" selection-start-column="0" selection-end-line="77" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Driver.c">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0" vertical-offset="315" max-vertical-offset="750">
          <caret line="21" column="15" selection-start-line="21" selection-start-column="15" selection-end-line="21" selection-end-column="15" />
          <folding>
            <element signature="e#441#459#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Bloom.c">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0" vertical-offset="195" max-vertical-offset="1215">
          <caret line="13" column="37" selection-start-line="13" selection-start-column="4" selection-end-line="13" selection-end-column="37" />
          <folding>
            <element signature="e#0#19#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Bloom.h">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0" vertical-offset="1155" max-vertical-offset="1260">
          <caret line="77" column="0" selection-start-line="77" selection-start-column="0" selection-end-line="77" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Driver.c">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0" vertical-offset="0" max-vertical-offset="100">
          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
          <folding>
            <element signature="e#441#459#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Bloom.c">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0" vertical-offset="195" max-vertical-offset="1215">
          <caret line="13" column="37" selection-start-line="13" selection-start-column="4" selection-end-line="13" selection-end-column="37" />
          <folding>
            <element signature="e#0#19#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Bloom.h">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0" vertical-offset="1155" max-vertical-offset="1260">
          <caret line="77" column="0" selection-start-line="77" selection-start-column="0" selection-end-line="77" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Driver.c">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0" vertical-offset="390" max-vertical-offset="585">
          <caret line="26" column="0" selection-start-line="26" selection-start-column="0" selection-end-line="26" selection-end-column="0" />
          <folding>
            <element signature="e#441#459#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Bloom.h">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0" vertical-offset="315" max-vertical-offset="1380">
          <caret line="21" column="29" selection-start-line="21" selection-start-column="29" selection-end-line="21" selection-end-column="29" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file:///usr/include/sys/_types/_size_t.h">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.8805668" vertical-offset="0" max-vertical-offset="555">
          <caret line="29" column="31" selection-start-line="29" selection-start-column="31" selection-end-line="29" selection-end-column="31" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/PMurHash.c">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.44335938" vertical-offset="4048" max-vertical-offset="4845">
          <caret line="285" column="19" selection-start-line="285" selection-start-column="9" selection-end-line="285" selection-end-column="19" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/PMurHash.h">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.34647304" vertical-offset="568" max-vertical-offset="1050">
          <caret line="49" column="16" selection-start-line="49" selection-start-column="16" selection-end-line="49" selection-end-column="16" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Makefile">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.060728744" vertical-offset="0" max-vertical-offset="494">
          <caret line="2" column="11" selection-start-line="2" selection-start-column="11" selection-end-line="2" selection-end-column="11" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/CMakeLists.txt">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.36437246" vertical-offset="0" max-vertical-offset="494">
          <caret line="12" column="9" selection-start-line="12" selection-start-column="9" selection-end-line="12" selection-end-column="9" />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Bloom.h">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0" vertical-offset="748" max-vertical-offset="1260">
          <caret line="77" column="0" selection-start-line="77" selection-start-column="0" selection-end-line="77" selection-end-column="0" />
          <folding />
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Bloom.c">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.0" vertical-offset="1" max-vertical-offset="1215">
          <caret line="13" column="37" selection-start-line="13" selection-start-column="4" selection-end-line="13" selection-end-column="37" />
          <folding>
            <element signature="e#0#19#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
    <entry file="file://$PROJECT_DIR$/Driver.c">
      <provider selected="true" editor-type-id="text-editor">
        <state vertical-scroll-proportion="0.6101231" vertical-offset="19" max-vertical-offset="750">
          <caret line="31" column="21" selection-start-line="31" selection-start-column="21" selection-end-line="31" selection-end-column="21" />
          <folding>
            <element signature="e#441#459#0" expanded="true" />
          </folding>
        </state>
      </provider>
    </entry>
  </component>
</project>


text:
// Copyright (c) Microsoft.  All Rights Reserved.  Licensed under the Apache License, Version 2.0.  See License.txt in the project root for license information.

using System;
using System.Collections.Immutable;
using System.Runtime.InteropServices;
using System.Threading;

namespace Microsoft.CodeAnalysis
{
    internal sealed class ByteArrayMemoryProvider : MemoryBlockProvider
    {
        internal readonly ImmutableArray<byte> array;
        private PinnedImmutableArray pinned;

        public ByteArrayMemoryProvider(ImmutableArray<byte> array)
        {
            this.array = array;
        }

        ~ByteArrayMemoryProvider()
        {
            Dispose(disposing: false);
        }

        protected override void Dispose(bool disposing)
        {
            if (!disposing)
            {
                GC.SuppressFinalize(this);
            }

            // TODO (bug 829217): PinnedImmutableArray.Dispose is not thread safe and might throw on double disposal.
            var localPinned = Interlocked.Exchange(ref pinned, null);
            if (localPinned != null)
            {
                localPinned.Dispose();
            }
        }

        public override int Size
        {
            get
            {
                return array.Length;
            }
        }

        protected override AbstractMemoryBlock GetMemoryBlockImpl(int start, int size)
        {
            return new ByteArrayMemoryBlock(this, start, size);
        }

        internal IntPtr Pointer
        {
            get
            {
                if (pinned == null)
                {
                    var newPinned = PinnedImmutableArray.Create(array);
                    if (Interlocked.CompareExchange(ref pinned, newPinned, null) != null)
                    {
                        // another thread has already allocated the handle:
                        newPinned.Dispose();
                    }
                }

                return pinned.Pointer;
            }
        }
    }
}


text:
package hkh.nlp.earley;

import java.util.ArrayList;
import java.util.List;

public class TerminalRules {

	public ArrayList<TRule> trules = null;
	public TerminalRules() {
		trules = new ArrayList<TRule>();
	}

	public void addRule(String raw) {
//		System.out.println("terminal: "+raw);
		trules.add(TRule.makeRule(raw));
	}

	/**
	 * 다음 string이 POS인지 판단. (POS: Parts of Speech)
	 * @param next
	 * @return
	 */
	public boolean isPOS(String next) {
		for (int i=0; i<trules.size(); i++) {
			if (trules.get(i).lhs.equals(next)) {
				return true;
			}
		}
		return false;
	}

	/**
	 * 해당 state, terminal rule중 word에 맞는 terminal이 존재하면 state 생성
	 * @param state
	 * @param word
	 * @return
	 */
	public List<State> partsOfSpeech(State state, String word) {
		List<State> matched = new ArrayList<State>();
		String next = state.getNextString();
		for (TRule trule : trules) {
			if (trule.lhs.equals(next) && trule.rhs.equals(word)) {
				// matched, add to new state
				String[] elm = {word};
				ArrayList<String[]> completed = new ArrayList<String[]>();
				completed.add(elm);
				String[] incompleted = {};
				State newState = new State(state.current, state.current+1, next, completed, incompleted);
				newState.operation = "Scanner";
				matched.add(newState);
			}
		}
		return matched;
	}

	static class TRule {

		public String lhs = null;
		public String rhs = null;

		private TRule() {
		}

		public static TRule makeRule(String raw) {
			TRule rule = new TRule();
			String[] elems = raw.split("\\s");
			try {
				rule.lhs = elems[0];
				rule.rhs = elems[2];
			} catch (RuntimeException re) {
				System.err.println("malformed grammar file !");
				System.exit(0);
			}
			return rule;
		}

		@Override
		public String toString() {
			StringBuffer ret = new StringBuffer();
			ret.append(lhs);
			ret.append(" >> ");
			ret.append(rhs);
			return ret.toString();
		}
	}

	public void printRules() {
		System.out.println("-- Terminal Rules --");
		for (TRule rule : trules) {
			System.out.println(rule.toString());
		}
	}
}